/* ------------------------------ Base -------------------------------- */
@import url('https://fonts.googleapis.com/css2?family=Jost:ital,wght@0,100..900;1,100..900&family=Outfit:wght@100..900&display=swap');
:root{ --bg: #fbf7f4; --card: #ffffff; --text: #1e1f23; --muted: #6c6f7a; --line: rgba(20, 20, 20, .10); --accent: #ff5a6a; --accent-2: #f6b24a; --accent-3: #67c3b5; --accent-4: #7aa6ff; --radius-xl: 28px; --radius-lg: 20px; --radius-md: 14px; --shadow: 0 18px 50px rgba(0,0,0,.08); --shadow-soft: 0 10px 30px rgba(0,0,0,.06); --container: 1440px; }
*{ box-sizing: border-box; }
html,body{ height:100%; }
body{ margin:0; font-family: "Jost", sans-serif; color: var(--text); background: var(--bg); }
a{ color: inherit; text-decoration: none; }
a:hover{ opacity: .85; }
.container{ max-width: var(--container); margin: 0 auto; padding: 0 28px; }
.muted{ color: var(--muted); }
.small{ font-size: .92rem; }
.eyebrow{ letter-spacing: .12em; text-transform: uppercase; font-size: .78rem; color: #a45a61; margin: 0 0 10px; }
.mt-0{ margin-top:0; }
/* ------------------------------ Header -------------------------------- */
.header{ position: sticky; top: 0; z-index: 20; background: rgba(251,247,244,.7); backdrop-filter: blur(10px); border-bottom: 1px solid rgba(0,0,0,.06); }
.header__grid{ display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 18px; min-height: 78px; }
.brand{ display: inline-flex; align-items: center; gap: 10px; font-weight: 800; }
.brand img{ height:40px; }
.brand__mark{ width: 34px; height: 34px; border-radius: 12px; display: grid; place-items: center; background: rgba(255,90,106,.14); border: 1px solid rgba(255,90,106,.25); }
.brand__text{ font-size: 1.05rem; }
.nav{ display: inline-flex; gap: 22px; font-weight: 300; color: #2a2c33; }
.header__cta{ justify-self: end; }
.btn{ display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 12px 16px; border-radius: 999px; background: var(--accent); color: white; font-weight: 700; box-shadow: 0 12px 30px rgba(255,90,106,.24); border: 1px solid rgba(255,255,255,.22); }
.btn--soft{ background: rgba(255,90,106,.10); color: #b0313d; box-shadow: none; border: 1px solid rgba(255,90,106,.18); }
.btn--ghost{ background: transparent; box-shadow: none; border: 1px solid rgba(0,0,0,.10); color: #2a2c33; }
/* ------------------------------ Hero -------------------------------- */
.hero{ padding: 64px 0 36px; position: relative; overflow: clip; }
.hero__grid{ display: grid; grid-template-columns: 1.05fr .95fr; gap: 44px; align-items: center; }
.hero__copy h1{ font-size: clamp(2.0rem, 2.6vw, 3.2rem); line-height: 1.08; margin: 0 0 14px; font-weight: 500; }
.lead{ font-size: 1.06rem; line-height: 1.7; max-width: 56ch; margin: 0 0 18px; }
.hero__actions{ display: flex; gap: 12px; flex-wrap: wrap; margin: 16px 0 20px; }
.social-proof{ display: grid; grid-template-columns: auto 1fr; gap: 12px; align-items: center; background: rgba(255,255,255,.65); border: 1px solid rgba(0,0,0,.06); border-radius: 999px; padding: 10px 14px; width: fit-content; box-shadow: var(--shadow-soft); }
.avatars{ display: inline-flex; }
.avatar{ width: 28px; height: 28px; border-radius: 999px; border: 2px solid rgba(255,255,255,.9); background: radial-gradient(circle at 30% 30%, rgba(255,255,255,.5), transparent 55%), linear-gradient(135deg, rgba(122,166,255,.55), rgba(255,90,106,.55)); margin-left: -8px; }
.avatar:first-child{ margin-left: 0; }
.hero__media{ position: relative; display: grid; place-items: center; min-height: 420px; }
.blob{ width: min(520px, 100%); aspect-ratio: 1 / 1; border-radius: 42% 58% 62% 38% / 42% 38% 62% 58%; background: radial-gradient(circle at 30% 25%, rgba(255,255,255,.65), transparent 50%), linear-gradient(135deg, rgba(255,90,106,.18), rgba(122,166,255,.18)); border: 1px solid rgba(0,0,0,.08); box-shadow: var(--shadow); display: grid; padding: 16px; }
.blob__img{ border-radius: 36% 64% 55% 45% / 40% 35% 65% 60%; background: radial-gradient(circle at 35% 25%, rgba(255,255,255,.25), transparent 55%), linear-gradient(135deg, rgba(103,195,181,.45), rgba(255,178,74,.45)); border: 1px solid rgba(0,0,0,.08); }
.float-card{ position: absolute; background: rgba(255,255,255,.8); border: 1px solid rgba(0,0,0,.08); border-radius: 18px; padding: 12px 14px; box-shadow: var(--shadow-soft); display: grid; gap: 2px; min-width: 210px; }
.float-card--top{ top: 26px; right: 12px; }
.float-card--bottom{ bottom: 20px; left: 6px; }
.hero__media::before,.hero__media::after{ content:""; position:absolute; width: 120px; height: 32px; border-radius: 999px; filter: blur(.0px); opacity: .95; }
.hero__media::before{ top: 292px; left: 6%; background: rgba(246, 178, 74, .85); transform: rotate(-12deg); z-index: 99; }
.hero__media::after{ top: 194px; right: 2%; background: rgba(255,90,106,.75); transform: rotate(22deg); }
/* ------------------------------ Sections -------------------------------- */
.section{ padding: 72px 0; }
.section__head{ max-width: 72ch; margin: 0 auto 28px; text-align: center; }
.section__head h2{ margin: 0 0 10px; font-size: clamp(1.6rem, 2vw, 2.2rem); }
.two-col{ display: grid; grid-template-columns: 1.1fr .9fr; gap: 34px; align-items: start; }
.bullets{ margin-top: 18px; display: grid; gap: 12px; }
.bullet{ display: grid; grid-template-columns: 18px 1fr; gap: 12px; align-items: start; padding: 14px 14px; background: rgba(255,255,255,.55); border: 1px solid rgba(0,0,0,.06); border-radius: var(--radius-md); }
.dot{ width: 12px; height: 12px; border-radius: 999px; background: rgba(255,90,106,.85); margin-top: 4px; }
.section--about{ background: linear-gradient(180deg, transparent, rgba(255,255,255,.35), transparent); border-top: 1px solid rgba(0,0,0,.05); border-bottom: 1px solid rgba(0,0,0,.05); }
.certs{ background: rgba(255,255,255,.55); border: 1px solid rgba(0,0,0,.06); border-radius: 28px; padding: 18px; box-shadow: 0 10px 30px rgba(0,0,0,.06); }
.certs__grid{ display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.cert{ background: rgba(255,255,255,.75); border: 1px solid rgba(0,0,0,.08); border-radius: 16px; padding: 12px; }
.cert__paper{ position: relative; aspect-ratio: 4 / 5; border-radius: 12px; overflow: hidden; background: #f3f4f6; }
.cert__paper img{ width: 100%; height: 100%; object-fit: contain; object-position: center; display: block; }
/* ------------------------------ Service cards -------------------------------- */
.cards{ display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.card{ background: rgba(255,255,255,.72); border: 1px solid rgba(0,0,0,.07); border-radius: var(--radius-lg); padding: 18px 18px 16px; box-shadow: var(--shadow-soft); display: grid; gap: 10px; align-content: flex-start; }
.card__icon{ width: 44px; height: 44px; border-radius: 16px; display: grid; place-items: center; font-weight: 800; background: rgba(103,195,181,.16); border: 1px solid rgba(103,195,181,.26); }
/* ------------------------------ Split section (progress) -------------------------------- */
.section--split{ background: radial-gradient(900px 500px at 18% 40%, rgba(255,178,74,.12), transparent 60%), radial-gradient(900px 500px at 82% 40%, rgba(103,195,181,.12), transparent 60%); border-top: 1px solid rgba(0,0,0,.05); border-bottom: 1px solid rgba(0,0,0,.05); }
.split{ display: grid; grid-template-columns: .95fr 1.05fr; gap: 34px; align-items: center; }
.split__media{ display: grid; place-items: center; }
.split__img{ width: 100%; aspect-ratio: 4 / 3; border-radius: 34px; overflow: hidden; background: #f3f4f6; box-shadow: 0 20px 50px rgba(0,0,0,.10); border: 1px solid rgba(0,0,0,.08); }
.split__img img{ width: 100%; height: 100%; display: block; object-fit: cover; object-position: center; }
.feature-list{ margin: 18px 0 18px; display: grid; gap: 12px; }
.feature{ display: grid; grid-template-columns: 44px 1fr; gap: 12px; align-items: start; padding: 14px; background: rgba(255,255,255,.7); border: 1px solid rgba(0,0,0,.06); border-radius: var(--radius-md); }
.feature__badge{ width: 38px; height: 38px; border-radius: 14px; display: grid; place-items: center; font-weight: 800; background: rgba(255,90,106,.12); border: 1px solid rgba(255,90,106,.20); }
.feature h3{ margin: 0 0 4px; font-size: 1.05rem; }
.feature p{ margin: 0; }
/* ------------------------------ Pricing -------------------------------- */
.pricing{ display: grid; grid-template-columns: 1fr 1fr; gap: 16px; align-items: stretch; }
.price{ background: rgba(255,255,255,.72); border: 1px solid rgba(0,0,0,.07); border-radius: var(--radius-xl); padding: 20px; box-shadow: var(--shadow-soft); display: grid; gap: 10px; }
.price__value{ font-size: 1.7rem; font-weight: 900; }
.ticks{ list-style: none; padding: 0; margin: 8px 0 4px; display: grid; gap: 8px; }
.ticks li{ padding-left: 24px; position: relative; }
.ticks li::before{ content: "✓"; position: absolute; left: 0; top: 0; color: #1b7f6e; font-weight: 900; }
.price--featured{ border: 1px solid rgba(255,90,106,.22); box-shadow: 0 22px 60px rgba(255,90,106,.12); }
.pill{ width: fit-content; padding: 6px 10px; border-radius: 999px; background: rgba(255,90,106,.12); border: 1px solid rgba(255,90,106,.20); color: #b0313d; font-weight: 800; font-size: .86rem; }
/* ------------------------------ Calendar placeholder -------------------------------- */
.section--calendar{ padding-top: 56px; }
.calendar{ background: rgba(255,255,255,.72); border: 1px solid rgba(0,0,0,.07); border-radius: var(--radius-xl); box-shadow: var(--shadow-soft); overflow: hidden; }
.calendar__toolbar{ padding: 14px 16px; border-bottom: 1px solid rgba(0,0,0,.06); display: flex; gap: 10px; flex-wrap: wrap; }
.calendar__chip{ padding: 8px 12px; border-radius: 999px; border: 1px solid rgba(0,0,0,.10); background: rgba(255,255,255,.6); font-weight: 700; font-size: .92rem; }
.calendar__chip--active{ border-color: rgba(255,90,106,.22); background: rgba(255,90,106,.10); color: #b0313d; }
.calendar__grid{ padding: 18px; }
.calendar__skeleton{ }
/* ------------------------------ FAQ -------------------------------- */
.faq__items{ display: grid; gap: 10px; }
.faq{ display: grid; grid-template-columns: .9fr 1.1fr; gap: 22px; align-items: start; }
.qa{ background: rgba(255,255,255,.72); border: 1px solid rgba(0,0,0,.07); border-radius: var(--radius-lg); padding: 14px 16px; box-shadow: var(--shadow-soft); }
.qa summary{ cursor: pointer; font-weight: 800; list-style: none; }
.qa summary::-webkit-details-marker{ display:none; }
.qa summary::after{ content:"+"; float:right; font-weight: 900; color: rgba(0,0,0,.55); }
.qa[open] summary::after{ content:"–"; }
.qa p{ margin: 12px 0 0; line-height: 1.7; }
/* ------------------------------ Footer -------------------------------- */
.footer{ padding: 56px 0 22px; border-top: 1px solid rgba(0,0,0,.06); background: rgba(255,255,255,.35); }
.footer__grid{ display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 18px; align-items: start; }
.brand--footer .brand__mark{ background: rgba(122,166,255,.14); border-color: rgba(122,166,255,.22); }
.footer__col{ display: grid; gap: 8px; }
.footer__col h4{ margin: 0 0 6px; }
.footer__col a{ color: #2a2c33; }
.footer__bottom{ margin-top: 18px; padding-top: 16px!important; border-top: 1px solid rgba(0,0,0,.06); display: flex; justify-content: space-between; gap: 14px; flex-wrap: wrap; }
.hero__media{ position: relative; display: grid; place-items: center; min-height: 520px; }
.blob{ width: min(520px, 92%); aspect-ratio: 1 / 1; border-radius: 42% 58% 52% 48% / 42% 44% 56% 58%; overflow: hidden; background: #eee; box-shadow: 0 30px 70px rgba(15, 23, 42, .12); }
.blob__img{ width: 100%; height: 100%; display: block; object-fit: cover; object-position: center; transform: scale(1.02); }
.float-card{ position: absolute; width: min(260px, 78%); padding: 14px 16px; border-radius: 14px; background: rgba(255,255,255,.92); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border: 1px solid rgba(15,23,42,.08); box-shadow: 0 18px 40px rgba(15,23,42,.10); display: grid; gap: 4px; }
.float-card strong{ font-size: 14px; line-height: 1.2; }
.float-card .muted{ font-size: 13px; opacity: .75; }
.float-card--top{ top: 14%; left: 2%; }
.float-card--bottom{ bottom: 14%; right: 2%; }
/* ------------------------------ Responsive -------------------------------- */
@media (max-width: 1100px){ .hero::before{ left:6%; top:192px; z-index:99; } .hero::after{ top:142px; } .hero{ padding-top:0; } .hero__grid{ grid-template-columns: 1fr; } .hero__media{ min-height: 380px; } .two-col{ grid-template-columns: 1fr; } .split{ grid-template-columns: 1fr; } .cards{ grid-template-columns: repeat(2, minmax(0, 1fr)); } .pricing{ grid-template-columns: 1fr; } .faq{ grid-template-columns: 1fr; } .header__grid{ grid-template-columns: 1fr auto; } .nav{ display:none; } .hero__media{ min-height: 420px; } .float-card--top{ top: 6%; left: 4%; } .float-card--bottom{ bottom: 6%; right: 4%; } .certs__grid{ grid-template-columns: 1fr; } .hero__copy{ order:2; } .price__value{ font-size: 1.2rem; font-weight: 900; } .footer__grid{ grid-template-columns: 1fr; } .footer__bottom{ display:grid; grid-template-columns: 1fr; } }
@media (max-width: 560px){ .btn{ font-size:12px; } .brand img{ height: 30px; } .container{ padding: 0 16px; } .cards{ grid-template-columns: 1fr; } }