/* ============================================================
   Reusable section styles (composable across any page).
   Brand palette: brown #604020 · ink #1a140e · body #3a2e22
   muted #8d663f · line #e7d8c9 · callout #f7f0e8
   ============================================================ */

/* ---- Section header (eyebrow + heading + subheading + meta) ---- */
.sec-header{ padding:56px 24px; }
.sec-header .page-width{ max-width:820px; }
.sec-eyebrow{ display:inline-flex; align-items:center; background:#fff; border:1px solid #e7d8c9; color:#604020; font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; padding:7px 14px; border-radius:100px; margin-bottom:16px; }
.sec-eyebrow svg, .sec-eyebrow .icon{ width:13px; height:13px; margin-right:6px; }
.sec-header h1{ font-family:var(--font-heading--family); font-size:clamp(28px,5vw,46px); font-weight:700; margin:0 0 12px; color:var(--color-foreground-heading); }
.sec-header .sec-sub{ font-size:clamp(15px,2vw,18px); color:var(--color-foreground-muted); max-width:620px; margin:0 auto; line-height:1.65; }
.sec-header .sec-meta{ font-size:13px; color:#8d663f; margin:4px 0 0; }
.sec-header[style*="left"] .sec-sub{ margin:0; }
/* Cream-gradient hero variant (legal pages) */
.sec-header--gradient{ background:linear-gradient(to right,#e7d8c9,#f2e8da,#e7d8c9); border-bottom:1px solid #d0b395; padding:48px 24px 40px; }
.sec-header--gradient h1{ color:#000; }

/* ---- Content blocks (numbered, bullets, callout) ---- */
.content-blocks{ max-width:760px; margin:0 auto; }
.content-blocks .cb-item{ margin-bottom:34px; }
.content-blocks .cb-head{ display:flex; align-items:center; gap:14px; margin-bottom:12px; }
.content-blocks .cb-num{ width:30px; height:30px; border-radius:50%; background:#604020; color:#fff; font-weight:700; font-size:14px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.content-blocks .cb-head h3{ font-family:var(--font-heading--family); font-size:21px; font-weight:700; margin:0; color:#1a140e; }
.content-blocks p{ font-size:14px; line-height:1.75; margin:0 0 14px; color:#3a2e22; }
.content-blocks .cb-list{ list-style:none; margin:0 0 14px; padding:0; display:flex; flex-direction:column; gap:12px; }
.content-blocks .cb-list li{ display:flex; align-items:flex-start; gap:10px; font-size:14px; line-height:1.7; color:#3a2e22; }
.content-blocks .cb-list svg, .content-blocks .cb-list .icon{ width:18px; height:18px; color:#604020; flex-shrink:0; margin-top:2px; }
.content-blocks .cb-callout{ background:#f7f0e8; border:1px solid #e7d8c9; border-radius:14px; padding:20px 22px; margin:8px 0 0; }
.content-blocks .cb-callout-head{ display:flex; align-items:center; gap:9px; font-weight:700; font-size:15px; color:#1a140e; margin-bottom:10px; }
.content-blocks .cb-callout-head svg, .content-blocks .cb-callout-head .icon{ width:18px; height:18px; color:#604020; }
.content-blocks .cb-callout p{ font-size:13px; line-height:1.75; margin:0 0 10px; }
.content-blocks .cb-callout p:last-child{ margin-bottom:0; }

/* ---- Info card (company information) ---- */
.info-card{ border:1px solid #e7d8c9; border-radius:16px; padding:26px 28px; max-width:760px; margin:0 auto; }
.info-card h2{ font-family:var(--font-heading--family); font-size:18px; font-weight:700; color:#1a140e; margin:0 0 14px; }
.info-card p{ margin:0 0 4px; font-size:14px; line-height:1.7; color:#3a2e22; }
.info-card .info-divider{ border:0; border-top:1px solid #e7d8c9; margin:16px 0; }
.info-card .info-contact{ display:flex; flex-wrap:wrap; gap:24px; }
.info-card .info-contact a{ display:inline-flex; align-items:center; gap:8px; font-size:14px; color:#3a2e22; text-decoration:none; }
.info-card .info-contact svg, .info-card .info-contact .icon{ width:16px; height:16px; color:#8d663f; }

/* Contact row (also used standalone inside content_blocks §5) */
.info-contact{ display:flex; flex-wrap:wrap; gap:24px; align-items:center; }
.info-contact a{ display:inline-flex; align-items:center; gap:8px; font-size:14px; color:#3a2e22; text-decoration:none; }
.info-contact svg, .info-contact .icon{ width:16px !important; height:16px !important; color:#8d663f; flex-shrink:0; }

/* ---- Contact cards (colored phone / email / hours) ---- */
.cc-cards{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:20px; }
.cc-card{ border-radius:18px; padding:32px 24px; text-align:center; border:2px solid; text-decoration:none; display:block; transition:box-shadow .2s,transform .2s; }
.cc-card:hover{ box-shadow:0 8px 24px rgba(0,0,0,.10); transform:translateY(-2px); }
.cc-card--a{ background:#f0ebe3; border-color:#d0b395; }
.cc-card--b{ background:#f7f0e8; border-color:#e7d8c9; }
.cc-card--c{ background:#f2e8da; border-color:#d0b395; }
.cc-ico{ width:60px; height:60px; border-radius:50%; margin:0 auto 16px; display:flex; align-items:center; justify-content:center; }
.cc-card--a .cc-ico{ background:#604020; } .cc-card--b .cc-ico{ background:#8d663f; } .cc-card--c .cc-ico{ background:#2e1f0f; }
.cc-ico svg, .cc-ico .icon{ width:28px; height:28px; color:#fff; }
.cc-card h3{ font-size:17px; font-weight:700; color:#000; margin:0 0 8px; }
.cc-card .cc-val{ font-size:16px; font-weight:600; color:#604020; word-break:break-word; margin:0; }
.cc-card .cc-note{ font-size:13px; color:#8d663f; margin-top:6px; }

/* ---- Locations + map (two column) ---- */
.cl-grid{ display:grid; grid-template-columns:1fr 1fr; gap:32px; }
@media (max-width:768px){ .cl-grid{ grid-template-columns:1fr; } }
.cl-card{ background:#fff; border:2px solid #e7d8c9; border-radius:18px; padding:32px; }
.cl-card h2{ font-size:22px; font-weight:700; color:#000; margin:0 0 24px; }
.cl-addr{ display:flex; align-items:flex-start; gap:16px; padding-bottom:24px; border-bottom:1px solid #e7d8c9; margin-bottom:24px; }
.cl-addr-ico{ width:44px; height:44px; border-radius:12px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.cl-addr-ico svg, .cl-addr-ico .icon{ width:22px; height:22px; }
.cl-addr-ico--a{ background:#fff7ed; border:2px solid #fed7aa; }
.cl-addr-ico--a svg, .cl-addr-ico--a .icon{ color:#ea580c; }
.cl-addr-ico--b{ background:#f0fdfa; border:2px solid #99f6e4; }
.cl-addr-ico--b svg, .cl-addr-ico--b .icon{ color:#0d9488; }
.cl-addr-label{ font-size:15px; font-weight:600; color:#000; margin:0 0 4px; }
.cl-addr-text{ font-size:14px; color:#2e1f0f; line-height:1.65; margin:0; }
.cl-quick-label{ font-size:15px; font-weight:600; color:#000; margin:0 0 14px; }
.cl-quick-links{ display:flex; flex-direction:column; gap:10px; margin-bottom:24px; }
.cl-quick-links a{ display:flex; align-items:center; gap:10px; font-size:14px; font-weight:500; color:#2e1f0f; text-decoration:none; word-break:break-all; }
.cl-quick-links svg, .cl-quick-links .icon{ width:18px; height:18px; color:#8d663f; flex-shrink:0; }
.cl-btns{ display:flex; gap:12px; flex-wrap:wrap; padding-top:24px; border-top:1px solid #e7d8c9; }
.cl-btn{ flex:1; min-width:130px; display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:12px 20px; border-radius:10px; font-size:14px; font-weight:600; text-decoration:none; transition:opacity .15s,transform .1s; }
.cl-btn:hover{ opacity:.88; transform:translateY(-1px); }
.cl-btn svg, .cl-btn .icon{ width:18px; height:18px; }
.cl-btn--call{ background:#604020; color:#e7d8c9; }
.cl-btn--email{ background:#2e1f0f; color:#fff; }
.cl-map{ background:#fff; border:2px solid #e7d8c9; border-radius:18px; overflow:hidden; min-height:420px; }
.cl-map iframe{ width:100%; height:100%; min-height:420px; display:block; border:0; }

/* ---- Product feature cards (ingredients) ---- */
.pfc-grid{ display:flex; flex-wrap:wrap; justify-content:center; gap:36px; }
.pfc-card{ background:#fff; border-radius:20px; overflow:hidden; box-shadow:0 4px 20px #d0b39530; transition:box-shadow .25s,transform .25s; display:flex; flex-direction:column; flex:0 0 480px; max-width:520px; width:100%; }
@media (max-width:1100px){ .pfc-card{ flex:0 0 calc(50% - 18px); max-width:calc(50% - 18px); } }
@media (max-width:680px){ .pfc-card{ flex:0 0 100%; max-width:100%; } }
.pfc-card:hover{ box-shadow:0 12px 40px #d0b39530; transform:translateY(-6px); }
.pfc-head{ background:#604020; padding:22px 24px; text-align:center; }
.pfc-head h2{ font-family:var(--font-heading--family); font-size:22px; font-weight:700; color:#e7d8c9; margin:0; }
.pfc-body{ padding:24px; flex:1; display:flex; flex-direction:column; gap:20px; }
.pfc-img{ background:#f2e8da; border-radius:14px; padding:16px; overflow:hidden; }
.pfc-img a{ display:block; }
.pfc-img img{ width:100%; height:auto; object-fit:contain; border-radius:10px; display:block; }
.pfc-details{ background:#f7f0e8; border-left:4px solid #604020; border-radius:0 10px 10px 0; padding:14px 16px; }
.pfc-details-label{ font-size:13px; font-weight:700; color:#2e1f0f; margin:0 0 6px; }
.pfc-details p{ font-size:13px; color:#2e1f0f; line-height:1.7; margin:0; }
.pfc-checklist{ display:flex; flex-direction:column; gap:10px; }
.pfc-check{ display:flex; align-items:flex-start; gap:10px; }
.pfc-check svg, .pfc-check .icon{ width:20px; height:20px; color:#604020; flex-shrink:0; margin-top:1px; }
.pfc-check span{ font-size:14px; color:#2e1f0f; }
.pfc-desc{ background:#f2e8da; border-radius:12px; padding:14px 16px; }
.pfc-desc p{ font-size:13px; color:#2e1f0f; line-height:1.75; margin:0; }
.pfc-btn{ display:inline-flex; align-items:center; justify-content:center; gap:8px; width:100%; padding:14px 24px; background:#604020; color:#e7d8c9; font-size:15px; font-weight:600; border-radius:10px; text-decoration:none; transition:opacity .15s,transform .1s; margin-top:auto; }
.pfc-btn:hover{ opacity:.88; transform:translateY(-1px); }
.pfc-btn svg, .pfc-btn .icon{ width:18px; height:18px; }

/* ---- FAQ subheading ---- */
.faq .faq-sub{ font-size:15px; color:#8d663f; margin:-.25rem 0 1.5rem; }

/* ---- Testimonials ---- */
.tst-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:20px; }
.tst{ border:1px solid var(--color-border); border-radius:16px; padding:26px 24px; background:var(--color-background); margin:0; }
.tst-stars{ display:flex; gap:2px; margin-bottom:12px; }
.tst-stars .icon{ width:18px; height:18px; color:#e0a92e; }
.tst blockquote{ margin:0 0 14px; font-size:15px; line-height:1.7; color:var(--color-foreground); }
.tst figcaption{ font-size:14px; color:var(--color-foreground-heading); }
.tst figcaption strong{ display:block; }
.tst figcaption span{ color:var(--color-foreground-muted); font-size:13px; }

/* ---- Logo strip ---- */
.logo-strip-h{ text-align:center; font-size:12px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--color-foreground-muted); margin:0 0 18px; }
.logo-strip{ display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:36px; }
.logo-strip img{ height:40px; width:auto; object-fit:contain; opacity:.7; filter:grayscale(1); transition:opacity .2s,filter .2s; }
.logo-strip a:hover img, .logo-strip img:hover{ opacity:1; filter:none; }

/* ---- Slideshow (CSS scroll-snap, no JS) ---- */
.slideshow{ display:flex; overflow-x:auto; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; }
.slideshow::-webkit-scrollbar{ height:0; }
.slide{ position:relative; flex:0 0 100%; scroll-snap-align:start; min-height:380px; display:flex; align-items:center; }
.slide-media{ position:absolute; inset:0; }
.slide-media img{ width:100%; height:100%; object-fit:cover; }
.slide-body{ position:relative; width:100%; padding:48px 24px; display:flex; justify-content:center; text-align:center; background:linear-gradient(to top,rgba(0,0,0,.45),rgba(0,0,0,.1)); color:#fff; }
.slide-body h2{ color:#fff; font-size:clamp(24px,4vw,40px); margin:0 0 12px; }
.slide-body p{ color:#fff; font-size:16px; max-width:560px; margin:0 auto 18px; }

/* ============================================================
   Extended section library (20 reusable sections)
   ============================================================ */
.page-width > h2 { font-family:var(--font-heading--family); color:var(--color-foreground-heading); }

/* CTA banner */
.cta-band{ display:flex; align-items:center; justify-content:space-between; gap:1.5rem; flex-wrap:wrap; }
.cta-band h2{ margin:0 0 .35rem; }
.cta-band p{ margin:0; opacity:.85; max-width:560px; }

/* Image banner */
.img-banner{ position:relative; display:flex; align-items:center; overflow:hidden; }
.img-banner__bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.img-banner__bg img{ width:100%; height:100%; object-fit:cover; }
.img-banner__ov{ position:absolute; inset:0; }
.img-banner__inner{ position:relative; width:100%; padding:48px 24px; color:#fff; }
.img-banner__inner > div{ max-width:600px; }
.img-banner--center .img-banner__inner > div{ margin:0 auto; }
.img-banner--right .img-banner__inner > div{ margin-left:auto; }
.img-banner h2{ color:#fff; font-size:clamp(26px,4vw,42px); margin:0 0 .6rem; }
.img-banner p{ color:#fff; font-size:17px; margin:0 0 1.25rem; opacity:.95; }

/* Stats */
.stats-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:24px; text-align:center; }
.stat-num{ font-family:var(--font-heading--family); font-size:clamp(34px,5vw,52px); font-weight:700; color:var(--color-primary); line-height:1; }
.stat-label{ margin-top:.5rem; color:var(--color-foreground-muted); font-size:14px; }

/* Steps */
.steps-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:24px; }
.step-item{ text-align:center; }
.step-num{ width:46px; height:46px; border-radius:50%; background:var(--color-primary); color:#fff; font-weight:700; font-size:18px; display:inline-flex; align-items:center; justify-content:center; margin-bottom:14px; }
.step-item h3{ font-size:18px; margin:0 0 .4rem; color:var(--color-foreground-heading); }
.step-item p{ font-size:14px; color:var(--color-foreground); line-height:1.6; margin:0; }

/* Feature checklist */
.fcheck{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:12px 28px; }
.fcheck li{ display:flex; align-items:flex-start; gap:10px; font-size:15px; line-height:1.55; color:var(--color-foreground); }
.fcheck svg, .fcheck .icon{ width:20px; height:20px; color:var(--color-primary); flex-shrink:0; margin-top:1px; }
@media(max-width:640px){ .fcheck{ grid-template-columns:1fr; } }

/* Gallery */
.gallery-grid{ display:grid; gap:12px; }
.gallery-cell{ aspect-ratio:1/1; border-radius:12px; overflow:hidden; background:#eee; }
.gallery-cell img{ width:100%; height:100%; object-fit:cover; transition:transform .3s; }
.gallery-cell img:hover{ transform:scale(1.04); }

/* Video */
.video-wrap{ position:relative; aspect-ratio:16/9; border-radius:14px; overflow:hidden; background:#000; }
.video-wrap iframe, .video-wrap video{ position:absolute; inset:0; width:100%; height:100%; border:0; }

/* Tabs */
.tabs-btns{ display:flex; flex-wrap:wrap; gap:6px; justify-content:center; margin-bottom:1.25rem; border-bottom:1px solid var(--color-border); }
.tabs-btn{ background:none; border:none; padding:.7rem 1.1rem; font:inherit; font-size:15px; color:var(--color-foreground-muted); cursor:pointer; border-bottom:2px solid transparent; margin-bottom:-1px; }
.tabs-btn.on{ color:var(--color-primary); border-bottom-color:var(--color-primary); font-weight:600; }
.tabs-panel{ display:none; } .tabs-panel.on{ display:block; }

/* Countdown */
.countdown{ display:inline-flex; gap:14px; }
.cd-unit{ background:var(--color-background); border:1px solid var(--color-border); border-radius:12px; padding:14px 18px; min-width:72px; }
.cd-unit b{ font-family:var(--font-heading--family); font-size:32px; display:block; line-height:1; color:var(--color-foreground-heading); }
.cd-unit span{ font-size:12px; text-transform:uppercase; letter-spacing:.08em; color:var(--color-foreground-muted); }

/* Marquee */
.marquee{ position:relative; white-space:nowrap; }
.mq-track{ display:inline-flex; align-items:center; gap:18px; animation:mq var(--mq,25s) linear infinite; }
.mq-item{ font-weight:600; font-size:14px; letter-spacing:.02em; }
.mq-dot{ opacity:.5; }
@keyframes mq{ from{transform:translateX(0);} to{transform:translateX(-50%);} }

/* Multi column */
.mcol-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:28px; }
.mcol-ico{ width:42px; height:42px; margin-bottom:10px; color:var(--color-primary); }
.mcol-ico .icon{ width:32px; height:32px; }
.mcol h3{ font-size:18px; margin:0 0 .5rem; color:var(--color-foreground-heading); }
.mcol p{ font-size:14px; line-height:1.65; color:var(--color-foreground); margin:0; }

/* Benefit grid */
.benefit-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:24px; text-align:center; }
.benefit-ico{ width:60px; height:60px; border-radius:50%; background:rgb(var(--color-primary-rgb)/.10); display:flex; align-items:center; justify-content:center; margin:0 auto 14px; }
.benefit-ico .icon{ width:28px; height:28px; color:var(--color-primary); }
.benefit h3{ font-size:17px; margin:0 0 .4rem; color:var(--color-foreground-heading); }
.benefit p{ font-size:14px; color:var(--color-foreground); line-height:1.6; margin:0; }

/* Guarantee row */
.guarantee-row{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:18px; }
.guarantee{ display:flex; align-items:center; gap:12px; }
.guarantee-ico{ width:44px; height:44px; border-radius:12px; background:rgb(var(--color-primary-rgb)/.10); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.guarantee-ico .icon{ width:24px; height:24px; color:var(--color-primary); }
.guarantee strong{ display:block; font-size:14px; color:var(--color-foreground-heading); }
.guarantee span{ font-size:13px; color:var(--color-foreground-muted); }

/* Team */
.team-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:24px; text-align:center; }
.team-photo{ width:120px; height:120px; border-radius:50%; overflow:hidden; margin:0 auto 14px; background:#eee; }
.team-photo img{ width:100%; height:100%; object-fit:cover; }
.team-card h3{ font-size:17px; margin:0; color:var(--color-foreground-heading); }
.team-role{ color:var(--color-primary); font-size:13px; font-weight:600; margin:.2rem 0 .5rem; }
.team-bio{ font-size:13px; color:var(--color-foreground-muted); line-height:1.6; margin:0; }

/* Timeline */
.timeline{ position:relative; padding-left:28px; }
.timeline::before{ content:""; position:absolute; left:7px; top:6px; bottom:6px; width:2px; background:var(--color-border); }
.tl-item{ position:relative; padding-bottom:26px; }
.tl-dot{ position:absolute; left:-28px; top:4px; width:16px; height:16px; border-radius:50%; background:var(--color-primary); border:3px solid var(--color-background); }
.tl-date{ font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--color-primary); }
.tl-body h3{ font-size:17px; margin:.15rem 0 .35rem; color:var(--color-foreground-heading); }
.tl-body p{ font-size:14px; color:var(--color-foreground); line-height:1.6; margin:0; }

/* Highlighted quote */
.qhl{ max-width:760px; text-align:center; }
.qhl-stars{ display:flex; justify-content:center; gap:3px; margin-bottom:1rem; }
.qhl-stars .icon{ width:22px; height:22px; color:#e0a92e; }
.qhl blockquote{ font-family:var(--font-heading--family); font-size:clamp(20px,3vw,30px); line-height:1.4; margin:0 0 1.5rem; color:var(--color-foreground-heading); }
.qhl-author{ display:inline-flex; align-items:center; gap:12px; }
.qhl-author img{ width:48px; height:48px; border-radius:50%; object-fit:cover; }
.qhl-author strong{ display:block; color:var(--color-foreground-heading); }
.qhl-author span{ font-size:13px; color:var(--color-foreground-muted); }

/* Social follow */
.social-row{ display:flex; flex-wrap:wrap; gap:10px; justify-content:center; }
.social-pill{ display:inline-flex; align-items:center; padding:.55rem 1.1rem; border:1px solid var(--color-border); border-radius:100px; font-size:14px; font-weight:600; color:var(--color-foreground); text-decoration:none; transition:all .15s; }
.social-pill:hover{ border-color:var(--color-primary); color:var(--color-primary); }

/* Comparison table */
.compare-table{ width:100%; border-collapse:collapse; }
.compare-table th, .compare-table td{ padding:14px 16px; border-bottom:1px solid var(--color-border); text-align:center; font-size:15px; }
.compare-table th:first-child, .compare-table td:first-child{ text-align:left; }
.compare-table thead th{ font-weight:700; color:var(--color-foreground-heading); }
.compare-table .us{ background:rgb(var(--color-primary-rgb)/.06); font-weight:600; }
.cmp-yes .icon{ width:22px; height:22px; color:#1a8a52; }
.cmp-no{ color:#c0392b; font-size:18px; font-weight:700; }

/* Pricing */
.pricing-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:22px; align-items:start; }
.price-card{ border:1px solid var(--color-border); border-radius:18px; padding:30px 26px; background:var(--color-background); text-align:center; }
.price-card.featured{ border-color:var(--color-primary); box-shadow:0 12px 36px rgba(0,0,0,.10); transform:translateY(-6px); }
.price-card h3{ font-size:18px; margin:0 0 .5rem; color:var(--color-foreground-heading); }
.price-amt{ font-family:var(--font-heading--family); font-size:40px; font-weight:700; color:var(--color-foreground-heading); line-height:1; }
.price-amt span{ font-size:14px; font-weight:400; color:var(--color-foreground-muted); }
.price-card ul{ list-style:none; padding:0; margin:1.25rem 0; text-align:left; display:flex; flex-direction:column; gap:10px; }
.price-card li{ display:flex; align-items:flex-start; gap:9px; font-size:14px; color:var(--color-foreground); }
.price-card li .icon{ width:18px; height:18px; color:var(--color-primary); flex-shrink:0; margin-top:1px; }
.price-card .button{ width:100%; }

/* ---- 404 / not found ---- */
.nf{ max-width:560px; margin:0 auto; text-align:center; padding:84px 24px 100px; }
.nf-code{ font-family:var(--font-heading--family); font-size:clamp(80px,17vw,150px); font-weight:700; line-height:1; color:var(--color-primary); opacity:.16; letter-spacing:.02em; }
.nf-title{ font-family:var(--font-heading--family); font-size:clamp(24px,4vw,34px); margin:-.25rem 0 .6rem; color:var(--color-foreground-heading); }
.nf-text{ color:var(--color-foreground-muted); font-size:16px; line-height:1.65; margin:0 auto 1.85rem; max-width:430px; }
.nf-actions{ display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }

/* ---- Product grid section: centered grid or slider, per device ---- */
.pg-wrap{ display:flex; }
.pg-wrap.pg-d-slider, .pg-wrap.pg-m-slider{ -webkit-overflow-scrolling:touch; }
.pg-wrap.pg-d-slider::-webkit-scrollbar, .pg-wrap.pg-m-slider::-webkit-scrollbar{ height:7px; }
.pg-wrap.pg-d-slider::-webkit-scrollbar-thumb, .pg-wrap.pg-m-slider::-webkit-scrollbar-thumb{ background:rgba(0,0,0,.18); border-radius:100px; }

/* Desktop (>= 750px) */
@media (min-width:750px){
  .pg-wrap:not(.pg-d-slider){ flex-wrap:wrap; justify-content:center; gap:1.5rem; margin:0 auto;
    max-width:calc(var(--cols,4) * 300px + (var(--cols,4) - 1) * 1.5rem); }
  /* cards grow to fill the row so 1–2 items look full-size, capped so 3–4 still fit */
  .pg-wrap:not(.pg-d-slider) .product-card{ flex:1 1 260px; max-width:400px; }
  .pg-wrap.pg-d-slider{ flex-wrap:nowrap; gap:1.25rem; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:.75rem; }
  .pg-wrap.pg-d-slider .product-card{ flex:0 0 calc((100% - (var(--cols,4) - 1) * 1.25rem) / var(--cols,4)); min-width:230px; scroll-snap-align:start; }
}

/* Mobile (<= 749px) */
@media (max-width:749px){
  .pg-wrap:not(.pg-m-slider){ flex-wrap:wrap; justify-content:center; gap:1rem; }
  .pg-wrap:not(.pg-m-slider) .product-card{ flex:0 1 320px; max-width:100%; }
  .pg-wrap.pg-m-slider{ flex-wrap:nowrap; gap:1rem; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:.75rem; }
  .pg-wrap.pg-m-slider .product-card{ flex:0 0 80%; scroll-snap-align:start; }
}

/* ============================================================
   Hero library (above-the-fold)
   ============================================================ */
.hero-eyebrow{ display:inline-flex; align-items:center; gap:6px; background:var(--color-background); border:1px solid var(--color-border); color:var(--color-primary); font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; padding:7px 14px; border-radius:100px; margin-bottom:14px; }
.hero-eyebrow svg, .hero-eyebrow .icon{ width:13px; height:13px; }
.hero-eyebrow--light{ background:rgba(255,255,255,.15); border-color:rgba(255,255,255,.35); color:#fff; }
.hero-stars{ display:flex; gap:3px; margin-bottom:12px; }
.hero-stars .icon{ width:18px; height:18px; color:#e0a92e; }
.hero-sub{ font-size:clamp(15px,2vw,18px); line-height:1.6; opacity:.92; margin:0 0 1.5rem; max-width:52ch; }
.hero-cta{ display:flex; flex-wrap:wrap; gap:12px; }
.hero-trust{ font-size:13px; opacity:.8; margin:1rem 0 0; }

/* Split hero */
.hsplit{ display:grid; grid-template-columns:1.05fr 1fr; align-items:stretch; min-height:480px; }
.hsplit--rev{ direction:rtl; } .hsplit--rev > *{ direction:ltr; }
.hsplit__media{ position:relative; min-height:320px; background:#eee; }
.hsplit__media picture, .hsplit__media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.hsplit__content{ display:flex; flex-direction:column; justify-content:center; padding:clamp(28px,5vw,72px); }
.hsplit__content h1{ font-size:clamp(28px,4vw,48px); line-height:1.1; margin:0 0 14px; color:var(--color-foreground-heading); }
@media (max-width:749px){ .hsplit{ grid-template-columns:1fr; } .hsplit--rev{ direction:ltr; } .hsplit__media{ min-height:280px; order:-1; } }

/* Spotlight / video / lead — full-bleed image with overlay */
.hspot{ position:relative; display:flex; overflow:hidden; }
.hspot__bg, .hvid__poster{ position:absolute; inset:0; width:100%; height:100%; }
.hspot__bg img, .hvid__poster img{ width:100%; height:100%; object-fit:cover; }
.hspot__ov{ position:absolute; inset:0; }
.hspot__inner{ position:relative; width:100%; display:flex; padding:clamp(28px,6vw,80px) 24px; color:#fff; }
.hspot--center .hspot__inner{ justify-content:center; text-align:center; }
.hspot--right .hspot__inner{ justify-content:flex-end; text-align:right; }
.hspot__inner > div{ max-width:640px; }
.hspot h1{ color:#fff; font-size:clamp(30px,5vw,56px); line-height:1.08; margin:0 0 14px; }
.hspot .hero-sub{ color:#fff; }
.hspot__badges{ display:flex; flex-wrap:wrap; gap:10px 22px; margin-top:1.5rem; }
.hspot--center .hspot__badges{ justify-content:center; }
.hspot__badge{ display:inline-flex; align-items:center; gap:7px; font-size:13px; font-weight:600; color:#fff; opacity:.95; }
.hspot__badge svg, .hspot__badge .icon{ width:17px; height:17px; }

/* Video hero */
.hvid__bg{ position:absolute; inset:0; overflow:hidden; }
.hvid__bg video, .hvid__bg iframe{ position:absolute; top:50%; left:50%; width:max(100%,177.78vh); height:max(100%,56.25vw); transform:translate(-50%,-50%); object-fit:cover; border:0; pointer-events:none; }
.hvid__poster{ display:none; }
@media (max-width:749px){ .hvid--mimg .hvid__bg{ display:none; } .hvid--mimg .hvid__poster{ display:block; } }

/* Promo band */
.hpromo{ padding-block:clamp(2.5rem,6vw,4.5rem); }
.hpromo__in{ display:flex; flex-direction:column; align-items:flex-start; }
.hpromo--split .hpromo__in{ flex-direction:row; align-items:center; gap:clamp(24px,5vw,56px); }
.hpromo--split.hpromo--rev .hpromo__in{ flex-direction:row-reverse; }
.hpromo__text{ flex:1; }
.hpromo__media{ flex:0 0 42%; }
.hpromo__media img{ width:100%; height:auto; border-radius:16px; display:block; }
.hpromo__tag{ display:inline-block; background:rgba(0,0,0,.12); padding:5px 12px; border-radius:100px; font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; margin-bottom:14px; }
.hpromo h1{ font-size:clamp(28px,4.5vw,52px); line-height:1.1; margin:0 0 14px; }
@media (max-width:749px){ .hpromo--split .hpromo__in, .hpromo--split.hpromo--rev .hpromo__in{ flex-direction:column; align-items:flex-start; } .hpromo__media{ flex-basis:auto; width:100%; } }

/* Lead capture form */
.hlead__form{ display:flex; gap:10px; max-width:460px; flex-wrap:wrap; }
.hspot--center .hlead__form{ margin:0 auto; }
.hlead__form input{ flex:1; min-width:200px; padding:.85rem 1rem; border:0; border-radius:10px; font:inherit; font-size:15px; }
.hlead__msg{ color:#fff; font-size:14px; margin:.6rem 0 0; min-height:1.2em; }

/* Image banner — positionable content box */
.hbanner{ position:relative; display:flex; overflow:hidden; }
.hbanner__bg{ position:absolute; inset:0; width:100%; height:100%; }
.hbanner__bg img{ width:100%; height:100%; object-fit:cover; }
.hbanner__inner{ position:relative; width:100%; display:flex; padding:clamp(28px,5vw,64px) 24px; }
.hbanner--y-top .hbanner__inner{ align-items:flex-start; }
.hbanner--y-middle .hbanner__inner{ align-items:center; }
.hbanner--y-bottom .hbanner__inner{ align-items:flex-end; }
.hbanner--x-left .hbanner__inner{ justify-content:flex-start; text-align:left; }
.hbanner--x-center .hbanner__inner{ justify-content:center; text-align:center; }
.hbanner--x-right .hbanner__inner{ justify-content:flex-end; text-align:right; }
.hbanner__box{ max-width:600px; color:#fff; }
.hbanner__box h1{ color:inherit; font-size:clamp(30px,5vw,56px); line-height:1.08; margin:0 0 14px; }
.hbanner__box .hero-sub{ color:inherit; }
.hbanner__box.is-boxed{ padding:clamp(24px,3vw,40px); border-radius:16px; box-shadow:0 18px 50px rgba(0,0,0,.20); }
.hbanner--x-center .hero-cta{ justify-content:center; }
.hbanner--x-right .hero-cta{ justify-content:flex-end; }
@media (max-width:749px){ .hbanner__inner{ justify-content:center; text-align:center; align-items:flex-end; } .hbanner__box{ max-width:none; } .hbanner--x-center .hero-cta, .hbanner--x-right .hero-cta, .hbanner .hero-cta{ justify-content:center; } }

/* Collage hero */
.hcoll{ display:grid; grid-template-columns:1fr 1.05fr; align-items:center; gap:clamp(24px,5vw,64px); padding:clamp(28px,5vw,72px); min-height:480px; }
.hcoll--rev{ direction:rtl; } .hcoll--rev > *{ direction:ltr; }
.hcoll__content h1{ font-size:clamp(28px,4vw,50px); line-height:1.08; margin:0 0 14px; color:var(--color-foreground-heading); }
.hcoll__media{ position:relative; }
.hcoll__main{ position:relative; border-radius:18px; overflow:hidden; box-shadow:0 20px 50px rgba(0,0,0,.16); aspect-ratio:4/3.4; }
.hcoll__main picture, .hcoll__main img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.hcoll__sub{ position:absolute; right:-18px; bottom:-22px; width:42%; max-width:220px; border-radius:14px; overflow:hidden; border:5px solid #fff; box-shadow:0 16px 36px rgba(0,0,0,.22); }
.hcoll--rev .hcoll__sub{ right:auto; left:-18px; }
.hcoll__sub img{ display:block; width:100%; height:100%; object-fit:cover; }
@media (max-width:749px){ .hcoll{ grid-template-columns:1fr; } .hcoll--rev{ direction:ltr; } .hcoll__media{ order:-1; margin-bottom:24px; } .hcoll__sub{ width:38%; } }

/* Floating card hero */
.hcard{ position:relative; display:flex; overflow:hidden; }
.hcard__bg{ position:absolute; inset:0; width:100%; height:100%; }
.hcard__bg img{ width:100%; height:100%; object-fit:cover; }
.hcard__inner{ position:relative; width:100%; display:flex; align-items:center; padding:clamp(24px,5vw,64px) 24px; }
.hcard--left .hcard__inner{ justify-content:flex-start; }
.hcard--right .hcard__inner{ justify-content:flex-end; }
.hcard__box{ max-width:480px; background:#fff; color:#1d2433; border-radius:18px; padding:clamp(26px,3vw,42px); box-shadow:0 24px 60px rgba(0,0,0,.28); }
.hcard__box h1{ color:inherit; font-size:clamp(26px,3.4vw,44px); line-height:1.1; margin:0 0 12px; }
.hcard__box .hero-sub{ color:inherit; opacity:.85; }
.hcard--glass .hcard__box{ background:rgba(255,255,255,.82); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); border:1px solid rgba(255,255,255,.4); }
@media (max-width:749px){ .hcard__inner{ justify-content:center; } .hcard__box{ max-width:none; width:100%; } }

/* Feature split hero */
.hfeat{ display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:clamp(24px,5vw,64px); padding:clamp(28px,5vw,72px); min-height:460px; }
.hfeat--rev{ direction:rtl; } .hfeat--rev > *{ direction:ltr; }
.hfeat__media{ position:relative; border-radius:18px; overflow:hidden; aspect-ratio:4/3.2; box-shadow:0 18px 44px rgba(0,0,0,.14); }
.hfeat__media picture, .hfeat__media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.hfeat__content h1{ font-size:clamp(28px,4vw,50px); line-height:1.08; margin:0 0 14px; color:var(--color-foreground-heading); }
.hfeat__list{ display:flex; flex-wrap:wrap; gap:12px 26px; margin-top:1.6rem; padding-top:1.4rem; border-top:1px solid rgba(0,0,0,.10); }
.hfeat__item{ display:inline-flex; align-items:center; gap:9px; font-size:14px; font-weight:600; }
.hfeat__item svg, .hfeat__item .icon{ width:20px; height:20px; flex-shrink:0; color:var(--color-primary,#145c3e); }
@media (max-width:749px){ .hfeat{ grid-template-columns:1fr; } .hfeat--rev{ direction:ltr; } .hfeat__media{ order:-1; } }

/* ---- Search popup ---- */
.search-modal{ position:fixed; inset:0; z-index:120; display:none; }
.search-modal.is-open{ display:block; }
.search-modal__overlay{ position:absolute; inset:0; background:rgba(15,20,25,.45); backdrop-filter:blur(2px); }
.search-modal__panel{ position:relative; max-width:620px; margin:8vh auto 0; background:#fff; border-radius:16px; box-shadow:0 24px 60px rgba(0,0,0,.28); overflow:hidden; animation:searchpop .18s ease; }
@keyframes searchpop{ from{ transform:translateY(-10px); opacity:0; } to{ transform:none; opacity:1; } }
.search-modal__bar{ display:flex; align-items:center; gap:.7rem; padding:1rem 1.2rem; border-bottom:1px solid #eee; }
.search-modal__bar svg{ width:20px; height:20px; color:#888; flex-shrink:0; }
.search-modal__bar input{ flex:1; border:0; outline:0; font-size:17px; font-family:var(--font-body--family); background:transparent; color:#1a140e; }
.search-modal__bar button{ background:none; border:0; cursor:pointer; color:#999; width:30px; height:30px; display:flex; align-items:center; justify-content:center; border-radius:8px; }
.search-modal__bar button:hover{ background:#f2f2f2; color:#333; }
.search-modal__results{ max-height:60vh; overflow-y:auto; padding:.5rem; }
.search-modal__hint, .search-modal__empty{ color:#9aa1ab; font-size:14px; text-align:center; padding:1.6rem 1rem; margin:0; }
.search-res{ display:flex; align-items:center; gap:.85rem; padding:.6rem .75rem; border-radius:10px; text-decoration:none; color:inherit; }
.search-res:hover{ background:#f6f7f8; }
.search-res__img{ width:46px; height:46px; border-radius:8px; object-fit:cover; background:#eee; flex-shrink:0; }
.search-res__img--blank{ display:flex; align-items:center; justify-content:center; color:#b3bac4; }
.search-res__main{ flex:1; min-width:0; }
.search-res__title{ font-size:15px; font-weight:600; color:#1a140e; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.search-res__type{ font-size:12px; color:#8d663f; text-transform:uppercase; letter-spacing:.05em; }
.search-res__price{ font-size:14px; font-weight:600; color:#1a140e; }

/* ---- Announcement bar ---- */
.announce-bar{ font-size:13px; font-weight:500; }
.announce-inner{ display:flex; align-items:center; justify-content:center; gap:10px; padding:9px 24px; text-align:center; flex-wrap:wrap; }
.announce-inner a{ font-weight:700; text-decoration:underline; }

/* ---- Map (standalone) ---- */
.map-embed{ border:1px solid #e7d8c9; border-radius:16px; overflow:hidden; min-height:360px; }
.map-embed iframe{ width:100%; height:100%; min-height:360px; border:0; display:block; }

/* ---- Cards (generic icon/image + title + text) ---- */
.card-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:20px; }
.ucard{ border:1px solid var(--color-border); border-radius:16px; padding:28px 22px; text-align:center; background:var(--color-background); display:flex; flex-direction:column; align-items:center; }
.ucard-ico{ width:60px; height:60px; border-radius:50%; background:rgb(var(--color-primary-rgb)/.10); display:flex; align-items:center; justify-content:center; margin-bottom:14px; }
.ucard-ico .icon{ width:28px; height:28px; color:var(--color-primary); }
.ucard-img{ width:100%; aspect-ratio:1/1; border-radius:12px; overflow:hidden; background:#eee; margin-bottom:14px; }
.ucard-img img{ width:100%; height:100%; object-fit:cover; }
.ucard h3{ font-size:17px; font-weight:700; margin:0 0 6px; color:var(--color-foreground-heading); }
.ucard p{ font-size:14px; color:var(--color-foreground); line-height:1.6; margin:0; }
