/* «Саша и Вино» — design system: French cave, wine without snobbery */
*{margin:0;padding:0;box-sizing:border-box;}
:root{
  /* surfaces */
  --c-bg:#F7F2E9;--c-surface:#FCF9F2;--c-surface-sunken:#F0E8DA;
  /* ink */
  --c-ink:#211A16;--c-ink-soft:#5E5249;--c-ink-faint:#8A7D70;
  /* brand */
  --c-wine:#6B1F2E;--c-wine-deep:#4A1420;--c-wine-wash:#F3E5E4;
  --c-oak:#8C5A33;--c-olive:#555036;
  /* brass — thin details only */
  --c-brass:#B68A4E;--c-brass-soft:#D8BE8E;
  --c-line:#E2D8C7;--c-focus:#B68A4E;
  /* legacy aliases for inline styles */
  --burg:var(--c-wine);--gold:var(--c-brass);--cream:var(--c-surface-sunken);--char:var(--c-ink);--grey:var(--c-ink-soft);
  /* fonts */
  --font-display:"Fraunces",Georgia,serif;
  --font-body:"Hanken Grotesk",system-ui,sans-serif;
  --font-quote:"Spectral",Georgia,serif;
  /* type scale */
  --t-eyebrow:.78rem;--t-small:.9rem;--t-body:1.0625rem;--t-lead:1.22rem;--t-h4:1.42rem;
  --t-h3:clamp(1.6rem,1.2rem + 1.4vw,2.1rem);
  --t-h2:clamp(2.1rem,1.5rem + 2.6vw,3.1rem);
  --t-h1:clamp(2.8rem,1.8rem + 4.6vw,4.6rem);
  /* spacing */
  --s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:24px;--s-6:32px;--s-7:48px;--s-8:64px;--s-9:96px;--s-10:128px;
  --container:1140px;--container-narrow:720px;--gutter:clamp(16px,5vw,40px);
  --r-sm:2px;--r-md:4px;--r-lg:8px;
  --shadow-1:0 1px 2px rgba(33,26,22,.06);
  --shadow-2:0 8px 28px -12px rgba(33,26,22,.14);
  --ease:cubic-bezier(.2,.6,.2,1);--d-fast:160ms;--d-base:240ms;--d-slow:360ms;
}
[data-theme="cave"]{
  --c-bg:#17110F;--c-surface:#201813;--c-surface-sunken:#120D0B;
  --c-ink:#F2E8DA;--c-ink-soft:#C3B4A3;--c-ink-faint:#8C7C6C;
  --c-wine:#A23A48;--c-wine-deep:#7E2735;--c-wine-wash:#251416;
  --c-oak:#B97E4E;--c-olive:#8A8757;--c-brass:#C9A05A;--c-brass-soft:#E0C58E;
  --c-line:#352A24;--c-focus:#C9A05A;
}
html{scroll-behavior:smooth;}
body{font-family:var(--font-body);font-size:var(--t-body);color:var(--c-ink);background:var(--c-bg);line-height:1.62;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}
h1,h2,h3,h4,.serif{font-family:var(--font-display);font-weight:600;letter-spacing:-.015em;line-height:1.1;color:var(--c-ink);}
a{text-decoration:none;color:inherit;}
img{max-width:100%;display:block;}
:focus-visible{outline:2px solid var(--c-focus);outline-offset:2px;}
.wrap{max-width:var(--container);margin:0 auto;padding:0 var(--gutter);}

/* buttons */
.btn{display:inline-block;font-family:var(--font-body);background:var(--c-wine);color:var(--c-surface);font-weight:600;font-size:1rem;padding:14px 24px;border-radius:var(--r-md);border:1px solid var(--c-wine);cursor:pointer;transition:transform var(--d-fast) var(--ease),background var(--d-fast) var(--ease),border-color var(--d-fast) var(--ease);}
.btn:hover{background:var(--c-wine-deep);border-color:var(--c-wine-deep);transform:translateY(-2px);}
.btn.gold{background:var(--c-brass);border-color:var(--c-brass);color:#2A1C0A;}
.btn.gold:hover{background:#A2783F;border-color:#A2783F;}
.btn.ghost{background:transparent;border:1px solid var(--c-brass);color:var(--c-ink);}
.btn.ghost:hover{background:var(--c-wine-wash);}

/* header / nav */
header{position:sticky;top:0;z-index:50;background:rgba(247,242,233,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--c-line);}
.nav{display:flex;align-items:center;justify-content:space-between;padding:16px 0;}
.logo{font-family:var(--font-display);font-weight:600;font-size:1.5rem;color:var(--c-wine);letter-spacing:-.01em;}
.logo span{color:var(--c-brass);}
.menu{display:flex;gap:28px;font-size:.96rem;font-weight:500;color:var(--c-ink-soft);}
.menu a{position:relative;padding-bottom:2px;transition:color var(--d-fast);}
.menu a:after{content:"";position:absolute;left:0;bottom:-1px;width:0;height:1px;background:var(--c-brass);transition:width var(--d-base) var(--ease);}
.menu a:hover{color:var(--c-wine);}
.menu a:hover:after{width:100%;}
.nav .btn{padding:10px 18px;font-size:.92rem;}

/* eyebrow */
.tag,.kicker{font-family:var(--font-body);font-weight:600;font-size:var(--t-eyebrow);text-transform:uppercase;letter-spacing:.16em;color:var(--c-brass);}

/* hero */
.hero{background:var(--c-wine);color:var(--c-surface);padding:var(--s-10) 0;position:relative;overflow:hidden;border-bottom:1px solid var(--c-wine-deep);}
.hero:after{content:"";position:absolute;right:-130px;top:-120px;width:520px;height:520px;border:1px solid rgba(214,190,142,.26);border-radius:50%;}
.hero:before{content:"";position:absolute;right:80px;top:140px;width:300px;height:300px;border:1px solid rgba(214,190,142,.16);border-radius:50%;}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(300px,.62fr);gap:var(--s-8);align-items:center;position:relative;z-index:2;}
.hero-copy{position:relative;z-index:2;}
.hero .kicker{color:var(--c-brass-soft);margin-bottom:var(--s-5);position:relative;z-index:2;}
.hero h1{font-size:var(--t-h1);color:#FCF9F2;font-weight:500;max-width:13ch;margin-bottom:var(--s-5);position:relative;z-index:2;}
.hero h1 em{font-family:var(--font-quote);font-style:italic;color:var(--c-brass-soft);font-weight:400;}
.hero .sub{font-family:var(--font-body);font-size:var(--t-lead);color:#E8D9C2;max-width:58ch;margin-bottom:var(--s-6);line-height:1.55;position:relative;z-index:2;}
.hero-media{display:block;align-self:stretch;min-height:520px;border:1px solid rgba(214,190,142,.42);border-radius:var(--r-lg);overflow:hidden;box-shadow:0 24px 60px -30px rgba(0,0,0,.45);background:var(--c-wine-deep);}
.hero-media img{width:100%;height:100%;object-fit:cover;object-position:center 26%;display:block;}
.cta-row{display:flex;gap:var(--s-3);flex-wrap:wrap;position:relative;z-index:2;}
.hero .btn.ghost{color:#FCF9F2;border-color:var(--c-brass-soft);}
.hero .btn.ghost:hover{background:rgba(255,255,255,.08);}
.micro{margin-top:var(--s-5);font-size:var(--t-small);color:var(--c-ink-faint);}
.hero .micro{color:#D8BE8E;position:relative;z-index:2;}
.stats{display:flex;gap:var(--s-8);margin-top:var(--s-8);flex-wrap:wrap;position:relative;z-index:2;}
.stat .n{font-family:var(--font-display);font-size:3rem;font-weight:500;color:var(--c-brass);line-height:1;}
.stat .l{font-size:var(--t-small);color:#D8BE8E;margin-top:var(--s-2);max-width:18ch;}

/* inner-page hero */
.subhero{background:var(--c-wine-deep);color:var(--c-surface);padding:var(--s-9) 0;position:relative;overflow:hidden;}
.subhero:after{content:"";position:absolute;right:-90px;top:-90px;width:360px;height:360px;border:1px solid rgba(214,190,142,.2);border-radius:50%;}
.subhero .crumbs{font-size:var(--t-small);color:#D8BE8E;margin-bottom:var(--s-4);position:relative;z-index:2;}
.subhero .crumbs a{color:var(--c-brass-soft);}
.subhero h1{font-size:var(--t-h2);color:#FCF9F2;font-weight:500;max-width:22ch;line-height:1.08;position:relative;z-index:2;}
.subhero p{font-family:var(--font-body);font-size:var(--t-lead);color:#E8D9C2;max-width:62ch;margin-top:var(--s-4);line-height:1.55;position:relative;z-index:2;}

/* trust row */
.trust{background:var(--c-surface-sunken);padding:var(--s-5) 0;border-bottom:1px solid var(--c-line);}
.trust .wrap{display:flex;align-items:center;gap:var(--s-6);flex-wrap:wrap;}
.trust .lbl{font-size:var(--t-eyebrow);text-transform:uppercase;letter-spacing:.16em;color:var(--c-ink-faint);font-weight:600;}
.trust .names{display:flex;gap:var(--s-6);font-family:var(--font-display);font-size:1.3rem;font-weight:500;color:var(--c-ink-faint);flex-wrap:wrap;}
.trust .names span{transition:color var(--d-fast) var(--ease);}
.trust .names span:hover{color:var(--c-ink);}

/* sections */
section.blk{padding-block:var(--s-9);}
.sec-h{text-align:center;margin-bottom:var(--s-7);}
.sec-h .tag{display:inline-block;margin-bottom:var(--s-3);}
.sec-h h2{font-size:var(--t-h2);color:var(--c-wine);font-weight:500;}
.sec-h p{font-family:var(--font-body);color:var(--c-ink-soft);font-size:var(--t-lead);margin-top:var(--s-3);max-width:60ch;margin-inline:auto;}

/* prose (inner pages) */
.prose{max-width:var(--container-narrow);margin:0 auto;}
.prose .intro{font-family:var(--font-quote);font-style:italic;font-size:var(--t-lead);color:var(--c-ink-soft);line-height:1.6;margin-bottom:var(--s-6);border-left:2px solid var(--c-brass);padding-left:var(--s-5);}
.prose h2{font-size:var(--t-h3);color:var(--c-wine);margin:var(--s-7) 0 var(--s-4);}
.prose ul{list-style:none;margin:0 0 var(--s-5);}
.prose li{font-size:var(--t-body);color:var(--c-ink);margin:var(--s-3) 0;padding-left:var(--s-5);position:relative;}
.prose li:before{content:"";position:absolute;left:0;top:.7em;width:7px;height:7px;background:var(--c-brass);border-radius:var(--r-sm);}
.prose li b{color:var(--c-wine);font-weight:600;}
.prose p{font-size:var(--t-body);color:var(--c-ink-soft);margin-bottom:var(--s-4);}
.prose a{color:var(--c-wine)!important;text-decoration:underline;text-decoration-color:var(--c-brass-soft);text-underline-offset:3px;}

/* problem / pains — etiquette lot numbers */
.problem{background:var(--c-bg);}
.problem h2{font-size:var(--t-h2);color:var(--c-wine);text-align:center;max-width:24ch;margin:0 auto var(--s-3);line-height:1.15;font-weight:500;}
.problem .lead{text-align:center;color:var(--c-ink-soft);max-width:60ch;margin:0 auto var(--s-7);font-size:var(--t-lead);}
.pains{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-5);}
.pain{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--r-lg);padding:var(--s-6);transition:border-color var(--d-base) var(--ease),box-shadow var(--d-base) var(--ease);}
.pain:hover{border-color:var(--c-brass);box-shadow:var(--shadow-2);}
.pain .ic{font-family:var(--font-display);font-size:2.4rem;font-weight:400;color:var(--c-brass);line-height:1;}
.pain h4{font-size:var(--t-h4);color:var(--c-wine);margin:var(--s-3) 0 var(--s-2);font-weight:600;}
.pain p{font-size:var(--t-small);color:var(--c-ink-soft);}

/* solution / steps */
.solution{background:var(--c-surface-sunken);}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-6);}
.step{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--r-lg);padding:var(--s-6);}
.step .num{font-family:var(--font-display);font-size:2.6rem;font-weight:400;color:var(--c-brass);line-height:1;margin-bottom:var(--s-3);}
.step h3{font-size:var(--t-h4);color:var(--c-wine);margin-bottom:var(--s-2);}
.step p{font-size:var(--t-small);color:var(--c-ink-soft);}

/* service cards */
.cards{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-5);}
.card{border:1px solid var(--c-line);border-radius:var(--r-lg);padding:var(--s-7);background:var(--c-surface);transition:border-color var(--d-base) var(--ease),box-shadow var(--d-base) var(--ease),transform var(--d-base) var(--ease);}
.card:hover{border-color:var(--c-brass);box-shadow:var(--shadow-2);transform:translateY(-2px);}
.card .num{font-family:var(--font-display);font-size:1.1rem;color:var(--c-brass);font-weight:500;letter-spacing:.02em;}
.card h3{font-size:var(--t-h3);color:var(--c-wine);margin:var(--s-2) 0 var(--s-3);}
.card p{color:var(--c-ink-soft);font-size:var(--t-small);margin-bottom:var(--s-4);}
.card .li{font-size:.9rem;color:var(--c-ink);margin:var(--s-2) 0;padding-left:var(--s-4);position:relative;}
.card .li:before{content:"";position:absolute;left:0;top:.6em;width:6px;height:6px;background:var(--c-brass);border-radius:var(--r-sm);}
.card .more{color:var(--c-wine);font-weight:600;font-size:.95rem;margin-top:var(--s-4);display:inline-block;}
.card.feat{background:var(--c-wine);border-color:var(--c-wine);color:#FCF9F2;}
.card.feat h3{color:#FCF9F2;}
.card.feat .num{color:var(--c-brass-soft);}
.card.feat p{color:#E8D9C2;}
.card.feat .li{color:#F0E4D2;}
.card.feat .li:before{background:var(--c-brass-soft);}
.card.feat .more{color:var(--c-brass-soft);}
.card.feat:hover{border-color:var(--c-wine-deep);}

/* benefits — left-aligned, hairline + thin line-icon (no centered generic columns) */
.benefits{background:var(--c-bg);}
.bgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;}
.ben{text-align:left;padding:var(--s-5) var(--s-5) var(--s-5) 0;border-top:1px solid var(--c-line);}
.ben .ic{color:var(--c-oak);margin-bottom:var(--s-3);display:block;}
.ben .ic svg{width:30px;height:30px;display:block;}
.ben h4{font-size:var(--t-h4);color:var(--c-wine);margin:0 0 var(--s-2);font-weight:600;}
.ben p{font-size:.9rem;color:var(--c-ink-soft);}

/* about */
.about{background:var(--c-surface-sunken);}
.about .wrap{display:grid;grid-template-columns:1.15fr .85fr;gap:var(--s-8);align-items:center;}
.about h2{font-size:var(--t-h2);color:var(--c-wine);margin:var(--s-3) 0 var(--s-4);font-weight:500;}
.about p{font-size:var(--t-body);line-height:1.7;color:var(--c-ink-soft);margin-bottom:var(--s-4);}
.badges{display:flex;gap:var(--s-2);flex-wrap:wrap;margin-top:var(--s-5);}
.badge{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--r-lg);padding:8px 14px;font-size:.85rem;color:var(--c-wine);font-weight:600;}
.photo{height:460px;border-radius:var(--r-lg);background:var(--c-wine-deep);display:flex;align-items:center;justify-content:center;color:rgba(242,232,218,.32);font-size:.95rem;border:1px solid var(--c-brass);overflow:hidden;}
.photo picture{width:100%;height:100%;display:block;}
.photo img{width:100%;height:100%;object-fit:cover;object-position:center 32%;display:block;}

/* gallery */
.gallery{background:var(--c-bg);}
.ggrid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-4);}
.ggrid.two{grid-template-columns:repeat(2,1fr);max-width:860px;margin:0 auto;}
.gphoto{aspect-ratio:3/4;border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--c-line);background:var(--c-wine-deep);}
.gphoto picture{width:100%;height:100%;display:block;}
.gphoto img{width:100%;height:100%;object-fit:cover;display:block;}

/* faq */
.faq{background:var(--c-bg);}
.faq .wrap{max-width:var(--container-narrow);}
.qa{border-bottom:1px solid var(--c-line);padding:var(--s-5) 0;}
.qa h4{font-size:var(--t-h4);color:var(--c-wine);margin-bottom:var(--s-2);font-weight:600;}
.qa p{font-size:var(--t-body);color:var(--c-ink-soft);}

/* CTA band */
.band{background:var(--c-wine);color:var(--c-surface);text-align:center;padding:var(--s-9) 0;}
.band h2{font-size:var(--t-h2);margin-bottom:var(--s-4);color:#FCF9F2;font-weight:500;}
.band p{font-size:var(--t-lead);color:#E8D9C2;max-width:60ch;margin:0 auto var(--s-6);}
.band .micro a{color:var(--c-brass-soft);}

/* lead form */
.lead-form{max-width:520px;margin:0 auto;display:grid;gap:var(--s-3);text-align:left;}
.lead-form input,.lead-form textarea{width:100%;padding:14px 16px;border-radius:var(--r-md);border:1px solid var(--c-brass-soft);background:var(--c-surface);color:var(--c-ink);font:inherit;font-size:1rem;}
.lead-form input::placeholder,.lead-form textarea::placeholder{color:var(--c-ink-faint);}
.lead-form input:focus,.lead-form textarea:focus{outline:2px solid var(--c-focus);outline-offset:1px;border-color:var(--c-brass);}
.lead-form textarea{resize:vertical;min-height:96px;}
.lead-form .hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0;}
.lead-form button{margin-top:var(--s-1);cursor:pointer;}
.lead-form button:disabled{opacity:.6;cursor:default;}
.form-note{font-size:.9rem;min-height:18px;color:#E8D9C2;}
.form-note.ok{color:#CFE3B8;}
.form-note.err{color:#F0B8B8;}

/* legal note */
.legal-note{font-size:.85rem;color:var(--c-ink-faint);border-top:1px solid var(--c-line);padding-top:var(--s-4);margin-top:var(--s-5);}

/* footer */
footer{background:var(--c-wine-deep);color:#C3B4A3;padding:var(--s-8) 0 var(--s-6);}
footer .wrap{display:flex;justify-content:space-between;gap:var(--s-6);flex-wrap:wrap;}
footer .logo{color:#FCF9F2;font-size:1.4rem;margin-bottom:var(--s-2);font-family:var(--font-display);font-weight:600;}
footer .logo span{color:var(--c-brass);}
footer .dom{color:var(--c-brass-soft);font-weight:600;}
footer .col h4{color:#FCF9F2;font-size:var(--t-eyebrow);text-transform:uppercase;letter-spacing:.14em;margin-bottom:var(--s-3);font-weight:600;}
footer .col a,footer .col div{display:block;font-size:.95rem;color:#B9A693;margin-bottom:var(--s-2);transition:color var(--d-fast);}
footer .col a:hover{color:#FCF9F2;}
.copy{border-top:1px solid rgba(214,190,142,.18);margin-top:var(--s-6);padding-top:var(--s-4);font-size:.85rem;color:#9A8A7A;letter-spacing:.2px;}

@media(max-width:860px){
  .nav{flex-wrap:wrap;justify-content:center;gap:10px 20px;}
  .hero-grid{grid-template-columns:1fr;gap:var(--s-6);}
  .hero-media{min-height:360px;max-height:520px;}
  .hero h1{max-width:12ch;}
  .nav .logo{margin-right:auto;}
  .menu{order:3;width:100%;justify-content:center;gap:16px;flex-wrap:wrap;border-top:1px solid var(--c-line);padding-top:12px;}
  .pains,.steps,.cards,.bgrid,.about .wrap{grid-template-columns:1fr;}
  .ggrid{grid-template-columns:1fr 1fr;gap:var(--s-3);}
  .ben{border-top:1px solid var(--c-line);}
  .stats{gap:var(--s-5);}
  .stat .n{font-size:2.4rem;}
  section.blk{padding-block:var(--s-8);}
  .hero{padding:var(--s-8) 0;}
  .photo{height:300px;}
  .cta-row .btn{width:100%;text-align:center;}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;scroll-behavior:auto!important;}
}
