/* ============================================================
   SOFAMASTER — Brand Design System
   Signature device: "The Selvage" — a running strip referencing
   the finished woven edge of a fabric bolt, and a hero built as
   a literal flip of the chocolate/crema business card.
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Sorts+Mill+Goudy:ital@0;1&family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap');

:root{
  --chocolate:#43342D;
  --crema:#FDF6E4;
  --cielo:#BCD7DE;
  --navy:#243956;

  --chocolate-70: rgba(67,52,45,0.7);
  --chocolate-40: rgba(67,52,45,0.4);
  --chocolate-15: rgba(67,52,45,0.15);
  --chocolate-08: rgba(67,52,45,0.08);
  --crema-70: rgba(253,246,228,0.7);
  --crema-40: rgba(253,246,228,0.4);

  --serif:'Sorts Mill Goudy', Georgia, serif;
  --sans:'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, sans-serif;
  --maxw: 1240px;
}

*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }
body{
  font-family:var(--sans);
  color:var(--chocolate);
  background:var(--crema);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; }
.wrap{ max-width:var(--maxw); margin:0 auto; padding:0 32px; }
@media(max-width:640px){ .wrap{ padding:0 20px; } }

h1,h2,h3,h4{ font-family:var(--serif); font-weight:400; letter-spacing:0.1px; }
em, i{ font-style:italic; }

.eyebrow{
  font-family:var(--sans); font-weight:800; font-size:11.5px; letter-spacing:3px;
  text-transform:uppercase; opacity:0.65; display:inline-block; margin-bottom:16px;
}

section{ padding:120px 0; }
.section-tight{ padding:80px 0; }
@media(max-width:900px){ section{ padding:76px 0; } .section-tight{ padding:56px 0; } }

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--sans); font-weight:700; font-size:13.5px;
  padding:16px 30px; border-radius:1px; cursor:pointer;
  border:1.5px solid currentColor; letter-spacing:0.4px; text-transform:uppercase;
  transition:background .25s ease, color .25s ease, border-color .25s ease;
  white-space:nowrap;
}
.btn-dark{ background:var(--chocolate); color:var(--crema); border-color:var(--chocolate); }
.btn-dark:hover{ background:var(--navy); border-color:var(--navy); }
.btn-outline-dark{ background:transparent; color:var(--chocolate); border-color:var(--chocolate); }
.btn-outline-dark:hover{ background:var(--chocolate); color:var(--crema); }
.btn-light{ background:var(--crema); color:var(--chocolate); border-color:var(--crema); }
.btn-light:hover{ background:transparent; color:var(--crema); }
.btn-outline-light{ background:transparent; color:var(--crema); border-color:var(--crema-40); }
.btn-outline-light:hover{ border-color:var(--crema); }
.btn-cielo{ background:var(--cielo); color:var(--chocolate); border-color:var(--cielo); }
.btn-cielo:hover{ background:transparent; color:var(--chocolate); border-color:var(--chocolate); }

/* ---------- Header / Nav ---------- */
header{
  position:sticky; top:0; z-index:200;
  background:var(--crema); border-bottom:1px solid var(--chocolate-15);
}
nav.wrap{ display:flex; align-items:center; height:96px; gap:56px; }
.logo{ display:flex; align-items:center; color:var(--chocolate); }
.logo img{ height:42px; width:auto; display:block; }
.footer-logo{ display:flex; align-items:center; }
.footer-logo img{ height:56px; width:auto; display:block; }
.hero-lockup{ height:auto; width:min(420px, 70%); }
.nav-center{ display:flex; gap:38px; }
.nav-center a{ font-size:12.5px; font-weight:700; letter-spacing:1.4px; text-transform:uppercase; opacity:0.75; position:relative; padding:4px 0; }
.nav-center a:hover{ opacity:1; }
.nav-center a.current{ opacity:1; }
.nav-center a.current::after{ content:""; position:absolute; left:0; right:0; bottom:-3px; height:2px; background:var(--navy); }
.nav-right{ display:flex; align-items:center; gap:20px; margin-left:auto; }
.lang-toggle{ display:flex; border:1.5px solid var(--chocolate); border-radius:20px; overflow:hidden; font-size:11px; }
.lang-toggle a{ padding:6px 13px; font-weight:800; letter-spacing:0.5px; }
.lang-toggle a.active{ background:var(--chocolate); color:var(--crema); }
.burger{ display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:4px; }
.burger span{ width:24px; height:2px; background:var(--chocolate); display:block; }
.mobile-menu{ display:none; flex-direction:column; background:var(--crema); border-bottom:1px solid var(--chocolate-15); }
.mobile-menu.open{ display:flex; }
.mobile-menu a{ padding:18px 20px; font-weight:700; font-size:14px; letter-spacing:0.5px; text-transform:uppercase; border-top:1px solid var(--chocolate-08); }
@media(max-width:920px){ .nav-center{ display:none; } .burger{ display:flex; } }

/* ---------- The Selvage (signature divider) ---------- */
.selvage{
  background:var(--chocolate); color:var(--crema-70);
  overflow:hidden; white-space:nowrap; padding:13px 0;
  border-top:1px solid var(--chocolate); border-bottom:1px solid var(--chocolate);
}
.selvage-track{ display:inline-flex; animation:selvage-scroll 32s linear infinite; }
.selvage-track span{
  font-family:var(--sans); font-weight:700; font-size:11.5px; letter-spacing:3px; text-transform:uppercase;
  padding-right:0;
}
@keyframes selvage-scroll{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
@media(prefers-reduced-motion: reduce){ .selvage-track{ animation:none; } }
.selvage.navy{ background:var(--navy); }
.selvage.cielo{ background:var(--cielo); color:var(--chocolate-70); }

/* ---------- Hero: the card flip ---------- */
.hero-flip{ display:grid; grid-template-columns:1.05fr 0.95fr; min-height:86vh; }
.hero-panel{ display:flex; flex-direction:column; justify-content:center; padding:70px 64px; position:relative; }
.hero-panel.dark{ background:var(--chocolate); color:var(--crema); }
.hero-panel.light{ background:var(--crema); color:var(--chocolate); }
.hero-ghost{
  font-family:var(--serif); font-style:italic; font-size:clamp(90px,14vw,220px);
  color:rgba(253,246,228,0.08); position:absolute; top:50%; left:50%;
  transform:translate(-50%,-52%); white-space:nowrap; pointer-events:none; line-height:1;
}
.hero-panel.dark .eyebrow{ color:var(--cielo); opacity:1; }
.hero-panel.dark p.tagline{ font-family:var(--serif); font-style:italic; font-size:clamp(38px,4.4vw,58px); line-height:1.05; position:relative; z-index:1; }
.hero-panel.light .eyebrow{ color:var(--navy); opacity:1; }
.hero-panel.light h1{ font-size:clamp(34px,4.6vw,54px); line-height:1.06; margin-bottom:22px; }
.hero-panel.light p.lede{ font-size:16.5px; color:var(--chocolate-70); max-width:440px; margin-bottom:34px; }
.hero-ctas{ display:flex; gap:14px; flex-wrap:wrap; }
.hero-photo{ padding:0; position:relative; overflow:hidden; }
.hero-photo-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.hero-photo-overlay{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(67,52,45,0.55) 0%, rgba(67,52,45,0.72) 100%); }
.hero-photo-content{ position:relative; z-index:1; padding:56px 64px; display:flex; flex-direction:column; gap:28px; height:100%; justify-content:flex-start; }
.hero-logo{ height:34px; color:var(--crema); }
@media(max-width:920px){
  .hero-flip{ grid-template-columns:1fr; min-height:auto; }
  .hero-panel{ padding:56px 24px; }
  .hero-panel.dark{ padding-top:64px; padding-bottom:48px; }
  .hero-photo{ min-height:340px; }
  .hero-photo-content{ padding:48px 24px; }
}

/* generic page hero (About/Products/Contact) */
.page-hero{ background:var(--chocolate); color:var(--crema); padding:90px 0 70px; position:relative; overflow:hidden; }
.page-hero .eyebrow{ color:var(--cielo); opacity:1; }
.page-hero h1{ font-size:clamp(40px,6vw,72px); line-height:1.03; max-width:760px; }
.page-hero p.lede{ font-size:17px; color:var(--crema-70); max-width:560px; margin-top:20px; }

/* ---------- Stat ticker ---------- */
.stat-ticker{ display:flex; flex-wrap:wrap; border-top:1px solid var(--chocolate-15); border-bottom:1px solid var(--chocolate-15); }
.stat-item{ flex:1 1 0; min-width:150px; padding:34px 28px; border-right:1px solid var(--chocolate-15); }
.stat-item:last-child{ border-right:none; }
.stat-num{ font-family:var(--serif); font-style:italic; font-size:38px; color:var(--navy); }
.stat-label{ font-size:11.5px; text-transform:uppercase; letter-spacing:1.2px; opacity:0.65; margin-top:4px; font-weight:700; }
@media(max-width:700px){ .stat-item{ flex:1 1 50%; border-right:1px solid var(--chocolate-15); } .stat-item:nth-child(2n){ border-right:none; } }

/* ---------- Audience split (question style) ---------- */
.audience{ background:var(--crema); padding-top:48px; padding-bottom:16px; }
.audience-grid{ display:grid; grid-template-columns:1fr 1fr 1fr; }
.audience-cell{ padding:64px 44px; position:relative; display:flex; flex-direction:column; }
.audience-cell:not(:last-child){ border-right:1px solid var(--chocolate-15); }
.audience-q{ font-family:var(--serif); font-style:italic; font-size:clamp(32px,3.6vw,48px); line-height:1; margin-bottom:20px; }
.audience-cell p{ color:var(--chocolate-70); font-size:15.5px; max-width:400px; margin-bottom:30px; }
.audience-cell .btn{ margin-top:auto; align-self:flex-start; }
@media(max-width:1024px){
  .audience-grid{ grid-template-columns:1fr; }
  .audience-cell:not(:last-child){ border-right:none; border-bottom:1px solid var(--chocolate-15); }
  .audience-cell{ padding:52px 24px; }
}

/* ---------- Section head ---------- */
.section-head{ max-width:620px; margin-bottom:56px; }
.section-head h2{ font-size:clamp(32px,4.4vw,50px); line-height:1.05; }
.section-head p{ color:var(--chocolate-70); font-size:16px; margin-top:16px; }
.section-head.on-dark h2, .section-head.on-dark .eyebrow{ color:var(--crema); opacity:1;}
.section-head.on-dark p{ color:var(--crema-70); }

/* ---------- Pinked swatch (used sparingly, product/detail pages) ---------- */
.pinked{ position:relative; }
.pinked::before, .pinked::after{
  content:""; position:absolute; left:0; right:0; height:10px;
  background-image:
    linear-gradient(45deg, var(--cut-color,var(--crema)) 50%, transparent 50%),
    linear-gradient(-45deg, var(--cut-color,var(--crema)) 50%, transparent 50%);
  background-size:10px 10px; background-repeat:repeat-x;
}
.pinked::before{ top:-1px; background-position:top left, top right; }
.pinked::after{ bottom:-1px; background-position:bottom left, bottom right; transform:scaleY(-1); }

/* ---------- Filmstrip (product teaser) ---------- */
.filmstrip{ display:flex; gap:16px; overflow-x:auto; padding-bottom:12px; scrollbar-width:thin; }
.film-card{
  --cut-color:var(--crema);
  flex:0 0 auto; width:210px; background:var(--navy); color:var(--crema);
  padding:24px 20px 28px; text-align:center;
}
.film-card.soon{ background:var(--cielo); color:var(--chocolate); }
.film-card .name{ font-family:var(--serif); font-size:19px; }
.film-card .tag{ display:block; margin-top:6px; font-size:10px; letter-spacing:1.5px; text-transform:uppercase; opacity:0.7; font-weight:700; }

/* ---------- Pillars (why us) ---------- */
.pillars{ display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--chocolate-15); }
.pillar{ padding:38px 30px; border-right:1px solid var(--chocolate-15); }
.pillar:last-child{ border-right:none; }
.pillar .idx{ font-family:var(--serif); font-style:italic; color:var(--navy); font-size:15px; }
.pillar h4{ font-size:19px; margin:12px 0 10px; }
.pillar p{ font-size:14px; color:var(--chocolate-70); }
@media(max-width:900px){ .pillars{ grid-template-columns:1fr 1fr; } .pillar{ border-bottom:1px solid var(--chocolate-15); } .pillar:nth-child(2n){ border-right:none; } }
@media(max-width:560px){ .pillars{ grid-template-columns:1fr; } .pillar{ border-right:none; } }

/* ---------- Retailer wall ---------- */
.retailer-wall{ background:var(--navy); color:var(--crema); }
.retailer-wall .section-head h2{ color:var(--crema); }
.retailer-wall .section-head p{ color:var(--crema-70); }
.wall{ display:flex; flex-wrap:wrap; gap:0; border-top:1px solid rgba(253,246,228,0.2); border-left:1px solid rgba(253,246,228,0.2); }
.wall-item{
  flex:1 1 220px; padding:26px 22px; border-right:1px solid rgba(253,246,228,0.2); border-bottom:1px solid rgba(253,246,228,0.2);
  font-family:var(--serif); font-size:19px; display:flex; align-items:center; min-height:80px;
}

/* ---------- CTA band ---------- */
.cta-band{ background:var(--cielo); color:var(--chocolate); text-align:center; padding:90px 0; }
.cta-band h2{ font-size:clamp(30px,4.4vw,48px); margin-bottom:26px; }
.cta-band-actions{ display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }

/* ---------- Timeline (about) ---------- */
.timeline{ position:relative; padding-left:36px; border-left:2px solid var(--chocolate-15); }
.tl-item{ position:relative; padding-bottom:44px; }
.tl-item:last-child{ padding-bottom:0; }
.tl-item::before{ content:""; position:absolute; left:-42px; top:4px; width:11px; height:11px; border-radius:50%; background:var(--navy); }
.tl-year{ font-family:var(--serif); font-style:italic; color:var(--navy); font-size:22px; }
.tl-item p{ color:var(--chocolate-70); margin-top:6px; font-size:15px; max-width:520px; }

/* ---------- Two-col content blocks ---------- */
.content-split{ display:grid; grid-template-columns:0.9fr 1.1fr; gap:70px; align-items:start; }
@media(max-width:900px){ .content-split{ grid-template-columns:1fr; gap:36px; } }
.content-split p{ color:var(--chocolate-70); font-size:16px; margin-bottom:16px; }
.mission-quote{ border-left:3px solid var(--navy); padding-left:22px; font-family:var(--serif); font-style:italic; font-size:19px; margin-top:24px; }

/* ---------- Product detail grid ---------- */
.detail-grid{ display:flex; flex-wrap:wrap; justify-content:center; gap:2px; background:var(--chocolate-15); }
.detail-card{ background:var(--crema); padding:34px 28px; flex:1 1 calc(33.333% - 2px); min-width:260px; }
.detail-card .name{ font-family:var(--serif); font-size:24px; margin-bottom:8px; }
.detail-card p{ font-size:14px; color:var(--chocolate-70); }
.detail-card.soon{ background:var(--cielo); }
@media(max-width:900px){ .detail-card{ flex:1 1 calc(50% - 2px); } }
@media(max-width:560px){ .detail-card{ flex:1 1 100%; } }

/* ---------- Materials / difference list (products page) ---------- */
.feature-row{ display:grid; grid-template-columns:0.4fr 1.6fr; gap:26px; padding:30px 0; border-top:1px solid var(--chocolate-15); align-items:start; }
.feature-row:last-child{ border-bottom:1px solid var(--chocolate-15); }
.feature-row .fnum{ font-family:var(--serif); font-style:italic; font-size:20px; color:var(--navy); }
.feature-row h4{ font-size:21px; margin-bottom:8px; }
.feature-row p{ color:var(--chocolate-70); font-size:15px; max-width:560px; }
@media(max-width:700px){ .feature-row{ grid-template-columns:1fr; gap:8px; } }

/* ---------- Forms (contact) ---------- */
.contact-grid{ display:grid; grid-template-columns:1fr; border:1px solid var(--chocolate-15); }
.contact-panel{ padding:56px 48px; }
.contact-panel:not(:last-child){ border-bottom:1px solid var(--chocolate-15); }
.contact-panel.shade{ background:#F5EBD2; }
.contact-panel h3{ font-size:29px; margin:8px 0 14px; }
.contact-panel .desc{ color:var(--chocolate-70); font-size:15px; margin-bottom:24px; }
.disclaimer{ background:rgba(188,215,222,0.4); border-left:3px solid var(--navy); padding:13px 16px; font-size:13.5px; margin-bottom:24px; }
form{ display:flex; flex-direction:column; gap:14px; }
label{ font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:1.2px; opacity:0.65; margin-bottom:-8px; }
input, textarea{
  font-family:var(--sans); font-size:15px; padding:13px 14px; border:1.5px solid var(--chocolate-15);
  background:var(--crema); color:var(--chocolate); border-radius:1px;
}
input:focus, textarea:focus{ outline:2px solid var(--navy); outline-offset:1px; border-color:var(--navy); }
textarea{ min-height:96px; resize:vertical; }
.form-msg{ display:none; font-size:14px; font-weight:700; color:var(--navy); margin-top:4px; }
.form-msg.show{ display:block; }
@media(max-width:820px){ .contact-panel{ padding:44px 24px; } }

.info-strip{ display:flex; flex-wrap:wrap; gap:40px; padding:44px 0; }
.info-block h5{ font-size:11px; text-transform:uppercase; letter-spacing:1.4px; opacity:0.6; margin-bottom:10px; font-weight:800; }
.info-block p, .info-block a{ font-size:15px; margin-bottom:4px; }

/* ---------- Footer ---------- */
footer{ background:var(--chocolate); color:var(--crema); padding:70px 0 30px; }
.footer-top{ display:grid; grid-template-columns:1.3fr 1fr 1fr 1fr; gap:40px; margin-bottom:50px; }
.footer-logo{ font-family:var(--serif); font-size:29px; }
.footer-sub{ font-family:var(--sans); font-weight:700; text-transform:uppercase; letter-spacing:2px; opacity:0.75; margin-top:10px; font-size:11px; }
.footer-col h5{ font-size:11px; text-transform:uppercase; letter-spacing:1.4px; margin-bottom:16px; opacity:0.6; font-weight:800; }
.footer-col a, .footer-col p{ font-size:14px; opacity:0.88; display:block; margin-bottom:10px; font-family:var(--sans); color:var(--crema); }
.footer-col a:hover{ opacity:1; text-decoration:underline; }
.footer-col .footer-name{ font-weight:700; opacity:1; margin-bottom:8px; }
.footer-bottom{ border-top:1px solid rgba(253,246,228,0.18); padding-top:24px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-size:12px; opacity:0.6; }
@media(max-width:820px){ .footer-top{ grid-template-columns:1fr 1fr; } }
@media(max-width:520px){ .footer-top{ grid-template-columns:1fr; } }

/* ---------- Photo gallery ---------- */
.gallery-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.gallery-grid img{ width:100%; height:290px; object-fit:cover; border-radius:1px; cursor:pointer; transition:opacity .2s ease; }
.gallery-grid img:hover{ opacity:0.85; }
.gallery-grid .tall{ height:604px; grid-row:span 2; }
@media(max-width:900px){ .gallery-grid{ grid-template-columns:repeat(2,1fr); } .gallery-grid .tall{ height:290px; grid-row:auto; } }
@media(max-width:560px){ .gallery-grid{ grid-template-columns:1fr; } }

.gallery-strip{ display:flex; gap:14px; overflow-x:auto; padding-bottom:10px; }
.gallery-strip img{ flex:0 0 auto; width:320px; height:230px; object-fit:cover; border-radius:1px; }

.img-placeholder{
  width:100%; height:180px; margin-bottom:16px; background:#F5EBD2;
  border:1px dashed var(--chocolate-15);
  display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; gap:8px; padding:16px;
}
.img-placeholder .ph-icon{ font-size:20px; opacity:0.35; }
.img-placeholder span{ font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:1px; color:var(--chocolate); opacity:0.5; }

.lightbox-overlay{
  display:none; position:fixed; inset:0; z-index:1000; background:rgba(67,52,45,0.94);
  align-items:center; justify-content:center; padding:40px;
}
.lightbox-overlay.open{ display:flex; }
.lightbox-overlay img{ max-width:100%; max-height:100%; object-fit:contain; box-shadow:0 20px 60px rgba(0,0,0,0.4); }
.lightbox-close{
  position:absolute; top:24px; right:32px; background:none; border:none; color:var(--crema);
  font-size:40px; line-height:1; cursor:pointer; font-family:var(--sans); font-weight:300;
}
@media(max-width:600px){ .lightbox-overlay{ padding:16px; } .lightbox-close{ top:12px; right:16px; font-size:32px; } }

/* ---------- Map ---------- */
.map-frame{ border:1px solid var(--chocolate-15); background:var(--crema); padding:28px; box-shadow:0 20px 50px rgba(67,52,45,0.12); border-radius:2px; }
.map-frame img{ width:100%; height:auto; display:block; }

/* ---------- Video embed ---------- */
.video-frame{ position:relative; width:100%; padding-top:56.25%; background:var(--chocolate); overflow:hidden; }
.video-frame iframe, .video-frame video{ position:absolute; inset:0; width:100%; height:100%; border:0; }
.video-placeholder{
  position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center;
  color:var(--crema-70); text-align:center; padding:20px; gap:10px;
}
.video-placeholder .play-ring{ width:64px; height:64px; border:1.5px solid var(--crema-40); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:22px; }

/* ---------- Build steps (design your set) ---------- */
.step-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:2px; background:var(--chocolate-15); }
.step-card{ background:var(--crema); padding:36px 26px; }
.step-card .step-num{ font-family:var(--serif); font-style:italic; font-size:32px; color:var(--navy); }
.step-card h4{ font-size:19px; margin:14px 0 8px; }
.step-card p{ font-size:14px; color:var(--chocolate-70); }
@media(max-width:900px){ .step-grid{ grid-template-columns:1fr 1fr; } }
@media(max-width:560px){ .step-grid{ grid-template-columns:1fr; } }

/* ---------- Materials list ---------- */
.materials-list{ display:grid; grid-template-columns:1fr 1fr; gap:34px 60px; }
.materials-list .mrow{ border-top:1px solid var(--chocolate-15); padding-top:16px; }
.materials-list h5{ font-family:var(--serif); font-size:20px; margin-bottom:8px; }
.materials-list p{ font-size:14.5px; color:var(--chocolate-70); }
@media(max-width:700px){ .materials-list{ grid-template-columns:1fr; } }

.swatch-form{ display:grid; grid-template-columns:1fr 1fr; gap:18px 24px; margin-top:8px; }
.swatch-form .full{ grid-column:1/-1; }
.swatch-form label{ margin-bottom:0; }
.swatch-form input, .swatch-form textarea{ width:100%; }
.swatch-form button{ margin-top:4px; }
@media(max-width:640px){ .swatch-form{ grid-template-columns:1fr; } }
.form-row-2{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
@media(max-width:560px){ .form-row-2{ grid-template-columns:1fr; } }

/* ---------- Spec tables (materials & construction) ---------- */
.spec-section{ margin-bottom:48px; }
.spec-section:last-child{ margin-bottom:0; }
.spec-header{ background:var(--navy); color:var(--crema); padding:12px 20px; font-weight:800; font-size:12.5px; letter-spacing:1.8px; text-transform:uppercase; }
.spec-table{ border:1px solid var(--chocolate-15); border-top:none; }
.spec-row{ display:grid; grid-template-columns:300px 1fr; gap:24px; padding:16px 20px; border-bottom:1px solid var(--chocolate-15); }
.spec-row:last-child{ border-bottom:none; }
.spec-row:nth-child(even){ background:rgba(67,52,45,0.035); }
.spec-feature{ font-weight:700; font-size:14px; }
.spec-benefit{ font-size:13.5px; color:var(--chocolate-70); }
@media(max-width:700px){ .spec-row{ grid-template-columns:1fr; gap:6px; padding:16px; } }

/* ---------- Contact info cards ---------- */
.contact-cards{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--chocolate-15); border:1px solid var(--chocolate-15); }
.contact-card{ background:var(--crema); padding:38px 30px; }
.contact-card .cc-icon{ font-size:20px; color:var(--navy); margin-bottom:16px; display:block; }
.contact-card h5{ font-size:11px; text-transform:uppercase; letter-spacing:1.4px; opacity:0.6; font-weight:800; margin-bottom:10px; }
.contact-card a, .contact-card span.cc-value{ font-size:16px; font-weight:600; color:var(--chocolate); display:block; text-decoration:none; }
.contact-card a:hover{ color:var(--navy); }
.contact-card .cc-sub{ display:block; margin-top:4px; font-size:14px; font-weight:500; opacity:0.85; }
@media(max-width:820px){ .contact-cards{ grid-template-columns:1fr 1fr; } }
@media(max-width:520px){ .contact-cards{ grid-template-columns:1fr; } }

.visually-hidden{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }
:focus-visible{ outline:2px solid var(--navy); outline-offset:2px; }
