/* ============================================================================
   AURA — homepage hero, page-heroes, and shared section components
   ========================================================================== */

/* ── HOMEPAGE HERO (WebGL "aura" glow + real photo + kinetic headline) ──── */
.hero{ position:relative; isolation:isolate; padding:clamp(2rem,6vw,4.5rem) 0 clamp(3rem,7vw,6rem); overflow:hidden; }
.hero__glow{ position:absolute; inset:-10% -10% auto -10%; height:120%; z-index:0; }
#aura-gl{ position:absolute; inset:0; width:100%; height:100%; display:block; }
/* CSS poster fallback — weightless, instant, the LCP-safe backdrop */
.hero__poster{ position:absolute; inset:0; z-index:0;
  background:
    radial-gradient(60% 50% at 18% 22%, rgba(231,185,173,.55), transparent 70%),
    radial-gradient(55% 55% at 82% 18%, rgba(201,163,126,.5), transparent 72%),
    radial-gradient(70% 60% at 75% 88%, rgba(235,219,201,.7), transparent 75%),
    linear-gradient(160deg,#FBF4EC 0%,#F4E9DC 55%,#EFE0CF 100%); }
.hero .container{ position:relative; z-index:3; }
.hero__inner{ display:grid; grid-template-columns:1.08fr .92fr; gap:clamp(1.5rem,4vw,4rem); align-items:center; min-height:min(78vh,720px); }
.hero__copy{ max-width:36rem; }
.hero h1{ margin:.2rem 0 1.4rem; }
.hero h1 .ln{ display:block; overflow:hidden; }
.hero h1 .accent{ font-style:italic; color:var(--rose); }
.hero__sub{ font-size:clamp(1.05rem,1.5vw,1.22rem); color:var(--espresso); max-width:34ch; margin-bottom:2rem; }
.hero__actions{ display:flex; flex-wrap:wrap; gap:.9rem; align-items:center; }
.hero__meta{ margin-top:2.4rem; display:flex; gap:2rem; flex-wrap:wrap; }
.hero__meta div{ display:flex; flex-direction:column; gap:.1rem; }
.hero__meta .n{ font-family:var(--serif); font-size:1.7rem; font-weight:600; color:var(--ink); line-height:1; }
.hero__meta .l{ font-size:.78rem; letter-spacing:.12em; text-transform:uppercase; color:var(--taupe); }
.hero__media{ position:relative; }
.hero__media .frame{ position:relative; border-radius:240px 240px var(--r-lg) var(--r-lg); overflow:hidden; box-shadow:var(--shadow-lg); aspect-ratio:3/4; }
.hero__media .frame img{ width:100%; height:100%; object-fit:cover; }
.hero__media::after{ content:""; position:absolute; inset:-14px; border-radius:248px 248px 30px 30px; border:1px solid var(--champagne); opacity:.5; z-index:-1; }
.hero__badge{ position:absolute; left:-6%; bottom:8%; background:var(--pearl); border:1px solid var(--line); border-radius:var(--r); padding:.85rem 1.1rem; box-shadow:var(--shadow); display:flex; align-items:center; gap:.7rem; z-index:4; }
.hero__badge .dot{ width:9px; height:9px; border-radius:50%; background:#3Fae6f; box-shadow:0 0 0 4px rgba(63,174,111,.18); }
.hero__badge b{ font-size:.85rem; } .hero__badge span{ display:block; font-size:.72rem; color:var(--taupe); }
@media (max-width:880px){
  .hero__inner{ grid-template-columns:1fr; text-align:center; }
  .hero__copy{ max-width:none; margin-inline:auto; }
  .hero__sub{ margin-inline:auto; }
  .hero__actions,.hero__meta{ justify-content:center; }
  .hero__media{ max-width:380px; margin:1rem auto 0; }
  .hero__badge{ left:auto; right:0; }
}

/* hours strip (the #1 fix) */
.hours-bar{ background:var(--espresso-2); color:#EBDFCF; }
.hours-bar .container{ display:flex; align-items:center; justify-content:space-between; gap:1.4rem; flex-wrap:wrap; padding-block:.95rem; }
.hours-bar .today{ display:flex; align-items:center; gap:.7rem; font-size:.92rem; font-weight:600; }
.hours-bar .today .led{ width:8px; height:8px; border-radius:50%; background:#56c98a; box-shadow:0 0 0 4px rgba(86,201,138,.2); }
.hours-bar .today .led.closed{ background:#d98a72; box-shadow:0 0 0 4px rgba(217,138,114,.2); }
.hours-bar .days{ display:flex; gap:1.1rem; flex-wrap:wrap; font-size:.84rem; color:#C6B7A4; }
.hours-bar .days b{ color:#fff; font-weight:600; }
.hours-bar a{ color:var(--champagne); font-weight:700; white-space:nowrap; }
@media (max-width:680px){ .hours-bar .days{ display:none; } }

/* ── PAGE HERO (inner pages) ──────────────────────────────────────────── */
.page-hero{ position:relative; overflow:hidden; background:linear-gradient(160deg,#FBF4EC,#F1E4D5); padding:clamp(3.4rem,8vw,6.5rem) 0 clamp(2.6rem,5vw,4rem); border-bottom:1px solid var(--line-soft); }
.page-hero::before{ content:""; position:absolute; inset:0; z-index:0; opacity:.85;
  background:radial-gradient(50% 60% at 85% 10%, rgba(231,185,173,.5), transparent 70%), radial-gradient(45% 55% at 8% 90%, rgba(201,163,126,.4), transparent 72%); }
.page-hero .container{ position:relative; z-index:2; }
.page-hero h1{ margin:.4rem 0 .6rem; }
.page-hero p{ max-width:54ch; color:var(--espresso); }
.crumbs{ font-size:.8rem; color:var(--taupe); margin-bottom:.4rem; letter-spacing:.02em; }
.crumbs a{ color:var(--taupe); } .crumbs a:hover{ color:var(--rose-text); }
.crumbs span{ color:var(--mocha); }

/* ── section heading block ────────────────────────────────────────────── */
.s-head{ max-width:60ch; margin-bottom:clamp(2rem,4vw,3.4rem); }
.s-head.center{ margin-inline:auto; text-align:center; }

/* ── services cards ───────────────────────────────────────────────────── */
.svc-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:1.4rem; }
.svc-card{ position:relative; background:var(--pearl); border:1px solid var(--line-soft); border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow-sm); transition:transform .45s var(--ease), box-shadow .45s var(--ease); display:flex; flex-direction:column; }
.svc-card::before{ content:""; position:absolute; top:0; left:0; right:0; height:1px; background:linear-gradient(90deg,transparent,rgba(201,163,126,.6),transparent); z-index:3; }
.svc-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-lg); }
.svc-card__img{ aspect-ratio:4/3; overflow:hidden; }
.svc-card__img img{ width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease), filter .5s; }
.svc-card:hover .svc-card__img img{ transform:scale(1.06); }
.svc-card__body{ padding:1.5rem 1.6rem 1.7rem; flex:1; display:flex; flex-direction:column; }
.svc-card__body h3{ margin-bottom:.4rem; }
.svc-card__body p{ font-size:.95rem; color:var(--taupe); margin-bottom:1.1rem; }
.svc-card__price{ margin-top:auto; font-family:var(--serif); font-size:1.15rem; color:var(--rose-text); font-weight:600; }
.svc-card__price small{ font-family:var(--sans); font-size:.74rem; color:var(--taupe); letter-spacing:.05em; text-transform:uppercase; display:block; font-weight:600; }

/* price list (services page) */
.price-block{ background:var(--pearl); border:1px solid var(--line-soft); border-radius:var(--r-lg); padding:clamp(1.6rem,3vw,2.4rem); box-shadow:var(--shadow-sm); }
.price-block + .price-block{ margin-top:1.4rem; }
.price-block__head{ display:flex; align-items:baseline; justify-content:space-between; gap:1rem; flex-wrap:wrap; margin-bottom:.4rem; }
.price-note{ font-size:.82rem; color:var(--taupe); font-style:italic; margin-bottom:1.2rem; }
.price-list{ list-style:none; margin:0; padding:0; }
.price-list li{ display:flex; align-items:baseline; gap:.8rem; padding:.7rem 0; border-bottom:1px dashed var(--line); }
.price-list li:last-child{ border-bottom:0; }
.price-list .nm{ font-weight:600; color:var(--ink); }
.price-list .nm small{ display:block; font-weight:400; font-size:.82rem; color:var(--taupe); }
.price-list .dots{ flex:1; border-bottom:1px dotted var(--line); transform:translateY(-4px); min-width:1rem; }
.price-list .pr{ font-family:var(--serif); font-weight:600; color:var(--rose-text); white-space:nowrap; font-size:1.05rem; }

/* ── quick answer + key facts (AEO) ───────────────────────────────────── */
.quick-answer{ background:var(--sand); border-left:3px solid var(--rose); border-radius:0 var(--r) var(--r) 0; padding:1.2rem 1.5rem; margin:0 0 1.6rem; }
.quick-answer .qa-label{ font-size:.7rem; letter-spacing:.2em; text-transform:uppercase; color:var(--rose-text); font-weight:700; margin:0 0 .35rem; }
.quick-answer p{ margin:0; color:var(--espresso); }
.key-facts{ width:100%; border-collapse:collapse; background:var(--pearl); border:1px solid var(--line-soft); border-radius:var(--r); overflow:hidden; margin:1.4rem 0; }
.key-facts th,.key-facts td{ text-align:left; padding:.85rem 1.1rem; border-bottom:1px solid var(--line-soft); font-size:.95rem; vertical-align:top; }
.key-facts tr:last-child th,.key-facts tr:last-child td{ border-bottom:0; }
.key-facts th{ width:38%; color:var(--taupe); font-weight:600; background:rgba(239,230,218,.5); }

/* ── portfolio grid (masonry-ish) ─────────────────────────────────────── */
.pf-filter{ display:flex; gap:.6rem; flex-wrap:wrap; margin-bottom:2rem; }
.pf-filter button{ font-family:var(--sans); font-weight:600; font-size:.84rem; letter-spacing:.02em; padding:.55rem 1.1rem; border-radius:var(--r-pill); border:1px solid var(--line); background:transparent; color:var(--taupe); cursor:pointer; transition:.25s; }
.pf-filter button:hover{ border-color:var(--rose); color:var(--rose-text); }
.pf-filter button.active{ background:var(--rose-deep); border-color:var(--rose-deep); color:#fff; }
.pf-grid{ columns:3 280px; column-gap:1.1rem; }
.pf-item{ break-inside:avoid; margin-bottom:1.1rem; position:relative; border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow-sm); display:block; }
.pf-item img{ width:100%; transition:transform .8s var(--ease), filter .6s; }
.pf-item::after{ content:attr(data-cap); position:absolute; inset:auto 0 0 0; padding:1.6rem 1.1rem .9rem; color:#fff; font-size:.86rem; font-weight:500;
  background:linear-gradient(transparent,rgba(34,26,21,.78)); opacity:0; transform:translateY(8px); transition:.4s var(--ease); }
.pf-item .tag{ position:absolute; top:.8rem; left:.8rem; z-index:2; font-size:.68rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:#fff; background:rgba(126,79,61,.85); padding:.3rem .6rem; border-radius:var(--r-pill); backdrop-filter:blur(4px); opacity:0; transition:.4s; }
.pf-item:hover img{ transform:scale(1.05); }
.pf-item:hover::after, .pf-item:hover .tag{ opacity:1; transform:none; }

/* ── stats / proof band ───────────────────────────────────────────────── */
.proof{ display:grid; grid-template-columns:repeat(4,1fr); gap:0; border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden; background:var(--pearl); }
.proof div{ padding:clamp(1.4rem,3vw,2.2rem); text-align:center; border-right:1px solid var(--line-soft); }
.proof div:last-child{ border-right:0; }
.proof .n{ font-family:var(--serif); font-size:clamp(1.8rem,3.4vw,2.7rem); font-weight:600; color:var(--rose-text); line-height:1; }
.proof .l{ font-size:.8rem; letter-spacing:.08em; text-transform:uppercase; color:var(--taupe); margin-top:.5rem; }
@media (max-width:680px){ .proof{ grid-template-columns:1fr 1fr; } .proof div:nth-child(2){ border-right:0; } .proof div:nth-child(1),.proof div:nth-child(2){ border-bottom:1px solid var(--line-soft); } }

/* ── team ─────────────────────────────────────────────────────────────── */
.team-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:1.4rem; }
.team-card{ text-align:center; }
.team-card__img{ aspect-ratio:4/5; border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow-sm); margin-bottom:1rem; position:relative; }
.team-card__img img{ width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease); }
.team-card:hover .team-card__img img{ transform:scale(1.05); }
.team-card h3{ font-size:1.4rem; margin-bottom:.1rem; }
.team-card .role{ font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; color:var(--rose); font-weight:700; }

/* ── marquee strip ────────────────────────────────────────────────────── */
.marquee{ overflow:hidden; padding:.4rem 0; -webkit-mask:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent); mask:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent); }
.marquee__row{ display:flex; gap:1rem; width:max-content; animation:marq 42s linear infinite; }
.marquee img{ height:180px; width:auto; border-radius:var(--r); object-fit:cover; }
@media (prefers-reduced-motion:reduce){ .marquee__row{ animation:none; } }
@keyframes marq{ to{ transform:translateX(-50%); } }

/* word marquee (editorial) */
.word-marq{ overflow:hidden; border-block:1px solid var(--line); padding:1.1rem 0; background:var(--ivory); }
.word-marq__row{ display:flex; gap:2.5rem; width:max-content; animation:marq 38s linear infinite; align-items:center; }
.word-marq span{ font-family:var(--serif); font-size:clamp(1.4rem,3vw,2.3rem); font-weight:500; color:var(--ink); white-space:nowrap; display:inline-flex; align-items:center; gap:2.5rem; }
.word-marq span.out{ color:transparent; -webkit-text-stroke:1px var(--rose); }
.word-marq span::after{ content:"✦"; color:var(--champagne); font-size:.7em; }

/* ── CTA band ─────────────────────────────────────────────────────────── */
.cta-band{ position:relative; overflow:hidden; background:linear-gradient(150deg,var(--espresso),var(--espresso-2)); color:var(--ivory); border-radius:var(--r-lg); padding:clamp(2.6rem,6vw,4.6rem); text-align:center; }
.cta-band::before{ content:""; position:absolute; inset:0; opacity:.6; background:radial-gradient(60% 80% at 15% 10%, rgba(231,185,173,.28), transparent 60%), radial-gradient(50% 70% at 88% 95%, rgba(201,163,126,.3), transparent 60%); }
.cta-band > *{ position:relative; z-index:2; }
.cta-band h2{ color:var(--ivory); }
.cta-band p{ color:#D9CBB9; max-width:48ch; margin-inline:auto; }

/* ── FAQ accordion ────────────────────────────────────────────────────── */
.faqs{ max-width:820px; margin-inline:auto; }
.faqs details{ border-bottom:1px solid var(--line); padding:.4rem 0; }
.faqs summary{ list-style:none; cursor:pointer; display:flex; justify-content:space-between; gap:1rem; align-items:center; padding:1.1rem 0; font-family:var(--serif); font-size:1.18rem; font-weight:500; color:var(--ink); }
.faqs summary::-webkit-details-marker{ display:none; }
.faqs summary .ic{ flex-shrink:0; width:26px; height:26px; border-radius:50%; border:1px solid var(--line); display:grid; place-items:center; transition:.3s; position:relative; }
.faqs summary .ic::before,.faqs summary .ic::after{ content:""; position:absolute; background:var(--rose); }
.faqs summary .ic::before{ width:11px; height:1.5px; } .faqs summary .ic::after{ width:1.5px; height:11px; transition:.3s; }
.faqs details[open] summary .ic{ background:var(--rose-deep); border-color:var(--rose-deep); }
.faqs details[open] summary .ic::before,.faqs details[open] summary .ic::after{ background:#fff; }
.faqs details[open] summary .ic::after{ transform:scaleY(0); }
.faqs details p{ margin:0 0 1.1rem; color:var(--taupe); padding-right:2.4rem; }

/* ── blog cards ───────────────────────────────────────────────────────── */
.blog-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(320px,1fr)); gap:1.7rem; }
.blog-card{ background:var(--pearl); border:1px solid var(--line-soft); border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow-sm); transition:transform .4s var(--ease),box-shadow .4s var(--ease); display:flex; flex-direction:column; }
.blog-card:hover{ transform:translateY(-5px); box-shadow:var(--shadow); }
.blog-card__img{ aspect-ratio:3/2; overflow:hidden; }
.blog-card__img img{ width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease); }
.blog-card:hover .blog-card__img img{ transform:scale(1.05); }
.blog-card__body{ padding:1.4rem 1.5rem 1.6rem; display:flex; flex-direction:column; flex:1; }
.blog-card__meta{ display:flex; gap:.7rem; align-items:center; font-size:.74rem; letter-spacing:.05em; text-transform:uppercase; color:var(--rose); font-weight:700; margin-bottom:.7rem; }
.blog-card__meta .dot{ width:3px; height:3px; border-radius:50%; background:var(--champagne); }
.blog-card h3{ font-size:1.3rem; line-height:1.2; margin-bottom:.5rem; }
.blog-card h3 a{ color:var(--ink); } .blog-card h3 a:hover{ color:var(--rose-text); }
.blog-card p{ font-size:.92rem; color:var(--taupe); margin-bottom:1.1rem; }
.blog-card__foot{ margin-top:auto; font-size:.82rem; color:var(--taupe); display:flex; justify-content:space-between; align-items:center; }

/* ── article (blog post) ──────────────────────────────────────────────── */
.article{ max-width:760px; margin-inline:auto; }
.article__hero{ border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow); margin-bottom:2.4rem; aspect-ratio:16/9; }
.article__hero img{ width:100%; height:100%; object-fit:cover; }
.article__body{ font-size:1.08rem; }
.article__body h2{ font-size:clamp(1.5rem,2.6vw,2rem); margin:2.2rem 0 .8rem; }
.article__body h3{ font-size:1.25rem; margin:1.8rem 0 .6rem; color:var(--rose-text); }
.article__body p{ color:var(--espresso); }
.article__body ul,.article__body ol{ color:var(--espresso); padding-left:1.3rem; margin:0 0 1.2rem; }
.article__body li{ margin-bottom:.5rem; }
.article__body strong{ color:var(--ink); }
.updated{ font-size:.82rem; color:var(--taupe); }
.article-cta{ margin-top:2.6rem; padding:1.8rem; background:var(--sand); border-radius:var(--r-lg); text-align:center; }

/* ── contact ──────────────────────────────────────────────────────────── */
.contact-grid{ display:grid; grid-template-columns:1fr 1.1fr; gap:clamp(1.6rem,4vw,3.4rem); align-items:start; }
@media (max-width:820px){ .contact-grid{ grid-template-columns:1fr; } }
.info-card{ background:var(--pearl); border:1px solid var(--line-soft); border-radius:var(--r-lg); padding:1.7rem; box-shadow:var(--shadow-sm); }
.info-row{ display:flex; gap:1rem; padding:1rem 0; border-bottom:1px solid var(--line-soft); }
.info-row:last-child{ border-bottom:0; }
.info-row .ic{ flex-shrink:0; width:42px; height:42px; border-radius:12px; background:var(--sand); display:grid; place-items:center; color:var(--rose-deep); }
.info-row .ic svg{ width:20px; height:20px; }
.info-row h4{ font-family:var(--sans); font-size:.74rem; letter-spacing:.16em; text-transform:uppercase; color:var(--taupe); margin:0 0 .25rem; font-weight:700; }
.info-row p,.info-row a{ margin:0; font-size:1rem; color:var(--ink); }
.field{ margin-bottom:1.1rem; }
.field label{ display:block; font-size:.82rem; font-weight:600; color:var(--taupe); margin-bottom:.4rem; letter-spacing:.02em; }
.field input,.field select,.field textarea{ width:100%; font-family:var(--sans); font-size:1rem; padding:.85rem 1rem; border:1px solid var(--line); border-radius:var(--r); background:var(--pearl); color:var(--ink); transition:border-color .2s, box-shadow .2s; }
.field input:focus,.field select:focus,.field textarea:focus{ outline:none; border-color:var(--rose); box-shadow:0 0 0 3px rgba(158,107,88,.15); }
.field textarea{ min-height:130px; resize:vertical; }
.map-embed{ border-radius:var(--r-lg); overflow:hidden; border:1px solid var(--line); box-shadow:var(--shadow-sm); aspect-ratio:16/10; }
.map-embed iframe{ width:100%; height:100%; border:0; display:block; }

/* hours table */
.hours-table{ width:100%; border-collapse:collapse; }
.hours-table td{ padding:.6rem 0; border-bottom:1px solid var(--line-soft); font-size:.96rem; }
.hours-table td:last-child{ text-align:right; font-weight:600; color:var(--ink); }
.hours-table tr.is-today td{ color:var(--rose-text); }
.hours-table tr.is-today td:last-child{ color:var(--rose-text); }
.hours-table .cl{ color:var(--taupe); font-weight:500; }
