/* ============================================================
   C.A. ACCOUNTING AND LAW — design system
   deep red · cream · gold
   ============================================================ */
:root{
  --wine-900:#2A0A0B; --wine-800:#4A0D09; --wine-700:#6B1414;
  --wine:#8C1B1B;     --wine-600:#A02128; --wine-50:#FAF1F0;
  --gold:#C0972B;     --gold-l:#E3C878;   --gold-s:#F3E6C6; --gold-d:#8C6A1E;
  --cream:#FBF7F1;    --cream-2:#F5EDE1;  --cream-3:#EFE4D4;
  --ink:#241512;      --body:#4A3B36;     --muted:#7A6A64;
  --line:rgba(74,13,9,.13); --line-2:rgba(74,13,9,.07);
  --white:#fff;
  --ok:#15803D; --ok-bg:#EAF6EE; --warn:#B45309; --warn-bg:#FDF3E4; --danger:#B02020; --danger-bg:#FDF0F0;
  --info:#1D4ED8; --info-bg:#EEF3FE;

  --r-sm:8px; --r:14px; --r-lg:20px; --r-xl:28px;
  --sh-1:0 1px 2px rgba(42,10,11,.05), 0 1px 3px rgba(42,10,11,.04);
  --sh-2:0 4px 12px rgba(42,10,11,.07), 0 2px 4px rgba(42,10,11,.04);
  --sh-3:0 14px 34px rgba(42,10,11,.11), 0 4px 10px rgba(42,10,11,.05);
  --sh-gold:0 8px 24px rgba(192,151,43,.22);

  --ff-display:'Noto Serif Thai', Georgia, serif;
  --ff-body:'IBM Plex Sans Thai','Sarabun',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --nav-h:72px;
  --container:1180px;
  --ease:cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%; scroll-behavior:smooth; scroll-padding-top:calc(var(--nav-h) + 16px)}
body{
  margin:0; background:var(--cream); color:var(--body);
  font-family:var(--ff-body); font-size:16px; line-height:1.72; font-weight:400;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
img{max-width:100%; display:block; height:auto}
a{color:inherit; text-decoration:none}
button,input,select,textarea{font:inherit; color:inherit}
h1,h2,h3,h4,h5{font-family:var(--ff-display); color:var(--wine-800); font-weight:600; line-height:1.32; margin:0; letter-spacing:-.01em}
h1{font-size:clamp(1.9rem,5.2vw,3.3rem); line-height:1.22}
h2{font-size:clamp(1.5rem,3.6vw,2.3rem)}
h3{font-size:clamp(1.12rem,2.1vw,1.35rem)}
p{margin:0 0 1em}
p:last-child{margin-bottom:0}
::selection{background:var(--gold-s); color:var(--wine-800)}
:focus-visible{outline:2px solid var(--wine); outline-offset:3px; border-radius:4px}

.container{width:100%; max-width:var(--container); margin-inline:auto; padding-inline:20px}
.container-sm{max-width:840px}
.section{padding:clamp(52px,7vw,96px) 0}
.section-tight{padding:clamp(36px,5vw,64px) 0}
.bg-cream2{background:var(--cream-2)}
.bg-white{background:var(--white)}
.bg-wine{background:var(--wine-800); color:rgba(255,255,255,.82)}
.bg-wine h1,.bg-wine h2,.bg-wine h3{color:#fff}

/* ---------- utility ---------- */
.eyebrow{
  display:inline-flex; align-items:center; gap:9px;
  font-size:.75rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase;
  color:var(--gold-d); margin-bottom:14px;
}
.eyebrow::before{content:''; width:26px; height:1.5px; background:linear-gradient(90deg,var(--gold),transparent)}
.eyebrow.center::after{content:''; width:26px; height:1.5px; background:linear-gradient(270deg,var(--gold),transparent)}
.bg-wine .eyebrow{color:var(--gold-l)}
.lede{font-size:clamp(1rem,1.6vw,1.1rem); color:var(--muted); max-width:62ch}
.bg-wine .lede{color:rgba(255,255,255,.72)}
.center{text-align:center}
.center .lede{margin-inline:auto}
.stack-sm>*+*{margin-top:8px} .stack>*+*{margin-top:16px} .stack-lg>*+*{margin-top:28px}
.muted{color:var(--muted)} .small{font-size:.875rem} .xsmall{font-size:.8rem}
.strong{font-weight:600; color:var(--ink)}
.gold-text{color:var(--gold-d)}
.wine-text{color:var(--wine)}
.hidden{display:none !important}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.divider{height:1px; background:var(--line); border:0; margin:24px 0}
.gold-rule{height:2px;width:56px;background:linear-gradient(90deg,var(--gold),var(--gold-l));border-radius:2px;margin:18px 0}
.center .gold-rule{margin-inline:auto}

.section-head{margin-bottom:clamp(30px,4vw,48px)}
.section-head h2{margin-bottom:12px}

/* ---------- icons ---------- */
.ic{display:inline-block; width:1.15em; height:1.15em; flex:none; vertical-align:-.19em}
.ic svg{width:100%; height:100%; display:block}
.icon-box{
  width:52px;height:52px;border-radius:14px;display:grid;place-items:center;flex:none;
  background:linear-gradient(150deg,var(--gold-s),#fff); color:var(--wine);
  border:1px solid rgba(192,151,43,.32); font-size:22px;
}
.icon-box.wine{background:linear-gradient(150deg,var(--wine-800),var(--wine-700)); color:var(--gold-l); border-color:transparent}
.icon-box.sm{width:40px;height:40px;border-radius:11px;font-size:17px}

/* ---------- buttons ---------- */
.btn{
  --btn-bg:var(--wine); --btn-fg:#fff; --btn-bd:var(--wine);
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  padding:13px 26px; border-radius:999px; border:1.5px solid var(--btn-bd);
  background:var(--btn-bg); color:var(--btn-fg);
  font-weight:600; font-size:.95rem; line-height:1.2; cursor:pointer;
  transition:transform .18s var(--ease), box-shadow .18s var(--ease), background .18s, color .18s, border-color .18s;
  box-shadow:var(--sh-1); text-align:center; white-space:nowrap;
}
.btn:hover{transform:translateY(-2px); box-shadow:var(--sh-2)}
.btn:active{transform:translateY(0)}
.btn:disabled,.btn.is-loading{opacity:.55; cursor:not-allowed; transform:none; box-shadow:none}
.btn-gold{--btn-bg:linear-gradient(135deg,var(--gold),var(--gold-l)); --btn-fg:var(--wine-900); --btn-bd:transparent; box-shadow:var(--sh-gold)}
.btn-ghost{--btn-bg:transparent; --btn-fg:var(--wine-800); --btn-bd:var(--line)}
.btn-ghost:hover{--btn-bg:var(--white); --btn-bd:rgba(140,27,27,.35)}
.btn-line{--btn-bg:#06C755; --btn-fg:#fff; --btn-bd:#06C755}
.btn-outline-gold{--btn-bg:transparent;--btn-fg:var(--gold-l);--btn-bd:rgba(227,200,120,.5)}
.btn-outline-gold:hover{--btn-bg:rgba(227,200,120,.12)}
.btn-sm{padding:9px 17px; font-size:.85rem}
.btn-lg{padding:16px 34px; font-size:1.02rem}
.btn-block{display:flex; width:100%}
.btn-icon{padding:10px; border-radius:12px; width:40px; height:40px}
.btn .ic{font-size:1.08em}
.btn-danger{--btn-bg:var(--danger); --btn-bd:var(--danger)}
.btn-quiet{--btn-bg:transparent;--btn-fg:var(--muted);--btn-bd:transparent;box-shadow:none}
.btn-quiet:hover{--btn-fg:var(--wine);--btn-bg:var(--wine-50);transform:none;box-shadow:none}

.link-arrow{display:inline-flex;align-items:center;gap:7px;color:var(--wine);font-weight:600;font-size:.92rem}
.link-arrow .ic{transition:transform .2s var(--ease)}
.link-arrow:hover .ic{transform:translateX(4px)}

/* ---------- badges / pills ---------- */
.badge{
  display:inline-flex; align-items:center; gap:6px; padding:5px 12px; border-radius:999px;
  font-size:.75rem; font-weight:600; letter-spacing:.02em;
  background:var(--gold-s); color:var(--wine-800); border:1px solid rgba(192,151,43,.3);
}
.badge-wine{background:var(--wine); color:#fff; border-color:transparent}
.badge-soft{background:var(--cream-2); color:var(--muted); border-color:var(--line)}
.st{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:999px;font-size:.76rem;font-weight:600;border:1px solid transparent}
.st-pending{background:var(--warn-bg); color:var(--warn); border-color:rgba(180,83,9,.2)}
.st-paid{background:var(--info-bg); color:var(--info); border-color:rgba(29,78,216,.18)}
.st-preparing{background:#F3EEFB; color:#6D28D9; border-color:rgba(109,40,217,.18)}
.st-shipped{background:#E8F4FB; color:#0369A1; border-color:rgba(3,105,161,.18)}
.st-done{background:var(--ok-bg); color:var(--ok); border-color:rgba(21,128,61,.2)}
.st-cancelled{background:#F1EEED; color:#71625D; border-color:rgba(0,0,0,.08)}

/* ---------- cards ---------- */
.card{background:var(--white); border:1px solid var(--line); border-radius:var(--r-lg); box-shadow:var(--sh-1)}
.card-pad{padding:clamp(20px,3vw,30px)}

/* ---------- announcement ---------- */
.announce{
  background:linear-gradient(90deg,var(--wine-800),var(--wine),var(--wine-800));
  color:var(--gold-s); font-size:.82rem; text-align:center; padding:9px 20px;
  display:flex; align-items:center; justify-content:center; gap:9px; font-weight:500;
}
.announce .ic{color:var(--gold-l)}

/* ---------- header ---------- */
.site-header{position:sticky; top:0; z-index:60; background:rgba(251,247,241,.88); backdrop-filter:saturate(180%) blur(14px); border-bottom:1px solid var(--line-2); transition:box-shadow .25s, background .25s}
.site-header.scrolled{box-shadow:0 2px 18px rgba(42,10,11,.08); background:rgba(251,247,241,.96)}
.nav{display:flex; align-items:center; gap:20px; height:var(--nav-h)}
.brand{display:flex; align-items:center; gap:11px; flex:none; margin-right:auto}
.brand img{height:38px; width:38px}
.brand-txt{display:none; line-height:1.2}
.brand-txt>b{display:block; font-family:var(--ff-display); font-size:.92rem; color:var(--wine-800); letter-spacing:.02em; font-weight:700; white-space:nowrap}
.brand-txt>b>span{font-weight:500; color:var(--gold-d)}
.brand-txt>span{display:block; font-size:.7rem; color:var(--muted); letter-spacing:.02em}
.nav-links{display:none; align-items:center; gap:4px}
.nav-links a{padding:9px 14px; border-radius:10px; font-size:.94rem; font-weight:500; color:var(--body); transition:.16s}
.nav-links a:hover{color:var(--wine); background:var(--wine-50)}
.nav-links a.active{color:var(--wine-800); font-weight:600}
.nav-actions{display:flex; align-items:center; gap:8px}
.cart-btn{position:relative; width:42px; height:42px; border-radius:12px; border:1px solid var(--line); background:var(--white); display:grid; place-items:center; cursor:pointer; color:var(--wine-800); font-size:19px; transition:.18s}
.cart-btn:hover{border-color:rgba(140,27,27,.35); transform:translateY(-1px)}
.cart-count{
  position:absolute; top:-6px; right:-6px; min-width:20px; height:20px; padding:0 5px;
  background:var(--wine); color:#fff; border-radius:999px; font-size:.68rem; font-weight:700;
  display:grid; place-items:center; border:2px solid var(--cream); font-family:var(--ff-body);
}
.cart-count:empty,.cart-count[data-n="0"]{display:none}
.burger{width:42px;height:42px;border-radius:12px;border:1px solid var(--line);background:var(--white);display:grid;place-items:center;cursor:pointer;color:var(--wine-800);font-size:20px}
.nav-cta{display:none}

/* mobile drawer */
.drawer-bg{position:fixed;inset:0;background:rgba(42,10,11,.42);backdrop-filter:blur(2px);opacity:0;pointer-events:none;transition:.28s;z-index:90}
.drawer-bg.open{opacity:1;pointer-events:auto}
.drawer{
  position:fixed; top:0; right:0; bottom:0; width:min(330px,86vw); background:var(--cream);
  z-index:100; transform:translateX(100%); transition:transform .32s var(--ease);
  display:flex; flex-direction:column; box-shadow:-10px 0 40px rgba(42,10,11,.18);
}
.drawer.open{transform:none}
.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--line)}
.drawer-body{padding:14px 12px; overflow-y:auto; flex:1}
.drawer-body a{display:flex;align-items:center;gap:12px;padding:13px 14px;border-radius:12px;font-weight:500;color:var(--wine-800)}
.drawer-body a:hover,.drawer-body a.active{background:var(--white); box-shadow:var(--sh-1)}
.drawer-body .ic{color:var(--gold-d); font-size:18px}
.drawer-foot{padding:16px; border-top:1px solid var(--line); display:grid; gap:9px}

/* ---------- hero ---------- */
.hero{position:relative; overflow:hidden; background:var(--cream-2)}
.hero-media{position:absolute; inset:0}
.hero-media img{width:100%;height:100%;object-fit:cover;object-position:72% center}
.hero-media::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(251,247,241,.94) 0%, rgba(251,247,241,.82) 45%, rgba(251,247,241,.72) 100%);
}
.hero-inner{position:relative; padding-block:clamp(48px,8vw,110px)}
.hero-copy{max-width:610px}
.hero h1{margin-bottom:18px}
.hero h1 .accent{color:var(--wine); position:relative; white-space:nowrap}
.hero-sub{font-size:clamp(1rem,1.7vw,1.14rem); color:var(--body); max-width:52ch; margin-bottom:28px}
.hero-cta{display:flex; flex-wrap:wrap; gap:12px; margin-bottom:30px}
.hero-chips{display:flex; flex-wrap:wrap; gap:10px 20px}
.hero-chip{display:inline-flex; align-items:center; gap:8px; font-size:.87rem; font-weight:500; color:var(--wine-800)}
.hero-chip .ic{color:var(--gold-d); font-size:17px}

@media (min-width:900px){
  .hero-media::after{background:linear-gradient(96deg, rgba(251,247,241,.985) 0%, rgba(251,247,241,.95) 40%, rgba(251,247,241,.62) 62%, rgba(251,247,241,.18) 100%)}
}

/* ---------- trust strip ---------- */
.trust{border-top:1px solid var(--line-2); border-bottom:1px solid var(--line-2); background:var(--white)}
.trust-grid{display:grid; grid-template-columns:1fr; gap:1px; background:var(--line-2)}
.trust-item{background:var(--white); padding:20px 16px; display:flex; align-items:center; gap:13px}
.trust-item .ic{font-size:22px; color:var(--gold-d); flex:none}
.trust-item b{display:block; font-size:.9rem; color:var(--wine-800); font-weight:600; line-height:1.3}
.trust-item span{font-size:.78rem; color:var(--muted)}

/* ---------- product grid ---------- */
.grid{display:grid; gap:clamp(16px,2.4vw,26px)}
.grid-2{grid-template-columns:1fr}
.grid-3{grid-template-columns:1fr}
.grid-4{grid-template-columns:repeat(2,1fr)}

.p-card{
  background:var(--white); border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden;
  display:flex; flex-direction:column; box-shadow:var(--sh-1);
  transition:transform .26s var(--ease), box-shadow .26s var(--ease), border-color .26s;
}
.p-card:hover{transform:translateY(-5px); box-shadow:var(--sh-3); border-color:rgba(192,151,43,.4)}
.p-thumb{position:relative; aspect-ratio:1/1; background:var(--cream-2); overflow:hidden; display:block}
.p-thumb img{width:100%;height:100%;object-fit:cover; transition:transform .5s var(--ease)}
.p-card:hover .p-thumb img{transform:scale(1.04)}
.p-thumb .badge{position:absolute; top:12px; right:12px; box-shadow:var(--sh-2)}
.p-body{padding:18px 18px 20px; display:flex; flex-direction:column; flex:1; gap:8px}
.p-cat{font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--gold-d); font-weight:600}
.p-name{font-family:var(--ff-display); font-size:1.06rem; color:var(--wine-800); font-weight:600; line-height:1.4}
.p-desc{font-size:.86rem; color:var(--muted); line-height:1.62; display:-webkit-box; -webkit-line-clamp:2; line-clamp:2; -webkit-box-orient:vertical; overflow:hidden}
.p-foot{margin-top:auto; padding-top:14px; display:flex; align-items:flex-end; justify-content:space-between; gap:10px; border-top:1px solid var(--line-2)}
.p-price{font-family:var(--ff-display); font-size:1.3rem; font-weight:700; color:var(--wine); line-height:1.15; white-space:nowrap}
.p-price small{font-size:.72rem; color:var(--muted); font-weight:400; font-family:var(--ff-body); display:block; margin-top:1px}
.p-price .was{font-size:.8rem; color:var(--muted); text-decoration:line-through; font-weight:400; margin-right:6px}
.p-add{
  width:42px;height:42px;border-radius:12px;border:1.5px solid var(--wine);background:var(--wine);color:#fff;
  display:grid;place-items:center;cursor:pointer;font-size:18px;flex:none;transition:.2s var(--ease);
}
.p-add:hover{background:var(--wine-700); transform:scale(1.07)}
.p-add.added{background:var(--ok); border-color:var(--ok)}

/* ---------- steps ---------- */
.steps{display:grid; gap:20px; counter-reset:s}
.step{position:relative; padding-left:64px}
.step::before{
  counter-increment:s; content:counter(s,decimal-leading-zero);
  position:absolute; left:0; top:0; width:46px; height:46px; border-radius:14px;
  background:linear-gradient(150deg,var(--wine-800),var(--wine-700)); color:var(--gold-l);
  display:grid; place-items:center; font-family:var(--ff-display); font-weight:600; font-size:.95rem;
}
.step h3{margin-bottom:5px; font-size:1.05rem}
.step p{font-size:.9rem; color:var(--muted)}

/* ---------- feature list ---------- */
.flist{list-style:none; padding:0; margin:0; display:grid; gap:11px}
.flist li{display:flex; gap:11px; align-items:flex-start; font-size:.93rem}
.flist .ic{color:var(--ok); font-size:18px; margin-top:3px; flex:none}
.flist.gold .ic{color:var(--gold-d)}

/* ---------- callout ---------- */
.callout{
  background:linear-gradient(150deg,#fff,var(--cream-2)); border:1px solid var(--line);
  border-left:3px solid var(--gold); border-radius:var(--r); padding:20px 22px;
  display:flex; gap:14px; align-items:flex-start; font-size:.9rem; color:var(--body);
}
.callout .ic{color:var(--gold-d); font-size:20px; flex:none; margin-top:2px}
.callout b{color:var(--wine-800)}
.callout.warn{border-left-color:var(--warn); background:var(--warn-bg)}
.callout.warn .ic{color:var(--warn)}
.callout.ok{border-left-color:var(--ok); background:var(--ok-bg)}
.callout.ok .ic{color:var(--ok)}
.callout.info{border-left-color:var(--info); background:var(--info-bg)}
.callout.info .ic{color:var(--info)}

/* ---------- faq ---------- */
.faq{border:1px solid var(--line); border-radius:var(--r); background:var(--white); overflow:hidden}
.faq+.faq{margin-top:12px}
.faq summary{
  padding:18px 22px; cursor:pointer; list-style:none; display:flex; align-items:center; gap:14px;
  font-weight:600; color:var(--wine-800); font-size:.98rem; font-family:var(--ff-display);
}
.faq summary::-webkit-details-marker{display:none}
.faq summary .ic{margin-left:auto; color:var(--gold-d); transition:transform .25s var(--ease); font-size:18px}
.faq[open] summary .ic{transform:rotate(180deg)}
.faq-body{padding:0 22px 20px; font-size:.92rem; color:var(--muted)}

/* ---------- cta band ---------- */
.cta-band{position:relative; overflow:hidden; background:linear-gradient(135deg,var(--wine-900),var(--wine-800) 55%,var(--wine-700)); color:rgba(255,255,255,.8)}
.cta-band h1,.cta-band h2,.cta-band h3{color:#fff}
.cta-band .eyebrow{color:var(--gold-l)}
.cta-band .eyebrow::before,.cta-band .eyebrow.center::after{background:linear-gradient(90deg,var(--gold-l),transparent)}
.cta-band .lede{color:rgba(255,255,255,.75)}
.cta-band::before{content:'';position:absolute;top:-40%;right:-8%;width:440px;height:440px;border-radius:50%;background:radial-gradient(circle,rgba(192,151,43,.22),transparent 68%)}
.cta-band .container{position:relative}
.cta-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}

/* ---------- footer ---------- */
.site-footer{background:var(--wine-900); color:rgba(255,255,255,.66); padding:clamp(44px,6vw,68px) 0 0; font-size:.9rem}
.foot-grid{display:grid; gap:34px; padding-bottom:38px}
.foot-brand img{height:52px; width:52px; margin-bottom:16px}
.site-footer h4{color:#fff; font-size:.98rem; margin-bottom:15px; font-family:var(--ff-display)}
.foot-links{display:grid; gap:2px}
.foot-links a{color:rgba(255,255,255,.66); transition:.16s; font-size:.9rem; padding:9px 0; display:block; min-height:40px; line-height:1.5}
.foot-links a:hover{color:var(--gold-l)}
.foot-contact{display:grid; gap:6px}
.foot-contact li{display:flex; gap:11px; align-items:flex-start; list-style:none; padding:6px 0; min-height:36px}
.foot-contact .ic{color:var(--gold); font-size:17px; margin-top:3px; flex:none}
.foot-contact a:hover{color:var(--gold-l)}
.foot-bottom{border-top:1px solid rgba(255,255,255,.1); padding:20px 0; display:flex; flex-wrap:wrap; gap:10px; justify-content:space-between; font-size:.8rem; color:rgba(255,255,255,.45)}
ul.foot-contact{padding:0;margin:0}

/* ---------- floating contact ---------- */
.float-cta{position:fixed; right:16px; bottom:16px; z-index:70; display:flex; flex-direction:column; gap:10px}
.float-btn{
  width:52px;height:52px;border-radius:50%; display:grid; place-items:center; color:#fff; font-size:23px;
  box-shadow:0 6px 20px rgba(42,10,11,.26); transition:transform .2s var(--ease);
}
.float-btn:hover{transform:scale(1.08)}
.float-btn.line{background:#06C755}
.float-btn.tel{background:var(--wine)}

/* ---------- forms ---------- */
.field{display:block; margin-bottom:16px}
.field>label,.lbl{display:block; font-size:.85rem; font-weight:600; color:var(--wine-800); margin-bottom:7px}
.req::after{content:' *'; color:var(--danger)}
.input,.select,.textarea{
  width:100%; padding:12px 14px; border:1.5px solid var(--line); border-radius:var(--r-sm);
  background:var(--white); font-size:.95rem; color:var(--ink); transition:.16s; font-family:var(--ff-body);
}
.textarea{min-height:96px; resize:vertical; line-height:1.65}
.input:hover,.select:hover,.textarea:hover{border-color:rgba(74,13,9,.24)}
.input:focus,.select:focus,.textarea:focus{outline:none; border-color:var(--wine); box-shadow:0 0 0 3px rgba(140,27,27,.1)}
.input.err,.select.err,.textarea.err{border-color:var(--danger); background:var(--danger-bg)}
.input::placeholder,.textarea::placeholder{color:#B3A49E}
.select{appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%237A6A64' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 13px center; padding-right:40px}
.field-err{color:var(--danger); font-size:.79rem; margin-top:5px; display:none; align-items:center; gap:5px}
.field-err.show{display:flex}
.hint{font-size:.79rem; color:var(--muted); margin-top:5px}
.form-row{display:grid; gap:0 16px; grid-template-columns:1fr}
.form-row-3{display:grid; gap:0 16px; grid-template-columns:1fr}
.check{display:flex; gap:11px; align-items:flex-start; cursor:pointer; font-size:.92rem; margin-bottom:12px}
.check input{width:19px;height:19px;margin:2px 0 0;accent-color:var(--wine); flex:none; cursor:pointer}

.radio-card{
  display:flex; gap:13px; align-items:flex-start; padding:16px; border:1.5px solid var(--line);
  border-radius:var(--r); background:var(--white); cursor:pointer; transition:.18s var(--ease); margin-bottom:11px;
}
.radio-card:hover{border-color:rgba(140,27,27,.34)}
.radio-card input{width:19px;height:19px;margin:2px 0 0;accent-color:var(--wine); flex:none; cursor:pointer}
.radio-card.sel{border-color:var(--wine); background:var(--wine-50); box-shadow:0 0 0 3px rgba(140,27,27,.07)}
.radio-card b{display:block; color:var(--wine-800); font-size:.95rem}
.radio-card .rc-body{flex:1; min-width:0}

/* ---------- table ---------- */
.table-wrap{overflow-x:auto; -webkit-overflow-scrolling:touch; border:1px solid var(--line); border-radius:var(--r); background:var(--white)}
table.tbl{width:100%; border-collapse:collapse; font-size:.88rem; min-width:640px}
.tbl th{background:var(--cream-2); text-align:left; padding:12px 14px; font-weight:600; color:var(--wine-800); font-size:.78rem; letter-spacing:.05em; text-transform:uppercase; white-space:nowrap; border-bottom:1px solid var(--line)}
.tbl td{padding:13px 14px; border-bottom:1px solid var(--line-2); vertical-align:middle}
.tbl tr:last-child td{border-bottom:0}
.tbl tbody tr:hover{background:var(--cream)}
.tbl .num{text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap}

/* ---------- cart ---------- */
.cart-line{display:grid; grid-template-columns:76px 1fr; gap:14px; padding:18px 0; border-bottom:1px solid var(--line-2)}
.cart-line:last-child{border-bottom:0}
.cart-thumb{width:76px;height:76px;border-radius:12px;overflow:hidden;background:var(--cream-2);border:1px solid var(--line-2)}
.cart-thumb img{width:100%;height:100%;object-fit:cover}
.cart-info{display:flex; flex-direction:column; gap:9px; min-width:0}
.cart-title{font-family:var(--ff-display); font-weight:600; color:var(--wine-800); font-size:.98rem; line-height:1.4}
.cart-ctrl{display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap}
.qty{display:inline-flex; align-items:center; border:1.5px solid var(--line); border-radius:999px; overflow:hidden; background:var(--white)}
.qty button{width:34px;height:34px;border:0;background:transparent;color:var(--wine-800);cursor:pointer;display:grid;place-items:center;font-size:15px;transition:.15s}
.qty button:hover{background:var(--wine-50); color:var(--wine)}
.qty button:disabled{opacity:.3; cursor:not-allowed}
.qty input{width:40px;border:0;text-align:center;font-weight:600;font-size:.92rem;background:transparent;-moz-appearance:textfield}
.qty input::-webkit-outer-spin-button,.qty input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.cart-price{font-weight:700; color:var(--wine); white-space:nowrap; font-variant-numeric:tabular-nums}

.summary{position:sticky; top:calc(var(--nav-h) + 18px)}
.sum-row{display:flex; justify-content:space-between; gap:14px; padding:8px 0; font-size:.92rem}
.sum-row.total{border-top:1px solid var(--line); margin-top:10px; padding-top:15px; font-size:1.05rem; font-weight:700; color:var(--wine-800); font-family:var(--ff-display)}
.sum-row.total b{font-size:1.35rem; color:var(--wine)}
.sum-row .neg{color:var(--ok); font-weight:600}
.sum-row .free{color:var(--ok); font-weight:600}
.coupon-row{display:flex; gap:8px}
.coupon-row .input{flex:1; text-transform:uppercase}

/* ---------- steps bar ---------- */
.stepbar{display:flex; align-items:center; gap:6px; margin-bottom:clamp(24px,4vw,38px); flex-wrap:nowrap; overflow-x:auto; padding-bottom:4px}
.stepbar-i{display:flex; align-items:center; gap:8px; font-size:.82rem; color:var(--muted); white-space:nowrap; font-weight:500}
.stepbar-i i{width:24px;height:24px;border-radius:50%;border:1.5px solid var(--line);display:grid;place-items:center;font-size:.72rem;font-style:normal;font-weight:700;flex:none;background:var(--white)}
.stepbar-i.on{color:var(--wine-800); font-weight:600}
.stepbar-i.on i{background:var(--wine); color:#fff; border-color:var(--wine)}
.stepbar-i.done i{background:var(--ok); border-color:var(--ok); color:#fff}
.stepbar-sep{flex:1; min-width:14px; height:1.5px; background:var(--line)}

/* ---------- payment ---------- */
.pay-box{border:1px solid var(--line); border-radius:var(--r); overflow:hidden; background:var(--white)}
.pay-head{padding:15px 18px; background:var(--cream-2); border-bottom:1px solid var(--line); display:flex; align-items:center; gap:11px}
.pay-head b{color:var(--wine-800); font-family:var(--ff-display)}
.pay-body{padding:20px 18px}
.qr-frame{
  width:min(260px,72vw); margin:0 auto; padding:16px; background:#fff; border-radius:var(--r);
  border:1.5px solid var(--gold-s); box-shadow:var(--sh-2); position:relative;
}
.qr-frame img,.qr-frame svg{width:100%; height:auto; display:block}
.qr-tag{text-align:center; margin-top:12px; font-size:.85rem; color:var(--muted)}
.copy-row{display:flex; align-items:center; gap:10px; padding:11px 14px; background:var(--cream); border:1px dashed var(--line); border-radius:var(--r-sm); margin-top:10px}
.copy-row .val{font-weight:700; color:var(--wine-800); letter-spacing:.04em; font-variant-numeric:tabular-nums; flex:1; min-width:0; overflow-wrap:anywhere}
.copy-btn{border:0; background:transparent; color:var(--wine); cursor:pointer; display:inline-flex; align-items:center; gap:5px; font-size:.8rem; font-weight:600; padding:4px 6px; border-radius:6px; flex:none}
.copy-btn:hover{background:var(--wine-50)}

/* upload */
.upload{
  border:2px dashed var(--line); border-radius:var(--r); padding:28px 18px; text-align:center;
  cursor:pointer; transition:.2s; background:var(--cream); display:block;
}
.upload:hover,.upload.drag{border-color:var(--wine); background:var(--wine-50)}
.upload .ic{font-size:30px; color:var(--gold-d); margin-bottom:8px}
.upload b{display:block; color:var(--wine-800); font-size:.95rem; margin-bottom:3px}
.upload-prev{position:relative; border-radius:var(--r); overflow:hidden; border:1px solid var(--line); max-width:280px; margin:0 auto}
.upload-prev img{width:100%}
.upload-prev button{position:absolute; top:8px; right:8px; width:32px;height:32px;border-radius:50%;border:0;background:rgba(42,10,11,.72);color:#fff;cursor:pointer;display:grid;place-items:center}

/* ---------- toast ---------- */
.toasts{position:fixed; left:50%; transform:translateX(-50%); bottom:24px; z-index:200; display:flex; flex-direction:column; gap:9px; align-items:center; pointer-events:none; width:calc(100% - 32px); max-width:420px}
.toast{
  background:var(--wine-900); color:#fff; padding:12px 18px; border-radius:999px; font-size:.88rem;
  box-shadow:var(--sh-3); display:flex; align-items:center; gap:9px; animation:tin .28s var(--ease);
  max-width:100%; pointer-events:auto;
}
.toast .ic{color:var(--gold-l); font-size:17px; flex:none}
.toast.ok .ic{color:#5CE08B}
.toast.err{background:var(--danger)} .toast.err .ic{color:#fff}
@keyframes tin{from{opacity:0; transform:translateY(14px) scale(.96)}to{opacity:1;transform:none}}

/* ---------- empty / loader ---------- */
.empty{text-align:center; padding:clamp(40px,8vw,72px) 20px}
.empty .ic{font-size:44px; color:var(--cream-3); margin-bottom:14px}
.empty h3{margin-bottom:8px}
.empty p{color:var(--muted); font-size:.92rem; margin-bottom:20px}
.spinner{width:22px;height:22px;border:2.5px solid var(--line);border-top-color:var(--wine);border-radius:50%;animation:spin .7s linear infinite;display:inline-block}
@keyframes spin{to{transform:rotate(360deg)}}
.skel{background:linear-gradient(90deg,var(--cream-2) 25%,var(--cream-3) 37%,var(--cream-2) 63%); background-size:400% 100%; animation:sk 1.3s ease infinite; border-radius:8px}
@keyframes sk{0%{background-position:100% 50%}100%{background-position:0 50%}}
.loading-wrap{display:grid; place-items:center; padding:60px 20px; gap:12px; color:var(--muted); font-size:.9rem}

/* ---------- animation ---------- */
.reveal{opacity:0; transform:translateY(20px); transition:opacity .65s var(--ease), transform .65s var(--ease)}
.reveal.in{opacity:1; transform:none}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important; transition-duration:.01ms !important; scroll-behavior:auto !important}
  .reveal{opacity:1; transform:none}
}

/* ============================================================ responsive */
@media (min-width:520px){
  .trust-grid{grid-template-columns:repeat(2,1fr)}
  .grid-2{grid-template-columns:repeat(2,1fr)}
  .form-row{grid-template-columns:1fr 1fr}
  .brand-txt{display:block}
}
@media (min-width:768px){
  .grid-3{grid-template-columns:repeat(2,1fr)}
  .grid-4{grid-template-columns:repeat(3,1fr)}
  .trust-grid{grid-template-columns:repeat(4,1fr)}
  .steps{grid-template-columns:repeat(2,1fr); gap:28px 30px}
  .foot-grid{grid-template-columns:1.4fr 1fr 1.2fr}
  .form-row-3{grid-template-columns:1fr 1fr 1fr}
  .cart-line{grid-template-columns:96px 1fr}
  .cart-thumb{width:96px;height:96px}
}
@media (min-width:1000px){
  .nav-links{display:flex}
  .burger{display:none}
  .nav-cta{display:inline-flex}
  .grid-3{grid-template-columns:repeat(3,1fr)}
  .grid-4{grid-template-columns:repeat(4,1fr)}
  .steps{grid-template-columns:repeat(4,1fr)}
  .float-cta{display:none}
  .split{display:grid; grid-template-columns:1.55fr .95fr; gap:clamp(24px,3vw,40px); align-items:start}
  .split-even{display:grid; grid-template-columns:1fr 1fr; gap:clamp(30px,4vw,56px); align-items:center}
}
@media (max-width:999px){
  .split,.split-even{display:grid; gap:28px}
  .summary{position:static}
}

/* touch comfort */
@media (pointer:coarse){
  nav.small a, .link-arrow{display:inline-block; padding-block:6px}
  .p-name{padding-block:2px}
  .foot-links a{min-height:44px; display:flex; align-items:center}
  .qty input{height:38px}
  .qty button{width:38px;height:38px}
}

/* ============================================================
   section artwork backgrounds (decoration pack)
   ============================================================ */
.bg-art{position:relative; background-repeat:no-repeat; background-size:cover; background-position:center; isolation:isolate}
.bg-art>.container{position:relative; z-index:1}
.bg-art--why{background-image:url('/img/bg-why.jpg')}
.bg-art--faq{background-image:url('/img/bg-faq.jpg')}
/* keep body copy legible over the artwork */
.bg-art--why::before,.bg-art--faq::before{
  content:''; position:absolute; inset:0; background:rgba(251,247,241,.5); z-index:0;
}

/* process step cards */
.step-card{
  background:rgba(255,255,255,.82); border:1px solid var(--line); border-radius:var(--r-lg);
  overflow:hidden; box-shadow:var(--sh-1); display:flex; flex-direction:column;
  transition:transform .26s var(--ease), box-shadow .26s var(--ease);
}
.step-card:hover{transform:translateY(-4px); box-shadow:var(--sh-2)}
.step-card figure{margin:0; aspect-ratio:4/3; overflow:hidden; background:var(--cream-2); position:relative}
.step-card figure img{width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease)}
.step-card:hover figure img{transform:scale(1.04)}
.step-card figure b{
  position:absolute; top:12px; left:12px; width:34px; height:34px; border-radius:11px;
  background:linear-gradient(150deg,var(--wine-800),var(--wine-700)); color:var(--gold-l);
  display:grid; place-items:center; font-family:var(--ff-display); font-size:.86rem; font-weight:600;
  box-shadow:var(--sh-2);
}
.step-card .step-body{padding:16px 18px 20px}
.step-card h3{font-size:1.03rem; margin-bottom:6px}
.step-card p{font-size:.88rem; color:var(--muted); margin:0}

/* team portrait in the "why us" section */
.team-photo{
  width:100%; aspect-ratio:4/5; object-fit:cover; object-position:center 22%;
  border-radius:var(--r-lg); box-shadow:var(--sh-3); border:1px solid var(--line);
}
@media (min-width:1000px){ .team-photo{aspect-ratio:5/6} }

/* closing promo banner — full bleed, no gutters */
.promo-band{padding:0; background:var(--cream-2); line-height:0}
.promo-frame{display:block; width:100%; line-height:0; overflow:hidden}
.promo-frame img{
  width:100%; display:block; aspect-ratio:16/9; object-fit:cover; object-position:center;
  transition:transform .6s var(--ease);
}
.promo-frame:hover img{transform:scale(1.015)}
/* on wider screens crop it into a band — 2.4:1 keeps the logo and every line of copy in frame */
@media (min-width:760px){ .promo-frame img{aspect-ratio:2.4/1; object-position:center 22%} }

/* ============================================================
   package comparison / picker (products sold in several tiers)
   ============================================================ */
.pkg-wrap{margin-top:26px}
.pkg-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.pkg-head h3{margin:0}
.pkg-head .small{color:var(--muted)}

/* auto-fit keys off the real column width, not the viewport, so the picker
   never gets squeezed inside the narrow product sidebar */
.pkg-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.pkg-grid.cols-1{grid-template-columns:1fr;max-width:340px}

.pkg{
  position:relative;display:flex;flex-direction:column;gap:2px;text-align:left;
  padding:16px 16px 18px;border:1.5px solid var(--line);border-radius:var(--r);
  background:var(--white);cursor:pointer;transition:.18s var(--ease);font-family:inherit;
}
.pkg:hover{border-color:rgba(140,27,27,.34);transform:translateY(-2px);box-shadow:var(--sh-2)}
.pkg.sel{border-color:var(--wine);background:var(--wine-50);box-shadow:0 0 0 3px rgba(140,27,27,.08)}
.pkg-name{font-weight:600;color:var(--wine-800);font-size:.95rem;line-height:1.35;padding-right:26px;min-height:2.7em}
.pkg-price{font-family:var(--ff-display);font-size:1.5rem;font-weight:700;color:var(--wine);line-height:1.15;margin-top:6px}
.pkg-price small{display:block;font-family:var(--ff-body);font-size:.76rem;font-weight:400;color:var(--muted);margin-top:2px}
.pkg-note{font-size:.78rem;color:var(--ok);font-weight:600;margin-top:4px}
.pkg-specs{list-style:none;margin:12px 0 0;padding:12px 0 0;border-top:1px solid var(--line-2);display:grid;gap:6px}
.pkg-specs li{font-size:.8rem;color:var(--muted);display:flex;gap:7px;align-items:flex-start;line-height:1.5}
.pkg-specs .ic{color:var(--gold-d);font-size:14px;margin-top:3px;flex:none}
.pkg-badge{position:absolute;top:-9px;left:14px;font-size:.68rem;padding:3px 9px;border-radius:999px;
  background:linear-gradient(135deg,var(--gold),var(--gold-l));color:var(--wine-900);font-weight:700;box-shadow:var(--sh-1)}
.pkg-tick{position:absolute;top:14px;right:14px;width:20px;height:20px;border-radius:50%;border:1.5px solid var(--line);
  display:grid;place-items:center;color:transparent;font-size:12px;background:#fff;transition:.16s}
.pkg.sel .pkg-tick{background:var(--wine);border-color:var(--wine);color:#fff}

/* the package a cart line refers to */
.line-pkg{display:inline-flex;align-items:center;gap:5px;font-size:.74rem;font-weight:600;color:var(--wine-800);
  background:var(--gold-s);border:1px solid rgba(192,151,43,.3);border-radius:999px;padding:2px 9px;margin-top:3px}
