/* ==========================================================
   DETROIT ENERGY HEALING — celestial, light, alive
   ========================================================== */
:root {
  --night: #0d2018;
  --forest: #12372a;
  --forest-2: #1b4a37;
  --teal: #1e5d78;
  --sky: #bcd7e6;
  --olive: #8b7d26;
  --olive-deep: #6f6318;
  --cream: #f7ecd2;
  --cream-2: #fdf6e5;
  --pink: #ec66a6;
  --pink-soft: #f6b9d5;
  --orange: #e04b1d;
  --wine: #8a2b34;
  --yellow: #f2d24b;
  --ink: #1c2a1f;
  --serif: "Fraunces", Georgia, serif;
  --body: "Jost", sans-serif;
  --script: "Cormorant Garamond", Georgia, serif;
}
* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { font-family:var(--body); color:var(--ink); background:var(--cream); line-height:1.65; font-size:17px; overflow-x:hidden; }
img { max-width:100%; display:block; }
a { color:inherit; }

/* ---------- motion ---------- */
.reveal { opacity:0; transform:translateY(36px); transition:opacity .9s ease, transform .9s cubic-bezier(.22,.9,.35,1); }
.reveal.visible { opacity:1; transform:none; }
.reveal-left { opacity:0; transform:translateX(-46px); transition:opacity 1s ease, transform 1s cubic-bezier(.22,.9,.35,1); }
.reveal-right { opacity:0; transform:translateX(46px); transition:opacity 1s ease, transform 1s cubic-bezier(.22,.9,.35,1); }
.reveal-left.visible, .reveal-right.visible { opacity:1; transform:none; }
.delay-1 { transition-delay:.15s; } .delay-2 { transition-delay:.3s; } .delay-3 { transition-delay:.45s; }
@keyframes floaty { 0%,100% { transform:translateY(0) rotate(var(--r,0deg)); } 50% { transform:translateY(-16px) rotate(var(--r,0deg)); } }
.floaty { animation:floaty 7s ease-in-out infinite; }
@keyframes drift { 0% { transform:translateX(-30vw); } 100% { transform:translateX(115vw); } }
.drift { animation:drift 80s linear infinite; }
@keyframes spin-slow { to { transform:rotate(360deg); } }
.spin-slow { animation:spin-slow 70s linear infinite; }
@keyframes pulse { 0%,100% { opacity:.55; transform:scale(1); } 50% { opacity:1; transform:scale(1.1); } }
.pulse { animation:pulse 4.5s ease-in-out infinite; }
@keyframes twinkle { 0%,100% { opacity:.15; transform:scale(.7); } 50% { opacity:1; transform:scale(1.15); } }
.star-t { position:absolute; background:var(--yellow); border-radius:50%; animation:twinkle var(--d,3s) ease-in-out infinite; animation-delay:var(--dl,0s); box-shadow:0 0 6px 1px rgba(242,210,75,.8); }
.star-t.pink { background:var(--pink-soft); box-shadow:0 0 6px 1px rgba(246,185,213,.8); }
@keyframes shimmer { 0% { background-position:0% 50%; } 100% { background-position:200% 50%; } }
.shimmer-text { background:linear-gradient(90deg, var(--cream) 0%, var(--yellow) 25%, var(--pink-soft) 50%, var(--cream) 75%, var(--cream) 100%); background-size:200% auto; -webkit-background-clip:text; background-clip:text; color:transparent; animation:shimmer 6s linear infinite; }
@media (prefers-reduced-motion: reduce) {
  .reveal,.reveal-left,.reveal-right { opacity:1; transform:none; transition:none; }
  .floaty,.drift,.spin-slow,.pulse,.star-t,.ribbon-track { animation:none !important; }
}

/* ---------- recolorable art elements (her PNG/SVG shapes) ---------- */
.el { display:inline-block; -webkit-mask:var(--m) center/contain no-repeat; mask:var(--m) center/contain no-repeat; background:var(--forest); }
.el-gold { background:var(--olive); }
.el-cream { background:var(--cream); }
.el-pink { background:var(--pink); }
.el-orange { background:var(--orange); }
.el-teal { background:var(--teal); }
.el-yellow { background:var(--yellow); }

/* ---------- header ---------- */
.site-header { background:rgba(13,32,24,.85); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); border-bottom:1px solid rgba(242,210,75,.25); position:sticky; top:0; z-index:90; }
.nav-wrap { max-width:1240px; margin:0 auto; padding:12px 24px; display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.brand { display:flex; align-items:center; gap:12px; text-decoration:none; }
.brand .brand-mark { width:40px; height:40px; --m:url(sun_13.png); background:var(--yellow); }
.brand-name { font-family:var(--serif); font-weight:600; font-size:1.05rem; letter-spacing:.08em; text-transform:uppercase; color:var(--cream); line-height:1.2; }
.brand-name span { color:var(--yellow); }
.nav-links { display:flex; align-items:center; gap:24px; list-style:none; }
.nav-links a { text-decoration:none; font-size:.78rem; letter-spacing:.2em; text-transform:uppercase; color:var(--cream); padding-bottom:3px; border-bottom:2px solid transparent; transition:all .25s; }
.nav-links a:hover, .nav-links a.active { border-color:var(--pink); color:var(--pink-soft); }
.nav-cta { background:var(--orange); color:var(--cream) !important; padding:10px 22px !important; border-radius:999px; border:none !important; font-weight:500; box-shadow:0 0 18px rgba(224,75,29,.45); transition:all .25s !important; }
.nav-cta:hover { background:var(--pink); transform:translateY(-1px); }

/* ---------- buttons ---------- */
.btn { display:inline-block; text-decoration:none; font-size:.85rem; letter-spacing:.18em; text-transform:uppercase; padding:16px 36px; border-radius:999px; transition:all .3s; }
.btn-solid { background:var(--pink); color:var(--night); font-weight:600; box-shadow:0 6px 24px rgba(236,102,166,.45); }
.btn-solid:hover { background:var(--yellow); transform:translateY(-3px); }
.btn-line { border:1.5px solid var(--cream); color:var(--cream); }
.btn-line:hover { background:var(--cream); color:var(--night); transform:translateY(-3px); }
.btn-dark { background:var(--forest); color:var(--cream); }
.btn-dark:hover { background:var(--teal); transform:translateY(-3px); }
.btn-orange { background:var(--orange); color:var(--cream-2); font-weight:600; }
.btn-orange:hover { background:var(--wine); transform:translateY(-3px); }

/* ---------- hero ---------- */
.hero { position:relative; min-height:88vh; display:flex; align-items:center; background:linear-gradient(175deg, #0f2b3c 0%, #17435a 34%, #1b4a37 78%, #12372a 100%); color:var(--cream); overflow:hidden; padding:80px 24px 110px; }
.starfield { position:absolute; inset:0; pointer-events:none; z-index:2; }
.hero .cloud-l { position:absolute; pointer-events:none; z-index:3; opacity:.85; }
.hero-inner { position:relative; z-index:5; max-width:1240px; margin:0 auto; width:100%; display:grid; grid-template-columns:1.1fr .9fr; gap:40px; align-items:center; }
.hero-kicker { font-size:.8rem; letter-spacing:.4em; text-transform:uppercase; color:var(--yellow); margin-bottom:24px; display:flex; align-items:center; gap:14px; }
.hero-kicker::before { content:""; width:46px; height:1.5px; background:var(--yellow); }
.hero h1 { font-family:var(--serif); font-weight:500; font-size:clamp(2.7rem, 5.4vw, 4.8rem); line-height:1.05; margin-bottom:14px; }
.hero h1 em { font-family:var(--script); font-style:italic; font-weight:500; }
.hero-sub { font-size:1.08rem; letter-spacing:.03em; max-width:540px; margin:22px 0 40px; color:rgba(247,236,210,.87); }
.hero-actions { display:flex; gap:18px; flex-wrap:wrap; }
.hero-art { position:relative; z-index:4; display:flex; justify-content:center; }
.hero-art .figure { width:100%; max-width:480px; filter:drop-shadow(0 30px 60px rgba(0,0,0,.45)); position:relative; z-index:2; }
.hero-art .halo { position:absolute; top:6%; left:50%; transform:translateX(-50%); width:78%; aspect-ratio:1; z-index:1; --m:url(sun_13.png); background:rgba(242,210,75,.55); }
.scroll-cue { position:absolute; bottom:26px; left:50%; transform:translateX(-50%); z-index:6; color:rgba(247,236,210,.7); font-size:.72rem; letter-spacing:.3em; text-transform:uppercase; text-align:center; }
.scroll-cue span { display:block; width:1.5px; height:44px; background:linear-gradient(180deg, var(--yellow), transparent); margin:10px auto 0; animation:pulse 2.2s ease-in-out infinite; }

/* ---------- ribbon ---------- */
.ribbon { background:var(--olive); color:var(--cream-2); overflow:hidden; padding:15px 0; border-top:1px solid rgba(247,236,210,.25); border-bottom:1px solid rgba(247,236,210,.25); }
.ribbon-track { display:flex; gap:48px; white-space:nowrap; width:max-content; animation:ribbon 30s linear infinite; font-family:var(--serif); font-size:1rem; letter-spacing:.26em; text-transform:uppercase; }
@keyframes ribbon { to { transform:translateX(-50%); } }
.ribbon-track .dot { color:var(--yellow); }

/* ---------- sections ---------- */
.section { padding:104px 24px; position:relative; overflow:hidden; }
.wrap { max-width:1160px; margin:0 auto; position:relative; z-index:3; }
.section-kicker { font-family:var(--script); font-style:italic; font-size:1.7rem; color:var(--orange); text-align:center; margin-bottom:8px; }
.section-title { font-family:var(--serif); font-weight:500; font-size:clamp(2rem, 4.4vw, 3.2rem); text-align:center; color:var(--forest); line-height:1.12; margin-bottom:18px; }
.section-intro { max-width:700px; margin:0 auto 54px; text-align:center; color:#3c4a3f; }
.deco { position:absolute; pointer-events:none; z-index:1; }

/* ---------- about ---------- */
.about-grid { display:grid; grid-template-columns:1fr 1.15fr; gap:70px; align-items:center; }
.portrait-frame { position:relative; padding:16px; background:var(--cream-2); border:2px solid var(--olive); border-radius:240px 240px 20px 20px; box-shadow:14px 14px 0 var(--pink-soft), 0 24px 60px rgba(18,55,42,.15); transition:transform .5s ease; }
.portrait-frame:hover { transform:translateY(-6px) rotate(-.5deg); }
.portrait-frame img { border-radius:224px 224px 8px 8px; aspect-ratio:4/5; object-fit:cover; width:100%; }
.portrait-frame .corner-el { position:absolute; width:64px; height:64px; }
.about-copy h2 { font-family:var(--serif); font-weight:500; font-size:clamp(1.8rem,3.4vw,2.6rem); color:var(--forest); line-height:1.14; margin-bottom:10px; }
.about-copy .script-line { font-family:var(--script); font-style:italic; font-size:1.6rem; color:var(--orange); margin-bottom:24px; }
.about-copy p { margin-bottom:18px; color:#33402f; }

/* ---------- session cards ---------- */
.session-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:30px; align-items:stretch; }
.session-card { border-radius:22px; padding:42px 34px; color:var(--cream-2); display:flex; flex-direction:column; position:relative; overflow:hidden; transition:transform .4s ease, box-shadow .4s ease; }
.session-card::after { content:""; position:absolute; inset:0; background:radial-gradient(120% 60% at 50% -10%, rgba(242,210,75,.16), transparent 60%); pointer-events:none; }
.session-card:hover { transform:translateY(-10px); box-shadow:0 30px 60px rgba(13,32,24,.35); }
.session-card.teal { background:linear-gradient(160deg, var(--teal), #143c4e); }
.session-card.wine { background:linear-gradient(160deg, var(--wine), #571b26); }
.session-card.forest { background:linear-gradient(160deg, var(--forest-2), var(--night)); }
.session-card.olive { background:linear-gradient(160deg, var(--olive), #3f3a10); }
.session-card.ember { background:linear-gradient(160deg, var(--orange), #6b1f14); }
.session-card .sigil { width:54px; height:54px; margin-bottom:20px; }
.session-card h3 { font-family:var(--serif); font-weight:600; font-size:1.55rem; line-height:1.15; margin-bottom:6px; }
.session-card h3 a { text-decoration:none; }
.session-card .sub { font-family:var(--script); font-style:italic; font-size:1.12rem; color:var(--pink-soft); margin-bottom:14px; }
.session-card .price { font-family:var(--serif); font-size:1.35rem; color:var(--yellow); margin-bottom:16px; }
.session-card p { font-size:.95rem; margin-bottom:16px; color:rgba(253,246,229,.92); }
.session-card ul { list-style:none; margin:0 0 24px; font-size:.93rem; }
.session-card ul li { padding-left:26px; position:relative; margin-bottom:8px; }
.session-card ul li::before { content:"\2726"; position:absolute; left:0; color:var(--yellow); }
.session-card .card-actions { margin-top:auto; display:flex; flex-direction:column; gap:12px; text-align:center; }
.session-card .learn-link { color:var(--pink-soft); font-size:.82rem; letter-spacing:.18em; text-transform:uppercase; text-decoration:none; }
.session-card .learn-link:hover { color:var(--yellow); }
.mini-label { font-size:.82rem; letter-spacing:.15em; text-transform:uppercase; color:var(--yellow); margin-bottom:8px; }

/* ---------- additional services (not pathways) ---------- */
.addons { margin-top:80px; }
.addons-head { text-align:center; max-width:720px; margin:0 auto 34px; }
.addons-rule { display:flex; align-items:center; gap:18px; max-width:560px; margin:0 auto 26px; color:var(--olive-deep); }
.addons-rule::before, .addons-rule::after { content:""; flex:1; height:1px; background:rgba(111,99,24,.3); }
.addons-rule span { font-size:.78rem; letter-spacing:.24em; text-transform:uppercase; white-space:nowrap; }
.addons-head h3 { font-family:var(--serif); font-weight:500; font-size:clamp(1.5rem,2.6vw,2rem); color:var(--forest); margin-bottom:10px; }
.addons-head p { font-size:.98rem; color:#5a6355; }
.addon-list { display:grid; gap:20px; max-width:900px; margin:0 auto; }
.addon-row { display:grid; grid-template-columns:56px 1fr auto; gap:22px; align-items:center; background:var(--cream-2); border:1px solid rgba(111,99,24,.24); border-radius:18px; padding:26px 30px; transition:transform .35s ease, box-shadow .35s ease, border-color .35s ease; }
.addon-row:hover { transform:translateY(-4px); box-shadow:0 16px 34px rgba(18,55,42,.12); border-color:rgba(224,75,29,.4); }
.addon-row .addon-mark { width:44px; height:44px; }
.addon-row h4 { font-family:var(--serif); font-weight:600; font-size:1.25rem; color:var(--forest); margin-bottom:2px; }
.addon-row h4 a { text-decoration:none; }
.addon-row h4 a:hover { color:var(--orange); }
.addon-row .addon-price { font-family:var(--serif); font-size:1rem; color:var(--olive-deep); margin-bottom:8px; }
.addon-row p { font-size:.95rem; color:#33402f; margin:0; }
.addon-row .addon-actions { display:flex; flex-direction:column; gap:10px; text-align:center; min-width:190px; }
.addon-row .learn-link { color:var(--olive-deep); font-size:.76rem; letter-spacing:.18em; text-transform:uppercase; text-decoration:none; }
.addon-row .learn-link:hover { color:var(--orange); }
@media (max-width:820px) {
  .addon-row { grid-template-columns:44px 1fr; text-align:left; }
  .addon-row .addon-actions { grid-column:1 / -1; min-width:0; }
}

/* ---------- session detail pages ---------- */
.detail-hero { position:relative; background:linear-gradient(170deg, #17435a 0%, #1b4a37 70%, #12372a 100%); color:var(--cream); padding:100px 24px 90px; overflow:hidden; text-align:center; }
.detail-hero .wrap { max-width:860px; }
.detail-hero h1 { font-family:var(--serif); font-weight:500; font-size:clamp(2.4rem,5vw,4rem); line-height:1.08; margin-bottom:10px; }
.detail-hero .sub { font-family:var(--script); font-style:italic; font-size:1.5rem; color:var(--pink-soft); margin-bottom:14px; }
.detail-hero .price { font-family:var(--serif); font-size:1.5rem; color:var(--yellow); margin-bottom:26px; }
.detail-lede { font-size:1.1rem; color:rgba(247,236,210,.9); max-width:720px; margin:0 auto 36px; }
.two-col { display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:start; }
.check-list { list-style:none; }
.check-list li { padding:12px 0 12px 40px; position:relative; border-bottom:1px solid rgba(111,99,24,.25); }
.check-list li::before { content:"\2726"; position:absolute; left:8px; top:12px; color:var(--orange); font-size:1.1rem; }

/* ---------- rate table (house & space clearing) ---------- */
.rate-table { width:100%; border-collapse:collapse; background:var(--cream-2); border-radius:18px; overflow:hidden; box-shadow:0 10px 30px rgba(18,55,42,.1); margin:0 auto; max-width:760px; }
.rate-table caption { font-family:var(--script); font-style:italic; font-size:1.15rem; color:#3d4a3a; padding-bottom:14px; caption-side:top; }
.rate-table th { background:var(--forest); color:var(--cream); font-family:var(--body); font-weight:500; font-size:.82rem; letter-spacing:.16em; text-transform:uppercase; padding:16px 18px; text-align:left; }
.rate-table td { padding:16px 18px; border-bottom:1px solid rgba(111,99,24,.2); color:#33402f; font-size:.98rem; }
.rate-table tr:last-child td { border-bottom:none; }
.rate-table td:last-child { font-family:var(--serif); color:var(--olive-deep); white-space:nowrap; }
.rate-note { text-align:center; max-width:760px; margin:20px auto 0; font-size:.92rem; color:#5a6355; }

/* ---------- numbered process steps ---------- */
.step-list { list-style:none; counter-reset:step; max-width:820px; margin:0 auto; }
.step-list li { counter-increment:step; position:relative; padding:18px 0 18px 66px; border-bottom:1px solid rgba(111,99,24,.22); color:#33402f; }
.step-list li:last-child { border-bottom:none; }
.step-list li::before { content:counter(step); position:absolute; left:0; top:16px; width:42px; height:42px; border-radius:50%; background:var(--forest); color:var(--yellow); font-family:var(--serif); font-size:1.1rem; display:flex; align-items:center; justify-content:center; }
.step-list li strong { display:block; font-family:var(--serif); font-size:1.12rem; color:var(--forest); margin-bottom:4px; }
@media (max-width:640px) {
  .rate-table th, .rate-table td { padding:12px 12px; font-size:.9rem; }
}
.detail-quote { background:var(--cream-2); border-left:5px solid var(--pink); border-radius:0 18px 18px 0; padding:34px 36px; font-family:var(--script); font-style:italic; font-size:1.3rem; line-height:1.5; color:#2e3b2f; margin:60px auto; max-width:820px; box-shadow:0 10px 30px rgba(18,55,42,.1); }
.leave-with { background:linear-gradient(160deg, var(--forest-2), var(--night)); color:var(--cream); border-radius:22px; padding:50px 44px; }
.leave-with h3 { font-family:var(--serif); font-size:1.7rem; font-weight:500; margin-bottom:20px; }
.leave-with ul { list-style:none; columns:2; column-gap:40px; }
.leave-with ul li { padding:8px 0 8px 28px; position:relative; break-inside:avoid; }
.leave-with ul li::before { content:"\263E"; position:absolute; left:0; color:var(--yellow); }

/* ---------- zip code band ---------- */
.zip-band { position:relative; background:linear-gradient(120deg, #1e5d78 0%, #2b4a68 55%, #1b4a37 100%); color:var(--cream-2); padding:110px 24px; overflow:hidden; }
.zip-inner { max-width:1100px; margin:0 auto; display:grid; grid-template-columns:1.1fr .9fr; gap:60px; align-items:center; position:relative; z-index:4; }
.zip-band .zip-kicker { font-size:.8rem; letter-spacing:.35em; text-transform:uppercase; color:var(--yellow); margin-bottom:16px; }
.zip-band h2 { font-family:var(--serif); font-weight:500; font-size:clamp(2rem,4.4vw,3.2rem); line-height:1.1; margin-bottom:18px; }
.zip-band h2 em { font-family:var(--script); font-style:italic; color:var(--pink-soft); }
.zip-band p { color:rgba(253,246,229,.9); margin-bottom:16px; }
.zip-band .zip-price { font-family:var(--serif); font-size:1.5rem; color:var(--yellow); margin:10px 0 26px; }
.zip-art { position:relative; text-align:center; }
.zip-art .stamp { background:var(--cream-2); color:var(--ink); border-radius:18px; padding:34px 30px; transform:rotate(-2deg); box-shadow:14px 14px 0 rgba(242,210,75,.4), 0 30px 60px rgba(0,0,0,.35); position:relative; }
.zip-art .stamp::before { content:""; position:absolute; inset:10px; border:2px dashed var(--olive); border-radius:12px; pointer-events:none; }
.zip-art .stamp h3 { font-family:var(--serif); font-size:1.6rem; color:var(--wine); margin-bottom:8px; letter-spacing:.1em; }
.zip-art .stamp p { color:#43503f; font-size:.95rem; margin-bottom:0; }
.zip-art .postmark { position:absolute; top:-34px; right:-20px; width:92px; height:92px; --m:url(moon_3.png); background:var(--pink); transform:rotate(12deg); }

/* ---------- artwork ---------- */
.art-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:26px; }
.art-tile { background:var(--cream-2); border:1.5px solid rgba(111,99,24,.35); border-radius:18px; padding:40px 28px; text-align:center; transition:transform .35s ease, box-shadow .35s ease; }
.art-tile:hover { transform:translateY(-8px); box-shadow:0 22px 44px rgba(18,55,42,.15); }
.art-tile .el { width:110px; height:110px; margin:0 auto 22px; }
.art-tile h3 { font-family:var(--serif); font-weight:600; font-size:1.2rem; color:var(--forest); margin-bottom:8px; }
.art-tile p { font-size:.92rem; color:#43503f; }

/* ---------- blog / journal ---------- */
.blog-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(290px,1fr)); gap:26px; }
.blog-card { background:var(--cream-2); border-radius:18px; padding:34px 30px; border-top:5px solid var(--teal); box-shadow:0 6px 24px rgba(18,55,42,.08); transition:transform .3s ease; display:block; text-decoration:none; }
.blog-card:hover { transform:translateY(-6px); }
.blog-card .b-date { font-size:.75rem; letter-spacing:.22em; text-transform:uppercase; color:var(--olive-deep); margin-bottom:10px; }
.blog-card h3 { font-family:var(--serif); font-weight:600; font-size:1.25rem; color:var(--forest); margin-bottom:10px; line-height:1.3; }
.blog-card p { font-size:.94rem; color:#43503f; }

/* ---------- youtube ---------- */
.yt-band { background:var(--night); color:var(--cream); padding:104px 24px; position:relative; overflow:hidden; }
.yt-grid { max-width:1100px; margin:0 auto; display:grid; grid-template-columns:.9fr 1.1fr; gap:60px; align-items:center; position:relative; z-index:4; }
.yt-band h2 { font-family:var(--serif); font-weight:500; font-size:clamp(1.9rem,4vw,2.8rem); line-height:1.12; margin-bottom:16px; }
.yt-band p { color:rgba(247,236,210,.85); margin-bottom:26px; }
.yt-embed { border-radius:18px; overflow:hidden; box-shadow:0 30px 60px rgba(0,0,0,.5); border:2px solid rgba(242,210,75,.35); aspect-ratio:16/9; }
.yt-embed iframe { width:100%; height:100%; border:0; display:block; }

/* ---------- testimonials ---------- */
.testi-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:26px; }
.testi { background:var(--cream-2); border-top:5px solid var(--pink); border-radius:0 0 18px 18px; padding:32px 28px; box-shadow:0 6px 24px rgba(18,55,42,.09); transition:transform .35s ease; }
.testi:hover { transform:translateY(-6px); }
.testi:nth-child(2) { border-color:var(--orange); }
.testi:nth-child(3) { border-color:var(--teal); }
.testi p { font-family:var(--script); font-style:italic; font-size:1.18rem; line-height:1.55; color:#2e3b2f; margin-bottom:18px; }
.testi .who { font-size:.78rem; letter-spacing:.25em; text-transform:uppercase; color:var(--olive-deep); }

/* ---------- FAQ ---------- */
.faq { max-width:840px; margin:0 auto; }
.faq details { border-bottom:1px solid rgba(111,99,24,.4); padding:6px 0; }
.faq summary { cursor:pointer; font-family:var(--serif); font-weight:600; font-size:1.1rem; color:var(--forest); padding:17px 40px 17px 4px; position:relative; list-style:none; transition:color .25s; }
.faq summary:hover { color:var(--wine); }
.faq summary::-webkit-details-marker { display:none; }
.faq summary::after { content:"\2726"; position:absolute; right:10px; color:var(--pink); transition:transform .3s ease; }
.faq details[open] summary::after { transform:rotate(45deg) scale(1.25); color:var(--orange); }
.faq details p { padding:0 4px 22px; color:#3c4a3f; }

/* ---------- booking ---------- */
.embed-shell { background:var(--cream-2); border:2px solid var(--olive); border-radius:22px; padding:14px; box-shadow:16px 16px 0 rgba(236,102,166,.3); overflow:hidden; }
.embed-shell iframe { width:100%; min-height:780px; border:0; border-radius:12px; }
.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center; }
.contact-info h3 { font-family:var(--serif); font-weight:500; font-size:2rem; color:var(--cream); margin-bottom:18px; }
.contact-info p { color:rgba(247,236,210,.88); margin-bottom:18px; }
.contact-info .detail { display:flex; gap:14px; align-items:baseline; margin-bottom:12px; color:var(--cream); }
.contact-info .detail .d-icon { color:var(--yellow); }
.contact-info .hands-row { display:flex; gap:26px; margin-top:34px; align-items:flex-end; }
.contact-info .hands-row .el { width:84px; height:110px; }
form.contact-form { background:var(--cream-2); border-radius:22px; padding:42px 38px; box-shadow:16px 16px 0 rgba(242,210,75,.4); }
.contact-form label { display:block; font-size:.78rem; letter-spacing:.2em; text-transform:uppercase; color:var(--forest); margin:18px 0 6px; }
.contact-form input, .contact-form select, .contact-form textarea { width:100%; font-family:var(--body); font-size:1rem; padding:13px 16px; border:1.5px solid rgba(18,55,42,.35); border-radius:10px; background:#fff; color:var(--ink); transition:border-color .2s, box-shadow .2s; }
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus { outline:none; border-color:var(--pink); box-shadow:0 0 0 3px rgba(236,102,166,.25); }
.contact-form button { margin-top:28px; width:100%; cursor:pointer; border:none; font-family:var(--body); font-size:.9rem; letter-spacing:.2em; text-transform:uppercase; font-weight:600; padding:17px; border-radius:999px; background:var(--orange); color:var(--cream-2); transition:all .3s; }
.contact-form button:hover { background:var(--wine); transform:translateY(-2px); }

/* ---------- big CTA ---------- */
.big-cta { position:relative; color:var(--cream); text-align:center; padding:130px 24px; overflow:hidden; background:linear-gradient(170deg, #17435a 0%, var(--night) 80%); }
.big-cta h2 { position:relative; z-index:4; font-family:var(--serif); font-weight:500; font-size:clamp(2rem,4.8vw,3.4rem); line-height:1.12; max-width:820px; margin:0 auto 20px; }
.big-cta p { position:relative; z-index:4; max-width:640px; margin:0 auto 40px; color:rgba(247,236,210,.85); }
.big-cta .cta-actions { position:relative; z-index:4; display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }

/* ---------- footer ---------- */
.site-footer { background:var(--night); border-top:1px solid rgba(247,236,210,.18); color:rgba(247,236,210,.8); padding:70px 24px 44px; position:relative; overflow:hidden; font-size:.9rem; }
.foot-grid { max-width:1100px; margin:0 auto 40px; display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; position:relative; z-index:3; text-align:left; }
.foot-grid h4 { font-family:var(--serif); font-size:1rem; letter-spacing:.14em; text-transform:uppercase; color:var(--yellow); margin-bottom:14px; }
.foot-grid a { display:block; color:rgba(247,236,210,.8); text-decoration:none; margin-bottom:9px; transition:color .2s; }
.foot-grid a:hover { color:var(--pink-soft); }
.foot-brand { font-family:var(--serif); font-size:1.25rem; letter-spacing:.12em; text-transform:uppercase; color:var(--cream); margin-bottom:12px; }
.site-footer .fine { text-align:center; font-size:.78rem; color:rgba(247,236,210,.5); max-width:680px; margin:0 auto; position:relative; z-index:3; }

/* ---------- responsive ---------- */
@media (max-width: 960px) {
  .hero-inner, .zip-inner, .yt-grid { grid-template-columns:1fr; text-align:center; }
  .hero-kicker { justify-content:center; }
  .hero-kicker::before { display:none; }
  .hero-sub { margin:22px auto 36px; }
  .hero-actions, .cta-actions { justify-content:center; }
  .hero-art .figure { max-width:340px; }
  .about-grid, .contact-grid, .two-col { grid-template-columns:1fr; gap:48px; }
  .portrait-frame { max-width:380px; margin:0 auto; }
  .leave-with ul { columns:1; }
  .foot-grid { grid-template-columns:1fr 1fr; text-align:center; }
  .section { padding:72px 20px; }
  .hero { min-height:auto; padding:64px 20px 96px; }
  .zip-art .postmark { right:6px; }
}
