:root{
  --cream:#F6EDDE;
  --cream-deep:#E8D9BB;
  --paper:#FFFCF5;
  --ink:#1F1206;
  --ink-soft:#5C4A34;
  --aubergine:#1F1206;
  --aubergine-deep:#0B0B0D;
  --plum:#C9971E;
  --plum-deep:#9A6E14;
  --plum-tint:#E8D9BB;
  --brass:#C9971E;
  --brass-light:#E6B845;
  --brass-deep:#9A6E14;
  --line: rgba(27,19,16,.12);
  --onyx-black:#0B0B0D;
}

/* Premium gold/white footer — replaces the old aubergine (purple) background */
.footer-premium{
  background:
    radial-gradient(ellipse 60% 55% at 82% 0%, rgba(201,168,118,.14), transparent 60%),
    linear-gradient(160deg, #14100a 0%, var(--onyx-black) 100%);
  border-top:1px solid rgba(201,168,118,.18);
}

html{scroll-behavior:smooth;}
body{
  background:var(--cream);
  color:var(--ink);
  font-family:'Manrope', sans-serif;
  -webkit-font-smoothing:antialiased;
  position:relative;
}
.font-display{font-family:'Fraunces', serif;}
.font-display-italic{font-family:'Fraunces', serif; font-style:italic;}

[x-cloak]{display:none !important;}

::selection{background:var(--plum); color:var(--cream);}

.grain{position:relative;}
.grain::before{
  content:'';
  position:absolute; inset:0;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='saturate' values='0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='0.045'/></svg>");
  pointer-events:none; mix-blend-mode:overlay;
}

.bowtie{display:inline-flex; align-items:center; justify-content:center;}
.bowtie svg{display:block;}

.btn{
  position:relative;
  display:inline-flex; align-items:center; gap:.5rem;
  padding:1rem 2rem;
  font-family:'Manrope',sans-serif; font-weight:700; font-size:.8rem;
  letter-spacing:.05em; text-transform:uppercase;
  border-radius:999px;
  transition:all .35s cubic-bezier(.2,.7,.2,1);
  white-space:nowrap;
  isolation:isolate;
}
.btn-primary{
  background:var(--brass-light);
  color:var(--aubergine-deep);
  box-shadow:0 14px 30px -14px rgba(138,106,52,.65);
}
.btn-primary:hover{ background:var(--brass); transform:translateY(-2px); box-shadow:0 18px 34px -12px rgba(138,106,52,.8); }
.btn-outline{ border:1.5px solid var(--ink); color:var(--ink); }
.btn-outline:hover{ background:var(--ink); color:var(--cream); transform:translateY(-2px); }
.btn-outline-light{ border:1.5px solid rgba(247,241,229,.45); color:var(--cream); }
.btn-outline-light:hover{ background:var(--cream); color:var(--aubergine-deep); border-color:var(--cream); transform:translateY(-2px); }

.nav-link{
  position:relative; font-weight:600; font-size:.92rem; color:var(--ink);
}
.nav-link::after{
  content:''; position:absolute; left:0; bottom:-4px; width:0; height:1.5px;
  background:linear-gradient(90deg, var(--brass-deep), var(--brass));
  transition:width .3s ease;
}
.nav-link:hover::after, .nav-link.active::after{ width:100%; }

.card-product{
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:1.1rem;
  overflow:hidden;
  transition:transform .4s cubic-bezier(.2,.7,.2,1), box-shadow .4s ease, border-color .4s ease;
}
.card-product:hover{
  transform:translateY(-7px);
  box-shadow:0 30px 50px -22px rgba(27,19,16,.3);
  border-color:transparent;
}
.card-product .img-wrap{
  aspect-ratio:1/1;
  background:linear-gradient(160deg,#FCF9F2,#E8D9BB);
  display:flex; align-items:center; justify-content:center;
  overflow:hidden;
  position:relative;
}
.card-product img{
  width:100%; height:100%; object-fit:contain;
  mix-blend-mode:multiply;
  padding:1.1rem;
  transition:transform .6s cubic-bezier(.2,.7,.2,1);
}
.card-product:hover img{ transform:scale(1.07); }

.eyebrow{
  font-family:'Manrope',sans-serif; font-weight:800; font-size:.72rem;
  letter-spacing:.28em; text-transform:uppercase; color:var(--brass-deep);
}

.chip{
  font-size:.78rem; font-weight:700; letter-spacing:.02em;
  padding:.5rem 1.1rem; border-radius:999px; border:1.5px solid var(--line);
  color:var(--ink-soft); transition:all .2s ease; cursor:pointer; white-space:nowrap;
}
.chip.active, .chip:hover{ background:var(--aubergine); color:var(--cream); border-color:var(--aubergine); }

.divider-diamond{
  width:8px; height:8px; background:var(--brass-deep); transform:rotate(45deg);
  display:inline-block;
}

.section-pad{ padding-top:7rem; padding-bottom:7rem; }
@media (max-width: 768px){ .section-pad{ padding-top:4rem; padding-bottom:4rem; } }

.text-balance{ text-wrap:balance; }

.reveal-up{ opacity:0; transform:translateY(28px); }

.hero-photo{
  border-radius:1.4rem;
  box-shadow:0 40px 70px -30px rgba(27,19,16,.4);
}

.value-card{
  border:1px solid var(--line);
  border-radius:1rem;
  background:var(--paper);
  transition:border-color .3s ease, transform .3s ease, box-shadow .3s ease;
}
.value-card:hover{ border-color:var(--brass); transform:translateY(-4px); box-shadow:0 20px 34px -20px rgba(27,19,16,.25); }

.marquee-track{
  display:flex; width:max-content; animation:marquee 34s linear infinite;
}
@keyframes marquee{
  from{ transform:translateX(0); }
  to{ transform:translateX(-50%); }
}

input.field, textarea.field, select.field{
  width:100%; background:var(--paper); border:1.5px solid var(--line);
  border-radius:.7rem; padding:.85rem 1rem; font-family:'Manrope',sans-serif;
  transition:border-color .2s ease;
}
input.field:focus, textarea.field:focus, select.field:focus{
  outline:none; border-color:var(--brass);
}
label.field-label{
  font-size:.78rem; font-weight:700; letter-spacing:.03em; text-transform:uppercase;
  color:var(--ink-soft); margin-bottom:.4rem; display:block;
}

a:focus-visible, button:focus-visible, .chip:focus-visible{
  outline:2px solid var(--brass-deep); outline-offset:3px;
}

.hero-dark{
  background:
    radial-gradient(ellipse 55% 50% at 88% 8%, rgba(201,168,118,.22), transparent 60%),
    radial-gradient(ellipse 45% 45% at 6% 92%, rgba(201,168,118,.14), transparent 65%),
    linear-gradient(160deg, var(--paper) 0%, var(--cream) 100%);
  color:var(--ink);
  position:relative;
  overflow:hidden;
}
.hero-lines{ position:absolute; inset:0; pointer-events:none; opacity:.5; }
.hero-lines path{ fill:none; stroke:url(#heroLineGrad); stroke-width:1; }

.seal-ring{
  animation:spin 42s linear infinite;
  transform-origin:50% 50%;
}
@keyframes spin{ to{ transform:rotate(360deg); } }

.seal-wrap{ position:relative; display:inline-flex; align-items:center; justify-content:center; }
.seal-glow{
  position:absolute; inset:-18%;
  background:radial-gradient(circle, rgba(230,184,69,.55), rgba(201,151,30,.2) 55%, transparent 75%);
  filter:blur(20px);
  animation:pulse 5s ease-in-out infinite;
}
@keyframes pulse{
  0%,100%{ opacity:.55; transform:scale(1); }
  50%{ opacity:.9; transform:scale(1.06); }
}

.big-outline-text{
  font-family:'Fraunces', serif;
  -webkit-text-stroke:1px rgba(247,241,229,.14);
  color:transparent;
  letter-spacing:.02em;
}

.gold-text{
  background:linear-gradient(100deg, var(--brass-deep), var(--brass-light) 45%, var(--brass) 75%, var(--brass-deep));
  -webkit-background-clip:text; background-clip:text; color:transparent;
}

.ornament-divider{ display:flex; align-items:center; justify-content:center; gap:1rem; }
.ornament-divider svg{ overflow:visible; }

.ornament-draw line{ stroke-dasharray:1; stroke-dashoffset:1; }
.bowtie-draw{ stroke-dasharray:1; stroke-dashoffset:1; }

/* ===================== About — Vision & Goal premium cards ===================== */
.vg-card{
  position:relative; overflow:hidden;
  background:var(--paper);
  border:1px solid rgba(31,18,6,.08);
  border-radius:1.5rem;
  padding:2.75rem 2.5rem;
  box-shadow:0 30px 60px -34px rgba(31,18,6,.18);
  transition:transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}
.vg-card:hover{
  transform:translateY(-5px);
  box-shadow:0 40px 70px -30px rgba(31,18,6,.24);
  border-color:rgba(201,151,30,.35);
}
.vg-card::before{
  content:''; position:absolute; left:0; top:0; bottom:0; width:3px;
  background:linear-gradient(180deg, var(--brass-light), var(--brass-deep));
}
.vg-num{
  position:absolute; top:1.4rem; right:1.8rem;
  font-family:'Fraunces',serif; font-size:3.4rem; font-weight:500;
  color:rgba(31,18,6,.06); line-height:1; pointer-events:none;
}
.vg-mark{
  width:52px; height:52px; border-radius:999px;
  background:linear-gradient(150deg, rgba(201,151,30,.14), rgba(201,151,30,.04));
  border:1px solid rgba(201,151,30,.25);
  display:flex; align-items:center; justify-content:center;
  margin-bottom:1.75rem;
}
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  .marquee-track, .seal-ring, .seal-glow{ animation:none; }
}

/* ===================== About page — extra components ===================== */

/* Process / "how we work" rail */
.process-rail{ position:relative; }
.process-rail::before{
  content:'';
  position:absolute; left:27px; top:8px; bottom:8px; width:1px;
  background:linear-gradient(to bottom, transparent, var(--brass) 12%, var(--brass) 88%, transparent);
}
@media (max-width: 767px){ .process-rail::before{ left:27px; } }
.process-step{ position:relative; padding-left:5.2rem; margin-bottom:2.5rem; }
.process-step:last-child{ margin-bottom:0; }
.process-num{
  position:absolute; left:0; top:0;
  width:56px; height:56px; border-radius:999px;
  display:flex; align-items:center; justify-content:center;
  background:var(--paper); border:1.5px solid var(--line);
  font-family:'Fraunces', serif; font-size:1.15rem; color:var(--brass-deep);
  transition:border-color .3s ease, background .3s ease, color .3s ease, transform .3s ease;
}
.process-step:hover .process-num{
  border-color:var(--brass-deep); background:var(--aubergine); color:var(--brass-light);
  transform:scale(1.06);
}

/* Editorial values list */
.value-row{
  position:relative;
  display:grid; grid-template-columns:auto 1fr; gap:1.6rem;
  padding:2.1rem 0;
  border-top:1px solid var(--line);
  align-items:start;
}
.value-row:last-child{ border-bottom:1px solid var(--line); }
.value-num{
  font-family:'Fraunces', serif; font-weight:500; font-size:2.4rem; line-height:1;
  -webkit-text-stroke:1px var(--brass-deep); color:transparent;
  transition:color .35s ease, -webkit-text-stroke .35s ease;
  min-width:3.2rem;
}
.value-row:hover .value-num{ color:var(--brass-deep); }
.value-row .value-icon{ transition:transform .35s cubic-bezier(.2,.7,.2,1); }
.value-row:hover .value-icon{ transform:translateX(4px); }

/* Pull quote */
.quote-mark{
  font-family:'Fraunces', serif; font-size:5rem; line-height:0.5; color:var(--brass);
  display:block; margin-bottom:.5rem;
}
.quote-mark-center{ margin-top:1.5rem; }

/* Stat block reused outside hero */
.stat-split{ display:flex; align-items:center; gap:2rem; flex-wrap:wrap; }
.stat-split .stat-line{ width:1px; height:2.5rem; background:var(--line); }

/* ===================== Products page — redesign ===================== */

.cx-hero{ position:relative; overflow:hidden; padding-top:7rem; padding-bottom:6rem; }
@media (max-width:1024px){ .cx-hero{ padding-bottom:4rem; } }
.cx-hero-title{ font-size:2.5rem; line-height:1.08; }
@media (min-width:640px){ .cx-hero-title{ font-size:3rem; } }
@media (min-width:1024px){ .cx-hero-title{ font-size:3.6rem; } }

.cx-bgword{
  position:absolute; left:50%; top:52%; transform:translate(-50%,-50%);
  font-family:'Fraunces', serif; font-weight:600; font-size:clamp(5rem,18vw,15rem);
  white-space:nowrap; letter-spacing:-.02em;
  -webkit-text-stroke:1px rgba(31,18,6,.07); color:transparent;
  pointer-events:none; z-index:0; user-select:none;
}

/* ---- Products hero — static white-product background photo ---- */
.cx-hero-photo{
  position:absolute; inset:0; z-index:0; pointer-events:none;
  background-repeat:no-repeat;
  background-size:cover;
  background-position:center 40%;
  opacity:.5;
  filter:grayscale(25%) sepia(10%) saturate(100%) brightness(1.08);
}
@media (max-width:1024px){
  .cx-hero-photo{
    background-position:center 32%;
    opacity:.5;
  }
}
/* Scrim: keeps the left/text zone crisp while letting the photo breathe on the right,
   and washes it back to the brand's cream/gold palette so it reads as one
   cohesive, premium surface rather than raw product photography. */
.cx-hero-scrim{
  position:absolute; inset:0; z-index:0; pointer-events:none;
  background:
    radial-gradient(ellipse 55% 50% at 88% 8%, rgba(201,168,118,.20), transparent 60%),
    radial-gradient(ellipse 45% 45% at 6% 92%, rgba(201,168,118,.12), transparent 65%),
    linear-gradient(100deg, rgba(247,241,229,.94) 0%, rgba(247,241,229,.86) 30%, rgba(247,241,229,.8) 60%, rgba(247,241,229,.85) 100%);
}
@media (max-width:1024px){
  .cx-hero-scrim{
    background:
      radial-gradient(ellipse 55% 50% at 88% 8%, rgba(201,168,118,.20), transparent 60%),
      linear-gradient(180deg, rgba(247,241,229,.95) 0%, rgba(247,241,229,.88) 30%, rgba(247,241,229,.82) 55%, rgba(247,241,229,.88) 100%);
  }
}
/* Bottom fade — blends the hero smoothly into the cream body background of the
   section that follows, so the photo never ends on a hard edge. */
.cx-hero-fade-bottom{
  position:absolute; left:0; right:0; bottom:0; height:14rem; z-index:0; pointer-events:none;
  background:linear-gradient(180deg, transparent 0%, var(--cream) 100%);
}
@media (max-width:1024px){
  .cx-hero-fade-bottom{ height:9rem; }
}


.cx-stats{ display:flex; gap:2.2rem; flex-wrap:wrap; }
.cx-stat-num{ font-family:'Fraunces',serif; font-size:2rem; color:var(--brass-deep); }
.cx-stat-label{ font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-soft); margin-top:.2rem; }

/* Category tiles */
.cx-cat-tile{
  position:relative; border-radius:1.2rem; overflow:hidden; cursor:pointer;
  aspect-ratio:4/5; isolation:isolate; display:block;
  transition:transform .4s cubic-bezier(.2,.7,.2,1), box-shadow .4s ease;
}
@media (max-width:639px){
  .cx-cat-tile{ aspect-ratio:16/10; }
}
.cx-cat-tile:hover{ transform:translateY(-6px); box-shadow:0 26px 44px -20px rgba(27,19,16,.35); }
.cx-cat-tile img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  transition:transform .7s cubic-bezier(.2,.7,.2,1);
}
.cx-cat-tile:hover img{ transform:scale(1.09); }
.cx-cat-tile::after{
  content:''; position:absolute; inset:0; z-index:1;
  background:linear-gradient(to top, rgba(24,7,18,.94) 5%, rgba(43,14,32,.35) 55%, rgba(43,14,32,.05));
  transition:background .4s ease;
}
.cx-cat-tile.is-active::after{ background:linear-gradient(to top, rgba(124,45,83,.94) 5%, rgba(124,45,83,.4) 55%, rgba(43,14,32,.05)); }
.cx-cat-tile-content{ position:absolute; inset:0; z-index:2; display:flex; flex-direction:column; justify-content:flex-end; padding:1.3rem; color:var(--cream); }
.cx-cat-count{ font-size:.66rem; letter-spacing:.16em; text-transform:uppercase; color:var(--brass-light); font-weight:700; }
.cx-cat-name{ font-family:'Fraunces',serif; font-size:1.28rem; line-height:1.15; margin-top:.35rem; }
@media (max-width:639px){
  .cx-cat-tile-content{ padding:1.5rem 1.6rem; }
  .cx-cat-name{ font-size:1.5rem; }
  .cx-cat-count{ font-size:.7rem; }
}
.cx-cat-arrow{ position:absolute; top:1.1rem; right:1.1rem; z-index:2; width:34px; height:34px; border-radius:999px; background:rgba(247,241,229,.14); border:1px solid rgba(247,241,229,.3); display:flex; align-items:center; justify-content:center; color:var(--cream); transition:background .3s ease, transform .3s ease; }
.cx-cat-tile:hover .cx-cat-arrow{ background:var(--brass); border-color:var(--brass); color:var(--aubergine-deep); transform:rotate(45deg); }

/* Toolbar */
.cx-toolbar{ position:sticky; top:80px; z-index:30; background:rgba(247,241,229,.96); backdrop-filter:blur(8px); padding:.9rem .25rem; margin:0 -.25rem; transition:box-shadow .25s ease; }
.cx-toolbar.is-condensed{ box-shadow:0 10px 24px -18px rgba(27,19,16,.35); }
.cx-chip-row{ display:flex; flex-wrap:wrap; gap:.6rem; }
.cx-filter-toggle{
  display:none; align-items:center; gap:.5rem; font-size:.82rem; font-weight:700;
  background:var(--paper); border:1.5px solid var(--line); border-radius:999px;
  padding:.6rem 1.1rem; color:var(--ink); cursor:pointer; transition:border-color .2s ease, background .2s ease;
}
.cx-filter-toggle:hover{ border-color:var(--brass); }
.cx-filter-caret{ transition:transform .25s ease; flex-shrink:0; }
.cx-filter-caret.is-open{ transform:rotate(180deg); }
.cx-filter-panel{
  display:flex; flex-wrap:wrap; gap:.6rem;
  overflow:hidden;
}
.cx-filter-transition{ transition:opacity .25s ease, transform .25s ease; }
.cx-filter-closed{ opacity:0; transform:translateY(-8px); }
.cx-filter-open{ opacity:1; transform:translateY(0); }

@media (max-width:767px){
  .cx-toolbar{ top:76px; }
  .cx-chip-row{ display:none; }
  .cx-filter-toggle{ display:inline-flex; }
  .cx-filter-panel{ margin-top:.75rem; padding-top:.75rem; border-top:1px solid var(--line); }
}

.cx-search{
  position:relative; flex:1 1 220px; max-width:340px;
}
.cx-search input{
  width:100%; background:var(--paper); border:1.5px solid var(--line); border-radius:999px;
  padding:.65rem 1rem .65rem 2.5rem; font-family:'Manrope',sans-serif; font-size:.88rem;
  transition:border-color .2s ease;
}
.cx-search input:focus{ outline:none; border-color:var(--brass); }
.cx-search svg{ position:absolute; left:.9rem; top:50%; transform:translateY(-50%); color:var(--ink-soft); pointer-events:none; }
.cx-count{ font-size:.75rem; color:var(--ink-soft); white-space:nowrap; }

/* Grid — compact, evenly arranged cards */
.cx-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(200px,1fr));
  gap:1.15rem;
}
@media (max-width:640px){ .cx-grid{ grid-template-columns:1fr 1fr; gap:.75rem; } }

.cx-card{
  position:relative; display:flex; flex-direction:column; height:100%;
  background:var(--paper); border:1px solid var(--line); border-radius:.9rem;
  overflow:hidden; cursor:pointer;
  transition:transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s ease, border-color .35s ease;
}
.cx-card:hover{ transform:translateY(-5px); box-shadow:0 22px 38px -20px rgba(27,19,16,.28); border-color:transparent; }
.cx-card .cx-img-wrap{ aspect-ratio:1/1; background:linear-gradient(160deg,#FCF9F2,#E8D9BB); position:relative; overflow:hidden; flex-shrink:0; }
.cx-card img{ width:100%; height:100%; object-fit:contain; mix-blend-mode:multiply; padding:.85rem; transition:transform .55s cubic-bezier(.2,.7,.2,1); }
.cx-card:hover img{ transform:scale(1.06); }
.cx-card-body{ padding:.95rem 1rem 1.1rem; display:flex; flex-direction:column; flex:1; min-width:0; }
.cx-card-tag{ font-size:.6rem; font-weight:800; text-transform:uppercase; letter-spacing:.14em; color:var(--plum); }
.cx-card-title{
  font-family:'Fraunces',serif; font-size:.98rem; line-height:1.25; margin-top:.3rem;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.cx-card-desc{
  font-size:.78rem; color:var(--ink-soft); line-height:1.48; margin-top:.35rem;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.cx-card-cta{ display:flex; align-items:center; gap:.35rem; font-size:.72rem; font-weight:700; margin-top:auto; padding-top:.8rem; color:var(--ink); white-space:nowrap; }
.cx-card-cta svg{ transition:transform .3s ease; flex-shrink:0; }
.cx-card:hover .cx-card-cta svg{ transform:translateX(4px); }

.cx-quickview-btn{
  position:absolute; top:.55rem; right:.55rem; z-index:2;
  width:32px; height:32px; border-radius:999px;
  background:rgba(255,253,249,.92); border:1px solid var(--line);
  display:flex; align-items:center; justify-content:center; color:var(--ink);
  opacity:0; transform:translateY(-6px);
  transition:opacity .3s ease, transform .3s ease, background .3s ease, color .3s ease;
}
.cx-card:hover .cx-quickview-btn{ opacity:1; transform:translateY(0); }
.cx-quickview-btn:hover{ background:var(--aubergine); color:var(--brass-light); }
@media (hover:none){ .cx-quickview-btn{ opacity:1; transform:translateY(0); background:rgba(255,253,249,.85); } }

.cx-no-results{ text-align:center; padding:5rem 1rem; color:var(--ink-soft); }

/* Quick-view modal */
.cx-modal-backdrop{
  position:fixed; inset:0; z-index:100; background:rgba(24,7,18,.72); backdrop-filter:blur(6px);
  display:flex; align-items:center; justify-content:center; padding:1.25rem;
}
.cx-modal{
  background:var(--paper); border-radius:1.3rem; width:100%; max-width:900px; max-height:88vh;
  overflow:auto; display:grid; grid-template-columns:1fr; position:relative;
  box-shadow:0 60px 100px -30px rgba(0,0,0,.5);
}
@media (min-width:768px){ .cx-modal{ grid-template-columns:1fr 1fr; } }
.cx-modal-img{ background:linear-gradient(160deg,#FCF9F2,#E8D9BB); display:flex; align-items:center; justify-content:center; min-height:280px; }
.cx-modal-img img{ width:100%; height:100%; object-fit:contain; mix-blend-mode:multiply; padding:2rem; }
.cx-modal-body{ padding:2.2rem; }
.cx-modal-close{
  position:absolute; top:1rem; right:1rem; z-index:5; width:38px; height:38px; border-radius:999px;
  background:var(--paper); border:1px solid var(--line); display:flex; align-items:center; justify-content:center;
  color:var(--ink); transition:background .2s ease, color .2s ease;
}
.cx-modal-close:hover{ background:var(--ink); color:var(--cream); }
.cx-modal-specs{ margin-top:1.4rem; padding-top:1.4rem; border-top:1px solid var(--line); display:flex; flex-direction:column; gap:.6rem; }
.cx-modal-spec{ display:flex; align-items:center; gap:.6rem; font-size:.86rem; color:var(--ink-soft); }
.cx-modal-spec svg{ color:var(--brass-deep); flex-shrink:0; }

/* ===================== HOMEPAGE REDESIGN — PREMIUM GOLD / WHITE ===================== */

.hp-hero{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(ellipse 55% 50% at 88% 8%, rgba(201,168,118,.22), transparent 60%),
    radial-gradient(ellipse 45% 45% at 6% 92%, rgba(201,168,118,.14), transparent 65%),
    linear-gradient(160deg, var(--paper) 0%, var(--cream) 100%);
}
.hp-hero-arc{ position:absolute; inset:0; pointer-events:none; z-index:0; }
.hp-hero-arc .ring{ fill:none; stroke:var(--brass); stroke-opacity:.28; }
.hp-hero-arc .ring-dash{ fill:none; stroke:var(--brass-light); stroke-dasharray:2 10; stroke-linecap:round; animation:hpSpinSlow 60s linear infinite; transform-origin:center; }
.hp-hero-arc .ring-slow{ animation:hpSpinRev 90s linear infinite; transform-origin:center; }
@keyframes hpSpinSlow{ to{ transform:rotate(360deg); } }
@keyframes hpSpinRev{ to{ transform:rotate(-360deg); } }

.hp-particle{
  position:absolute; width:9px; height:9px; border:1.5px solid var(--brass);
  transform:rotate(45deg); opacity:.55; animation:hpFloat 6s ease-in-out infinite;
}
.hp-particle.p1{ top:14%; left:6%; animation-delay:.2s; }
.hp-particle.p2{ top:70%; left:12%; width:6px; height:6px; animation-delay:1.4s; }
.hp-particle.p3{ top:24%; left:92%; animation-delay:.8s; }
.hp-particle.p4{ top:82%; left:88%; width:7px; height:7px; animation-delay:2s; }
.hp-particle.p5{ top:46%; left:3%; width:5px; height:5px; animation-delay:1s; }
@keyframes hpFloat{
  0%,100%{ transform:rotate(45deg) translateY(0); }
  50%{ transform:rotate(45deg) translateY(-16px); }
}
@media (prefers-reduced-motion: reduce){ .hp-particle, .hp-hero-arc .ring-dash, .hp-hero-arc .ring-slow{ animation:none; } }

.hp-outline-word{
  font-family:'Fraunces', serif;
  -webkit-text-stroke:1px rgba(107,78,40,.14);
  color:transparent;
  letter-spacing:.02em;
}

.hp-seal-wrap{ position:relative; display:inline-flex; align-items:center; justify-content:center; }
.hp-seal-plate{
  position:absolute; inset:6%;
  border-radius:50%;
  background:radial-gradient(circle at 32% 28%, #FFFFFF, var(--cream-deep) 78%);
  box-shadow:
    0 30px 60px -20px rgba(107,78,40,.35),
    inset 0 0 0 1px rgba(201,168,118,.4),
    inset 0 2px 14px rgba(255,255,255,.9);
}
.hp-seal-glow{
  position:absolute; inset:-14%;
  background:radial-gradient(circle, rgba(230,184,69,.55), rgba(201,151,30,.2) 55%, transparent 75%);
  filter:blur(24px);
  animation:pulse 5s ease-in-out infinite;
}

.hp-eyebrow-chip{
  display:inline-flex; align-items:center; gap:.55rem;
  padding:.5rem 1rem .5rem .7rem;
  border:1px solid rgba(107,78,40,.22);
  border-radius:999px;
  background:rgba(255,255,255,.6);
}

/* Values strip — light, gold-bordered */
.hp-strip{
  background:var(--paper);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  position:relative;
}
.hp-strip .marquee-track span{ color:var(--ink-soft); }

/* ============ Featured supplies — modern carousel ============ */
.hp-feat-section{ position:relative; overflow:hidden; }

.hp-carousel-shell{
  position:relative;
  margin:0 auto;
}
.hp-carousel-shell::before,
.hp-carousel-shell::after{
  content:''; position:absolute; top:0; bottom:10px; width:min(8vw, 90px); z-index:3; pointer-events:none;
}
.hp-carousel-shell::before{ left:0; background:linear-gradient(90deg, var(--paper), rgba(255,252,245,0)); }
.hp-carousel-shell::after{ right:0; background:linear-gradient(270deg, var(--paper), rgba(255,252,245,0)); }
@media (max-width:640px){
  .hp-carousel-shell::before, .hp-carousel-shell::after{ width:28px; }
}

.hp-carousel-viewport{
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  scrollbar-width:none;
  -ms-overflow-style:none;
  padding:8px clamp(1.5rem, 6vw, 4rem) 14px;
}
.hp-carousel-viewport::-webkit-scrollbar{ display:none; }
.hp-carousel-track{ display:flex; gap:1.25rem; width:max-content; }

.hp-feat-card{
  position:relative;
  flex:0 0 clamp(190px, 15vw, 235px);
  scroll-snap-align:start;
  display:block;
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:1.1rem;
  overflow:hidden;
  isolation:isolate;
  transition:transform .45s cubic-bezier(.2,.7,.2,1), box-shadow .45s ease, border-color .45s ease;
}
@media (max-width:640px){
  .hp-feat-card{ flex-basis:44vw; max-width:200px; }
}
.hp-feat-card:hover{
  transform:translateY(-6px);
  box-shadow:0 22px 38px -20px rgba(27,19,16,.28);
  border-color:transparent;
}
.hp-feat-num{
  position:absolute; top:.7rem; left:.7rem; z-index:2;
  font-family:'Fraunces',serif; font-style:italic; font-size:.72rem;
  color:var(--cream); background:rgba(31,18,6,.55); backdrop-filter:blur(6px);
  border-radius:999px; width:26px; height:26px; display:flex; align-items:center; justify-content:center;
}
.hp-feat-img{
  aspect-ratio:1/1;
  background:linear-gradient(160deg,#FCF9F2,#E8D9BB);
  display:flex; align-items:center; justify-content:center;
  overflow:hidden; position:relative;
}
.hp-feat-img img{
  width:100%; height:100%; object-fit:contain; mix-blend-mode:multiply;
  padding:.85rem;
  transition:transform .6s cubic-bezier(.2,.7,.2,1);
}
.hp-feat-card:hover .hp-feat-img img{ transform:scale(1.06); }
.hp-feat-body{ padding:.95rem 1rem 1.1rem; }
.hp-feat-body .line-clamp-2{ display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.hp-feat-tag{
  font-size:.58rem; letter-spacing:.14em; text-transform:uppercase; font-weight:800;
  color:var(--brass-deep);
}
.hp-feat-link{
  display:inline-flex; align-items:center; gap:.35rem;
  margin-top:.8rem; font-size:.7rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase;
  color:var(--ink); opacity:.55;
  transition:opacity .3s ease, gap .3s ease;
}
.hp-feat-card:hover .hp-feat-link{ opacity:1; gap:.55rem; color:var(--brass-deep); }

.hp-carousel-dots{
  display:flex; align-items:center; justify-content:center; gap:.5rem; margin-top:2rem;
}
.hp-carousel-dots .dot{
  width:8px; height:8px; border-radius:999px; background:var(--line);
  cursor:pointer; border:none; padding:0; transition:all .35s cubic-bezier(.2,.7,.2,1);
}
.hp-carousel-dots .dot.active{ width:26px; background:linear-gradient(90deg, var(--brass-deep), var(--brass-light)); }

.hp-carousel-nav{
  width:46px; height:46px; border-radius:999px;
  display:flex; align-items:center; justify-content:center;
  border:1.5px solid var(--ink); color:var(--ink);
  transition:all .3s cubic-bezier(.2,.7,.2,1);
  flex-shrink:0;
}
.hp-carousel-nav:hover{
  background:linear-gradient(100deg, var(--brass-deep), var(--brass-light) 45%, var(--brass) 75%, var(--brass-deep));
  border-color:transparent; color:var(--aubergine-deep); transform:translateY(-2px);
}
.hp-carousel-nav:disabled{ opacity:.3; pointer-events:none; }

/* ============ FAQ ============ */
.faq-list{ display:flex; flex-direction:column; }
.faq-item{
  border-bottom:1px solid var(--line);
}
.faq-item:first-child{ border-top:1px solid var(--line); }
.faq-question{
  width:100%; display:flex; align-items:center; justify-content:space-between; gap:1.5rem;
  text-align:left; padding:1.5rem .25rem;
  font-family:'Fraunces',serif; font-size:1.1rem; color:var(--ink);
  transition:color .3s ease;
}
.faq-item.is-open .faq-question{ color:var(--brass-deep); }
.faq-icon{
  position:relative; flex-shrink:0; width:30px; height:30px; border-radius:999px;
  border:1.5px solid var(--ink); display:flex; align-items:center; justify-content:center;
  transition:all .35s cubic-bezier(.2,.7,.2,1);
}
.faq-item.is-open .faq-icon{ background:var(--brass-light); border-color:var(--brass-light); transform:rotate(180deg); }
.faq-icon-h, .faq-icon-v{
  position:absolute; background:currentColor; border-radius:2px;
}
.faq-icon-h{ width:11px; height:1.6px; }
.faq-icon-v{ width:1.6px; height:11px; transition:opacity .3s ease, transform .3s ease; }
.faq-item.is-open .faq-icon-v{ opacity:0; transform:rotate(90deg); }
.faq-answer{
  display:grid; grid-template-rows:0fr; opacity:0;
  transition:grid-template-rows .45s cubic-bezier(.2,.7,.2,1), opacity .35s ease;
}
.faq-item.is-open .faq-answer{ grid-template-rows:1fr; opacity:1; }
.faq-answer p{
  overflow:hidden; min-height:0;
  color:var(--ink-soft); font-size:.94rem; line-height:1.7;
  padding:0 1.9rem 1.5rem 0;
}

/* Vision — onyx, not brown */
.hp-onyx{
  --onyx:#0B0B0D;
  --onyx-soft:#161615;
  background:
    radial-gradient(ellipse 60% 55% at 82% 0%, rgba(201,168,118,.16), transparent 60%),
    radial-gradient(ellipse 55% 55% at 10% 100%, rgba(201,168,118,.08), transparent 65%),
    linear-gradient(160deg, var(--onyx-soft) 0%, var(--onyx) 100%);
  color:var(--cream);
  position:relative;
  overflow:hidden;
}
.hp-onyx-dots{
  position:absolute; inset:0; pointer-events:none;
  opacity:.05;
  background-image:radial-gradient(circle at 20% 20%, white 1px, transparent 1px);
  background-size:26px 26px;
}
.hp-quote-mark{
  font-family:'Fraunces', serif; font-size:4.5rem; line-height:.4; color:var(--brass-light);
  display:block;
}

/* ===================== FAQ — brand panel ===================== */
.hp-faq-panel{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(ellipse 60% 55% at 12% 0%, rgba(201,151,30,.14), transparent 60%),
    radial-gradient(ellipse 50% 50% at 100% 100%, rgba(201,151,30,.1), transparent 65%),
    linear-gradient(180deg, var(--cream) 0%, var(--paper) 100%);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.hp-faq-panel .hp-onyx-dots{ opacity:.06; }
.hp-faq-panel::before{
  content:'';
  position:absolute; inset:0; pointer-events:none; z-index:0;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='saturate' values='0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='0.035'/></svg>");
  mix-blend-mode:overlay;
}

.hp-faq-list{ display:flex; flex-direction:column; gap:1rem; position:relative; z-index:1; }

.hp-faq-item{
  border-radius:1.1rem;
  border:1px solid var(--line);
  background:linear-gradient(180deg, var(--paper), var(--cream));
  box-shadow:0 1px 2px rgba(27,19,16,.04);
  overflow:hidden;
  transition:border-color .35s ease, box-shadow .35s ease, transform .35s cubic-bezier(.2,.8,.2,1);
}
.hp-faq-item.is-open,
.hp-faq-item:hover{
  border-color:var(--brass);
  box-shadow:0 22px 38px -24px rgba(27,19,16,.3);
}

.hp-faq-q{
  width:100%; display:flex; align-items:center; gap:1rem;
  text-align:left; padding:1.35rem 1.5rem;
}
@media (max-width:640px){
  .hp-faq-q{ padding:1.1rem 1.1rem; gap:.85rem; }
}

.hp-faq-index{
  flex-shrink:0;
  font-family:'Fraunces', serif; font-style:italic; font-size:.95rem;
  color:var(--brass-deep); opacity:.55; width:1.6rem;
}

.hp-faq-title{
  flex:1; min-width:0;
  font-family:'Fraunces', serif; font-weight:500;
  font-size:1.1rem; line-height:1.4;
  color:var(--ink);
}
@media (max-width:640px){
  .hp-faq-title{ font-size:.98rem; line-height:1.42; }
}

.hp-faq-icon{
  flex-shrink:0; width:2.25rem; height:2.25rem; border-radius:999px;
  border:1px solid var(--line);
  display:flex; align-items:center; justify-content:center;
  color:var(--brass-deep);
  transition:transform .35s cubic-bezier(.2,.8,.2,1), background .35s ease, border-color .35s ease, color .35s ease;
}
@media (max-width:640px){
  .hp-faq-icon{ width:1.9rem; height:1.9rem; }
}
.hp-faq-item.is-open .hp-faq-icon{
  transform:rotate(45deg);
  background:linear-gradient(150deg, var(--brass-light), var(--brass));
  border-color:transparent;
  color:var(--aubergine-deep);
}

.hp-faq-a{
  padding:0 1.5rem 1.5rem calc(1.5rem + 1.6rem + 1rem);
  color:var(--ink-soft);
  line-height:1.68;
  font-size:.98rem;
}
@media (max-width:640px){
  .hp-faq-a{ padding:0 1.1rem 1.15rem 1.1rem; font-size:.92rem; line-height:1.62; }
}

/* ===================== Trust Cards (v3 — separate cards) ===================== */
.hp-trust-card{
  position:relative;
  display:flex; flex-direction:column; align-items:flex-start; gap:1.1rem;
  padding:2rem 1.8rem 2.1rem;
  border-radius:1.4rem;
  border:1px solid var(--line);
  background:
    radial-gradient(120% 140% at 100% 0%, rgba(201,151,30,.09), transparent 60%),
    linear-gradient(180deg, var(--paper), var(--cream));
  box-shadow:0 1px 2px rgba(27,19,16,.04);
  overflow:hidden;
  isolation:isolate;
  transition:transform .4s cubic-bezier(.2,.8,.2,1), box-shadow .4s ease, border-color .4s ease;
}
.hp-trust-card:hover{
  transform:translateY(-6px);
  border-color:var(--brass);
  box-shadow:0 26px 40px -22px rgba(27,19,16,.28);
}
.hp-trust-orbit{
  position:absolute; inset:0; width:100%; height:100%;
  opacity:.4; pointer-events:none; z-index:0;
}
.hp-trust-orbit .orbit-path{
  fill:none; stroke:var(--brass); stroke-width:1; stroke-opacity:.25;
  stroke-dasharray:2 9; stroke-linecap:round;
  animation:hpOrbitDrift 22s linear infinite;
}
@keyframes hpOrbitDrift{ to{ stroke-dashoffset:-220; } }

.hp-trust-index{
  position:absolute; top:1rem; right:1.2rem; z-index:1;
  font-family:'Fraunces', serif; font-style:italic; font-size:.75rem;
  color:var(--brass-deep); opacity:.4; letter-spacing:.05em;
}

.hp-trust-icon{
  position:relative; z-index:1;
  width:60px; height:60px; border-radius:1.1rem; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(160deg, var(--cream), var(--cream-deep));
  border:1px solid rgba(154,110,20,.18);
  color:var(--brass-deep);
  transition:transform .45s cubic-bezier(.2,.8,.2,1), box-shadow .45s ease, border-color .45s ease;
}
.hp-trust-card:hover .hp-trust-icon{
  transform:translateY(-2px) scale(1.06) rotate(-3deg);
  border-color:var(--brass);
  box-shadow:0 16px 28px -14px rgba(154,110,20,.55);
}
.hp-trust-icon svg{ width:34px; height:34px; overflow:visible; }
.hp-trust-copy{ position:relative; z-index:1; }
.hp-trust-copy p:first-child{ transition:color .3s ease; }
.hp-trust-card:hover .hp-trust-copy p:first-child{ color:var(--brass-deep); }

/* --- Icon 1: Premium Grade (star that draws itself + twinkling spark) --- */
.ti-ring{ fill:none; stroke:var(--brass); stroke-opacity:.18; stroke-width:1.4; }
.ti-draw{
  stroke:var(--brass-deep); stroke-width:2;
  stroke-dasharray:130; stroke-dashoffset:130;
  animation:tiDraw 2.6s ease-in-out infinite;
}
.ti-spark{
  fill:var(--brass-light); opacity:0;
  transform-origin:32px 32px;
  animation:tiSpark 2.6s ease-in-out infinite;
}
@keyframes tiDraw{
  0%{ stroke-dashoffset:130; fill:transparent; }
  55%{ stroke-dashoffset:0; fill:transparent; }
  75%{ stroke-dashoffset:0; fill:rgba(201,151,30,.14); }
  100%{ stroke-dashoffset:0; fill:rgba(201,151,30,.14); }
}
@keyframes tiSpark{
  0%,60%{ opacity:0; transform:scale(.4) rotate(0deg); }
  80%{ opacity:1; transform:scale(1.3) rotate(90deg); }
  100%{ opacity:0; transform:scale(.4) rotate(180deg); }
}

/* --- Icon 2: Nationwide Delivery (map with pulsing location pin) --- */
.ti-map, .ti-map-fold{ stroke:var(--brass-deep); stroke-width:1.6; stroke-linejoin:round; stroke-linecap:round; }
.ti-map{ fill:rgba(201,151,30,.08); }
.ti-node{ fill:var(--brass-deep); }
.ti-node--ping{
  fill:none; stroke:var(--brass-light); stroke-width:1.6;
  transform-origin:32px 30px;
  animation:tiPing 2.4s cubic-bezier(.2,.7,.3,1) infinite;
}
@keyframes tiPing{
  0%{ r:3; opacity:.9; }
  100%{ r:13; opacity:0; }
}

/* --- Icon 3: Trusted Sourcing (shield with checkmark that draws in) --- */
.ti-shield{
  fill:rgba(201,151,30,.08); stroke:var(--brass-deep); stroke-width:1.7; stroke-linejoin:round;
  transform-origin:32px 32px;
  animation:tiShield 2.8s ease-in-out infinite;
}
.ti-check{
  fill:none; stroke:var(--brass-light); stroke-width:2.4; stroke-linecap:round; stroke-linejoin:round;
  stroke-dasharray:22; stroke-dashoffset:22;
  animation:tiCheck 2.8s ease-in-out infinite;
}
@keyframes tiShield{
  0%,15%{ transform:scale(.94); }
  35%{ transform:scale(1); }
  100%{ transform:scale(1); }
}
@keyframes tiCheck{
  0%,40%{ stroke-dashoffset:22; }
  70%,100%{ stroke-dashoffset:0; }
}

@media (prefers-reduced-motion: reduce){
  .ti-draw, .ti-spark, .ti-node--ping, .ti-shield, .ti-check, .orbit-path{ animation:none; }
  .ti-draw{ stroke-dashoffset:0; fill:rgba(201,151,30,.14); }
  .ti-check{ stroke-dashoffset:0; }
}

/* ===================== Contact page — full premium redesign (v2) ===================== */

.ct-hero{ position:relative; overflow:hidden; padding:9rem 0 3.5rem; }
@media (max-width:768px){ .ct-hero{ padding:7rem 0 2.5rem; } }

.ct-hero-badge-row{ display:flex; flex-wrap:wrap; gap:.9rem; margin-top:2.6rem; }
.ct-quickchip{
  position:relative; z-index:1;
  display:inline-flex; align-items:center; gap:.7rem;
  padding:.75rem 1.35rem .75rem .75rem;
  background:var(--paper); border:1.5px solid var(--line);
  border-radius:999px; transition:all .35s cubic-bezier(.2,.7,.2,1);
  text-decoration:none;
}
.ct-quickchip:hover{ border-color:var(--brass); transform:translateY(-3px); box-shadow:0 20px 34px -20px rgba(27,19,16,.3); }
.ct-quickchip-icon{
  width:40px; height:40px; border-radius:999px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(160deg, var(--cream), var(--cream-deep));
  border:1px solid rgba(154,110,20,.18); color:var(--brass-deep);
}
.ct-quickchip-icon svg{ width:18px; height:18px; }
.ct-quickchip-label{ font-size:.64rem; text-transform:uppercase; letter-spacing:.13em; color:var(--ink-soft); font-weight:800; display:block; }
.ct-quickchip-value{ font-family:'Fraunces',serif; font-size:.95rem; color:var(--ink); display:block; margin-top:.1rem; }

/* Split layout: info panel + form */
.ct-split{ display:grid; grid-template-columns:1fr; gap:2.4rem; }
@media (min-width:1024px){ .ct-split{ grid-template-columns:.82fr 1.18fr; gap:3rem; align-items:start; } }

.ct-panel{
  position:relative; overflow:hidden; border-radius:1.6rem;
  background:
    radial-gradient(ellipse 70% 60% at 88% 0%, rgba(201,151,30,.12), transparent 60%),
    radial-gradient(ellipse 55% 45% at 4% 100%, rgba(201,151,30,.07), transparent 65%),
    linear-gradient(165deg, var(--paper) 0%, var(--cream) 100%);
  color:var(--ink);
  border:1px solid var(--line);
  box-shadow:0 30px 60px -30px rgba(107,78,40,.22);
  padding:2.5rem 2.1rem 2.7rem;
}
@media (min-width:1024px){ .ct-panel{ position:sticky; top:7rem; } }
.ct-panel-dots{
  position:absolute; inset:0; pointer-events:none; opacity:.5;
  background-image:radial-gradient(circle at 20% 20%, rgba(154,110,20,.18) 1px, transparent 1px);
  background-size:26px 26px;
}

.ct-panel-seal{ position:relative; z-index:1; display:flex; justify-content:center; margin-bottom:1.8rem; }

.ct-info-list{ position:relative; z-index:1; display:flex; flex-direction:column; }
.ct-info-row{
  display:flex; align-items:flex-start; gap:1rem;
  padding:1.25rem 0; border-top:1px solid var(--line);
}
.ct-info-icon{
  width:44px; height:44px; border-radius:.9rem; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(160deg, var(--cream), var(--cream-deep));
  border:1px solid rgba(154,110,20,.18);
  color:var(--brass-deep); transition:transform .35s cubic-bezier(.2,.7,.2,1), border-color .35s ease, box-shadow .35s ease;
}
.ct-info-row:hover .ct-info-icon{ transform:translateY(-2px) scale(1.05); border-color:var(--brass); box-shadow:0 14px 24px -14px rgba(154,110,20,.5); }
.ct-info-icon svg{ width:20px; height:20px; overflow:visible; }
.ct-info-label{ font-size:.64rem; text-transform:uppercase; letter-spacing:.14em; color:var(--brass-deep); font-weight:800; }
.ct-info-value{ font-family:'Fraunces',serif; font-size:1.08rem; margin-top:.3rem; color:var(--ink); transition:color .25s ease; text-decoration:none; display:inline-block; }
a.ct-info-value:hover{ color:var(--brass-deep); }
.ct-info-sub{ font-size:.78rem; color:var(--ink-soft); margin-top:.25rem; }

.ct-whatsapp-btn{
  position:relative; z-index:1; margin-top:2.1rem; width:100%; justify-content:center;
  background:linear-gradient(100deg, var(--brass-deep), var(--brass-light) 45%, var(--brass) 75%, var(--brass-deep));
  color:var(--aubergine-deep); border:none;
}

/* Right: form card with gradient border glow */
.ct-form-card{
  position:relative; border-radius:1.7rem; padding:1.5px;
  background:linear-gradient(135deg, rgba(201,151,30,.55), rgba(201,151,30,0) 32%, rgba(201,151,30,0) 68%, rgba(201,151,30,.4));
}
.ct-form-inner{
  background:var(--paper); border-radius:calc(1.7rem - 1.5px);
  padding:2.2rem 1.5rem;
}
@media (min-width:640px){ .ct-form-inner{ padding:2.8rem 2.4rem; } }

.ct-form-row{ display:grid; grid-template-columns:1fr; gap:1.7rem 1.5rem; }
@media (min-width:640px){ .ct-form-row.ct-cols-2{ grid-template-columns:1fr 1fr; } }

.ct-field-group{ position:relative; }
.ct-field{
  width:100%; background:transparent; border:none; border-bottom:1.5px solid var(--line);
  padding:.6rem .1rem .6rem; font-family:'Manrope',sans-serif; font-size:1rem; color:var(--ink);
  transition:border-color .25s ease;
}
.ct-field:focus{ outline:none; border-color:var(--brass-deep); }
.ct-field-label{
  position:absolute; left:.1rem; top:.65rem; font-size:1rem; color:var(--ink-soft);
  pointer-events:none; transition:all .22s cubic-bezier(.2,.7,.2,1);
}
.ct-field:focus + .ct-field-label,
.ct-field:not(:placeholder-shown) + .ct-field-label{
  top:-.85rem; font-size:.66rem; text-transform:uppercase; letter-spacing:.1em; font-weight:800; color:var(--brass-deep);
}
textarea.ct-field{ resize:none; }
.ct-field-underline{ position:relative; height:0; }
.ct-field-underline::after{
  content:''; position:absolute; left:0; bottom:0; height:1.5px; width:0;
  background:var(--brass-deep); transition:width .35s cubic-bezier(.2,.7,.2,1);
}
.ct-field:focus ~ .ct-field-underline::after{ width:100%; }

.ct-submit-btn{ position:relative; overflow:hidden; width:100%; justify-content:center; cursor:pointer; border:none; }
.ct-submit-btn::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(115deg, transparent 20%, rgba(255,255,255,.6) 50%, transparent 80%);
  transform:translateX(-130%); transition:transform .85s ease;
}
.ct-submit-btn:hover::after{ transform:translateX(130%); }

/* Success state */
.ct-success{ text-align:center; padding:2.2rem 0 1rem; }
.ct-success-ring{ width:84px; height:84px; margin:0 auto 1.6rem; }
.ct-success-circle{
  fill:none; stroke:var(--brass-deep); stroke-width:2; stroke-dasharray:220; stroke-dashoffset:220;
  animation:ctCircleDraw .7s ease forwards;
}
.ct-success-check{
  fill:none; stroke:var(--brass-deep); stroke-width:3; stroke-linecap:round; stroke-linejoin:round;
  stroke-dasharray:40; stroke-dashoffset:40;
  animation:ctCheckDraw .5s ease .6s forwards;
}
@keyframes ctCircleDraw{ to{ stroke-dashoffset:0; } }
@keyframes ctCheckDraw{ to{ stroke-dashoffset:0; } }

/* FAQ accordion */
.ct-faq-item{ border-top:1px solid var(--line); }
.ct-faq-item:last-child{ border-bottom:1px solid var(--line); }
.ct-faq-q{ display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1.6rem 0; cursor:pointer; }
.ct-faq-q h3{ font-family:'Fraunces',serif; font-size:1.05rem; }
.ct-faq-toggle{ width:32px; height:32px; border-radius:999px; border:1.5px solid var(--line); display:flex; align-items:center; justify-content:center; flex-shrink:0; transition:all .3s ease; color:var(--ink); }
.ct-faq-item.is-open .ct-faq-toggle{ background:var(--ink); border-color:var(--ink); color:var(--cream-deep); transform:rotate(135deg); }
.ct-faq-a p{ padding-bottom:1.6rem; color:var(--ink-soft); line-height:1.65; max-width:640px; font-size:.95rem; }

/* Contact page hero connecting-lines illustration */
.ct-hero-lines{ position:absolute; inset:0; pointer-events:none; opacity:.55; z-index:0; }
.ct-hero-lines path{ fill:none; stroke:var(--brass); stroke-opacity:.35; stroke-width:1; }
.ct-hero-node{ animation:ctNodePulse 3.2s ease-in-out infinite; transform-box:fill-box; transform-origin:center; }
.ct-hero-node.n2{ animation-delay:.6s; }
.ct-hero-node.n3{ animation-delay:1.2s; }
@keyframes ctNodePulse{ 0%,100%{ opacity:.5; transform:scale(1); } 50%{ opacity:1; transform:scale(1.4); } }

/* Quickchips — stack full-width on mobile so long values never overflow */
@media (max-width:640px){
  .ct-hero-badge-row{ flex-direction:column; align-items:stretch; gap:.7rem; margin-top:2.2rem; }
  .ct-quickchip{ width:100%; padding:.7rem 1.1rem .7rem .7rem; }
  .ct-quickchip-value{ word-break:break-word; font-size:.88rem; }
}

/* Info panel address — allow wrap, don't let it blow out the row */
.ct-info-address{ line-height:1.4; word-break:break-word; }
@media (max-width:480px){
  .ct-panel{ padding:2rem 1.4rem 2.2rem; }
}

/* Map / Find Us section */
.ct-map-card{
  display:grid; grid-template-columns:1fr; overflow:hidden;
  border-radius:1.6rem; border:1px solid var(--line);
  background:var(--paper);
  box-shadow:0 30px 60px -34px rgba(27,19,16,.28);
}
@media (min-width:900px){ .ct-map-card{ grid-template-columns:1.15fr .85fr; } }
.ct-map-embed{ position:relative; width:100%; aspect-ratio:16/11; background:var(--cream-deep); }
@media (min-width:900px){ .ct-map-embed{ aspect-ratio:auto; min-height:100%; } }
.ct-map-embed iframe{ position:absolute; inset:0; width:100%; height:100%; filter:saturate(.85) contrast(1.02); }
.ct-map-info{
  position:relative;
  padding:2rem 1.5rem 2.2rem;
  display:flex; flex-direction:column; justify-content:center; gap:.35rem;
  background:
    radial-gradient(ellipse 80% 60% at 100% 0%, rgba(201,151,30,.1), transparent 60%),
    linear-gradient(165deg, var(--paper) 0%, var(--cream) 100%);
}
@media (min-width:640px){ .ct-map-info{ padding:2.6rem 2.4rem; } }
.ct-map-label{ font-family:'Manrope',sans-serif; font-weight:800; font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; color:var(--brass-deep); }
.ct-map-address{
  font-family:'Fraunces',serif; font-size:1.15rem; line-height:1.55;
  color:var(--ink); margin-top:.6rem;
}
.ct-map-btn{ align-self:flex-start; margin-top:1.6rem; }

@media (prefers-reduced-motion: reduce){
  .ct-success-circle, .ct-success-check, .ct-hero-node{ animation:none; stroke-dashoffset:0; opacity:1; }
}

/* ===================== Small utility fallbacks (contact page redesign) ===================== */
.mb-1{ margin-bottom:.25rem; }
.mb-8{ margin-bottom:2rem; }
.gap-1{ gap:.25rem; }
.space-y-8 > * + *{ margin-top:2rem; }
.\!pt-4{ padding-top:1rem !important; }
.\!pt-12{ padding-top:3rem !important; }
.\!pb-16{ padding-bottom:4rem !important; }

/* ===================== Products — custom orders CTA (clean, gold & white) ===================== */
.cx-custom-lite{
  background:var(--paper);
  border-top:1px solid var(--line);
}
.cx-lite-rule{
  display:inline-block; width:56px; height:2px;
  background:linear-gradient(90deg, var(--brass-deep), var(--brass-light));
  border-radius:2px;
}
.cx-footer{ background-color:#0B0B0D; }

/* ======================= WELCOME MODAL ======================= */
.wm-overlay{
  position:fixed; inset:0; z-index:100;
  display:flex; align-items:center; justify-content:center;
  padding:24px;
  background:rgba(11,11,13,.55);
  backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
  opacity:0; visibility:hidden;
  transition:opacity .45s ease, visibility 0s linear .45s;
}
.wm-overlay.wm-open{
  opacity:1; visibility:visible;
  transition:opacity .45s ease, visibility 0s linear 0s;
}
.wm-card{
  position:relative;
  width:100%; max-width:420px;
  max-height:88vh; overflow-y:auto;
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:18px;
  padding:2.1rem 2rem 1.9rem;
  box-shadow:0 40px 90px -20px rgba(11,11,13,.55), 0 0 0 1px rgba(201,151,30,.08);
  transform:scale(.94) translateY(18px);
  opacity:0;
  transition:transform .5s cubic-bezier(.19,1,.22,1), opacity .45s ease;
}
.wm-overlay.wm-open .wm-card{
  transform:scale(1) translateY(0);
  opacity:1;
  transition-delay:.08s;
}
.wm-card .wm-arc{
  position:absolute; top:0; right:0; width:160px; height:160px;
  opacity:.5; pointer-events:none;
}
.wm-card .wm-arc .ring{ fill:none; stroke:var(--brass); stroke-width:1; opacity:.35; }
.wm-card .wm-arc .ring-dash{ fill:none; stroke:var(--brass-deep); stroke-width:1; stroke-dasharray:3 6; opacity:.3; }
.wm-close{
  position:absolute; top:1.1rem; right:1.1rem;
  width:36px; height:36px; border-radius:999px;
  display:flex; align-items:center; justify-content:center;
  color:var(--ink-soft); background:var(--cream);
  border:1px solid var(--line);
  cursor:pointer; transition:all .2s ease; z-index:2;
}
.wm-close:hover{ background:var(--ink); color:var(--cream); border-color:var(--ink); transform:rotate(90deg); }
.wm-welcome{
  font-family:'Fraunces', serif;
  font-style:italic;
  font-weight:600;
  font-size:3rem;
  line-height:1;
  letter-spacing:-.01em;
  margin-bottom:.35rem;
  background:linear-gradient(100deg, var(--brass-deep), var(--brass-light) 45%, var(--brass) 75%, var(--brass-deep));
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.wm-divider{
  height:1px; margin:1.4rem 0 1.4rem;
  background:linear-gradient(90deg, var(--brass-deep), var(--line) 60%, transparent);
}

/* ----- Mobile: give the welcome modal real breathing room ----- */
@media (max-width:640px){
  .wm-overlay{ padding:16px; align-items:flex-end; }
  .wm-card{
    max-width:100%;
    max-height:85vh;
    padding:2.25rem 1.5rem 1.75rem;
    border-radius:20px 20px 18px 18px;
  }
  .wm-card .wm-arc{ width:120px; height:120px; opacity:.35; }
  .wm-close{ top:.9rem; right:.9rem; width:34px; height:34px; }
  .wm-welcome{ font-size:2.1rem; margin-bottom:.5rem; }
  .wm-card .hero-eyebrow{ font-size:.7rem; letter-spacing:.14em; }
  .wm-card h2{
    font-size:1.35rem !important;
    line-height:1.32 !important;
    margin-top:.75rem !important;
  }
  .wm-card > p.text-inksoft{
    font-size:.95rem !important;
    line-height:1.65 !important;
    margin-top:.9rem !important;
  }
  .wm-divider{ margin:1.5rem 0; }
  .wm-card .flex.flex-wrap{ flex-direction:column; gap:.75rem; }
  .wm-card .flex.flex-wrap .btn{ width:100%; justify-content:center; text-align:center; }
}
@media (max-width:400px){
  .wm-card{ padding:2rem 1.25rem 1.5rem; }
  .wm-welcome{ font-size:1.85rem; }
}

/* ======================= CATALOGUE DOWNLOAD CARD ======================= */
.cx-dl-card{
  position:relative;
  overflow:hidden;
  border-radius:24px;
  border:1px solid rgba(154,110,20,.18);
  background:linear-gradient(135deg, #FFFCF5 0%, #FBF1DC 45%, #EFD9A6 100%);
  box-shadow:0 30px 70px -35px rgba(90,64,12,.35);
  padding:2.25rem 1.5rem;
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  gap:1.25rem;
}
.cx-dl-icon{
  width:54px; height:54px;
  border-radius:16px;
  display:flex; align-items:center; justify-content:center;
  background:rgba(201,151,30,.12);
  border:1px solid rgba(154,110,20,.25);
  color:var(--brass-deep);
  flex-shrink:0;
}
.cx-dl-text{ max-width:34rem; }
.cx-dl-title{
  font-size:1.35rem;
  line-height:1.35;
  font-weight:500;
  color:var(--ink);
  margin-top:.85rem;
}
.cx-dl-copy{
  color:var(--ink-soft);
  font-size:.95rem;
  line-height:1.65;
  margin-top:.85rem;
}
.cx-dl-action{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:.65rem;
  width:100%;
}
.cx-dl-btn{
  width:100%;
  justify-content:center;
  text-align:center;
  gap:.6rem;
  white-space:normal;
  line-height:1.3;
}
.cx-dl-btn svg{ flex-shrink:0; }
.cx-dl-meta{
  color:var(--ink-soft);
  opacity:.65;
  font-size:.78rem;
  letter-spacing:.02em;
}

@media (min-width:768px){
  .cx-dl-card{
    flex-direction:row;
    align-items:center;
    text-align:left;
    gap:2.25rem;
    padding:3rem 3.25rem;
    border-radius:28px;
  }
  .cx-dl-icon{ width:72px; height:72px; border-radius:20px; }
  .cx-dl-icon svg{ width:30px; height:30px; }
  .cx-dl-text{ flex:1; max-width:none; }
  .cx-dl-title{ font-size:1.75rem; margin-top:.9rem; }
  .cx-dl-copy{ font-size:1rem; max-width:34rem; }
  .cx-dl-action{
    align-items:flex-end;
    width:auto;
    flex-shrink:0;
  }
  .cx-dl-btn{ width:auto; white-space:nowrap; }
  .cx-dl-meta{ text-align:right; }
}

/* ======================= HEADER WORDMARK ======================= */
.brand-wordmark{
  font-family:'Fraunces', serif;
  font-weight:700;
  font-style:italic;
  font-size:1.5rem;
  letter-spacing:-.01em;
  line-height:1;
  position:relative;
  display:inline-flex;
  align-items:baseline;
}
.brand-wordmark .bw-gold{
  background:linear-gradient(100deg, var(--brass-deep), var(--brass-light) 45%, var(--brass) 75%, var(--brass-deep));
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.brand-wordmark .bw-dot{
  color:var(--brass-deep); margin-left:2px; font-size:1.3rem; line-height:0;
}
@media (max-width:480px){
  /* .brand-wordmark{ font-size:1.12rem; }
  .brand-wordmark .bw-dot{ font-size:1rem; } */
}

/* ======================= HEADER CONTACT ICON ======================= */
.hdr-contact-icon{
  width:42px; height:42px; border-radius:999px;
  display:flex; align-items:center; justify-content:center;
  border:1.5px solid var(--brass-deep);
  color:var(--brass-deep);
  transition:all .2s ease;
  flex-shrink:0;
}
.hdr-contact-icon:hover{
  background:var(--brass-deep); color:var(--cream);
  transform:translateY(-2px);
  box-shadow:0 12px 22px -10px rgba(154,110,20,.6);
}

/* ======================= MOBILE HERO FIT FIXES (index + about) ======================= */
/* Shrink the fixed 19rem hero seal/logo circle and the giant outline word on
   narrow phones so nothing crowds or clips at the viewport edge; the seal
   stays perfectly centered via the existing flex justify-center wrapper. */
@media (max-width:400px){
  .hp-seal-wrap.seal-wrap,
  .seal-wrap{
    width:14.5rem !important;
    height:14.5rem !important;
  }
  .hp-outline-word,
  .big-outline-text{
    font-size:2.5rem !important;
  }
  .hero-title{
    font-size:2.1rem !important;
  }
}
@media (min-width:401px) and (max-width:639px){
  .hp-seal-wrap.seal-wrap,
  .seal-wrap{
    width:16.5rem !important;
    height:16.5rem !important;
  }
  .hp-outline-word,
  .big-outline-text{
    font-size:3.2rem !important;
  }
}

/* ======================= TESTIMONIALS ======================= */
.testi-card{
  position:relative;
  display:flex;
  flex-direction:column;
  height:100%;
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:1.1rem;
  padding:1.9rem 1.8rem 1.7rem;
  transition:border-color .3s ease, transform .3s ease, box-shadow .3s ease;
}
.testi-card:hover{
  border-color:var(--brass);
  transform:translateY(-4px);
  box-shadow:0 22px 38px -22px rgba(27,19,16,.28);
}
.testi-quote-icon{
  width:2.35rem; height:2.35rem;
  display:flex; align-items:center; justify-content:center;
  border-radius:999px;
  background:linear-gradient(160deg, var(--brass-light), var(--brass-deep));
  color:var(--paper);
  flex-shrink:0;
}
.testi-quote-icon svg{ width:1.05rem; height:1.05rem; }
.testi-stars{
  display:flex; align-items:center; gap:.2rem; margin-top:1rem;
}
.testi-stars svg{ display:block; width:.95rem; height:.95rem; fill:var(--brass-light); flex-shrink:0; }
.testi-body{
  color:var(--ink-soft);
  font-size:.94rem;
  line-height:1.65;
  margin-top:.85rem;
  flex-grow:1;
}
.testi-foot{
  display:flex; align-items:center; gap:.8rem;
  margin-top:1.4rem;
  padding-top:1.2rem;
  border-top:1px solid var(--line);
}
.testi-avatar{
  width:2.6rem; height:2.6rem; flex-shrink:0;
  border-radius:999px;
  display:flex; align-items:center; justify-content:center;
  font-family:'Fraunces', serif;
  font-weight:600;
  font-size:.95rem;
  color:var(--paper);
  background:linear-gradient(150deg, var(--brass-deep), var(--ink) 130%);
}
.testi-name{ font-weight:700; font-size:.88rem; color:var(--ink); line-height:1.3; }
.testi-role{ font-size:.76rem; color:var(--ink-soft); margin-top:.1rem; }
.testi-source{
  display:inline-flex; align-items:center; gap:.35rem;
  font-size:.68rem; font-weight:700; letter-spacing:.03em; text-transform:uppercase;
  color:var(--brass-deep);
  margin-left:auto;
  white-space:nowrap;
}
.testi-rating-badge{
  display:inline-flex; align-items:center; gap:.55rem;
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:999px;
  padding:.55rem 1.1rem;
  line-height:1;
}
.testi-rating-badge .testi-stars{ margin-top:0; align-items:center; }
.testi-rating-badge .testi-stars svg{ width:1.05rem; height:1.05rem; }
.testi-rating-num{ font-family:'Fraunces', serif; font-weight:600; font-size:1rem; line-height:1; color:var(--ink); }
.testi-rating-badge > span:last-child{ line-height:1.1; }

@media (max-width:640px){
  .testi-card{ padding:1.6rem 1.4rem 1.5rem; }
}
