/*
Theme Name: Comfort Furniture
Theme URI: https://comfortfurniture.pk
Author: Comfort Furniture
Author URI: https://comfortfurniture.pk
Description: A custom theme for Comfort Furniture — handcrafted Chinioti Sheesham wood furniture. Warm walnut/gold/cream design with a mobile-friendly menu, WhatsApp contact buttons, and dedicated pages for About, Shop by Room, Collection, Craftsmanship, and FAQ.
Version: 2.0
Requires at least: 5.9
Requires PHP: 7.4
Text Domain: comfort-furniture
*/

:root{
    --cream: #FAF6EE;
    --cream-deep: #F1E9DA;
    --card: #FFFDF9;
    --ink: #2A1D14;
    --ink-soft: #6B5D4F;
    --walnut: #3E2723;
    --walnut-mid: #5C3A28;
    --gold: #A9823F;
    --gold-soft: #D8C08F;
    --line: rgba(62,39,35,0.14);
    --shadow: 0 20px 40px -24px rgba(42,29,20,0.35);
  }

  *{ box-sizing:border-box; margin:0; padding:0; }
  html{ scroll-behavior:smooth; }

  body{
    background:var(--cream);
    color:var(--ink);
    font-family:'Manrope', sans-serif;
    font-weight:400;
    line-height:1.65;
    -webkit-font-smoothing:antialiased;
  }

  img{ max-width:100%; display:block; }
  a{ color:inherit; text-decoration:none; }

  .wrap{ max-width:1320px; margin:0 auto; padding:0 32px; }

  h1,h2,h3{
    font-family:'Fraunces', serif;
    color:var(--walnut);
    font-weight:600;
    letter-spacing:0.2px;
  }
  h1{ font-size:clamp(2.3rem, 4.4vw, 3.4rem); line-height:1.14; }
  h2{ font-size:clamp(1.7rem, 2.9vw, 2.3rem); line-height:1.24; }
  h3{ font-size:1.15rem; line-height:1.4; }
  p{ max-width:60ch; color:var(--ink-soft); }

  .btn{
    display:inline-flex; align-items:center; gap:10px;
    padding:14px 28px; border-radius:2px;
    font-family:'Manrope', sans-serif; font-size:0.94rem; font-weight:600;
    border:1px solid transparent; cursor:pointer;
    transition:transform .25s ease, box-shadow .25s ease, background .25s ease;
  }
  .btn-primary{ background:var(--walnut); color:var(--cream); }
  .btn-primary:hover{ background:#2c1a17; box-shadow:var(--shadow); transform:translateY(-1px); }
  .btn-outline{ border-color:var(--walnut); color:var(--walnut); background:transparent; }
  .btn-outline:hover{ background:var(--walnut); color:var(--cream); }
  .btn-cream{ border-color:var(--cream); color:var(--cream); background:transparent; }
  .btn-cream:hover{ background:var(--cream); color:var(--walnut); }
  .btn-gold{ background:transparent; color:var(--gold); border:1px solid var(--gold-soft); padding:12px 22px; }
  .btn-gold:hover{ background:var(--gold); color:#fff; border-color:var(--gold); }
  .btn-whatsapp{ background:var(--gold); color:#fff; border-color:var(--gold); }
  .btn-whatsapp:hover{ background:#8a6a30; border-color:#8a6a30; box-shadow:var(--shadow); transform:translateY(-1px); }
  .btn-whatsapp svg{ width:16px; height:16px; fill:#fff; flex-shrink:0; }
  .btn-sm{ padding:10px 14px; font-size:0.82rem; }
  .btn-row{ display:flex; gap:16px; flex-wrap:wrap; }

  .whatsapp-float{
    position:fixed; bottom:26px; right:26px; z-index:90;
    width:58px; height:58px; border-radius:50%;
    background:var(--walnut);
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 10px 26px rgba(20,12,9,0.4);
    transition:transform .25s ease;
    border:2px solid var(--gold-soft);
  }
  .whatsapp-float:hover{ transform:scale(1.08); }
  .whatsapp-float svg{ width:26px; height:26px; fill:var(--gold-soft); }
  @media (max-width:600px){ .whatsapp-float{ width:52px; height:52px; bottom:18px; right:18px; } }

  .divider{ width:52px; height:2px; background:var(--gold); margin-bottom:18px; }
  .divider.center-d{ margin-left:auto; margin-right:auto; }
  .center{ text-align:center; }
  .center p{ margin-left:auto; margin-right:auto; }
  .section-head{ max-width:640px; margin-bottom:50px; }
  .section-head.center{ margin-left:auto; margin-right:auto; }
  section{ padding:100px 0; }
  @media (max-width:760px){
    section{ padding:60px 0; }
    .wrap{ padding:0 22px; }
    .section-head{ margin-bottom:34px; }
  }
  @media (max-width:420px){ .wrap{ padding:0 18px; } .nav{ padding:16px 18px; } }

  /* ---------- Header ---------- */
  header{ position:sticky; top:0; z-index:60; background:var(--cream); border-bottom:1px solid var(--line); }
  .nav{ display:flex; align-items:center; justify-content:space-between; padding:12px 32px; max-width:1320px; margin:0 auto; }
  .logo{ display:flex; align-items:center; }
  .logo-img{ height:72px; width:auto; display:block; }
  @media (max-width:480px){ .logo-img{ height:52px; } }
  .nav-links{ display:flex; gap:32px; align-items:center; }
  .nav-links a:not(.btn){ font-size:0.92rem; color:var(--ink); position:relative; }
  .nav-links a:not(.btn)::after{ content:""; position:absolute; left:0; bottom:-6px; width:0; height:1px; background:var(--gold); transition:width .25s ease; }
  .nav-links a:not(.btn):hover::after{ width:100%; }
  .nav-links .btn-primary{ color:var(--cream); }
  .nav-toggle-checkbox{ display:none; }
  .nav-burger{ display:none; flex-direction:column; gap:5px; cursor:pointer; z-index:70; padding:6px; }
  .nav-burger span{ width:26px; height:2px; background:var(--walnut); display:block; transition:transform .25s ease, opacity .25s ease; }
  .nav-overlay{ display:none; }
  @media (max-width:960px){
    .nav-burger{ display:flex; }
    .nav-links{
      position:fixed; top:0; right:-300px; height:100vh; width:280px;
      background:var(--cream); flex-direction:column; align-items:flex-start;
      padding:100px 32px 40px; gap:28px; box-shadow:-14px 0 34px rgba(20,12,9,0.25);
      transition:right .3s ease; z-index:65;
    }
    .nav-toggle-checkbox:checked ~ .nav-burger span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
    .nav-toggle-checkbox:checked ~ .nav-burger span:nth-child(2){ opacity:0; }
    .nav-toggle-checkbox:checked ~ .nav-burger span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
    .nav-toggle-checkbox:checked ~ .nav-links{ right:0; }
    .nav-toggle-checkbox:checked ~ .nav-overlay{
      display:block; position:fixed; inset:0; background:rgba(20,12,9,0.45); z-index:64;
    }
  }

  /* ---------- Full-bleed Hero ---------- */
  .hero-full{ position:relative; height:78vh; min-height:520px; max-height:680px; overflow:hidden; }
  .hero-full img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
  .hero-full::after{ content:""; position:absolute; inset:0; background:linear-gradient(100deg, rgba(20,12,9,0.62) 0%, rgba(20,12,9,0.28) 45%, rgba(20,12,9,0) 72%); }
  .hero-box{ position:absolute; left:0; right:0; top:0; height:100%; display:flex; align-items:center; z-index:2; }
  .hero-inner-wrap{ max-width:1320px; margin:0 auto; padding:0 32px; width:100%; }
  .hero-box-inner{ background:rgba(28,17,13,0.5); backdrop-filter:blur(3px); padding:52px 48px; max-width:660px; border-left:3px solid var(--gold); }
  .hero-tag{ font-family:'Fraunces', serif; font-style:italic; color:var(--gold-soft); font-size:1rem; display:block; margin-bottom:14px; }
  .hero-box h1{ color:#fff; margin-bottom:16px; }
  .hero-box p{ color:rgba(250,246,238,0.85); margin-bottom:30px; max-width:52ch; }
  @media (max-width:760px){
    .hero-full{ height:auto; min-height:0; max-height:none; overflow:visible; }
    .hero-full::after{ display:none; }
    .hero-full img{ position:relative; height:300px; width:100%; }
    .hero-box{ position:relative; height:auto; padding:0; background:var(--walnut); display:block; }
    .hero-box-inner{ max-width:none; padding:40px 24px; background:transparent; backdrop-filter:none; border-left:none; border-top:3px solid var(--gold); }
    .hero-inner-wrap{ padding:0; }
  }

  /* ---------- Feature / trust strip ---------- */
  .feature-strip{ background:var(--walnut); padding:40px 0; }
  .fstrip-row{ display:grid; grid-template-columns:repeat(4,1fr); gap:30px; }
  .fstrip-item{ display:flex; gap:14px; align-items:flex-start; color:var(--cream-deep); }
  .fstrip-item svg{ width:26px; height:26px; stroke:var(--gold-soft); flex-shrink:0; }
  .fstrip-item h3{ font-size:0.95rem; color:#fff; margin-bottom:4px; font-family:'Manrope',sans-serif; font-weight:600; }
  .fstrip-item p{ font-size:0.82rem; color:rgba(250,246,238,0.7); max-width:none; }
  @media (max-width:860px){ .fstrip-row{ grid-template-columns:1fr 1fr; } }
  @media (max-width:520px){ .fstrip-row{ grid-template-columns:1fr; } }

  /* ---------- Info split (About / Why Comfortable) ---------- */
  .info-split{ display:grid; grid-template-columns:0.9fr 1.1fr; gap:64px; align-items:center; }
  .info-split.reverse{ grid-template-columns:1.1fr 0.9fr; }
  .info-split.reverse .info-media{ order:2; }
  .info-media{ position:relative; }
  .info-media img{ width:100%; aspect-ratio:1/1; object-fit:cover; }
  .info-media.wide img{ aspect-ratio:5/4; }
  .info-media-tag{
    position:absolute; bottom:-24px; right:-24px;
    background:var(--walnut); color:var(--cream);
    padding:18px 22px; max-width:190px; box-shadow:var(--shadow);
  }
  .info-media-tag strong{ display:block; font-family:'Fraunces', serif; font-size:1.4rem; color:var(--gold-soft); }
  .info-media-tag span{ font-size:0.78rem; color:var(--cream-deep); }
  @media (max-width:900px){ .info-split, .info-split.reverse{ grid-template-columns:1fr; gap:36px; } .info-split.reverse .info-media{ order:0; } }
  @media (max-width:600px){ .info-media-tag{ right:0; bottom:-16px; max-width:160px; padding:14px 16px; } .info-media-tag strong{ font-size:1.15rem; } }

  /* ---------- Shop by Room (circles) ---------- */
  .dept-row{ display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; }
  .dept-item{ display:flex; flex-direction:column; align-items:center; gap:14px; flex:1 1 130px; text-align:center; }
  .dept-circle{ width:96px; height:96px; border-radius:50%; background:var(--cream-deep); display:flex; align-items:center; justify-content:center; border:1px solid var(--line); transition:background .25s ease, transform .25s ease; }
  .dept-item:hover .dept-circle{ background:var(--gold-soft); transform:translateY(-4px); }
  .dept-circle svg{ width:34px; height:34px; stroke:var(--walnut); }
  .dept-item span{ font-size:0.86rem; color:var(--ink); font-weight:500; }

  /* ---------- Promo tiles ---------- */
  .promo-grid{ display:grid; grid-template-columns:1.3fr 1fr; grid-template-rows:1fr 1fr; gap:20px; height:520px; }
  .promo-tile{ position:relative; overflow:hidden; border-radius:2px; }
  .promo-tile.large{ grid-row:1 / 3; grid-column:1; }
  .promo-tile.small-a{ grid-row:1; grid-column:2; }
  .promo-tile.small-b{ grid-row:2; grid-column:2; }
  .promo-tile img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
  .promo-tile:hover img{ transform:scale(1.05); }
  .promo-copy{ position:absolute; left:28px; bottom:28px; z-index:2; color:#fff; }
  .promo-tile::after{ content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(180deg, rgba(20,12,9,0) 45%, rgba(20,12,9,0.75) 100%); }
  .promo-copy span{ font-size:0.8rem; color:var(--gold-soft); display:block; margin-bottom:6px; }
  .promo-copy h3{ color:#fff; font-size:1.35rem; margin-bottom:10px; }
  .promo-copy a{ font-size:0.82rem; border-bottom:1px solid var(--gold-soft); color:#fff; padding-bottom:2px; }
  @media (max-width:860px){
    .promo-grid{ grid-template-columns:1fr; grid-template-rows:none; height:auto; }
    .promo-tile.large{ grid-row:auto; grid-column:auto; height:280px; }
    .promo-tile.small-a, .promo-tile.small-b{ grid-row:auto; grid-column:auto; height:220px; }
  }

  /* ---------- Featured Collection (product grid) ---------- */
  .product-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:26px; }
  .product-card{ position:relative; }
  .product-media{ position:relative; aspect-ratio:4/5; overflow:hidden; background:var(--cream-deep); margin-bottom:16px; }
  .product-media img{ width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
  .product-card:hover .product-media img{ transform:scale(1.06); }
  .product-actions{ position:absolute; top:14px; right:14px; display:flex; flex-direction:column; gap:8px; opacity:0; transform:translateX(8px); transition:opacity .25s ease, transform .25s ease; }
  .product-card:hover .product-actions{ opacity:1; transform:translateX(0); }
  @media (hover:none){ .product-actions{ opacity:1; transform:none; } .product-actions button{ width:38px; height:38px; } }
  .product-actions button{ width:34px; height:34px; border-radius:50%; background:#fff; border:none; cursor:pointer; display:flex; align-items:center; justify-content:center; box-shadow:0 6px 14px rgba(0,0,0,0.15); }
  .product-actions svg{ width:16px; height:16px; stroke:var(--walnut); }
  .product-card h3{ font-size:1.02rem; margin-bottom:12px; }
  .product-btns{ display:flex; gap:8px; }
  .product-btns .btn{ flex:1; justify-content:center; }
  @media (max-width:960px){ .product-grid{ grid-template-columns:repeat(2,1fr); } }
  @media (max-width:480px){ .product-grid{ grid-template-columns:1fr; } .product-btns{ flex-direction:row; } }

  /* ---------- Comfort factor grid (4 icons) ---------- */
  .comfort-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
  .comfort-item{ background:var(--card); padding:38px 30px; }
  .comfort-item svg{ width:30px; height:30px; stroke:var(--gold); margin-bottom:20px; }
  .comfort-item h3{ margin-bottom:10px; }
  .comfort-item p{ font-size:0.92rem; }
  @media (max-width:960px){ .comfort-grid{ grid-template-columns:repeat(2,1fr); } }
  @media (max-width:520px){ .comfort-grid{ grid-template-columns:1fr; } }

  /* ---------- Shop the Look ---------- */
  .look-row{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
  .look-card{ position:relative; aspect-ratio:3/4; overflow:hidden; }
  .look-card img{ width:100%; height:100%; object-fit:cover; }
  .look-tag{ position:absolute; left:20px; bottom:20px; background:rgba(255,253,249,0.94); padding:10px 16px; display:flex; align-items:center; gap:10px; font-size:0.82rem; color:var(--walnut); font-weight:600; }
  .look-tag .dot{ width:8px; height:8px; border-radius:50%; background:var(--gold); flex-shrink:0; }
  .dots{ display:flex; justify-content:center; gap:8px; margin-top:32px; }
  .dots span{ width:7px; height:7px; border-radius:50%; background:var(--line); }
  .dots span.active{ background:var(--gold); }
  @media (max-width:860px){ .look-row{ grid-template-columns:1fr; } }

  /* ---------- Craftsmanship collage ---------- */
  .collage-grid{ display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; }
  .collage-copy .btn{ margin-top:26px; }
  .collage-thumbs{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:26px; }
  .collage-thumbs div{ aspect-ratio:1/1; overflow:hidden; }
  .collage-thumbs img{ width:100%; height:100%; object-fit:cover; }
  .collage-media img{ width:100%; aspect-ratio:6/5; object-fit:cover; }
  @media (max-width:900px){ .collage-grid{ grid-template-columns:1fr; gap:36px; } }

  /* ---------- Testimonials ---------- */
  .brand-mark{ display:flex; align-items:center; justify-content:center; gap:10px; margin-bottom:44px; color:var(--walnut); }
  .brand-mark svg{ width:24px; height:24px; stroke:var(--gold); }
  .brand-mark span{ font-family:'Fraunces', serif; font-size:1.1rem; font-weight:600; }
  .testi-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
  .testi{ background:var(--card); border:1px solid var(--line); padding:34px 30px; }
  .testi p{ font-family:'Fraunces', serif; font-style:italic; color:var(--ink); font-size:1.02rem; margin-bottom:22px; max-width:none; }
  .testi-name{ font-size:0.85rem; color:var(--gold); font-weight:600; }
  .testi-name span{ color:var(--ink-soft); font-weight:400; }
  @media (max-width:900px){ .testi-grid{ grid-template-columns:1fr; } }

  /* ---------- Closing CTA (split banner) ---------- */
  .split-banner{ position:relative; display:grid; grid-template-columns:1fr 1fr; background:var(--walnut); overflow:hidden; min-height:400px; }
  .split-banner img{ width:100%; height:100%; object-fit:cover; opacity:0.5; }
  .split-copy{ position:absolute; inset:0; z-index:2; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; color:#fff; padding:0 20px; }
  .split-copy h2{ color:#fff; margin-bottom:12px; }
  .split-copy p{ color:rgba(250,246,238,0.8); margin-bottom:28px; max-width:48ch; }
  @media (max-width:760px){ .split-banner{ grid-template-columns:1fr; min-height:420px; } }

  /* ---------- FAQ ---------- */
  .faq{ max-width:780px; margin:0 auto; }
  .faq-item{ border-bottom:1px solid var(--line); }
  .faq-item summary{ list-style:none; cursor:pointer; padding:22px 0; display:flex; justify-content:space-between; align-items:center; font-family:'Fraunces', serif; font-size:1.08rem; color:var(--walnut); }
  .faq-item summary::-webkit-details-marker{ display:none; }
  .faq-item summary::after{ content:"+"; font-size:1.4rem; color:var(--gold); flex-shrink:0; margin-left:20px; transition:transform .25s ease; }
  .faq-item[open] summary::after{ transform:rotate(45deg); }
  .faq-item p{ padding-bottom:22px; max-width:65ch; }

  /* ---------- Store / map ---------- */
  .map-box{ position:relative; height:440px; overflow:hidden; background: repeating-linear-gradient(0deg, rgba(62,39,35,0.06) 0 1px, transparent 1px 64px), repeating-linear-gradient(90deg, rgba(62,39,35,0.06) 0 1px, transparent 1px 64px), var(--cream-deep); }
  .map-pin{ position:absolute; top:50%; left:50%; transform:translate(-50%,-100%); width:44px; height:44px; }
  .map-pin svg{ width:100%; height:100%; fill:var(--walnut); stroke:var(--gold-soft); stroke-width:1; filter:drop-shadow(0 8px 10px rgba(0,0,0,0.25)); }
  .map-pin-dot{ position:absolute; width:8px; height:8px; border-radius:50%; background:var(--gold); }
  .store-card{ position:absolute; left:48px; bottom:-70px; z-index:3; background:var(--card); box-shadow:var(--shadow); padding:34px 38px; max-width:340px; border-top:3px solid var(--gold); }
  .store-card h3{ font-family:'Fraunces', serif; margin-bottom:14px; }
  .store-card p{ font-size:0.9rem; margin-bottom:6px; max-width:none; }
  .store-section{ padding-bottom:170px; }
  @media (max-width:760px){ .store-card{ position:static; margin-top:24px; max-width:none; padding:28px 26px; } .store-section{ padding-bottom:60px; } .map-box{ height:280px; } }

  /* ---------- Footer ---------- */
  footer{ background:var(--walnut); color:rgba(250,246,238,0.75); padding:80px 0 30px; }
  .foot-grid{ display:grid; grid-template-columns:1.3fr 0.9fr 0.9fr 1.3fr; gap:50px; margin-bottom:56px; }
  .foot-logo-badge{ display:inline-flex; margin-bottom:18px; width:fit-content; }
  footer h4{ font-size:0.82rem; letter-spacing:0.3px; color:var(--gold-soft); margin-bottom:18px; font-weight:600; text-transform:uppercase; }
  footer ul{ list-style:none; }
  footer ul li{ margin-bottom:11px; }
  footer ul a{ font-size:0.9rem; }
  footer ul a:hover{ color:var(--gold-soft); }
  footer p{ color:rgba(250,246,238,0.62); font-size:0.9rem; max-width:none; }
  .subscribe-row{ display:flex; margin-top:16px; border:1px solid rgba(250,246,238,0.3); }
  .subscribe-row input{ flex:1; background:transparent; border:none; padding:13px 16px; color:var(--cream); font-family:'Manrope', sans-serif; font-size:0.88rem; }
  .subscribe-row input::placeholder{ color:rgba(250,246,238,0.5); }
  .subscribe-row button{ background:var(--gold); border:none; color:var(--walnut); font-weight:700; padding:0 20px; cursor:pointer; font-size:0.88rem; }
  .foot-fine{ font-size:0.76rem; color:rgba(250,246,238,0.45); margin-top:12px; }
  .foot-bottom{ border-top:1px solid rgba(250,246,238,0.14); padding-top:24px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; font-size:0.8rem; color:rgba(250,246,238,0.5); }
  @media (max-width:900px){ .foot-grid{ grid-template-columns:1fr 1fr; } }
  @media (max-width:560px){ .foot-grid{ grid-template-columns:1fr; gap:36px; } .subscribe-row{ flex-wrap:wrap; } .subscribe-row input{ min-width:0; } }

/* ---------- Page banner (sub-pages) ---------- */
.page-hero{ background:var(--cream-deep); padding:64px 0 46px; text-align:center; }
.page-hero .breadcrumb{ font-size:0.85rem; color:var(--ink-soft); margin-bottom:14px; }
.page-hero .breadcrumb a{ color:var(--gold); }
.page-hero h1{ margin-bottom:10px; }
.page-hero p{ margin:0 auto; }

/* ---------- Room detail cards (rooms.html) ---------- */
.room-detail-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:40px; margin-top:60px; }
.room-detail{ display:flex; gap:20px; align-items:flex-start; padding-bottom:32px; border-bottom:1px solid var(--line); }
.room-detail-icon{ width:56px; height:56px; border-radius:50%; background:var(--cream-deep); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.room-detail-icon svg{ width:26px; height:26px; stroke:var(--walnut); }
.room-detail h3{ margin-bottom:8px; }
@media (max-width:760px){ .room-detail-grid{ grid-template-columns:1fr; gap:0; } }


/* ---------- WordPress nav menu compatibility (ul/li output) ---------- */
.nav-links ul{ display:flex; gap:32px; align-items:center; list-style:none; margin:0; padding:0; }
.nav-links li{ list-style:none; }
.nav-links ul .current-menu-item > a::after{ width:100%; }
@media (max-width:960px){
  .nav-links ul{ flex-direction:column; align-items:flex-start; gap:28px; }
}


/* ==================================================================
   v2 — Top bar, dropdown navigation, image page banners,
   category pages and contact page
   ================================================================== */

.eyebrow{ font-family:'Fraunces',serif; font-style:italic; color:var(--gold); font-size:0.95rem; }

/* ---------- Top bar ---------- */
.topbar{ background:var(--walnut); color:rgba(250,246,238,0.82); font-size:0.8rem; }
.topbar-inner{ max-width:1320px; margin:0 auto; padding:9px 32px; display:flex; justify-content:space-between; align-items:center; gap:20px; }
.topbar-contact{ display:flex; gap:26px; flex-wrap:wrap; }
.topbar a{ display:inline-flex; align-items:center; gap:8px; transition:color .2s ease; }
.topbar a:hover{ color:var(--gold-soft); }
.topbar svg{ width:14px; height:14px; flex-shrink:0; }
.topbar .ic-line{ fill:none; stroke:var(--gold-soft); stroke-width:1.7; }
.topbar .ic-wa svg{ fill:var(--gold-soft); }
.topbar-note{ color:var(--gold-soft); font-family:'Fraunces',serif; font-style:italic; }
@media (max-width:860px){ .topbar-note{ display:none; } .topbar-inner{ justify-content:center; } }
@media (max-width:560px){ .topbar-inner{ padding:8px 18px; } .topbar-contact{ gap:18px; justify-content:center; } .topbar .t-email{ display:none; } }

/* ---------- Header + dropdown menu ---------- */
header.site-header{ transition:box-shadow .25s ease; }
header.site-header.is-scrolled{ box-shadow:0 12px 30px -20px rgba(42,29,20,0.45); }
.nav-links{ gap:28px; }
.nav-links .menu{ gap:30px; }
.nav-links .menu > li{ position:relative; padding:16px 0; }
.nav-links .menu > li > a{ font-weight:500; }
.nav-links .menu > .menu-item-has-children > a{ padding-right:15px; }
.nav-links .menu > .menu-item-has-children::before{
  content:""; position:absolute; right:1px; top:50%; width:6px; height:6px;
  border-right:1.5px solid var(--gold); border-bottom:1.5px solid var(--gold);
  transform:translateY(-75%) rotate(45deg); pointer-events:none; transition:transform .25s ease;
}
.nav-links .menu > .menu-item-has-children:hover::before{ transform:translateY(-25%) rotate(225deg); }
.nav-links .current-menu-item > a,
.nav-links .current-menu-ancestor > a,
.nav-links .current_page_item > a{ color:var(--gold); }
.nav-links .menu > .current-menu-ancestor > a::after{ width:100%; }
.nav-links .sub-menu{
  position:absolute; top:100%; left:-22px; min-width:240px; display:block; list-style:none;
  background:var(--card); border-top:2px solid var(--gold);
  box-shadow:0 24px 44px -20px rgba(42,29,20,0.45); padding:10px 0;
  opacity:0; visibility:hidden; transform:translateY(10px);
  transition:opacity .22s ease, transform .22s ease, visibility .22s; z-index:80;
}
.nav-links li:hover > .sub-menu,
.nav-links li:focus-within > .sub-menu{ opacity:1; visibility:visible; transform:translateY(0); }
.nav-links .sub-menu li{ padding:0; }
.nav-links .sub-menu a{ display:block; padding:10px 22px; font-size:0.88rem; color:var(--ink); transition:background .2s ease, color .2s ease, padding .2s ease; }
.nav-links .sub-menu a::after{ display:none; }
.nav-links .sub-menu a:hover{ background:var(--cream-deep); color:var(--gold); padding-left:28px; }
.submenu-toggle{ display:none; }
.nav-cta{ white-space:nowrap; }
.nav-links .nav-cta{ color:#fff; }
@media (max-width:1240px){ .nav-links .menu{ gap:22px; } .nav-links .menu > li > a{ font-size:0.88rem; } }
@media (max-width:1120px) and (min-width:961px){ .nav-links .nav-cta{ display:none; } }
@media (max-width:960px){
  .nav-links{ width:300px; right:-320px; overflow-y:auto; gap:26px; padding:90px 26px 40px; }
  .nav-links .menu{ width:100%; gap:0; }
  .nav-links .menu > li{ width:100%; padding:0; border-bottom:1px solid var(--line); }
  .nav-links .menu > li > a{ display:block; padding:14px 0; font-size:0.98rem; }
  .nav-links .menu > li > a::after{ display:none; }
  .nav-links .menu > .menu-item-has-children::before{ display:none; }
  .submenu-toggle{ display:flex; position:absolute; right:-8px; top:5px; width:42px; height:42px; align-items:center; justify-content:center; background:transparent; border:none; cursor:pointer; }
  .submenu-toggle::before{ content:""; width:8px; height:8px; border-right:1.6px solid var(--gold); border-bottom:1.6px solid var(--gold); transform:translateY(-2px) rotate(45deg); transition:transform .25s ease; }
  .is-open > .submenu-toggle::before{ transform:translateY(2px) rotate(225deg); }
  .nav-links .sub-menu{ position:static; opacity:1; visibility:visible; transform:none; box-shadow:none; border:none; background:transparent; min-width:0; padding:0 0 12px 14px; display:none; }
  .nav-links li.is-open > .sub-menu{ display:block; }
  .nav-links .sub-menu a{ padding:8px 0; font-size:0.9rem; color:var(--ink-soft); }
  .nav-links .sub-menu a:hover{ background:transparent; padding-left:4px; }
  .nav-links .nav-cta{ width:100%; justify-content:center; }
}

/* ---------- Image page banner (inner pages) ---------- */
.page-banner{ padding:0; height:62vh; min-height:460px; max-height:580px; }
.page-banner::after{ background:linear-gradient(100deg, rgba(20,12,9,0.72) 0%, rgba(20,12,9,0.38) 50%, rgba(20,12,9,0.06) 82%); }
.page-banner .hero-box-inner{ padding:44px 46px; }
.page-banner .breadcrumb{ display:flex; flex-wrap:wrap; gap:8px; align-items:center; font-size:0.78rem; letter-spacing:0.6px; text-transform:uppercase; color:rgba(250,246,238,0.72); margin-bottom:18px; }
.page-banner .breadcrumb a{ color:var(--gold-soft); }
.page-banner .breadcrumb span{ opacity:.5; }
.page-banner h1{ font-size:clamp(2rem, 3.8vw, 3rem); }
@media (max-width:760px){
  .page-banner{ height:auto; min-height:0; max-height:none; }
  .page-banner img{ height:240px; }
  .page-banner .hero-box-inner{ padding:34px 22px; }
}

/* ---------- Category pages ---------- */
.subcat-section{ padding:44px 0 0; position:relative; z-index:3; }
.subcat-row{ display:grid; grid-template-columns:repeat(auto-fit, minmax(210px, 1fr)); gap:18px; }
.subcat-card{ background:var(--card); border:1px solid var(--line); box-shadow:var(--shadow); display:flex; align-items:center; gap:14px; padding:14px; transition:transform .25s ease, border-color .25s ease; }
.subcat-card:hover{ transform:translateY(-4px); border-color:var(--gold-soft); }
.subcat-img{ width:66px; height:66px; flex-shrink:0; overflow:hidden; background:var(--cream-deep); }
.subcat-img img{ width:100%; height:100%; object-fit:cover; }
.subcat-name{ display:block; font-family:'Fraunces',serif; color:var(--walnut); font-weight:600; font-size:1rem; line-height:1.3; }
.subcat-count{ display:block; font-size:0.78rem; color:var(--gold); margin-top:3px; }
.cat-block{ scroll-margin-top:110px; }
.cat-block.tint{ background:var(--cream-deep); }
.cat-head{ display:flex; justify-content:space-between; align-items:flex-end; gap:30px; margin-bottom:44px; }
.cat-head p{ margin-top:12px; }
.cat-head .btn{ flex-shrink:0; }
.cat-grid{ grid-template-columns:repeat(auto-fit, minmax(240px, 1fr)); }
@media (max-width:760px){
  .subcat-section{ margin-top:0; padding-top:30px; }
  .subcat-row{ grid-template-columns:1fr 1fr; gap:12px; }
  .subcat-card{ flex-direction:column; align-items:flex-start; }
  .subcat-img{ width:100%; height:110px; }
  .cat-head{ flex-direction:column; align-items:flex-start; margin-bottom:30px; }
  .cat-grid{ grid-template-columns:repeat(2, 1fr); }
}
@media (max-width:480px){ .cat-grid{ grid-template-columns:1fr; } }

/* ---------- Contact page ---------- */
.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:start; }
.contact-cards{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:32px; }
.contact-card{ background:var(--card); border:1px solid var(--line); padding:20px; display:flex; gap:14px; align-items:flex-start; transition:border-color .25s ease, transform .25s ease; }
a.contact-card:hover{ border-color:var(--gold-soft); transform:translateY(-3px); }
.contact-card.wide{ grid-column:1 / -1; }
.cc-icon{ width:44px; height:44px; border-radius:50%; background:var(--cream-deep); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.cc-icon svg{ width:20px; height:20px; fill:none; stroke:var(--walnut); stroke-width:1.6; }
.cc-icon.wa svg{ fill:var(--walnut); stroke:none; }
.contact-card strong{ display:block; font-family:'Fraunces',serif; color:var(--walnut); font-size:1rem; margin-bottom:2px; }
.contact-card span span{ font-size:0.88rem; color:var(--ink-soft); word-break:break-word; }
.contact-form-card{ background:var(--card); border:1px solid var(--line); border-top:3px solid var(--gold); box-shadow:var(--shadow); padding:40px; }
.contact-form-card h3{ font-size:1.5rem; margin-bottom:8px; }
.wa-form{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:26px; }
.wa-form label{ display:flex; flex-direction:column; gap:6px; font-size:0.8rem; font-weight:600; color:var(--walnut); }
.wa-form .full{ grid-column:1 / -1; }
.wa-form input, .wa-form select, .wa-form textarea{ font-family:'Manrope',sans-serif; font-size:0.92rem; font-weight:400; padding:13px 14px; border:1px solid var(--line); background:var(--cream); color:var(--ink); border-radius:2px; width:100%; }
.wa-form input:focus, .wa-form select:focus, .wa-form textarea:focus{ outline:none; border-color:var(--gold); background:#fff; }
.wa-form textarea{ min-height:120px; resize:vertical; }
.wa-form .btn{ justify-content:center; }
.map-embed{ border:1px solid var(--line); box-shadow:var(--shadow); overflow:hidden; background:var(--card); }
.map-embed iframe{ width:100%; height:440px; border:0; display:block; }
@media (max-width:900px){ .contact-grid{ grid-template-columns:1fr; gap:40px; } }
@media (max-width:560px){ .contact-cards, .wa-form{ grid-template-columns:1fr; } .contact-form-card{ padding:28px 22px; } .map-embed iframe{ height:320px; } }

/* ---------- Footer extras ---------- */
.foot-contact{ margin-top:18px; }
.foot-contact li{ font-size:0.88rem; margin-bottom:8px; }


/* ---------- Footer social icons ---------- */
footer ul.foot-social{ display:flex; gap:12px; flex-wrap:wrap; }
footer ul.foot-social li{ margin:0; }
.foot-social a{ display:flex; align-items:center; justify-content:center; width:42px; height:42px; border-radius:50%; border:1px solid rgba(250,246,238,0.25); font-size:0; color:transparent; transition:background .25s ease, border-color .25s ease, transform .25s ease; }
.foot-social a::before{ content:""; width:18px; height:18px; background:var(--gold-soft); -webkit-mask:var(--ic) center / contain no-repeat; mask:var(--ic) center / contain no-repeat; transition:background .25s ease; }
.foot-social a:hover{ background:var(--gold); border-color:var(--gold); transform:translateY(-3px); }
.foot-social a:hover::before{ background:var(--walnut); }
.foot-social li:nth-child(1) a{ --ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M14 8h3V4h-3c-2.8 0-4.5 1.8-4.5 4.5V11H7v4h2.5v8h4v-8H17l.8-4h-4.3V8.8c0-.5.3-.8.8-.8Z'/%3E%3C/svg%3E"); }
.foot-social li:nth-child(2) a{ --ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Crect x='3' y='3' width='18' height='18' rx='5'/%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Ccircle cx='17.5' cy='6.5' r='1' fill='black' stroke='none'/%3E%3C/svg%3E"); }
.foot-social li:nth-child(3) a{ --ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M16.5 2c.3 2.4 1.8 4 4.3 4.2v3.4c-1.6 0-3-.5-4.3-1.3v6.5a6 6 0 1 1-6-6h.6v3.5a2.6 2.6 0 1 0 2 2.5V2h3.4Z'/%3E%3C/svg%3E"); }
.foot-social li:nth-child(4) a{ --ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2C6.5 2 2 6.5 2 12c0 1.8.5 3.5 1.3 5L2 22l5.2-1.4c1.4.8 3.1 1.2 4.8 1.2 5.5 0 10-4.5 10-10S17.5 2 12 2Zm5.9 14.3c-.2.7-1.4 1.3-2 1.4-.5.1-1.1.1-1.8-.1-.4-.1-1-.3-1.6-.6-2.9-1.3-4.8-4.2-4.9-4.4-.1-.2-1.2-1.6-1.2-3s.7-2.1 1-2.4c.3-.3.6-.4.8-.4h.6c.2 0 .4 0 .6.5.2.5.7 1.8.8 1.9.1.2.1.3 0 .5-.1.2-.1.3-.3.5-.1.2-.3.4-.4.5-.1.1-.3.3-.1.6.2.3.9 1.4 1.9 2.3 1.3 1.1 2.4 1.5 2.7 1.6.3.1.5.1.7-.1.2-.2.7-.8.9-1.1.2-.3.4-.2.6-.1.2.1 1.5.7 1.8.8.3.1.5.2.5.3.1.2.1.7-.1 1.3Z'/%3E%3C/svg%3E"); }


/* ---------- Footer layout polish ---------- */
footer{ padding:90px 0 28px; }
.foot-grid{ grid-template-columns:1.35fr 0.8fr 0.8fr 1.35fr; gap:64px; margin-bottom:60px; align-items:start; }
.foot-logo-badge{ background:var(--cream); padding:12px 20px; border-radius:6px; margin-bottom:24px; box-shadow:0 10px 24px -16px rgba(0,0,0,0.6); }
.foot-logo-badge .logo-img{ height:58px; }
footer h4{ position:relative; padding-bottom:12px; margin-bottom:22px; letter-spacing:1.2px; font-size:0.8rem; }
footer h4::after{ content:""; position:absolute; left:0; bottom:0; width:28px; height:2px; background:var(--gold); }
footer ul li{ margin-bottom:13px; }
footer ul a{ transition:color .2s ease, padding .2s ease; }
.foot-grid > div:nth-child(2) ul a:hover,
.foot-grid > div:nth-child(3) ul:not(.foot-social) a:hover{ padding-left:5px; }
.foot-contact{ margin-top:24px; padding-top:22px; border-top:1px solid rgba(250,246,238,0.12); }
.foot-contact li{ display:flex; align-items:center; gap:12px; font-size:0.88rem; margin-bottom:12px; }
.foot-contact li::before{ content:""; width:16px; height:16px; flex-shrink:0; background:var(--gold-soft); -webkit-mask:var(--ic) center / contain no-repeat; mask:var(--ic) center / contain no-repeat; }
.foot-contact li:nth-child(1){ --ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M5 4h4l2 5-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 6a2 2 0 0 1 2-2'/%3E%3C/svg%3E"); }
.foot-contact li:nth-child(2){ --ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3 7 9 6 9-6'/%3E%3C/svg%3E"); }
.foot-contact li:nth-child(3){ --ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M12 21s7-6.2 7-12a7 7 0 0 0-14 0c0 5.8 7 12 7 12Z'/%3E%3Ccircle cx='12' cy='9' r='2.5'/%3E%3C/svg%3E"); }
.subscribe-row{ margin-top:20px; border-radius:2px; overflow:hidden; }
.subscribe-row input{ padding:15px 16px; }
.subscribe-row button{ padding:0 24px; transition:background .2s ease; }
.subscribe-row button:hover{ background:var(--gold-soft); }
.foot-follow{ margin-top:34px; }
.foot-bottom{ align-items:center; font-size:0.8rem; padding-top:26px; }
@media (max-width:1100px){ .foot-grid{ gap:44px; } }
@media (max-width:900px){ .foot-grid{ grid-template-columns:1fr 1fr; gap:44px 40px; } }
@media (max-width:560px){ .foot-grid{ grid-template-columns:1fr; gap:38px; } .foot-bottom{ flex-direction:column; align-items:flex-start; } }


/* ---------- Contact Form 7 (Contact page + footer subscribe) ---------- */
.wpcf7 .wpcf7-form-control-wrap{ display:block; position:relative; }
.wpcf7 .hidden-fields-container{ display:none; }
.cf7-contact .wa-form .wpcf7-form-control-wrap{ margin-top:0; }
.cf7-contact .wa-form input.wpcf7-not-valid,
.cf7-contact .wa-form select.wpcf7-not-valid,
.cf7-contact .wa-form textarea.wpcf7-not-valid{ border-color:#c0584a; background:#fff; }
.cf7-contact .wpcf7-not-valid-tip{ display:block; margin-top:6px; font-size:0.76rem; font-weight:500; color:#b3432f; }
.cf7-contact .wa-form .full .btn{ width:100%; justify-content:center; font-size:0.96rem; padding:16px 28px; }
.cf7-contact input[type=submit].btn{ -webkit-appearance:none; appearance:none; }
.cf7-contact .wpcf7-spinner{ margin:10px auto 0; display:block; }
.cf7-contact .wpcf7-response-output{ margin:20px 0 0 !important; padding:13px 16px !important; border-radius:2px; font-size:0.88rem; color:var(--walnut); background:var(--cream); }
.cf7-contact .wpcf7 form.sent .wpcf7-response-output{ border-color:var(--gold) !important; }
.wa-form select{ -webkit-appearance:none; appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23A9823F' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 14px center; background-size:16px; padding-right:40px; }

.cf7-subscribe .subscribe-row{ position:relative; overflow:visible; align-items:stretch; }
.cf7-subscribe .subscribe-row .wpcf7-form-control-wrap{ flex:1; min-width:0; }
.cf7-subscribe .subscribe-row input[type=email]{ width:100%; height:100%; flex:none; }
.cf7-subscribe .subscribe-row input[type=submit]{ flex:0 0 auto; background:var(--gold); border:none; color:var(--walnut); font-family:'Manrope',sans-serif; font-weight:700; font-size:0.88rem; padding:0 24px; cursor:pointer; -webkit-appearance:none; appearance:none; border-radius:0; transition:background .2s ease; }
.cf7-subscribe .subscribe-row input[type=submit]:hover{ background:var(--gold-soft); }
.cf7-subscribe .wpcf7-spinner{ position:absolute; right:-34px; top:50%; margin:-12px 0 0; }
.cf7-subscribe .wpcf7-not-valid-tip{ position:absolute; left:0; top:calc(100% + 8px); font-size:0.74rem; color:#f0b3a3; white-space:nowrap; }
.cf7-subscribe .wpcf7-response-output{ margin:30px 0 0 !important; padding:10px 14px !important; font-size:0.8rem; color:var(--cream-deep); border-color:rgba(250,246,238,0.25) !important; }
.cf7-subscribe .wpcf7 form.sent .wpcf7-response-output{ border-color:var(--gold) !important; }

.cf7-contact .wa-form input[type=submit]{ background:var(--gold); color:#fff; border:1px solid var(--gold); font-weight:600; cursor:pointer; letter-spacing:0.2px; }
.cf7-contact .wa-form input[type=submit]:hover{ background:#8a6a30; border-color:#8a6a30; box-shadow:var(--shadow); }
.cf7-contact .wa-form textarea{ height:140px; min-height:120px; }


/* =====================================================================
   CFX — new sections (home, pages, products). Added via redesign.
   ===================================================================== */
.cfx{ display:block; background:var(--cream); color:var(--ink); }
.cfx img{ max-width:100%; height:auto; display:block; }
.cfx-sec{ padding:96px 0; }
.cfx-sec--cream{ background:var(--cream-deep); }
.cfx-kicker{ font-family:'Fraunces',serif; font-style:italic; color:var(--gold); font-size:1rem; margin:0 0 10px; letter-spacing:.01em; }
.cfx-kicker--light{ color:var(--gold-soft); }
.cfx-h2{ font-family:'Fraunces',serif; font-weight:600; font-size:clamp(1.8rem,3.2vw,2.7rem); line-height:1.15; color:var(--walnut); margin:0 0 18px; }
.cfx-h3{ font-family:'Fraunces',serif; font-weight:600; font-size:clamp(1.35rem,2vw,1.7rem); line-height:1.25; color:var(--walnut); margin:0 0 14px; }
.cfx-h3 a{ color:inherit; text-decoration:none; }
.cfx-head{ max-width:720px; margin:0 0 48px; }
.cfx-head--c{ margin-left:auto; margin-right:auto; text-align:center; }
.cfx-head--c .cfx-h2::after{ content:""; display:block; width:56px; height:2px; background:var(--gold); margin:18px auto 0; }
.cfx-lead{ color:var(--ink-soft); font-size:1.05rem; line-height:1.7; margin:0; }
.cfx p{ line-height:1.75; }
.cfx-btns{ display:flex; flex-wrap:wrap; gap:14px; margin-top:28px; }
.cfx-btns .btn svg, .cfx-card__btns svg, .cfx-store__btns svg{ width:18px; height:18px; }
.cfx-center{ text-align:center; margin-top:44px; }
.cfx-link{ color:var(--gold); font-weight:600; text-decoration:none; border-bottom:1px solid var(--gold-soft); padding-bottom:3px; transition:color .2s, border-color .2s; }
.cfx-link:hover{ color:var(--walnut); border-color:var(--walnut); }
.cfx-narrow{ max-width:860px; }
.cfx-empty{ text-align:center; color:var(--ink-soft); padding:40px 0; }

/* Hero */
.cfx-hero{ position:relative; min-height:88vh; display:flex; align-items:center; background:linear-gradient(100deg, rgba(30,20,14,.88) 0%, rgba(30,20,14,.62) 48%, rgba(30,20,14,.25) 100%), var(--bg) center/cover no-repeat; color:var(--cream); padding:120px 0 100px; }
.cfx-hero__in{ max-width:1320px; width:100%; }
.cfx-hero h1{ font-family:'Fraunces',serif; font-weight:600; font-size:clamp(2.4rem,5.4vw,4.4rem); line-height:1.05; margin:0 0 24px; max-width:780px; color:#fff; }
.cfx-hero p{ max-width:640px; font-size:1.06rem; color:rgba(250,246,238,.88); margin:0 0 14px; }
.cfx-phero{ background:linear-gradient(90deg, rgba(30,20,14,.86), rgba(30,20,14,.55)), var(--bg) center/cover no-repeat; color:var(--cream); padding:120px 0 90px; }
.cfx-phero h1{ font-family:'Fraunces',serif; font-weight:600; font-size:clamp(2.2rem,4.6vw,3.6rem); line-height:1.1; margin:0 0 16px; color:#fff; max-width:820px; }
.cfx-phero__text{ max-width:680px; color:rgba(250,246,238,.86); font-size:1.06rem; margin:0; }
.cfx-crumbs{ font-size:.85rem; color:var(--gold-soft); margin-bottom:14px; }
.cfx-crumbs a{ color:var(--gold-soft); text-decoration:none; }

/* Shop by room circles */
.cfx-rooms{ padding:80px 0; }
.cfx-circles{ display:grid; grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); gap:28px; justify-items:center; }
.cfx-circle{ display:flex; flex-direction:column; align-items:center; gap:16px; text-decoration:none; color:var(--ink); }
.cfx-circle__ico{ width:120px; height:120px; border-radius:50%; border:1px solid var(--line); display:grid; place-items:center; color:var(--walnut); background:var(--card); transition:background .3s, color .3s, transform .3s, border-color .3s; }
.cfx-circle:hover .cfx-circle__ico{ background:var(--walnut); color:var(--gold-soft); border-color:var(--walnut); transform:translateY(-4px); }
.cfx-circle__label{ font-weight:600; font-size:.98rem; text-align:center; }

/* Split */
.cfx-split__in{ display:grid; grid-template-columns:1fr 1fr; gap:72px; align-items:center; }
.cfx-split__media{ position:relative; }
.cfx-split__media img{ width:100%; aspect-ratio:4/5; object-fit:cover; border-radius:2px; box-shadow:var(--shadow); }
.cfx-custom .cfx-split__media img{ aspect-ratio:5/4; }
.cfx-badge{ position:absolute; right:-24px; bottom:36px; background:var(--walnut); color:var(--cream); padding:20px 26px; display:flex; flex-direction:column; box-shadow:var(--shadow); }
.cfx-badge strong{ font-family:'Fraunces',serif; font-size:1.6rem; color:var(--gold-soft); }
.cfx-badge span{ font-size:.85rem; }
.cfx-split__text p{ color:var(--ink-soft); }
.cfx-split__text .btn{ margin-top:14px; }

/* Collections */
.cfx-col{ display:grid; grid-template-columns:1.05fr 1fr; gap:64px; align-items:center; margin-bottom:80px; }
.cfx-col:last-child{ margin-bottom:0; }
.cfx-col--rev .cfx-col__media{ order:2; }
.cfx-col__media{ display:block; overflow:hidden; border-radius:2px; box-shadow:var(--shadow); }
.cfx-col__media img{ width:100%; aspect-ratio:4/3; object-fit:cover; transition:transform .7s ease; }
.cfx-col__media:hover img{ transform:scale(1.04); }
.cfx-col__text p{ color:var(--ink-soft); margin:0 0 12px; }
.cfx-col__label{ font-weight:700; color:var(--walnut)!important; margin-top:20px!important; font-size:.9rem; letter-spacing:.06em; text-transform:uppercase; }
.cfx-chips{ list-style:none; padding:0; margin:0 0 24px; display:flex; flex-wrap:wrap; gap:10px; }
.cfx-chips a{ display:inline-block; padding:8px 16px; border:1px solid var(--line); background:var(--card); color:var(--walnut); font-size:.9rem; text-decoration:none; border-radius:40px; transition:all .2s; }
.cfx-chips a:hover, .cfx-chips a.is-active{ background:var(--walnut); color:var(--cream); border-color:var(--walnut); }

/* Why */
.cfx-why__grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:22px; }
.cfx-why__card{ background:var(--card); border:1px solid var(--line); padding:34px 26px; transition:transform .3s, box-shadow .3s; }
.cfx-why__card:hover{ transform:translateY(-6px); box-shadow:var(--shadow); }
.cfx-why__ico{ width:58px; height:58px; border-radius:50%; background:var(--cream-deep); color:var(--gold); display:grid; place-items:center; margin-bottom:20px; }
.cfx-why__card h3{ font-family:'Fraunces',serif; font-size:1.18rem; color:var(--walnut); margin:0 0 10px; line-height:1.3; }
.cfx-why__card p{ color:var(--ink-soft); font-size:.95rem; margin:0; }

/* Product grid + card */
.cfx-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:26px; }
.cfx-card{ background:var(--card); border:1px solid var(--line); display:flex; flex-direction:column; transition:box-shadow .3s, transform .3s; }
.cfx-card:hover{ box-shadow:var(--shadow); transform:translateY(-4px); }
.cfx-card__media{ display:block; overflow:hidden; aspect-ratio:4/5; background:var(--cream-deep); }
.cfx-card__media img{ width:100%; height:100%; object-fit:cover; transition:transform .7s ease; }
.cfx-card:hover .cfx-card__media img{ transform:scale(1.05); }
.cfx-card__ph{ display:grid; place-items:center; height:100%; color:var(--gold); }
.cfx-card__body{ padding:20px 20px 22px; display:flex; flex-direction:column; flex:1; }
.cfx-card__cat{ font-size:.76rem; letter-spacing:.12em; text-transform:uppercase; color:var(--gold); margin:0 0 6px; }
.cfx-card__title{ font-family:'Fraunces',serif; font-size:1.15rem; line-height:1.3; margin:0 0 8px; }
.cfx-card__title a{ color:var(--walnut); text-decoration:none; }
.cfx-card__price{ margin:0 0 16px; }
.cfx-price{ font-weight:700; color:var(--walnut); }
.cfx-price--ask{ font-weight:500; color:var(--ink-soft); font-size:.92rem; }
.cfx-price-old{ color:var(--ink-soft); font-size:.88rem; margin-left:6px; }
.cfx-card__btns{ margin-top:auto; display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.cfx-card__btns .btn{ justify-content:center; padding:11px 10px; font-size:.84rem; gap:6px; }

/* Shop the look */
.cfx-look__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.cfx-look__card{ position:relative; display:block; overflow:hidden; aspect-ratio:3/4; text-decoration:none; cursor:pointer; }
.cfx-look__card img{ width:100%; height:100%; object-fit:cover; transition:transform .8s ease; }
.cfx-look__card:hover img{ transform:scale(1.06); }
.cfx-look__tag{ position:absolute; left:24px; bottom:24px; background:rgba(255,253,249,.95); color:var(--ink); padding:14px 20px; display:flex; align-items:center; gap:12px; font-weight:600; transition:background .3s, color .3s; }
.cfx-look__tag i{ width:9px; height:9px; border-radius:50%; background:var(--gold); }
.cfx-look__tag b{ transition:transform .3s; }
.cfx-look__card:hover .cfx-look__tag{ background:var(--walnut); color:var(--cream); }
.cfx-look__card:hover .cfx-look__tag b{ transform:translateX(4px); }

/* Experience band */
.cfx-exp{ background:linear-gradient(rgba(30,20,14,.78), rgba(30,20,14,.78)), var(--bg) center/cover fixed no-repeat; color:var(--cream); padding:120px 0; text-align:center; }
.cfx-exp__in{ max-width:820px; }
.cfx-exp .cfx-h2{ color:#fff; }
.cfx-exp p{ color:rgba(250,246,238,.88); font-size:1.08rem; }

/* Testimonials */
.cfx-testi__mark{ display:inline-grid; place-items:center; width:64px; height:64px; border-radius:50%; background:var(--cream-deep); color:var(--gold); margin-bottom:16px; }
.cfx-testi__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
.cfx-testi__card{ margin:0; background:var(--card); border:1px solid var(--line); border-top:3px solid var(--gold); padding:34px 30px; display:flex; flex-direction:column; }
.cfx-stars{ color:var(--gold); letter-spacing:3px; margin-bottom:14px; }
.cfx-testi__card blockquote{ margin:0 0 22px; font-family:'Fraunces',serif; font-size:1.08rem; line-height:1.6; color:var(--ink); flex:1; }
.cfx-testi__card figcaption{ color:var(--ink-soft); font-size:.92rem; }
.cfx-testi__card strong{ color:var(--walnut); }

/* FAQ */
.cfx-faq{ display:flex; flex-direction:column; gap:12px; }
.cfx-faq__item{ background:var(--card); border:1px solid var(--line); }
.cfx-faq__item summary{ list-style:none; cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:18px; padding:22px 26px; }
.cfx-faq__item summary::-webkit-details-marker{ display:none; }
.cfx-faq__item summary h3{ margin:0; font-family:'Fraunces',serif; font-size:1.1rem; font-weight:600; color:var(--walnut); }
.cfx-faq__plus{ position:relative; width:18px; height:18px; flex:none; }
.cfx-faq__plus::before, .cfx-faq__plus::after{ content:""; position:absolute; left:0; top:8px; width:18px; height:2px; background:var(--gold); transition:transform .3s; }
.cfx-faq__plus::after{ transform:rotate(90deg); }
.cfx-faq__item[open] .cfx-faq__plus::after{ transform:rotate(0); }
.cfx-faq__a{ padding:0 26px 22px; color:var(--ink-soft); }
.cfx-faq__a p{ margin:0; }
.cfx-faq-group{ margin-bottom:48px; }
.cfx-faq-group > h2{ font-family:'Fraunces',serif; color:var(--walnut); font-size:1.5rem; margin:0 0 18px; }

/* Guides */
.cfx-topics{ list-style:none; padding:0; margin:0 auto 40px; display:flex; flex-wrap:wrap; justify-content:center; gap:14px; max-width:1000px; }
.cfx-topics li{ display:flex; align-items:center; gap:10px; background:var(--card); border:1px solid var(--line); padding:14px 20px; color:var(--walnut); font-weight:600; }
.cfx-topics li svg{ color:var(--gold); }
.cfx-posts{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
.cfx-post{ display:block; text-decoration:none; color:var(--ink); background:var(--card); border:1px solid var(--line); }
.cfx-post img{ width:100%; aspect-ratio:16/10; object-fit:cover; }
.cfx-post__date{ display:block; padding:18px 22px 0; font-size:.8rem; color:var(--gold); }
.cfx-post h3{ font-family:'Fraunces',serif; font-size:1.15rem; padding:6px 22px 22px; margin:0; color:var(--walnut); }

/* Store + map */
.cfx-store__map{ position:relative; min-height:540px; border:1px solid var(--line); background:var(--cream-deep); }
.cfx-store__map iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; filter:sepia(.25) saturate(.9); }
.cfx-store__card{ position:relative; z-index:2; width:min(420px, calc(100% - 40px)); margin:60px 0 60px 60px; background:var(--card); border-top:3px solid var(--gold); padding:36px 40px; box-shadow:var(--shadow); }
.cfx-store__card h3{ font-family:'Fraunces',serif; font-size:1.35rem; color:var(--walnut); margin:0 0 18px; }
.cfx-store__card p{ display:flex; gap:10px; align-items:flex-start; margin:0 0 12px; color:var(--ink-soft); }
.cfx-store__card p svg{ color:var(--gold); flex:none; margin-top:4px; }
.cfx-store__card a{ color:inherit; }
.cfx-store__btns{ display:flex; flex-wrap:wrap; align-items:center; gap:18px; margin-top:24px; }
.cfx-store__btns .btn{ color:#fff; }
.cfx-store__btns .cfx-link{ color:var(--gold); }

/* CTA band */
.cfx-cta{ background:var(--walnut); color:var(--cream); padding:100px 0; text-align:center; }
.cfx-cta__in{ max-width:820px; }
.cfx-cta .cfx-h2{ color:#fff; }
.cfx-cta p{ color:rgba(250,246,238,.85); font-size:1.08rem; }
.cfx-cta .cfx-btns{ justify-content:center; }

/* Inner pages */
.cfx-list{ list-style:none; padding:0; margin:18px 0 0; display:grid; gap:12px; }
.cfx-list li{ position:relative; padding-left:30px; color:var(--ink-soft); }
.cfx-list li::before{ content:""; position:absolute; left:0; top:9px; width:14px; height:8px; border-left:2px solid var(--gold); border-bottom:2px solid var(--gold); transform:rotate(-45deg); }
.cfx-cols2{ display:grid; grid-template-columns:repeat(2,1fr); gap:26px; }
.cfx-box{ background:var(--card); border:1px solid var(--line); padding:38px 34px; }
.cfx-box h3{ font-family:'Fraunces',serif; color:var(--walnut); font-size:1.3rem; margin:0 0 12px; }
.cfx-box p{ color:var(--ink-soft); margin:0; }
.cfx-steps{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:22px; counter-reset:step; }
.cfx-step{ background:var(--card); border:1px solid var(--line); padding:34px 28px; position:relative; }
.cfx-step::before{ counter-increment:step; content:"0" counter(step); font-family:'Fraunces',serif; font-size:2.4rem; color:var(--gold-soft); display:block; margin-bottom:10px; }
.cfx-step h3{ font-family:'Fraunces',serif; color:var(--walnut); font-size:1.18rem; margin:0 0 10px; }
.cfx-step p{ color:var(--ink-soft); margin:0; font-size:.95rem; }
.cfx-stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; text-align:center; }
.cfx-stat strong{ display:block; font-family:'Fraunces',serif; font-size:2.6rem; color:var(--gold); }
.cfx-stat span{ color:var(--ink-soft); font-size:.95rem; }
.cfx-filter{ display:flex; flex-wrap:wrap; gap:10px; justify-content:center; margin:0 0 44px; list-style:none; padding:0; }
.cfx-roomcards{ display:grid; grid-template-columns:repeat(2,1fr); gap:28px; }
.cfx-roomcard{ background:var(--card); border:1px solid var(--line); display:grid; grid-template-columns:1fr 1fr; overflow:hidden; }
.cfx-roomcard > a img{ width:100%; height:100%; object-fit:cover; min-height:280px; }
.cfx-roomcard__body{ padding:32px 28px; }
.cfx-roomcard__body h2{ font-family:'Fraunces',serif; color:var(--walnut); font-size:1.5rem; margin:0 0 10px; }
.cfx-roomcard__body h2 a{ color:inherit; text-decoration:none; }
.cfx-roomcard__body p{ color:var(--ink-soft); font-size:.95rem; }
.cfx-roomcard .cfx-chips a{ font-size:.82rem; padding:6px 12px; }

/* Single product */
.cfx-pd{ display:grid; grid-template-columns:1.1fr 1fr; gap:64px; align-items:start; }
.cfx-pd__main{ aspect-ratio:1/1; background:var(--cream-deep); overflow:hidden; border:1px solid var(--line); }
.cfx-pd__main img{ width:100%; height:100%; object-fit:cover; }
.cfx-pd__thumbs{ display:grid; grid-template-columns:repeat(5,1fr); gap:10px; margin-top:10px; }
.cfx-pd__thumbs button{ padding:0; border:1px solid var(--line); background:none; cursor:pointer; aspect-ratio:1/1; overflow:hidden; }
.cfx-pd__thumbs button.is-active{ border-color:var(--gold); outline:2px solid var(--gold); }
.cfx-pd__thumbs img{ width:100%; height:100%; object-fit:cover; }
.cfx-pd__info h1{ font-family:'Fraunces',serif; font-size:clamp(1.9rem,3.4vw,2.7rem); color:var(--walnut); line-height:1.15; margin:0 0 14px; }
.cfx-pd__price{ font-size:1.35rem; margin:0 0 20px; }
.cfx-pd__excerpt{ color:var(--ink-soft); font-size:1.05rem; }
.cfx-spec{ width:100%; border-collapse:collapse; margin:26px 0; }
.cfx-spec th, .cfx-spec td{ text-align:left; padding:12px 0; border-bottom:1px solid var(--line); font-size:.95rem; vertical-align:top; }
.cfx-spec th{ color:var(--walnut); width:40%; font-weight:600; }
.cfx-spec td{ color:var(--ink-soft); }
.cfx-pd__desc{ margin-top:70px; max-width:860px; color:var(--ink-soft); }
.cfx-pd__desc h2{ font-family:'Fraunces',serif; color:var(--walnut); }
.cfx-note{ font-size:.88rem; color:var(--ink-soft); margin-top:16px; }

/* Contact */
.cfx-contact{ display:grid; grid-template-columns:1fr 1.2fr; gap:56px; align-items:start; }
.cfx-contact__info .cfx-box{ margin-bottom:18px; display:flex; gap:16px; align-items:flex-start; padding:26px 26px; }
.cfx-contact__info .cfx-box svg{ color:var(--gold); flex:none; }
.cfx-contact__info .cfx-box a{ color:var(--walnut); font-weight:600; text-decoration:none; }
.cfx-form{ background:var(--card); border:1px solid var(--line); border-top:3px solid var(--gold); padding:40px; }
.cfx-form input[type=text], .cfx-form input[type=email], .cfx-form input[type=tel], .cfx-form select, .cfx-form textarea{ width:100%; padding:13px 14px; border:1px solid var(--line); background:var(--cream); font:inherit; margin-top:6px; }
.cfx-form input[type=submit]{ background:var(--walnut); color:var(--cream); border:0; padding:14px 30px; font-weight:600; cursor:pointer; }

/* Responsive */
@media (max-width:1100px){ .cfx-grid{ grid-template-columns:repeat(3,1fr); } .cfx-roomcards{ grid-template-columns:1fr; } }
@media (max-width:900px){
  .cfx-sec{ padding:70px 0; }
  .cfx-split__in, .cfx-col, .cfx-pd, .cfx-contact{ grid-template-columns:1fr; gap:36px; }
  .cfx-col--rev .cfx-col__media{ order:0; }
  .cfx-col{ margin-bottom:60px; }
  .cfx-badge{ right:12px; }
  .cfx-grid{ grid-template-columns:repeat(2,1fr); gap:16px; }
  .cfx-look__grid, .cfx-testi__grid, .cfx-posts{ grid-template-columns:1fr; }
  .cfx-look__card{ aspect-ratio:4/3; }
  .cfx-stats{ grid-template-columns:repeat(2,1fr); }
  .cfx-cols2{ grid-template-columns:1fr; }
  .cfx-exp{ background-attachment:scroll; }
  .cfx-store__map{ min-height:0; display:flex; flex-direction:column; }
  .cfx-store__map iframe{ position:relative; height:340px; }
  .cfx-store__card{ margin:0; width:100%; box-shadow:none; }
}
@media (max-width:600px){
  .cfx-hero{ min-height:auto; padding:90px 0 70px; }
  .cfx-circles{ grid-template-columns:repeat(3,1fr); gap:18px; }
  .cfx-circle__ico{ width:86px; height:86px; }
  .cfx-grid{ grid-template-columns:1fr 1fr; }
  .cfx-card__btns{ grid-template-columns:1fr; }
  .cfx-card__body{ padding:14px; }
  .cfx-roomcard{ grid-template-columns:1fr; }
  .cfx-form{ padding:26px 20px; }
}

/* CFX refinements */
.cfx-circle__ico svg{ width:34px; height:34px; }
.cfx-why__ico svg{ width:28px; height:28px; }
.cfx-featured .cfx-grid{ grid-template-columns:repeat(3,1fr); }
.cfx-split--rev .cfx-split__media{ order:2; }
.cfx-cta .btn-cream, .cfx-hero .btn-cream, .cfx-exp .btn-cream{ color:var(--cream); border-color:rgba(250,246,238,.6); }
.cfx-cta .btn-cream svg, .cfx-hero .btn-cream svg{ fill:currentColor; }
.cfx-cta .cfx-kicker{ margin-bottom:6px; }
.cfx-store__card{ margin:60px 60px 60px auto; }
.cfx-contact__info .cfx-box h3{ margin:0 0 4px; font-size:1.05rem; }
.cfx-contact__info .cfx-box p{ margin:0; }
.cfx-contact__info .cfx-box svg{ width:26px; height:26px; }
.cfx-prose{ color:var(--ink-soft); }
.cfx-prose h2, .cfx-prose h3{ font-family:'Fraunces',serif; color:var(--walnut); }
.cfx-pd__info .cfx-list{ margin-bottom:10px; }
@media (max-width:1100px){ .cfx-featured .cfx-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:900px){ .cfx-split--rev .cfx-split__media{ order:0; } .cfx-store__card{ margin:0; } }
@media (max-width:600px){ .cfx-featured .cfx-grid{ grid-template-columns:1fr 1fr; } }

.cfx-split__text p, .cfx-col__text p, .cfx-exp p, .cfx-cta p, .cfx-pd__desc p, .cfx-prose p{ margin:0 0 14px; }
.cfx-hero p{ margin:0 0 14px; }

/* ===== CFX v2: page headers, spacing, CTA, dropdowns, blog ===== */
/* Standard container: 1320px everywhere */
.cfx .wrap, .page-hero .wrap{ max-width:1320px; margin-left:auto; margin-right:auto; width:100%; box-sizing:border-box; }
.cfx .cfx-narrow{ max-width:900px; }

/* Consistent vertical rhythm */
.cfx-sec, .cfx-rooms{ padding:96px 0; }
.cfx-sec:not(.cfx-sec--cream) + .cfx-sec:not(.cfx-sec--cream),
.cfx-sec--cream + .cfx-sec--cream{ padding-top:0; }
.cfx-head{ margin-bottom:52px; }
.cfx-head .cfx-h2{ margin-bottom:0; }
.cfx-head .cfx-lead{ margin-top:18px; }
.cfx-head--c .cfx-lead{ margin-left:auto; margin-right:auto; max-width:680px; }
.cfx-head--c .cfx-h2::after{ margin-top:20px; }
.cfx-center{ margin-top:52px; }
.cfx-btns{ margin-top:30px; }

/* Boxed page header (restored original style) */
.cfx-pagehead{ text-align:center; }
.cfx-pagehead .eyebrow{ display:block; margin:0 0 8px; }
.cfx-pagehead h1{ font-family:'Fraunces',serif; font-weight:600; color:var(--walnut); font-size:clamp(2rem,4vw,3.1rem); line-height:1.15; margin:0 auto 12px; max-width:900px; }
.cfx-pagehead__text{ max-width:680px; margin:0 auto; color:var(--ink-soft); line-height:1.7; }
.cfx-pagehead .breadcrumb span{ color:var(--ink-soft); }
.cfx-postmeta{ display:flex; flex-wrap:wrap; justify-content:center; gap:8px 22px; color:var(--ink-soft); font-size:.9rem; margin:6px 0 0; }
.cfx-postmeta span + span::before{ content:"·"; margin-right:22px; color:var(--gold); }

/* CTA band: background image + centred content */
.cfx-cta{ position:relative; background:linear-gradient(rgba(42,29,20,.86), rgba(42,29,20,.86)), var(--bg, none) center/cover no-repeat; background-color:var(--walnut); padding:110px 0; text-align:center; }
.cfx-cta__in{ display:flex; flex-direction:column; align-items:center; max-width:900px!important; }
.cfx-cta .cfx-h2{ max-width:820px; margin:0 auto 18px; }
.cfx-cta p{ max-width:680px; margin:0 auto 12px; text-align:center; }
.cfx-cta .cfx-btns{ justify-content:center; margin-top:26px; }
.cfx-exp p{ max-width:720px; margin-left:auto; margin-right:auto; }
.cfx-hero .cfx-btns{ margin-top:32px; }

/* Header dropdowns: solid box, no ghosting when moving between items */
.nav-links .sub-menu{ background:var(--card)!important; }
.nav-links .menu > li:not(:hover):not(:focus-within) > .sub-menu{ transition:none; }
.nav-links .menu > .menu-item-has-children:not(:hover)::before{ transition:none; }
.nav-links .sub-menu a{ display:block; }

/* Topic links */
.cfx-topics li{ padding:0; }
.cfx-topics li > a, .cfx-topics li > span:first-child{ display:flex; align-items:center; gap:10px; padding:14px 20px; color:inherit; text-decoration:none; }
.cfx-topics li:not(:has(a)){ padding:14px 20px; }
.cfx-topics li:hover{ border-color:var(--gold); }

/* Blog listing */
.cfx-blogbar{ display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:20px; margin-bottom:44px; }
.cfx-blogbar .cfx-chips{ margin:0; }
.cfx-search{ display:flex; border:1px solid var(--line); background:var(--card); }
.cfx-search input[type=search]{ border:0; background:transparent; padding:12px 16px; font:inherit; min-width:240px; outline:none; }
.cfx-search button{ border:0; background:var(--walnut); color:var(--cream); padding:0 16px; cursor:pointer; }
.cfx-bgrid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.cfx-bcard{ background:var(--card); border:1px solid var(--line); display:flex; flex-direction:column; transition:transform .3s, box-shadow .3s; }
.cfx-bcard:hover{ transform:translateY(-4px); box-shadow:var(--shadow); }
.cfx-bcard__media{ display:block; overflow:hidden; aspect-ratio:16/10; }
.cfx-bcard__media img{ width:100%; height:100%; object-fit:cover; transition:transform .6s; }
.cfx-bcard:hover .cfx-bcard__media img{ transform:scale(1.05); }
.cfx-bcard__body{ padding:24px 24px 26px; display:flex; flex-direction:column; flex:1; }
.cfx-bcard__meta{ font-size:.8rem; color:var(--ink-soft); margin:0 0 10px; letter-spacing:.04em; }
.cfx-bcard__meta a{ color:var(--gold); text-decoration:none; font-weight:600; text-transform:uppercase; letter-spacing:.1em; }
.cfx-bcard h3{ font-family:'Fraunces',serif; font-size:1.25rem; line-height:1.3; margin:0 0 10px; }
.cfx-bcard h3 a{ color:var(--walnut); text-decoration:none; }
.cfx-bcard p{ color:var(--ink-soft); font-size:.95rem; margin:0 0 18px; flex:1; }
.cfx-bcard .cfx-link{ align-self:flex-start; }
.cfx-pager{ margin-top:52px; }
.cfx-pager ul{ list-style:none; display:flex; justify-content:center; gap:8px; padding:0; margin:0; }
.cfx-pager a, .cfx-pager span{ display:grid; place-items:center; min-width:44px; height:44px; padding:0 12px; border:1px solid var(--line); background:var(--card); color:var(--walnut); text-decoration:none; }
.cfx-pager .current{ background:var(--walnut); color:var(--cream); border-color:var(--walnut); }
.cfx-empty-blog{ text-align:center; padding:20px 0; }
.cfx-empty-blog p{ color:var(--ink-soft); }

/* Single post */
.cfx-post__layout{ display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:56px; align-items:start; }
.cfx-post__img{ margin:0 0 36px; }
.cfx-post__img img{ width:100%; height:auto; aspect-ratio:16/9; object-fit:cover; }
.cfx-post__content{ font-size:1.06rem; line-height:1.85; }
.cfx-post__content h2{ font-size:1.8rem; margin:40px 0 14px; }
.cfx-post__content h3{ font-size:1.35rem; margin:32px 0 12px; }
.cfx-post__content img{ max-width:100%; height:auto; }
.cfx-post__content ul, .cfx-post__content ol{ padding-left:22px; margin:0 0 18px; }
.cfx-post__content blockquote{ margin:28px 0; padding:18px 26px; border-left:3px solid var(--gold); background:var(--cream-deep); font-family:'Fraunces',serif; font-size:1.15rem; color:var(--walnut); }
.cfx-post__content a{ color:var(--gold); }
.cfx-post__tags{ margin-top:32px; }
.cfx-share{ display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin:28px 0; padding:20px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.cfx-share span{ font-weight:700; color:var(--walnut); margin-right:6px; }
.cfx-share a{ padding:8px 16px; border:1px solid var(--line); color:var(--walnut); text-decoration:none; font-size:.9rem; background:var(--card); }
.cfx-share a:hover{ background:var(--walnut); color:var(--cream); }
.cfx-postnav{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.cfx-postnav a{ display:block; padding:20px 22px; border:1px solid var(--line); background:var(--card); color:var(--walnut); text-decoration:none; font-family:'Fraunces',serif; }
.cfx-postnav small{ display:block; font-family:'Manrope',sans-serif; color:var(--gold); font-size:.8rem; margin-bottom:4px; }
.cfx-postnav__next{ text-align:right; }
.cfx-post__side{ position:sticky; top:110px; display:grid; gap:22px; }
.cfx-side-box{ background:var(--card); border:1px solid var(--line); padding:28px 26px; }
.cfx-side-box h3{ font-family:'Fraunces',serif; color:var(--walnut); font-size:1.2rem; margin:0 0 14px; }
.cfx-side-box p{ color:var(--ink-soft); font-size:.95rem; margin:0 0 18px; }
.cfx-side-box--dark{ background:var(--walnut); border-color:var(--walnut); }
.cfx-side-box--dark h3{ color:#fff; }
.cfx-side-box--dark p{ color:rgba(250,246,238,.85); }
.cfx-side-box--dark .btn{ color:#fff; }
.cfx-side-links{ list-style:none; padding:0; margin:0; }
.cfx-side-links li + li{ border-top:1px solid var(--line); }
.cfx-side-links a{ display:flex; justify-content:space-between; gap:10px; padding:11px 0; color:var(--ink); text-decoration:none; font-size:.95rem; }
.cfx-side-links a:hover{ color:var(--gold); }

@media (max-width:1100px){ .cfx-bgrid{ grid-template-columns:repeat(2,1fr); } .cfx-post__layout{ grid-template-columns:1fr; } .cfx-post__side{ position:static; } }
@media (max-width:900px){ .cfx-sec, .cfx-rooms{ padding:72px 0; } .cfx-cta{ padding:80px 0; } .cfx-head{ margin-bottom:40px; } }
@media (max-width:600px){ .cfx-sec, .cfx-rooms{ padding:56px 0; } .cfx-bgrid{ grid-template-columns:1fr; } .cfx-search{ width:100%; } .cfx-search input[type=search]{ min-width:0; flex:1; } .cfx-postnav{ grid-template-columns:1fr; } .cfx-cta{ padding:64px 0; } }

/* CFX alignment fixes: centred blocks are truly centred */
.cfx-head--c > *, .page-hero .wrap > *, .cfx-cta__in > *, .cfx-exp__in > *, .cfx-empty-blog > *, .cfx-center > *{ margin-left:auto!important; margin-right:auto!important; }
.cfx-head--c, .page-hero, .cfx-cta, .cfx-exp, .cfx-empty-blog, .cfx-center{ text-align:center; }
.cfx-head--c .cfx-kicker, .page-hero .eyebrow, .page-hero .breadcrumb{ max-width:none; }
.cfx-btns .btn, .cfx-card__btns .btn, .cfx-store__btns .btn{ justify-content:center; text-align:center; }
.cfx-card__btns .btn::after, .cfx-btns .btn::after{ display:none; }

/* CFX: inner banners with background image */
.cfx-phero{ position:relative; background:linear-gradient(90deg, rgba(30,20,14,.88) 0%, rgba(30,20,14,.62) 55%, rgba(30,20,14,.35) 100%), var(--bg) center/cover no-repeat; background-color:var(--walnut); color:var(--cream); padding:110px 0 96px; text-align:left; }
.cfx-phero__in > *{ margin-left:0; margin-right:0; }
.cfx-phero .cfx-crumbs{ font-size:.86rem; color:rgba(250,246,238,.7); margin:0 0 18px; }
.cfx-phero .cfx-crumbs a{ color:var(--gold-soft); text-decoration:none; }
.cfx-phero .cfx-crumbs a:hover{ color:#fff; }
.cfx-phero .cfx-kicker{ margin:0 0 10px; }
.cfx-phero h1{ font-family:'Fraunces',serif; font-weight:600; font-size:clamp(2.2rem,4.6vw,3.6rem); line-height:1.1; color:#fff; margin:0 0 16px; max-width:820px; }
.cfx-phero__text{ max-width:680px; color:rgba(250,246,238,.88); font-size:1.06rem; line-height:1.7; margin:0; }
.cfx-posthead .cfx-postmeta{ justify-content:flex-start; color:rgba(250,246,238,.8); margin-top:4px; }
@media (max-width:900px){ .cfx-phero{ padding:84px 0 72px; } }
@media (max-width:600px){ .cfx-phero{ padding:64px 0 56px; } }

/* ==================================================================
 * Sticky header (v3)
 * Customizer > Additional CSS sets html, body { overflow-x:hidden },
 * which turns the page into its own scroll box and stops the header
 * from sticking. "clip" hides sideways overflow exactly the same way
 * but keeps position:sticky working. (Older browsers keep "hidden".)
 * ================================================================== */
html:root, html body{ overflow-x:hidden; overflow-x:clip; }
header.site-header{ position:-webkit-sticky; position:sticky; top:0; z-index:60; }
.admin-bar header.site-header{ top:32px; }
@media screen and (max-width:782px){ .admin-bar header.site-header{ top:46px; } }
@media screen and (max-width:600px){ .admin-bar header.site-header{ top:0; } }
html{ scroll-padding-top:110px; }

/* ===== Room pages: sub-category cards (Bedroom, Living, Dining, Other Products) ===== */
.cfx-catcards{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
.cfx-catcard{ display:flex; flex-direction:column; background:var(--card); border:1px solid var(--line); color:var(--ink); text-decoration:none; transition:box-shadow .3s, transform .3s; }
.cfx-catcard:hover{ box-shadow:var(--shadow); transform:translateY(-4px); }
.cfx-catcard:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; }
.cfx-catcard__media{ position:relative; display:block; overflow:hidden; aspect-ratio:4/3; background:var(--cream-deep); }
.cfx-catcard__media img{ width:100%; height:100%; object-fit:cover; transition:transform .7s ease; }
.cfx-catcard:hover .cfx-catcard__media img{ transform:scale(1.05); }
.cfx-catcard__count{ position:absolute; left:16px; bottom:16px; background:rgba(250,246,238,.95); color:var(--walnut); font-size:.72rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; padding:6px 12px; border-radius:40px; }
.cfx-catcard__body{ display:flex; flex-direction:column; flex:1; padding:22px 22px 24px; }
.cfx-catcard__title{ display:block; font-family:'Fraunces',serif; font-weight:600; font-size:1.3rem; line-height:1.25; color:var(--walnut); margin:0 0 8px; }
.cfx-catcard__text{ display:block; color:var(--ink-soft); font-size:.93rem; line-height:1.6; margin:0 0 18px; }
.cfx-catcard__more{ margin-top:auto; align-self:flex-start; color:var(--gold); font-weight:600; font-size:.92rem; border-bottom:1px solid var(--gold-soft); padding-bottom:3px; transition:color .2s, border-color .2s; }
.cfx-catcard:hover .cfx-catcard__more{ color:var(--walnut); border-color:var(--walnut); }
.cfx-catproducts .cfx-chips{ justify-content:center; margin-bottom:36px; }
@media (max-width:1100px){ .cfx-catcards{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px){
  .cfx-catcards{ grid-template-columns:1fr; gap:16px; }
  .cfx-catcard{ flex-direction:row; }
  .cfx-catcard__media{ flex:0 0 40%; aspect-ratio:auto; min-height:150px; }
  .cfx-catcard__count{ left:8px; bottom:8px; font-size:.62rem; padding:4px 8px; }
  .cfx-catcard__body{ padding:14px 16px; }
  .cfx-catcard__title{ font-size:1.1rem; }
  .cfx-catcard__text{ font-size:.85rem; margin-bottom:12px; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
}
