/* Page sections, top to bottom. */
/* hero */
.hero{padding:clamp(24px,5vw,64px) 0 clamp(72px,9vw,120px);position:relative}
.hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(32px,6vw,80px);align-items:center}
.hero h1 em{font-weight:300}
.hero .lede{margin:1.4rem 0 2rem}
.cta-row{display:flex;flex-wrap:wrap;gap:12px}
.cta-note{margin:.9rem 0 0;font-size:.9rem;color:var(--muted)}
.cta-alt{margin:.35rem 0 0;font-size:.9rem;color:var(--muted)}
.cta-alt a,.contact-alt a,.faq .answer a,.faq-head .lede a{color:var(--heading);font-weight:600;text-underline-offset:3px}
.trust{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:2.2rem;padding:0;list-style:none;font-size:.92rem;color:var(--muted)}
.trust li{display:flex;align-items:center;gap:.5em}
.trust svg{width:18px;height:18px;color:var(--accent);flex:none}
.hero-art{position:relative;max-width:520px;justify-self:end;width:100%}
.arch{border-radius:999px 999px var(--radius) var(--radius);overflow:hidden;aspect-ratio:4/5;background:var(--pink-soft);box-shadow:var(--shadow)}
.arch img{width:100%;height:100%;object-fit:cover;object-position:50% 40%}
.float-card{position:absolute;background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:16px 18px}
.float-quote{left:-40px;bottom:48px;max-width:250px;font-family:var(--serif);font-size:1.02rem;line-height:1.4;color:var(--heading)}
.float-quote .stars{display:flex;gap:2px;margin-bottom:6px;color:var(--accent)}
.float-quote .stars svg{width:14px;height:14px}
.float-badge{right:-18px;top:44px;display:flex;align-items:center;gap:10px;font-size:.85rem;font-weight:600;color:var(--heading)}
.float-badge .dot{width:36px;height:36px;border-radius:50%;background:var(--pink-soft);display:grid;place-items:center;color:var(--pink-icon)}
.float-badge .dot svg{width:18px;height:18px}
.moon{position:absolute;left:-12px;top:-8px;width:88px;color:var(--gold-light);opacity:.9;animation:drift 8s ease-in-out infinite}
@keyframes drift{50%{transform:translateY(-10px) rotate(-4deg)}}

/* familiar */
.familiar{background:var(--section)}
.familiar .wrap{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(32px,6vw,88px);align-items:center}
.familiar-img{border-radius:var(--radius);overflow:hidden;aspect-ratio:4/5;box-shadow:var(--shadow)}
.familiar-img img{width:100%;height:100%;object-fit:cover}
.familiar-img picture{display:block;height:100%}
.familiar-img .only-narrow{display:none}
.checks{list-style:none;padding:0;margin:2rem 0 2.2rem;display:grid;gap:12px}
.checks li{display:flex;gap:14px;align-items:flex-start;background:var(--card-alt);border:1px solid var(--line);border-radius:16px;padding:16px 18px;transition:border-color .2s ease,transform .2s ease}
.checks li:hover{border-color:var(--line-strong);transform:translateX(4px)}
.checks .tick{flex:none;width:26px;height:26px;border-radius:50%;background:var(--pink-soft);color:var(--pink-icon);display:grid;place-items:center;margin-top:1px}
.checks .tick svg{width:14px;height:14px}
.kicker{font-family:var(--serif);font-size:1.35rem;color:var(--heading);font-style:italic;margin-bottom:1.2rem}

/* about */
.about .wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(32px,6vw,88px);align-items:center}
.about-photo{position:relative}
.about-photo .frame{border-radius:var(--radius);overflow:hidden;aspect-ratio:3/4;box-shadow:var(--shadow)}
.about-photo img{width:100%;height:100%;object-fit:cover}
.about-photo .tag{position:absolute;right:-16px;bottom:32px;background:var(--deep);border:1px solid var(--deep-border);color:#fff;border-radius:16px;padding:16px 20px;font-size:.85rem;line-height:1.35;box-shadow:var(--shadow)}
.about-photo .tag strong{display:block;font-family:var(--serif);font-weight:400;font-size:1.5rem;color:var(--gold-light)}
.creds{display:flex;flex-wrap:wrap;gap:8px;margin-top:1.6rem;padding:0;list-style:none}
.creds li{font-size:.85rem;padding:.5em 1em;border-radius:999px;background:var(--accent-soft);color:var(--accent-soft-text)}
.signature{font-family:var(--serif);font-style:italic;font-size:1.6rem;color:var(--accent);margin-top:1.4rem}

/* approach (always a deep night-sky band) */
.approach{background:var(--deep);color:#E7ECF3;position:relative;overflow:hidden;border-block:1px solid var(--deep-border)}
.approach h2,.approach h3{color:var(--deep-heading)}
.approach .eyebrow{color:var(--gold-light)}
.approach .lede{color:var(--deep-text)}
.approach-head{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,72px);align-items:end;margin-bottom:clamp(40px,6vw,64px)}
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.pillar{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius);padding:32px 28px;transition:background .25s ease,transform .25s ease}
.pillar:hover{background:rgba(255,255,255,.08);transform:translateY(-4px)}
.pillar .icon{width:52px;height:52px;border-radius:14px;background:rgba(212,185,143,.14);color:var(--gold-light);display:grid;place-items:center;margin-bottom:22px}
.pillar .icon svg{width:24px;height:24px}
.pillar h3{margin-bottom:.6rem}
.pillar p{margin:0;color:var(--deep-text);font-size:.98rem}
.stars-bg{position:absolute;inset:0;pointer-events:none;opacity:.5}
.stars-bg i{position:absolute;width:3px;height:3px;border-radius:50%;background:var(--gold-light);animation:twinkle 4s ease-in-out infinite}
@keyframes twinkle{50%{opacity:.15}}

/* steps */
.steps{list-style:none;padding:0;margin:clamp(40px,6vw,64px) 0 0;display:grid;grid-template-columns:repeat(4,1fr);gap:20px;counter-reset:step}
.steps li{position:relative;padding-top:64px}
.steps li::before{counter-increment:step;content:"0" counter(step);position:absolute;top:0;left:0;font-family:var(--serif);font-size:2.6rem;line-height:1;color:var(--pink)}
.steps li::after{content:"";position:absolute;top:22px;left:72px;right:0;height:1px;background:var(--line)}
.steps li:last-child::after{display:none}
.steps h3{font-size:1.2rem;margin-bottom:.5rem}
.steps p{font-size:.96rem;color:var(--muted);margin:0}

/* offers */
.offers{background:var(--section)}
.center{text-align:center}
.center .lede{margin-left:auto;margin-right:auto}
.center .eyebrow::after{content:"";width:28px;height:1px;background:currentColor}
.offer-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:clamp(40px,6vw,64px)}
.offer{background:var(--card-alt);border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);display:flex;flex-direction:column;transition:transform .3s ease,box-shadow .3s ease}
.offer:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.offer .media{aspect-ratio:4/3;overflow:hidden;background:var(--pink-soft)}
.offer .media img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.offer:hover .media img{transform:scale(1.04)}
.offer .media.contain{background:#fff;padding:12px}
.offer .media.contain img{object-fit:contain}
.offer .body{padding:26px 26px 30px;display:flex;flex-direction:column;flex:1}
.offer h3{margin-bottom:.5rem}
.offer .offer-meta{flex:none;margin:-.2rem 0 .6rem;font-size:.8rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--gold)}
.offer p{color:var(--muted);font-size:.98rem;flex:1}
.link-arrow{display:inline-flex;align-items:center;gap:.4em;font-weight:600;color:var(--heading);text-decoration:none;font-size:.95rem;background:none;border:0;padding:0;cursor:pointer;font-family:inherit}
.link-arrow svg{width:16px;height:16px;transition:transform .2s ease}
.link-arrow:hover svg{transform:translateX(4px)}

/* packages */
.packages{background:var(--packages-bg)}
.pkg-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:clamp(40px,6vw,64px);align-items:stretch}
.pkg{background:var(--card);border-radius:26px;border:1px solid var(--line);overflow:hidden;display:flex;flex-direction:column;position:relative;transition:transform .3s ease,box-shadow .3s ease}
.pkg:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.pkg .media{aspect-ratio:16/10;overflow:hidden}
.pkg .media img{width:100%;height:100%;object-fit:cover}
.pkg .body{padding:28px 28px 30px;display:flex;flex-direction:column;flex:1}
.pkg .name{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.pkg .duration{font-size:.85rem;color:var(--muted)}
.pkg .price{font-family:var(--serif);font-size:2.6rem;color:var(--heading);margin:.6rem 0 .1rem;line-height:1}
.pkg .summary{color:var(--muted);font-size:.95rem;margin:.6rem 0 1.2rem}
.pkg ul{list-style:none;padding:0;margin:0 0 1.8rem;display:grid;gap:10px;flex:1}
.pkg li{display:flex;gap:10px;font-size:.96rem;line-height:1.5}
.pkg li svg{flex:none;width:18px;height:18px;color:var(--accent);margin-top:3px}
.pkg .btn{width:100%}
.pkg.featured{border:1.5px solid var(--accent);box-shadow:var(--featured-shadow)}
.pkg.featured .btn{background:var(--gold-btn-bg);color:var(--gold-btn-fg)}
.pkg.featured .btn:hover{background:var(--gold-btn-hover)}
.ribbon{position:absolute;top:16px;right:16px;background:var(--navy);color:#fff;font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:.55em 1em;border-radius:999px;display:flex;align-items:center;gap:.4em}
.ribbon svg{width:12px;height:12px;color:var(--gold-light)}
.unsure{margin-top:48px;background:var(--unsure-bg);border:1px solid var(--unsure-border);color:#fff;border-radius:26px;padding:clamp(28px,4vw,44px)}
.unsure-head{margin-bottom:24px}
.unsure-options{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.unsure-option{background:var(--unsure-option-bg);border:1px solid var(--unsure-option-border);border-radius:18px;padding:24px;display:flex;flex-direction:column;gap:.55rem}
.unsure-option h4{font:400 1.45rem/1.15 var(--serif);color:var(--unsure-heading);margin:0}
.unsure .unsure-meta{font-size:.78rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--unsure-meta)}
.unsure-option .btn{margin-top:auto;align-self:flex-start}
.unsure h3{color:var(--unsure-heading);font-size:1.7rem;margin-bottom:.3rem}
.unsure p{margin:0;color:var(--unsure-text)}
.unsure .btn{background:var(--unsure-btn-bg);color:var(--unsure-btn-fg)}
.unsure .btn-outline-light{background:transparent;color:var(--unsure-heading);border-color:var(--unsure-option-border)}
.unsure .btn-outline-light:hover{border-color:var(--unsure-heading);transform:translateY(-2px)}
.contact-alt{margin:1rem 0 0;color:var(--muted);font-size:.95rem}

/* testimonials */
.quotes{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:clamp(40px,6vw,64px)}
.quote{background:var(--card);border-radius:var(--radius);padding:30px 26px 26px;border:1px solid var(--line);position:relative;display:flex;flex-direction:column}
.quote .mark{font-family:var(--serif);font-size:5rem;line-height:.6;color:var(--pink);height:36px}
.quote blockquote{margin:0;font-family:var(--serif);font-size:1.16rem;line-height:1.45;color:var(--heading);flex:1}
.quote .stars{display:flex;gap:3px;color:var(--accent);margin-top:22px}
.quote .stars svg{width:16px;height:16px}
.quote figcaption{margin-top:10px;font-size:.88rem;color:var(--muted)}
.quote .story-open{margin-top:16px;align-self:flex-start;font-size:.9rem}
/* faq */
.faq{background:var(--section)}
.faq .wrap{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(32px,6vw,88px);align-items:start}
.faq-head{position:sticky;top:120px}
.faq-list{display:grid;gap:12px}
details{background:var(--card-alt);border:1px solid var(--line);border-radius:18px;transition:border-color .2s ease,background .2s ease}
details[open]{background:var(--card);border-color:var(--line-strong)}
summary{list-style:none;cursor:pointer;padding:22px 24px;display:flex;justify-content:space-between;align-items:center;gap:16px;font-family:var(--serif);font-size:1.2rem;color:var(--heading)}
summary::-webkit-details-marker{display:none}
summary .plus{flex:none;width:32px;height:32px;border-radius:50%;background:var(--pink-soft);position:relative;transition:transform .3s ease,background .3s ease}
summary .plus::before,summary .plus::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:1.5px;background:var(--heading);transform:translate(-50%,-50%)}
summary .plus::after{transform:translate(-50%,-50%) rotate(90deg);transition:transform .3s ease}
details[open] summary .plus{background:var(--accent-soft)}
details[open] summary .plus::after{transform:translate(-50%,-50%) rotate(0)}
details .answer{padding:0 24px 22px;color:var(--muted)}
details .answer p{margin:0}

/* contact */
.contact .wrap{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,80px);align-items:start}
.contact-list{list-style:none;padding:0;margin:2rem 0;display:grid;gap:14px}
.contact-list a{display:flex;align-items:center;gap:14px;text-decoration:none}
.contact-text{display:grid;gap:2px;min-width:0}
.contact-text strong{font-weight:600;font-size:1.02rem;color:var(--heading)}
.contact-text small{font-size:.86rem;color:var(--muted);overflow-wrap:anywhere}
.contact-list .ic{width:46px;height:46px;border-radius:50%;background:var(--card);border:1px solid var(--line);display:grid;place-items:center;color:var(--accent);flex:none}
.contact-list .ic svg{width:20px;height:20px}
.contact-list a:hover .ic{border-color:var(--accent)}
.form{background:var(--card);border-radius:26px;padding:clamp(24px,4vw,40px);border:1px solid var(--line);box-shadow:var(--shadow)}
.form h3{margin-bottom:.4rem}
.form .hint{color:var(--muted);font-size:.93rem;margin-bottom:1.4rem}
.field{display:grid;gap:6px;margin-bottom:16px}
.field label,.field legend{font-size:.85rem;font-weight:600;color:var(--heading)}
fieldset.field{border:0;padding:0;margin:0 0 16px;min-width:0}
.field legend{padding:0;margin-bottom:6px}
.field input,.field textarea,.field select{font:inherit;font-size:1rem;color:var(--text);background:var(--field);border:1px solid var(--line);border-radius:12px;padding:.85em 1em;width:100%;transition:border-color .2s ease,background .2s ease}
.field input::placeholder,.field textarea::placeholder{color:var(--muted);opacity:.8}
.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--accent);background-color:var(--card)}
.field select{appearance:none;-webkit-appearance:none;padding-right:2.4em;background-image:var(--chevron);background-repeat:no-repeat;background-position:right .95em center;background-size:12px 8px;cursor:pointer}
.field textarea{min-height:120px;resize:vertical}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.age-pick{display:grid;grid-template-columns:1fr 1.25fr;gap:8px}
.age-pick select{padding-left:.8em;padding-right:2.1em;background-position:right .75em center}
.form .btn{width:100%;margin-top:6px}
.form-note{font-size:.85rem;color:var(--muted);margin-top:12px;text-align:center}

/* footer (always deep) */
.footer{background:var(--deep);border-top:1px solid var(--deep-border);color:#B9C4D4;padding:72px 0 32px;font-size:.95rem}
.footer .top{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px;padding-bottom:48px;border-bottom:1px solid rgba(255,255,255,.1)}
.footer .footer-logo img{width:170px}
.footer h4{font:600 .78rem/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--gold-light);margin:0 0 18px}
.footer ul{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.footer a{text-decoration:none}
.footer a:hover{color:#fff}
.socials{display:flex;gap:10px;margin-top:22px}
.socials a{width:42px;height:42px;border-radius:50%;border:1px solid rgba(255,255,255,.18);display:grid;place-items:center;transition:background .2s ease,border-color .2s ease}
.socials a:hover{background:rgba(255,255,255,.08);border-color:var(--gold-light)}
.socials svg{width:18px;height:18px}
.footer .bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;padding-top:28px;font-size:.85rem}
