:root {
   --blue: #2f6ff0;
   --blue-dark: #1c4fd1;
   --blue-pale: #eaf1ff;
   --ink: #171719;
   --gray: #7a7a84;
   --page-bg: #eef1f6;
   --card-bg: color-mix(in srgb, var(--blue) 20%, #ffffff);
   --line: #e7ecf5;
   --primary: #2f6ff0;
}

html {
   scroll-behavior: smooth;
   height: auto !important;
   overflow-x: hidden !important;
   overflow-y: auto !important;
}

body {
   height: auto !important;
   min-height: 100vh !important;
   display: flex !important;
   justify-content: center !important;
   align-items: flex-start !important;
   background: var(--page-bg) !important;
   font-family: 'Inter', sans-serif !important;
   padding: 5px 9px 70px 9px !important;
   color: var(--ink) !important;
   overflow-x: hidden !important;
   overflow-y: auto !important;
}

.theme15-wrapper {
   width: 100%;
   max-width: 420px;
   margin: 0 auto;
   position: relative;
}

.card {
   position: relative;
   isolation: isolate;
   width: 100%;
   background: var(--card-bg, color-mix(in srgb, var(--blue) 20%, #ffffff));

   border: 1.5px solid white;
   border-radius: 20px;
   overflow: hidden;
   box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04), 0 4px 10px rgba(0, 0, 0, 0.08), 0 12px 10px rgba(0, 0, 0, 0.04);
   display: flex;
   flex-direction: column;
   color: var(--ink);
   margin-bottom: 16px;
}

.card-scroll {
   width: 100%;
   position: relative;
}

/* ---------- decorative wave behind header ---------- */
/* .wave-bg {
   position: absolute;
   top: 0;
   left: 0;
   width: 100%;
   height: 230px;
   z-index: 0;
   pointer-events: none;
} */
.wave-bg {
   opacity: 0.5;
   position: absolute;
   top: 0;
   left: 0;
   width: 100%;
   height: 271px;
   z-index: 0;
   pointer-events: none;
}
.wave-bg path:nth-child(1) {
   stroke: color-mix(in srgb, var(--blue) 25%, transparent);
}
.wave-bg path:nth-child(2) {
   stroke: color-mix(in srgb, var(--blue) 40%, transparent);
}
.wave-bg path:nth-child(3) {
   stroke: color-mix(in srgb, var(--blue) 15%, transparent);
}
.wave-bg path:nth-child(4) {
   stroke: color-mix(in srgb, var(--blue) 10%, transparent);
}

/* ---------- top bar ---------- */
.topbar {
   display: flex;
   align-items: start;
   justify-content: space-between;
   padding: 12px 10px 0 10px;
   position: relative;
   z-index: 2;
}

.brand {
   display: flex;
   align-items: center;
   gap: 8px;
}
.brand-mark {
   width: 24px;
   height: 24px;
   flex-shrink: 0;
}

.brand-logo {
   max-height: 80px;
   max-width: 150px;
   object-fit: contain;
   display: block;
}

.save-pill {
   display: flex;
   align-items: center;
   gap: 5px;
   padding: 6px 8px;
   border-radius: 999px;
   border: 1.4px solid var(--blue);
   color: var(--blue);
   font-size: 10px;
   font-weight: 600;
   cursor: pointer;
   background: #fff;
   text-decoration: none;
}
.save-pill svg,
.save-pill i {
   width: 11px;
   height: 11px;
   color: var(--blue);
}

/* ---------- profile ---------- */
.profile {
   display: flex;
   flex-direction: column;
   align-items: center;
   padding: 14px 20px 6px 20px;
   position: relative;
   z-index: 2;
}

.avatar-ring {
   width: 104px;
   height: 104px;
   border-radius: 50%;
   padding: 3px;
   background: #fff;
   border: 2.5px solid var(--blue);
   position: relative;
   margin-bottom: 14px;
}
.avatar-ring img {
   width: 100%;
   height: 100%;
   border-radius: 50%;
   object-fit: cover;
   display: block;
}
.verified {
   position: absolute;
   bottom: 4px;
   right: 7px;
   width: 24px;
   height: 24px;
   display: flex;
   align-items: center;
   justify-content: center;
   z-index: 2;
}
.verified svg {
   width: 24px;
   height: 24px;
   display: block;
}

.name {
   font-family: 'Poppins', sans-serif;
   font-size: 19px;
   font-weight: 600;
   color: var(--ink);
   text-align: center;
}
.name em {
   font-style: normal;
   color: var(--blue);
}
.role {
   font-size: 12px;
   color: var(--ink);
   margin-top: 3px;
}
.org-name-text {
   font-size: 11.5px;
   color: var(--blue);
   margin-top: 2px;
}

/* ---------- action grid ---------- */
.actions {
   display: grid;
   grid-template-columns: repeat(3, 1fr);
   gap: 10px;
   padding: 4px 15px 22px 15px;
   position: relative;
   z-index: 2;
}

.tile {
   display: flex;
   flex-direction: column;
   align-items: center;
   justify-content: center;
   gap: 8px;
   padding: 14px 6px;
   background: #ffffffb0;
   border: 1.4px solid white;
   box-shadow: 0 2px 4px color-mix(in srgb, var(--blue) 25%, transparent);
   border-radius: 14px;
   text-decoration: none;
   cursor: pointer;
   transition: background 0.15s ease, transform 0.15s ease;
   color: var(--ink);
}
.tile:hover {
   background: color-mix(in srgb, var(--blue) 12%, transparent);
   transform: translateY(-2px);
   color: var(--ink);
}

.tile .icon {
   width: 50px;
   height: 50px;
   border-radius: 10px;
   display: flex;
   align-items: center;
   justify-content: center;
   background: color-mix(in srgb, var(--blue) 12%, transparent);
}

.tile .icon svg {
   width: 16px;
   height: 16px;
   stroke: var(--blue);
}

.tile .icon i,
.tile .icon .fa,
.tile .icon .fa-solid {
   font-size: 16px;
   color: var(--blue) !important;
   display: flex;
   align-items: center;
   justify-content: center;
}

.tile .icon img {
   width: 40px;
   height: 40px;
   object-fit: contain;
}

.tile span {
   font-size: 10.5px;
   color: var(--ink);
   font-weight: 500;
   text-align: center;
}

/* ---------- cta group ---------- */
.cta-group {
   padding: 0 15px 22px 15px;
   display: flex;
   gap: 10px;
   position: relative;
   z-index: 2;
}

.btn-primary {
   display: flex;
   align-items: center;
   justify-content: center;
   gap: 8px;
   width: 100%;
   padding: 10px;
   border-radius: 14px;
   border: none;
   background: var(--blue);
   color: #fff;
   font-size: 11px;
   font-weight: 600;
   cursor: pointer;
   text-decoration: none;
}
.btn-primary:hover {
   color: #fff;
   filter: brightness(0.85);
}
.btn-primary svg {
   width: 15px;
   height: 15px;
}
.btn-primary i,
.btn-primary .fa {
   color: #fff !important;
   font-size: 14px;
}

.btn-secondary {
   display: flex;
   align-items: center;
   justify-content: center;
   gap: 8px;
   width: 100%;
   padding: 10px;
   border-radius: 14px;
   border: 1.4px solid var(--blue);
   /* background: #fff; */
   background: #ffffffb0;
   color: var(--blue);
   font-size: 11px;
   font-weight: 600;
   cursor: pointer;
   text-decoration: none;
}
.btn-secondary:hover {
   border: 1.4px solid var(--blue);
   background: color-mix(in srgb, var(--blue) 12%, transparent);
   color: var(--blue);
}
.btn-secondary svg {
   width: 15px;
   height: 15px;
}
.btn-secondary i,
.btn-secondary .fa {
   color: var(--blue) !important;
   font-size: 14px;
}

/* ---------- section titles ---------- */
.card-title-t15 {
   font-family: 'Poppins', sans-serif;
   font-size: 16px;
   font-weight: 600;
   color: var(--blue) !important;
   margin-bottom: 16px;
   display: flex;
   align-items: center;
   gap: 8px;
}
.card-title-t15 i,
.card-title-t15 svg {
   color: var(--blue) !important;
}
/* faint dotted texture, right side */
.card-texture {
   position: relative;
   isolation: isolate;
}
.card-texture::before {
   content: '';
   position: absolute;
   top: 0;
   right: 0;
   left: 0;
   bottom: 0;
   width: 100%;
   height: 100%;
   background-image: radial-gradient(circle, color-mix(in srgb, var(--blue) 25%, transparent) 1px, transparent 1.4px);
   background-size: 14px 14px;
   /* -webkit-mask-image: linear-gradient(to bottom left, black, transparent 70%);
   mask-image: linear-gradient(to bottom left, black, transparent 70%); */
   -webkit-mask-image: linear-gradient(to bottom, black 0%, black 50%, transparent 100%);
   mask-image: linear-gradient(to bottom, black 0%, black 50%, transparent 100%);
   pointer-events: none;
   z-index: 0;
}
.card-texture > * {
   position: relative;
   z-index: 1;
}
/* ---------- section body text ---------- */
.about-text-t15 {
   font-size: 13.5px;
   line-height: 1.6;
   color: var(--ink) !important;
}
.about-text-t15 * {
   color: var(--ink) !important;
}
.product-grid-t15 {
   display: grid;
   grid-template-columns: repeat(2, 1fr);
   gap: 10px;
}

.product-box-t15 {
   /* background: #fff; */
   background: #ffffffb0;
   /* border: 1px solid var(--line); */
   border: 1px solid var(--blue);
   /* border: 1.4px solid white; */
   box-shadow: 0 2px 4px color-mix(in srgb, var(--blue) 25%, transparent);
   border-radius: 16px;
   padding: 10px;
   display: flex;
   flex-direction: column;
   justify-content: space-between;
   transition: border-color 0.2s;
}
.product-box-t15:hover {
   border-color: var(--blue);
}
.product-box-t15 h5 {
   color: var(--ink) !important;
}

.product-img-t15 {
   border-radius: 12px;
   width: 100%;
   height: 120px;
   object-fit: contain;
}

.gallery-grid-t15 {
   display: grid;
   grid-template-columns: repeat(2, 1fr);
   gap: 10px;
}

.gallery-item-t15 img {
   width: 100%;
   height: 120px;
   object-fit: cover;
   border-radius: 12px;
   /* border: 1px solid var(--line); */
   border: 1.4px solid white;
   box-shadow: 0 2px 4px color-mix(in srgb, var(--blue) 25%, transparent);
}

/* Form controls in theme 15 */
.form-control-t15 {
   background: #fff !important;
   border: 1px solid var(--line) !important;
   color: var(--ink) !important;
   border-radius: 12px !important;
   padding: 10px 14px !important;
}
.form-control-t15:focus {
   border-color: var(--blue) !important;
   box-shadow: none !important;
}

/* ---------- bottom nav ---------- */
.navbar-theme15 {
   display: flex;
   justify-content: space-between;
   align-items: center;
   padding: 10px 14px;
   border: 1px solid var(--line);
   background: rgba(255, 255, 255, 0.743);
   backdrop-filter: blur(12px);
   -webkit-backdrop-filter: blur(12px);
   position: fixed;
   bottom: 12px;
   left: 50%;
   transform: translateX(-50%);
   width: calc(100% - 20px);
   max-width: 420px;
   z-index: 999;
   border-radius: 20px;
   box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
}

.nav-item-t15 {
   display: flex;
   flex-direction: column;
   align-items: center;
   gap: 5px;
   color: #606060;
   text-decoration: none;
   flex: 1;
}

.nav-item-t15 svg {
   width: 17px;
   height: 17px;
   /* stroke: #b4b8c4; */
   stroke: var(--ink);
}

.nav-item-t15 span {
   font-size: 8.5px;
   font-weight: 500;
   color: var(--ink);
}

.nav-item-t15.active,
.nav-item-t15:hover {
   color: var(--blue);
}
.nav-item-t15.active svg,
.nav-item-t15:hover svg {
   stroke: var(--blue);
}

/* Circular Social Icons Row */
.social-row-t15 {
   display: flex;
   align-items: center;
   justify-content: center;
   gap: 14px;
   /* padding: 6px 0 10px 0; */
   padding: 0 15px 22px 15px;
}

.social-circle-item {
   width: 40px;
   height: 40px;
   background: #ffffffb0;
   border-radius: 10px;
   border: 2px solid white;
   box-shadow: 0 2px 4px color-mix(in srgb, var(--blue) 25%, transparent);
   display: flex;
   align-items: center;
   justify-content: center;
   cursor: pointer;
   transition: transform 0.2s ease;
   flex-shrink: 0;
}

.social-circle-item:hover {
   transform: translateY(-3px) scale(1.08);
}

.social-circle-img {
   width: 38px;
   height: 38px;
   object-fit: contain;
   border-radius: 10px;
}

/* Fix Modal Close Button distortion from main.css */
.modal-header .btn-close {
   position: relative !important;
   top: auto !important;
   right: auto !important;
   width: 30px !important;
   height: 30px !important;
   padding: 0 !important;
   margin: 0 !important;
   background-color: rgba(255, 255, 255, 0.15) !important;
   border-radius: 50% !important;
   background-size: 12px !important;
   opacity: 0.85 !important;
   transition: opacity 0.2s, background-color 0.2s !important;
   box-shadow: none !important;
}

.modal-header .btn-close:hover {
   opacity: 1 !important;
   background-color: rgba(255, 255, 255, 0.3) !important;
}
