/* ============================================================
   KARA — Floral Design & Events
   Semantic, responsive stylesheet. Design tokens up top so the
   whole palette / type scale is editable in one place.
   ============================================================ */

/* ----------  Fonts  ---------- */
/* Funnel Display is a VARIABLE font: real weight axis is 300–800, default 300.
   Declaring the true range (not 100 900) lets the browser interpolate to
   Regular 400 for body copy instead of falling back to the Light default. */
@font-face{font-family:'Funnel Display';font-weight:300 800;font-style:normal;font-display:swap;src:url('../fonts/FunnelDisplay.woff2') format('woff2');}
@font-face{font-family:'Kameron';font-weight:400 700;font-style:normal;font-display:swap;src:url('../fonts/Kameron.woff2') format('woff2');}
@font-face{font-family:'EB Garamond';font-weight:400 800;font-style:normal;font-display:swap;src:url('../fonts/EBGaramond.woff2') format('woff2');}
@font-face{font-family:'Gideon Roman';font-weight:400;font-style:normal;font-display:swap;src:url('../fonts/GideonRoman.woff2') format('woff2');}
@font-face{font-family:'Inter';font-weight:100 900;font-style:normal;font-display:swap;src:url('../fonts/Inter.woff2') format('woff2');}

/* ----------  Design tokens  ---------- */
:root{
  --bg:#aca2a2;              /* main mauve */
  --bg-hero:#8c8681;         /* fallback behind hero image */
  --bg-footer:#868080;       /* footer band */
  --bg-footer-bottom:#7c7676;/* legal bar */
  --accent:#842198;          /* purple CTA */
  --accent-hover:#6d1a7e;
  --ink:#ffffff;             /* primary text on mauve */
  --ink-soft:rgba(255,255,255,.82);
  --ink-mute:rgba(255,255,255,.62);

  --font-sans:'Funnel Display',system-ui,-apple-system,sans-serif;   /* paragraphs / body / UI */
  --font-serif:'Kameron',Georgia,serif;                              /* headings */
  /* Only Kameron + Funnel Display are used site-wide. The two tokens
     below are kept so existing class rules keep working, but they now
     resolve to the two approved families instead of Gideon / Garamond. */
  --font-gideon:var(--font-serif);                                   /* was 'Gideon Roman'  → Kameron  */
  --font-garamond:var(--font-sans);                                  /* was 'EB Garamond'   → Funnel Display */

  --container:1266px;        /* full content width */
  --container-narrow:931px;  /* readable text column */
  --gutter:clamp(20px,5vw,48px);
  --section-y:clamp(56px,9vw,128px);
  --radius:8px;
}

/* ----------  Reset / base  ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:var(--font-sans);
  background:var(--bg);
  color:var(--ink);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
img{display:block;max-width:100%;height:auto;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;}
h1,h2,h3,h4,h5,h6{font-family:var(--font-serif);font-weight:400;line-height:1.15;}
p{font-family:var(--font-sans);}
:focus-visible{outline:2px solid #fff;outline-offset:3px;}

/* ----------  Layout helpers  ---------- */
.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter);}
.container--narrow{max-width:var(--container-narrow);}

/* ----------  Buttons  ---------- */
.btn{
  display:inline-block;font-family:var(--font-serif);
  letter-spacing:.12em;line-height:1;text-align:center;
  cursor:pointer;transition:background .2s,color .2s,border-color .2s;
}
.btn--solid{
  background:var(--accent);color:#fff;
  padding:1.1em 2.2em;border-radius:var(--radius);
  text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px;
  text-decoration: none;
}
.btn--solid:hover{background:var(--accent-hover);}
.btn--outline{
  border:1px solid rgba(255,255,255,.9);color:#fff;
  padding:1em 2.6em;background:transparent;
}
.subscribe .btn--outline {
    border: 2px solid #fff;
    color: #fff;
    padding: 20px 45px;
    border-radius: 10px;
    min-width: 292px;
    font-weight: 700;
    font-size: 24px;
  }
.btn--outline:hover{background:rgba(255,255,255,.12);}

/* ============================================================
   HEADER / NAV
   ============================================================ */
.site-header{width:100%;z-index:30;}
.site-header--overlay{position:absolute;top:0;left:0; padding: 35px 0;}   /* transparent over hero (home) */
.site-header__inner{display:flex;align-items:center;justify-content:center;gap:32px;padding-block:26px;}
.site-header__brand{flex:0 0 auto;}                       /* placeholder for inner-page logo */
.site-header--overlay .site-header__brand{display:none;}  /* home shows big logo in hero instead */

.primary-nav ul{display:flex;flex-wrap:wrap;justify-content:center;gap:20px;}
.primary-nav a{
  font-family:var(--font-sans);font-size:14px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink);padding:6px 2px;position:relative;
}
.primary-nav a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:#fff;transition:width .25s;}
.primary-nav a:hover::after,.primary-nav a[aria-current="page"]::after{width:100%;}

.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:0;padding:8px;cursor:pointer;}
.nav-toggle span{width:26px;height:2px;background:#fff;transition:.25s;}

/* ============================================================
   HERO
   ============================================================ */
.hero{position:relative;background:var(--bg-hero);overflow:hidden;min-height:100vh;display:flex;align-items:center;}
.hero__media{position:absolute;inset:0;background:url('../images/hero.jpg') center/cover no-repeat;}
.hero__inner{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:20px;}
.hero__logo{width:clamp(200px,26vw,344px);height:auto;margin-bottom: -20px;}
.hero__tagline{font-family:var(--font-gideon);font-size:clamp(20px,2.4vw,26px);letter-spacing:.04em;color:#fff;margin-bottom: 30vh;}
.hero__cta{margin-top:auto;padding: 12px 10px; font-size: 24px;}

/* ============================================================
   INTRO
   ============================================================ */
.intro{padding-block:var(--section-y);text-align:center;padding: 50px 0;}
.intro__inner{display:flex;flex-direction:column;gap:1.4em;}
.intro__title{font-family:var(--font-serif);font-size:clamp(22px,2.6vw,24px);}
.intro p{color:var(--ink-soft);max-width:85ch;margin-inline:auto;}

/* ============================================================
   CATEGORIES
   ============================================================ */
.categories{padding-bottom:40px;}
.cat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2.4vw,34px);max-width:960px;margin-inline:auto;}
.cat a{display:flex;flex-direction:column;gap:16px;}
.cat__media{display:block;aspect-ratio:283/347;overflow:hidden;border-radius:2px;}
.cat__media img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease;}
.cat a:hover .cat__media img{transform:scale(1.04);}
.cat__label{font-family:var(--font-sans);font-weight:700;font-size:16px;letter-spacing:.1em;text-align:center;}

/* ============================================================
   MISSION
   ============================================================ */
.mission{padding-bottom:var(--section-y);text-align:center; padding: 0 0 30px;}
.mission p{color:var(--ink-soft);margin-bottom:1.2em;font-size: 16px;line-height: 25px;}

/* ============================================================
   SUBSCRIBE (full-bleed band)
   ============================================================ */
.subscribe{position:relative;background:#3a4a2f url('../images/subscribe-bg.jpg') center/cover no-repeat;min-height:clamp(360px,44vw,621px);display:flex;text-align:center;}
.subscribe::before{content:"";position:absolute;inset:0;background:rgba(20,30,15,.28);}
.subscribe__inner{position:relative;display:flex;flex-direction:column;align-items:center;gap:18px;padding-top: 70px;}
.subscribe__title{font-family:var(--font-serif);font-size:clamp(26px,3.4vw,36px);letter-spacing:.08em;text-shadow:0 2px 12px rgba(0,0,0,.35);margin-bottom: -10px;}
.subscribe__sub{font-family:var(--font-serif);font-size:clamp(16px,1.7vw,24px);text-shadow:0 2px 10px rgba(0,0,0,.35);margin-bottom: 45px;}

/* ============================================================
   FOLLOW
   ============================================================ */
.follow{padding:50px 0;}
.follow__inner{display:flex;flex-direction:column;align-items:center;gap:20px;}
.follow__title{font-family:var(--font-serif);font-size:clamp(18px,2vw,24px);letter-spacing:.05em;font-weight: 500;}
.socials{display:flex;gap:22px;}
.socials a{width:49px;height:49px;color:#fff;opacity:.92;transition:opacity .2s,transform .2s;}
.socials a:hover{opacity:1;transform:translateY(-2px);}
.socials svg{width:100%;height:100%;}

/* ============================================================
   GALLERY
   ============================================================ */
.gallery{padding-bottom:100px;}
.gallery-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:clamp(10px,1.4vw,20px);}
.gallery-grid img{aspect-ratio:1;width:100%;object-fit:cover;border-radius:2px;height: 240px;}

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer{background:var(--bg-footer);}
.site-footer__inner{padding:30px 0;text-align:center;}
.site-footer__brand{display:inline-flex;flex-direction:column;align-items:center;gap:6px;margin-bottom:40px;}
.site-footer__brand img{width:120px;height:auto;}
.site-footer__brand span{font-family:var(--font-gideon);font-size:15px;letter-spacing:.04em;color:var(--ink-soft);}

.footer-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px;max-width:820px;margin-inline:auto;text-align:left;}
.footer-col h3{font-family:var(--font-serif);font-weight:700;font-size:14px;letter-spacing:.14em;margin-bottom:16px;}
.footer-contact li{display:flex;align-items:flex-start;gap:10px;margin-bottom:10px;color:var(--ink-soft);font-size:14px;}
.footer-contact img{margin-top:3px;flex:0 0 auto;filter:brightness(0) invert(1);opacity:.85;}
.footer-links li{margin-bottom:10px;}
.footer-links a{color:var(--ink-soft);font-size:14px;}
.footer-links a:hover{color:#fff;}

.footer-bottom__inner{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px 22px;font-size:12px;color:var(--ink-mute);padding-bottom: 25px;}
.footer-legal{display:flex;flex-wrap:wrap;gap:8px 45px;}
.footer-legal a:hover{color:#fff;}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:860px){
  .cat-grid{grid-template-columns:1fr;max-width:440px;}
  .gallery-grid{grid-template-columns:repeat(2,1fr);}
  .footer-cols{grid-template-columns:1fr;max-width:340px;gap:28px;}
}
@media (max-width:720px){
  .nav-toggle{display:flex;position:absolute;right:var(--gutter);top:20px;}
  .site-header__inner{justify-content:flex-start;}
  .primary-nav{
    position:fixed;inset:0 0 0 auto;width:min(78vw,300px);
    background:rgba(60,55,55,.97);backdrop-filter:blur(6px);
    transform:translateX(100%);transition:transform .3s ease;
    padding:88px 28px;z-index:40;
  }
  body.nav-open .primary-nav{transform:translateX(0);}
  .primary-nav ul{flex-direction:column;align-items:flex-start;gap:22px;}
  body.nav-open .nav-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  body.nav-open .nav-toggle span:nth-child(2){opacity:0;}
  body.nav-open .nav-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
  .hero{min-height:auto;}
  .hero__inner{padding-top:150px;padding-bottom:48px;min-height:70vh;}
}
@media (max-width:440px){
  .gallery-grid{grid-template-columns:1fr 1fr;}
  .footer-bottom__inner{flex-direction:column;text-align:center;}
}

@media (prefers-reduced-motion:reduce){
  *{transition:none!important;scroll-behavior:auto!important;}
}

/* ============================================================
   INNER PAGES — shared components
   ============================================================ */

/* Stacked header (logo centered + nav below) on solid mauve */
.site-header--stacked{position:relative;background:var(--bg);padding-top:28px;}
.site-header--stacked .site-header__inner{flex-direction:column;gap:22px;}
.site-header--stacked .brand{display:flex;flex-direction:column;align-items:center;gap:4px;}
.site-header--stacked .brand img{width:150px;height:auto;}
.site-header--stacked .brand span{font-family:var(--font-gideon);font-size:15px;letter-spacing:.04em;color:var(--ink-soft);}

/* Page intro (title + subtitle + lead paragraphs) */
.page-intro{padding:clamp(28px,4vw,52px) 0 var(--section-y);text-align:center; padding-bottom: 70px;}
.page-intro__title{font-family:var(--font-serif);font-weight:700;font-size:clamp(26px,4.4vw,36px);letter-spacing:.1em;margin-bottom: 50px;}
.page-intro__subtitle{font-family:var(--font-serif);font-size:clamp(18px,2.4vw,24px);margin-top:.5em;color:var(--ink-soft);}
.page-intro__lead{max-width:965px;margin:1.6em auto 0;display:flex;flex-direction:column;gap:1.1em;color:var(--ink-soft);}

/* Section heading (left aligned, serif) */
.section-title{font-family:var(--font-serif);font-weight:400;font-size:clamp(26px,4.4vw,36px);margin-bottom:clamp(24px,3vw,40px);}

/* Product grid + cards */
.product-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,48px);}
.product-card{display:flex;flex-direction:column;}
.product-card__media{aspect-ratio:3/4;overflow:hidden;margin-bottom:18px;}
.product-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .4s;}
.product-card:hover .product-card__media img{transform:scale(1.04);}
.product-card__title{font-family:var(--font-serif);font-weight:700;font-size:clamp(20px,3vw,24px);}
.product-card__price{font-family:var(--font-garamond);font-weight:700;font-size:20px;color:var(--ink-soft);margin:6px 0 14px;}
.product-card .btn{align-self:flex-start;}
.btn--ghost{border:1px solid rgba(255,255,255,.85);color:#fff;padding:.7em 1.6em;font-family:var(--font-garamond);font-weight:700;letter-spacing:.02em;font-size:19px;}
.btn--ghost:hover{background:rgba(255,255,255,.12);}

/* Feature (image + text, 2 col) */
.feature{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,72px);padding-bottom:clamp(64px,11vw,150px); align-items: center;}
.feature__media img{width:100%;aspect-ratio:4/3;object-fit:cover;}
.feature__body{display:flex;flex-direction:column;gap:14px;align-items:flex-start;max-width: 370px;}
.feature__title{font-family:var(--font-serif);font-weight:400;font-size:clamp(26px,4.4vw,36px);}
.feature__text{color:var(--ink-soft);margin-bottom: 30px;}
.feature__eyebrow{font-family:var(--font-sans);font-size:13px;letter-spacing:.12em;color:var(--ink-mute); display: none;}
.feature__price{font-family:var(--font-garamond);font-weight:400;font-size:20px;border:1px solid rgba(255,255,255,.7);padding:.3em 1em;margin-bottom: 30px;}

/* Signature (2 large cards) */
.signature-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,56px);padding-top:clamp(40px,6vw,80px);padding-bottom:var(--section-y);}
.signature-card__media{aspect-ratio:1/1;overflow:hidden;margin-bottom:16px;}
.signature-card__media img{width:100%;height:100%;object-fit:cover;}
.signature-card h3{font-family:var(--font-serif);font-weight:700;font-size:clamp(20px,3vw,24px);margin-bottom:10px;}
.signature-card__row{display:flex;justify-content:space-between;align-items:center;color:var(--ink-soft);}

/* Event banners (full-width image cards with centered overlay text) */
.event-banner{position:relative;display:block;min-height:clamp(320px,34vw,480px);display:grid;place-items:center;text-align:center;overflow:hidden;margin-bottom:clamp(28px,4vw,56px);}
.event-banner img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.event-banner::after{content:"";position:absolute;inset:0;background:rgba(30,25,25,.70);opacity: 0;visibility: hidden;transition: all 0.3s ease;}
.event-banner__title{position:relative;font-family:var(--font-serif);color:#fff;font-size:clamp(24px,3vw,40px);letter-spacing:.06em;text-shadow:0 2px 14px rgba(0,0,0,.4);padding:0 20px;opacity: 0;visibility: hidden;transition: all 0.3s ease;margin-top: 20px;z-index: 999;}
.event-banner:hover::after {opacity: 1;visibility: visible;}
.event-banner:hover .event-banner__title {
  opacity: 1;
  visibility: visible;
  margin: 0;
}
/* About lead (text + portrait) */
.about-lead{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,64px);align-items:start;padding-bottom:var(--section-y);}
.about-lead__text{display:flex;flex-direction:column;gap:1.1em;color:var(--ink-soft);padding-right: 100px;}
.about-lead__media img{width:100%;object-fit:cover;}
.about-lead__text strong {
    color: #fff;
    font-weight: 400;
    font-family: var(--font-serif);
    font-size: 24px;
    line-height: 25px;
    letter-spacing: 10%;
}

/* Quote banner */
.quote-banner{position:relative;min-height:clamp(420px,42vw,620px);display:grid;place-items:center;text-align:center;overflow:hidden;}
.quote-banner img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.quote-banner::after{content:"";position:absolute;inset:0;background:rgba(20,16,16,.42);}
.quote-banner__inner{position:relative;max-width:760px;padding:0 24px;color:#fff;}
.quote-banner__quote{font-family:var(--font-serif);font-size:clamp(20px,2.6vw,32px);line-height:1.4;}
.quote-banner__by{margin-top:1.4em;color:rgba(255,255,255,.85);}

/* Why grid (feature emblems) */
.why{padding-block:var(--section-y);text-align:center;}
.why__title{font-family:var(--font-serif);font-size:clamp(22px,2.6vw,30px);margin-bottom:clamp(36px,5vw,64px);}
.why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(32px,4vw,56px);max-width:960px;margin-inline:auto;}
.why-item img{width:64px;height:64px;object-fit:contain;margin:0 auto 16px;filter:brightness(0) invert(1);opacity:.92;}
.why-item h3{font-family:var(--font-serif);font-weight:700;font-size:16px;color:#9c3fb0;margin-bottom:6px;}
.why-item p{color:var(--ink-soft);font-size:14px;}

/* Contact */
.contact-map{width:100%;aspect-ratio:1582/522;object-fit:cover;display:block;}
.contact-body{max-width:620px;padding-block:var(--section-y);}
.contact-info{margin-bottom:36px;}
.contact-info{display:flex;flex-direction:column;gap:16px;}
.contact-info p{color:var(--ink-soft);}
.contact-info .contact-social{display:flex;align-items:center;gap:12px;}
.contact-info .contact-social svg{width:22px;height:22px;color:#fff;}
.contact-form{display:flex;flex-direction:column;gap:20px;}
.contact-form label{display:flex;flex-direction:column;gap:8px;font-size:15px;color:var(--ink-soft);}
.contact-form input,.contact-form textarea{
  background:rgba(255,255,255,.9);border:0;border-radius:2px;padding:12px 14px;
  font-family:var(--font-sans);font-size:15px;color:#333;
}
.contact-form textarea{min-height:140px;resize:vertical;}
.contact-form .btn--ghost{align-self:flex-start;}

@media (max-width:860px){
  .product-grid{grid-template-columns:1fr 1fr;}
  .feature,.about-lead,.contact-body{grid-template-columns:1fr;}
  .signature-grid{grid-template-columns:1fr;}
  .why-grid{grid-template-columns:1fr;max-width:360px;}
  .contact-map{aspect-ratio:4/3;}
}
@media (max-width:560px){
  .product-grid{grid-template-columns:1fr;max-width:360px;margin-inline:auto;}
}

.full-band {
    width: 100%;
    aspect-ratio: 930 / 760;
    object-fit: cover;
    display: block;
}

/* Event gallery (masonry) */
.masonry{columns:3;column-gap:clamp(12px,1.6vw,20px);}
.masonry img{width:100%;margin:0 0 clamp(12px,1.6vw,20px);display:block;break-inside:avoid;border-radius:2px;}
.cta-row{display:flex;justify-content:center;padding-bottom:clamp(36px,5vw,64px);}
@media (max-width:860px){.masonry{columns:2;}}
@media (max-width:520px){.masonry{columns:1;max-width:380px;margin-inline:auto;}}

/* Subscription cards: centered, whole-card link, no button (matches comp) */
.product-grid--sub .product-card{text-align:center;align-items:center;}
.product-grid--sub .product-card__title{margin-top:2px;}

/* ============================================================
   PRODUCT / SUBSCRIPTION DETAIL
   ============================================================ */
.detail{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,72px);padding-block:clamp(28px,4vw,52px) var(--section-y);align-items:start;}
.detail__gallery{display:flex;flex-direction:column;gap:14px;}
.detail__main{width:100%;aspect-ratio:1/1;object-fit:cover;}
.detail__thumbs{display:flex;gap:14px;}
.detail__thumbs img{width:96px;height:96px;object-fit:cover;cursor:pointer;}
.detail__title{font-family:var(--font-serif);font-weight:400;font-size:clamp(28px,3.6vw,40px);margin-bottom:18px;}
.detail__desc{color:var(--ink-soft);margin-bottom:18px;}
.detail__price{font-family:var(--font-sans);font-weight:700;font-size:24px;margin-bottom:20px;}
.detail__selects{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:22px;}
.select-box{border:1px solid rgba(255,255,255,.7);background:transparent;color:#fff;font-family:var(--font-garamond);font-size:18px;padding:12px 20px;min-width:170px;cursor:pointer;-webkit-appearance:none;appearance:none;text-align:center;}
.select-box option{color:#222;}
.detail__cta{font-family:var(--font-garamond);font-size:20px;border:1px solid rgba(255,255,255,.7);background:transparent;color:#fff;padding:14px 40px;cursor:pointer;transition:background .2s;}
.detail__cta:hover{background:rgba(255,255,255,.12);}

/* details + bullets */
.detail-info{padding-bottom:var(--section-y);}
.detail-info h2{font-family:var(--font-serif);font-size:clamp(22px,2.6vw,28px);margin-bottom:18px;}
.detail-info ul{display:flex;flex-direction:column;gap:14px;max-width:1000px;}
.detail-info li{color:var(--ink-soft);padding-left:20px;position:relative;}
.detail-info li::before{content:"•";position:absolute;left:2px;color:var(--ink-soft);}
.detail-info p{color:var(--ink-soft);margin-bottom:1em;max-width:1000px;}
.detail-info p strong{color:#fff;font-weight:700;}

/* feature icon row */
.feature-icons{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;max-width:900px;margin:0 auto clamp(40px,6vw,72px);text-align:center;}
.feature-icons .fi img{width:56px;height:56px;object-fit:contain;margin:0 auto 14px;filter:brightness(0) invert(1);opacity:.9;}
.feature-icons .fi span{font-family:var(--font-sans);font-weight:700;font-size:15px;letter-spacing:.02em;}

/* FAQ accordion */
.faq{max-width:1000px;margin:0 auto clamp(40px,6vw,72px);border:1px solid rgba(255,255,255,.35);}
.faq details{border-bottom:1px solid rgba(255,255,255,.28);}
.faq details:last-child{border-bottom:0;}
.faq summary{list-style:none;cursor:pointer;padding:16px 22px;color:var(--ink-soft);font-size:15px;display:flex;justify-content:space-between;align-items:center;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"+";opacity:.7;}
.faq details[open] summary::after{content:"−";}
.faq details p{padding:0 22px 18px;color:var(--ink-soft);font-size:14px;}

/* related */
.related h2{font-family:var(--font-serif);font-size:clamp(20px,2.4vw,26px);margin-bottom:24px;}
.related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2.4vw,34px);}
.related-grid img{width:100%;aspect-ratio:1/1;object-fit:cover;}

/* ============================================================
   ORDER MODAL
   ============================================================ */
.modal{position:fixed;inset:0;background:rgba(40,36,36,.6);display:none;align-items:flex-start;justify-content:center;padding:40px 16px;z-index:200;overflow-y:auto;}
.modal.open{display:flex;}
.modal__panel{background:#f4f1ee;color:#333;max-width:680px;width:100%;padding:clamp(24px,4vw,44px);position:relative;font-family:var(--font-sans);}
.modal__close{position:absolute;top:14px;right:18px;background:none;border:0;font-size:26px;line-height:1;cursor:pointer;color:#666;}
.modal__title{font-size:16px;letter-spacing:.06em;color:#555;margin-bottom:26px;}
.order-form{display:flex;flex-direction:column;gap:18px;}
.order-form fieldset{border:0;padding:0;display:flex;flex-direction:column;gap:12px;}
.order-form legend{background:#8a807f;color:#fff;font-size:15px;padding:8px 14px;width:100%;margin-bottom:6px;}
.order-form label{font-size:15px;color:#444;display:flex;flex-direction:column;gap:6px;}
.order-form .row{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.order-form input[type=text],.order-form input[type=email],.order-form input[type=tel],.order-form input[type=date],.order-form input[type=time],.order-form textarea{
  border:1px solid #333;background:#fff;padding:11px 12px;font-family:var(--font-sans);font-size:15px;color:#333;}
.order-form textarea{min-height:120px;resize:vertical;}
.order-form .choice{display:flex;gap:10px;}
.order-form .choice .opt{border:1px solid #333;padding:8px 22px;cursor:pointer;font-size:15px;background:#fff;}
.order-form .inline{display:flex;align-items:center;gap:10px;font-size:15px;}
.order-form .checks{display:flex;flex-direction:column;gap:8px;font-size:13px;color:#555;}
.order-form .submit{align-self:flex-start;background:#c98bcb;border:0;color:#3a2b3a;font-family:var(--font-serif);font-size:20px;letter-spacing:.08em;padding:14px 40px;cursor:pointer;margin-top:8px;}
.order-form .submit--outline{background:transparent;border:1px solid #333;color:#333;}

@media (max-width:860px){
  .detail{grid-template-columns:1fr;}
  .feature-icons{grid-template-columns:1fr;max-width:320px;gap:32px;}
  .related-grid{grid-template-columns:1fr;max-width:360px;margin-inline:auto;}
  .order-form .row{grid-template-columns:1fr;}
}


a {
  text-decoration: none;
}
ul.footer-contact li a {
  font-size: 12px;
}


.primary-nav a:hover::after, .primary-nav a[aria-current="page"]::after {
  opacity: 0;
}

p {
  font-size: 16px;
  line-height: 25px;
  font-weight: 400;
}

.page-intro__lead p {
  margin: 0 auto;
  line-height: 1.5;      
  letter-spacing: 0.1em;
}


.container {
  padding-bottom: 0 !important;
}



.footer-bottom {
    padding-bottom: 40px;
    padding-top: 50px;
}

.page-id-21 .page-intro__title {
    margin-bottom: 20px;
}