:root{
  /* — палитра: тёплая бумага, чернильный текст, один благородный акцент — */
  --ink:#1a1815; --ink-soft:#4a453e;
  --paper:#f6f3ee; --card:#fdfcfa;
  --line:#e6e1d6; --line-soft:#efebe1;
  --muted:#8c8477;
  --accent:#7c2d3b; --accent-soft:#f4e7e5;
  --success:#3d5a41; --success-soft:#eaf0e7;
  --danger:#8a3324;
  --radius:3px; --radius-lg:6px;
  --shadow-sm:0 1px 2px rgba(26,22,15,.05);
  --shadow-md:0 18px 40px -14px rgba(26,22,15,.16);
  --shadow-lg:0 30px 60px -18px rgba(26,22,15,.22);
  --font-display:"Fraunces","Iowan Old Style",Georgia,serif;
  --font-sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box;}
html,body{margin:0;}
body{font-family:var(--font-sans);background:var(--paper);color:var(--ink);line-height:1.5;font-size:15px;-webkit-font-smoothing:antialiased;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
.wrap{max-width:1240px;margin:0 auto;padding:0 24px;}
::selection{background:var(--accent);color:#fff;}

/* ---------- header ---------- */
.header{background:var(--paper);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20;}
.header .wrap{display:flex;align-items:center;gap:28px;height:84px;}
.brand{display:flex;align-items:baseline;gap:0;text-decoration:none;}
.brand-mark{display:none;}
.brand-name{font-family:var(--font-display);font-size:26px;letter-spacing:.01em;font-weight:500;}
.search{flex:1;display:flex;max-width:420px;}
.search input{
  flex:1;border:none;border-bottom:1px solid var(--line);background:transparent;padding:9px 2px;
  font-size:14px;font-family:var(--font-sans);color:var(--ink);transition:border-color .2s ease;
}
.search input::placeholder{color:var(--muted);}
.search input:focus{outline:none;border-bottom-color:var(--ink);}
.cart-link{
  margin-left:auto;display:flex;align-items:center;gap:9px;text-transform:uppercase;letter-spacing:.08em;
  font-size:12px;font-weight:600;color:var(--ink);border:1px solid var(--ink);border-radius:var(--radius);
  padding:11px 20px;transition:background .2s ease,color .2s ease;white-space:nowrap;
}
.cart-link:hover{background:var(--ink);color:var(--paper);}
.badge{background:var(--accent);color:#fff;border-radius:50%;min-width:19px;height:19px;padding:0 5px;font-size:10.5px;display:inline-flex;align-items:center;justify-content:center;font-weight:700;}

/* ---------- messages ---------- */
.messages{margin:18px 0 0;padding:0;list-style:none;}
.messages li{background:var(--success-soft);border:1px solid #d3e0cd;color:var(--success);border-radius:var(--radius);padding:12px 16px;font-size:13.5px;}

/* ---------- catalog ---------- */
.page-title{margin:40px 0 6px;font-family:var(--font-display);font-weight:500;font-size:34px;letter-spacing:.01em;}
.muted{color:var(--muted);font-size:12.5px;letter-spacing:.02em;}
.cats{display:flex;gap:10px;flex-wrap:wrap;margin:22px 0 34px;}
.chip{
  border:1px solid var(--line);background:transparent;border-radius:var(--radius);padding:9px 16px;
  font-size:11.5px;text-transform:uppercase;letter-spacing:.07em;text-decoration:none;white-space:nowrap;
  color:var(--ink-soft);transition:all .2s ease;
}
.chip:hover{border-color:var(--ink);color:var(--ink);}
.chip .n{color:var(--muted);margin-left:5px;}
.chip.active{background:var(--ink);color:var(--paper);border-color:var(--ink);}
.chip.active .n{color:#c9c3b8;}

.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:28px 24px;}
.card{background:transparent;border:none;overflow:visible;text-decoration:none;display:flex;flex-direction:column;}
.card-img{aspect-ratio:3/4;background:var(--line-soft);overflow:hidden;border-radius:var(--radius-lg);position:relative;}
.card-img img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.8,.2,1);}
.card:hover .card-img img{transform:scale(1.045);}
.card-img::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 1px rgba(26,22,15,.06);border-radius:var(--radius-lg);pointer-events:none;}
.card-body{padding:14px 2px 0;display:flex;flex-direction:column;gap:5px;}
.card-cat{font-size:10.5px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.09em;}
.card-title{font-size:14.5px;font-weight:450;color:var(--ink);line-height:1.35;}
.price{font-size:14.5px;font-weight:600;font-variant-numeric:tabular-nums;margin-top:2px;}
.empty{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);padding:56px;text-align:center;color:var(--muted);}
.pager{display:flex;gap:8px;justify-content:center;margin:48px 0;}
.pager a,.pager span{border:1px solid var(--line);background:var(--card);border-radius:var(--radius);padding:8px 14px;font-size:13px;text-decoration:none;color:var(--ink-soft);}
.pager .current{background:var(--ink);color:var(--paper);border-color:var(--ink);}

/* ---------- product ---------- */
.product{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:56px;margin:36px 0 64px;}
.product-photo{background:var(--line-soft);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);}
.product-photo img{width:100%;}
.product h1{font-family:var(--font-display);font-weight:500;font-size:28px;letter-spacing:.005em;margin:10px 0 16px;line-height:1.25;}
.product .muted{font-size:11.5px;}
.product .price{font-size:20px;margin-top:4px;}
.sizes{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0 26px;}
.size{position:relative;}
.size input{position:absolute;opacity:0;}
.size span{display:inline-flex;align-items:center;justify-content:center;min-width:50px;height:44px;text-align:center;border:1px solid var(--line);background:var(--card);border-radius:var(--radius);padding:0 12px;font-weight:500;font-size:13.5px;cursor:pointer;transition:all .15s ease;}
.size input:checked+span{background:var(--ink);color:var(--paper);border-color:var(--ink);}
.size span:hover{border-color:var(--ink);}
.size input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px;}

.btn{display:inline-block;border:1px solid var(--ink);border-radius:var(--radius);padding:15px 28px;font-size:12px;font-weight:600;cursor:pointer;text-decoration:none;text-align:center;font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.08em;transition:all .2s ease;}
.btn-primary{background:var(--ink);color:var(--paper);}
.btn-primary:hover{background:#000;}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line);}
.btn-ghost:hover{border-color:var(--ink);}
.note{background:var(--accent-soft);border-radius:var(--radius);padding:14px 16px;font-size:13px;color:#5c2430;margin-top:22px;font-family:var(--font-display);font-style:italic;font-size:14.5px;line-height:1.5;}

/* ---------- cart / checkout ---------- */
.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);padding:28px;box-shadow:var(--shadow-sm);}
.cart-row{display:grid;grid-template-columns:72px 1fr auto auto;gap:18px;align-items:center;padding:18px 0;border-bottom:1px solid var(--line-soft);}
.cart-row:last-of-type{border-bottom:none;}
.cart-row img{width:72px;height:90px;object-fit:cover;border-radius:var(--radius);}
.qty{width:56px;border:1px solid var(--line);border-radius:var(--radius);padding:7px;font-size:13.5px;font-family:var(--font-sans);}
.link-btn{background:none;border:none;color:var(--muted);cursor:pointer;font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;padding:0;font-family:var(--font-sans);}
.link-btn:hover{color:var(--danger);}
.total-row{display:flex;justify-content:space-between;align-items:baseline;font-size:20px;font-family:var(--font-display);margin:22px 0;padding-top:18px;border-top:1px solid var(--line);}
.two-col{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:28px;margin:32px 0 56px;}
.field{margin-bottom:18px;}
.field label{display:block;font-size:11.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px;}
.field input[type=text],.field input[type=email],.field input[type=tel]{width:100%;border:none;border-bottom:1px solid var(--line);background:transparent;padding:10px 2px;font-size:15px;font-family:var(--font-sans);color:var(--ink);}
.field input:focus{outline:none;border-bottom-color:var(--ink);}
.consent{display:flex;gap:11px;align-items:flex-start;font-size:13px;color:var(--ink-soft);margin-bottom:14px;line-height:1.5;}
.consent a{text-decoration:underline;text-decoration-color:var(--line);}
.consent input{margin-top:3px;accent-color:var(--ink);}
.errors{color:var(--danger);font-size:12.5px;margin-top:-8px;margin-bottom:10px;}
.done{text-align:center;padding:64px 20px;}
.done .check{width:60px;height:60px;border-radius:50%;background:var(--success-soft);color:var(--success);font-size:26px;display:flex;align-items:center;justify-content:center;margin:0 auto 20px;}
.done .num{font-family:var(--font-display);font-size:26px;margin:10px 0;}

/* ---------- legal ---------- */
.doc{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);padding:44px 48px;margin:32px 0 56px;font-size:14.5px;color:var(--ink-soft);}
.doc h1{font-family:var(--font-display);font-size:26px;color:var(--ink);}
.doc h2{font-family:var(--font-display);font-size:17px;margin-top:32px;color:var(--ink);font-weight:500;}

/* ---------- footer + cookie ---------- */
.footer{border-top:1px solid var(--line);margin-top:64px;padding:32px 0;font-size:12px;color:var(--muted);letter-spacing:.01em;}
.footer .wrap{display:flex;gap:20px;flex-wrap:wrap;justify-content:space-between;}
.footer a{text-decoration:underline;text-decoration-color:var(--line);}
.footer a:hover{color:var(--ink);}
.cookie{position:fixed;left:24px;right:24px;bottom:24px;max-width:640px;margin:0 auto;background:var(--ink);color:var(--paper);border-radius:var(--radius-lg);padding:18px 22px;display:none;gap:18px;align-items:center;font-size:13px;z-index:50;box-shadow:var(--shadow-lg);}
.cookie a{color:#d9b8bd;text-decoration:underline;}
.cookie .btn-primary{background:var(--paper);color:var(--ink);border-color:var(--paper);white-space:nowrap;}
.cookie .btn-primary:hover{background:#fff;}
.cookie.show{display:flex;}

.card.is-unavailable .card-img img{opacity:.45;filter:grayscale(.6);}
.card.is-unavailable .card-title,.card.is-unavailable .price{color:var(--muted);}
.stock-badge{position:absolute;left:10px;top:10px;background:var(--paper);color:var(--ink-soft);font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;padding:5px 9px;border-radius:var(--radius);}
.size input:disabled+span{color:var(--muted);background:var(--line-soft);text-decoration:line-through;cursor:not-allowed;border-color:var(--line-soft);}
.btn[disabled]{opacity:.5;cursor:not-allowed;}
.gallery{display:flex;flex-direction:column;gap:12px;}
.thumbs{display:flex;gap:8px;flex-wrap:wrap;}
.thumb{width:64px;height:80px;padding:0;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--line-soft);cursor:pointer;}
.thumb img{width:100%;height:100%;object-fit:cover;}
.thumb.active{border-color:var(--ink);}
.description{margin-top:22px;font-size:14px;color:var(--ink-soft);line-height:1.6;}

@media (max-width:760px){
  .header .wrap{height:auto;flex-wrap:wrap;gap:14px;padding-top:16px;padding-bottom:16px;}
  .search{order:3;flex-basis:100%;max-width:none;}
  .product,.two-col{grid-template-columns:1fr;gap:32px;}
  .grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;}
  .cart-row{grid-template-columns:60px 1fr;row-gap:8px;}
  .doc{padding:26px 22px;}
  .page-title{font-size:26px;}
}
