:root{
  --navy:#14233c; --navy2:#1d3354; --gold:#d9a441; --gold2:#c18f2e; --cream:#faf5ea; --ink:#1f2937; --mute:#5b6677; --white:#fff;
  --r:18px; --shadow:0 10px 30px rgba(20,35,60,.12);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:76px}
body{margin:0;font-family:'Nunito',system-ui,sans-serif;color:var(--ink);background:#fff;line-height:1.65;font-size:17px}
img{max-width:100%}
h1,h2,h3{font-family:'Fraunces',Georgia,serif;color:var(--navy);line-height:1.15;margin:0 0 .5em}
h1{font-size:clamp(2.4rem,7vw,4.2rem)}
h2{font-size:clamp(1.8rem,4.5vw,2.6rem)}
h3{font-size:1.25rem}
h1 em{color:var(--gold2);font-style:normal}
a{color:inherit}
.wrap{max-width:1140px;margin:0 auto;padding:0 20px}
.narrow{max-width:820px}
.skip{position:absolute;left:-999px;background:#fff;padding:10px;z-index:100}
.skip:focus{left:10px;top:10px}

/* buttons */
.btn{display:inline-block;border:0;cursor:pointer;font:800 1rem 'Nunito',sans-serif;padding:14px 26px;border-radius:999px;text-decoration:none;transition:transform .15s,box-shadow .15s,background .15s;text-align:center}
.btn:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.btn:focus-visible,.chip:focus-visible,.step:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.btn-gold{background:var(--gold);color:var(--navy)}
.btn-gold:hover{background:var(--gold2)}
.btn-navy{background:var(--navy);color:#fff}
.btn-navy:hover{background:var(--navy2)}
.btn-ghost{background:transparent;border:2px solid var(--navy);color:var(--navy)}
.btn-sm{padding:10px 20px;font-size:.95rem}

/* nav */
.nav{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-bottom:1px solid #eee}
.nav-in{display:flex;align-items:center;justify-content:space-between;height:68px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--navy);font:700 1.25rem 'Fraunces',serif;line-height:1}
.logo svg{color:var(--gold)}
.logo small{display:block;font:700 .62rem 'Nunito',sans-serif;letter-spacing:.18em;text-transform:uppercase;color:var(--mute);margin-top:3px}
.menu{display:flex;align-items:center;gap:22px}
.menu a{text-decoration:none;font-weight:700;color:var(--navy);font-size:.95rem}
.menu a:not(.btn):hover{color:var(--gold2)}
.burger{display:none;background:none;border:0;width:44px;height:44px;cursor:pointer;padding:10px}
.burger span{display:block;height:3px;background:var(--navy);margin:5px 0;border-radius:3px;transition:.2s}
@media(max-width:900px){
  .burger{display:block}
  .menu{position:absolute;top:68px;left:0;right:0;background:#fff;flex-direction:column;align-items:stretch;gap:0;padding:8px 20px 20px;border-bottom:1px solid #eee;display:none;box-shadow:var(--shadow)}
  .menu.open{display:flex}
  .menu a{padding:12px 0;border-bottom:1px solid #f1f1f1}
  .menu .btn{margin-top:12px;border:0}
}

/* hero */
.hero{background:linear-gradient(180deg,var(--cream),#fff);padding:50px 0 30px}
.hero-in{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center}
.eyebrow{font-weight:800;letter-spacing:.16em;text-transform:uppercase;font-size:.78rem;color:var(--gold2);margin:0 0 12px}
.lead{font-size:1.15rem;color:var(--mute);max-width:560px}
.cta-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}
.photo-slot{background:linear-gradient(135deg,#e9eef6,#f6ecd5);border:2px dashed #c9d2e0;border-radius:var(--r);min-height:360px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--navy);text-align:center;gap:10px;padding:20px;font-weight:700}
.photo-slot svg{color:var(--gold)}
.photo-slot.tall{min-height:420px}
.photo-slot img{width:100%;height:100%;object-fit:cover;border-radius:var(--r)}
.trust{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:14px;padding:0;margin:36px 0 0}
.trust li{background:#fff;border-radius:var(--r);box-shadow:var(--shadow);padding:16px;text-align:center}
.trust strong{display:block;font:700 1.5rem 'Fraunces',serif;color:var(--navy)}
.trust span{font-size:.88rem;color:var(--mute)}
@media(max-width:800px){.hero-in{grid-template-columns:1fr}.hero-art{order:-1}.photo-slot{min-height:220px}.trust{grid-template-columns:repeat(2,1fr)}}

/* sections */
.sec{padding:80px 0}
.cream{background:var(--cream)}
.navy{background:var(--navy);color:#e9eef6}
.navy h2,.navy h3{color:#fff}
.sec-head{max-width:700px;margin:0 auto 40px;text-align:center}
.sec-head p{color:var(--mute)}
.sec-head.light p{color:#c5d0e2}

/* method */
.method{background:#fff;border-radius:var(--r);box-shadow:var(--shadow);padding:28px;max-width:860px;margin:0 auto 40px}
.steps{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;margin-bottom:24px}
.step{display:flex;align-items:center;gap:10px;background:#f3f5f9;border:2px solid transparent;border-radius:999px;padding:10px 20px 10px 10px;cursor:pointer;font:800 1rem 'Nunito',sans-serif;color:var(--navy);transition:.2s}
.step b{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--navy);color:#fff}
.step.active{background:var(--gold);border-color:var(--gold2)}
.step.active b{background:#fff;color:var(--navy)}
.arrow{color:var(--gold2);font-weight:800;font-size:1.3rem}
.step-panel{display:flex;gap:20px;align-items:flex-start;animation:fade .35s}
.step-icon{font-size:3rem;background:var(--cream);width:84px;height:84px;border-radius:50%;display:grid;place-items:center;flex:none}
.why{background:var(--cream);padding:12px 16px;border-radius:12px;font-size:.95rem}
@keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.why-grid article{background:#fff;border-radius:var(--r);padding:24px;box-shadow:var(--shadow);border-top:4px solid var(--gold)}
@media(max-width:800px){.why-grid{grid-template-columns:1fr}.step-panel{flex-direction:column}}

/* cards */
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.card{background:#fff;border:1px solid #eceff4;border-radius:var(--r);padding:26px;box-shadow:var(--shadow);display:flex;flex-direction:column;transition:transform .2s}
.card:hover{transform:translateY(-4px)}
.ico{font-size:2.2rem}
.for{color:var(--gold2);font-weight:800;font-size:.85rem;margin:0 0 10px}
.card ul{padding-left:18px;color:var(--mute);font-size:.95rem;flex:1}
.price{font:700 1.6rem 'Fraunces',serif;color:var(--navy);margin:12px 0}
.price small{font:600 .8rem 'Nunito',sans-serif;color:var(--mute)}
@media(max-width:1000px){.cards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.cards{grid-template-columns:1fr}}

/* quiz */
.quiz{background:#fff;color:var(--ink);border-radius:var(--r);padding:30px;box-shadow:0 20px 50px rgba(0,0,0,.3)}
.quiz h3{color:var(--navy)}
.progress{height:8px;background:#e9edf3;border-radius:8px;margin-bottom:22px;overflow:hidden}
#quizBar{height:100%;width:0;background:var(--gold);transition:width .3s}
.opts{display:grid;gap:10px;margin-top:14px}
.opt{background:#f5f7fb;border:2px solid #e3e8f0;border-radius:14px;padding:14px 18px;text-align:left;font:700 1rem 'Nunito',sans-serif;color:var(--navy);cursor:pointer;transition:.15s}
.opt:hover{border-color:var(--gold);background:#fff8e8}
.qnav{margin-top:16px}
.qnav button{background:none;border:0;color:var(--mute);cursor:pointer;font-weight:700;text-decoration:underline}
.result{text-align:center}
.result .big{font:700 1.8rem 'Fraunces',serif;color:var(--navy);margin:8px 0}
.result p{color:var(--mute)}

/* pricing */
.prices{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;align-items:stretch}
.price-card{background:#fff;border-radius:var(--r);padding:28px 22px;box-shadow:var(--shadow);text-align:center;display:flex;flex-direction:column;position:relative}
.price-card p{color:var(--mute);font-size:.95rem;flex:1}
.price-card .sub{color:var(--gold2);font-weight:800;margin:0 0 6px;flex:none}
.amt{font:700 2.8rem 'Fraunces',serif;color:var(--navy);line-height:1;margin:6px 0 12px}
.featured{border:3px solid var(--gold);transform:translateY(-8px)}
.badge{position:absolute;top:-14px;left:50%;transform:translateX(-50%);background:var(--gold);color:var(--navy);font-weight:800;font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;padding:5px 14px;border-radius:999px}
@media(max-width:1000px){.prices{grid-template-columns:repeat(2,1fr)}.featured{transform:none}}
@media(max-width:560px){.prices{grid-template-columns:1fr}}

/* timeline */
.tl{background:var(--cream);border-radius:var(--r);padding:28px}
#tlRange{width:100%;accent-color:var(--gold2);height:32px}
.tl-marks{display:flex;justify-content:space-between;font-weight:800;color:var(--navy);font-size:.9rem;margin-bottom:18px}
.tl-card{background:#fff;border-radius:14px;padding:20px 24px;box-shadow:var(--shadow);animation:fade .3s}

/* gallery */
.filters{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-bottom:24px}
.chip{background:#fff;border:2px solid #e2e7ef;border-radius:999px;padding:8px 20px;font:800 .95rem 'Nunito',sans-serif;color:var(--navy);cursor:pointer}
.chip.active{background:var(--navy);color:#fff;border-color:var(--navy)}
.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.tile{margin:0;border-radius:var(--r);overflow:hidden;background:#fff;box-shadow:var(--shadow);transition:.3s}
.tile.hide{display:none}
.tile img{width:100%;aspect-ratio:1;object-fit:cover;display:block}
.ph{aspect-ratio:1;display:grid;place-items:center;font-size:3rem;background:linear-gradient(135deg,#e9eef6,#f6ecd5)}
.tile figcaption{padding:10px 14px;font-size:.85rem;font-weight:700;color:var(--mute)}
@media(max-width:900px){.gallery{grid-template-columns:repeat(2,1fr)}}

.testi{margin:50px auto 0;max-width:720px;text-align:center;background:#fff;border-radius:var(--r);padding:32px;box-shadow:var(--shadow)}
.testi blockquote{margin:0;font:600 1.25rem/1.5 'Fraunces',serif;color:var(--navy);min-height:96px}
.testi p{color:var(--mute);font-weight:700}
.dots{display:flex;justify-content:center;gap:8px}
.dots button{width:12px;height:12px;border-radius:50%;border:0;background:#d5dbe6;cursor:pointer;padding:0}
.dots button.on{background:var(--gold)}

/* about */
.about{display:grid;grid-template-columns:.8fr 1.2fr;gap:50px;align-items:center}
@media(max-width:800px){.about{grid-template-columns:1fr}.photo-slot.tall{min-height:240px}}

/* faq */
.faq details{background:#fff;border-radius:14px;margin-bottom:12px;box-shadow:0 2px 10px rgba(20,35,60,.06);overflow:hidden}
.faq summary{padding:18px 22px;font-weight:800;color:var(--navy);cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:12px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:1.4rem;color:var(--gold2);line-height:1}
.faq details[open] summary::after{content:"–"}
.faq details p{margin:0;padding:0 22px 20px;color:var(--mute)}

/* booking */
.book{display:grid;grid-template-columns:.8fr 1.2fr;gap:40px;align-items:start}
.contact-list{list-style:none;padding:0}
.contact-list li{margin:10px 0}
.contact-list a{color:var(--gold);font-weight:800}
.form{background:#fff;color:var(--ink);border-radius:var(--r);padding:28px;box-shadow:0 20px 50px rgba(0,0,0,.3)}
.form label{display:block;font-weight:800;font-size:.9rem;color:var(--navy);margin-bottom:14px}
.form input,.form select,.form textarea{display:block;width:100%;margin-top:6px;padding:12px 14px;border:2px solid #dfe5ee;border-radius:12px;font:600 1rem 'Nunito',sans-serif;background:#fbfcfe}
.form input.err,.form textarea.err{border-color:#d64545}
.row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.hp{position:absolute!important;left:-9999px}
.form .btn{width:100%}
.form-msg{margin:12px 0 0;font-weight:800;text-align:center}
.form-msg.ok{color:#1f7a45}.form-msg.bad{color:#c0392b}
@media(max-width:800px){.book{grid-template-columns:1fr}.row{grid-template-columns:1fr;gap:0}}

/* footer */
.foot{background:#0d1829;color:#b8c3d6;padding:34px 0 90px}
.foot-in{display:grid;gap:10px;text-align:center}
.foot a{text-decoration:none}.foot a:hover{color:var(--gold)}
.foot strong{color:#fff;font-family:'Fraunces',serif;font-size:1.2rem}
.foot p{margin:4px 0}.copy{font-size:.85rem}
.sticky-call{position:fixed;right:16px;bottom:16px;background:var(--gold);color:var(--navy);font-weight:800;padding:13px 22px;border-radius:999px;box-shadow:0 8px 24px rgba(0,0,0,.3);text-decoration:none;z-index:40}
@media(min-width:901px){.sticky-call{display:none}}

/* reveal */
.rv{opacity:0;transform:translateY(24px);transition:opacity .7s,transform .7s}
.rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.rv{opacity:1;transform:none}html{scroll-behavior:auto}}
