:root { --ink:#171713; --muted:#67665f; --paper:#f2f0e9; --card:#fbfaf6; --forest:#163d31; --moss:#8aa27c; --clay:#c56446; --line:#d2cfc4; --focus:#0b65d8; }
* { box-sizing:border-box; }
[hidden] { display:none !important; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font:16px/1.55 Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
img { display:block; max-width:100%; height:auto; }
a { color:inherit; text-underline-offset:3px; }
button, input, select { font:inherit; }
button, .button { display:inline-flex; align-items:center; justify-content:center; min-height:46px; border:1px solid var(--forest); border-radius:2px; padding:10px 18px; background:var(--forest); color:white; font-weight:750; text-decoration:none; cursor:pointer; }
button:hover, .button:hover { background:#0e2d24; }
button.secondary, .button.secondary { background:transparent; color:var(--forest); }
button:disabled { cursor:not-allowed; opacity:.55; }
:focus-visible { outline:3px solid var(--focus); outline-offset:3px; }
.skip-link { position:fixed; z-index:20; top:10px; left:10px; padding:8px 12px; background:white; transform:translateY(-160%); }
.skip-link:focus { transform:none; }
.visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.site-header { position:relative; z-index:5; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:28px; min-height:78px; padding:14px max(24px, calc((100vw - 1240px) / 2)); border-bottom:1px solid var(--line); background:rgba(251,250,246,.96); }
.brand { display:flex; gap:10px; align-items:center; font-family:Georgia, serif; font-size:20px; font-weight:700; text-decoration:none; white-space:nowrap; }
.brand span { display:grid; place-items:center; width:31px; height:31px; border-radius:50%; background:var(--forest); color:#f2eacb; font:700 18px Georgia,serif; }
.site-header nav { display:flex; justify-content:center; gap:24px; font-size:14px; }
.site-header nav a { text-decoration:none; }
.basket-link span { display:inline-grid; place-items:center; min-width:21px; height:21px; margin-left:3px; border-radius:50%; background:var(--forest); color:white; font-size:11px; }
.header-search { display:flex; width:250px; }
.header-search input { min-width:0; border-right:0; }
.header-search button { min-height:42px; padding-inline:13px; }
.search-popover { position:absolute; top:68px; right:max(24px, calc((100vw - 1240px) / 2)); width:min(420px, calc(100vw - 48px)); padding:14px; border:1px solid var(--line); background:var(--card); box-shadow:0 16px 50px #17251f26; }
.search-results { display:grid; }
.search-results a { padding:10px; border-bottom:1px solid var(--line); text-decoration:none; }
.tool-feedback { position:absolute; left:50%; top:100%; width:min(680px,90vw); transform:translateX(-50%); padding:0 12px; background:var(--forest); color:white; text-align:center; font-size:13px; }
.tool-feedback:empty { display:none; }
main { max-width:1240px; min-height:65vh; margin:auto; padding:64px 24px 96px; }
footer { display:flex; justify-content:space-between; gap:40px; padding:46px max(24px, calc((100vw - 1240px) / 2)); background:var(--forest); color:#f7f3e9; }
footer p { color:#c8d2c9; }
footer nav { display:flex; gap:24px; align-items:flex-start; }
h1, h2 { font-family:Georgia, "Times New Roman", serif; font-weight:500; }
h1 { max-width:980px; margin:8px 0 22px; font-size:clamp(44px,7vw,88px); line-height:.94; letter-spacing:-.045em; }
h2 { margin:8px 0 14px; font-size:clamp(25px,3vw,39px); line-height:1.06; letter-spacing:-.025em; }
.eyebrow { margin:0 0 8px; color:var(--forest); font-size:11px; font-weight:850; letter-spacing:.16em; text-transform:uppercase; }
.lede { max-width:680px; color:#3f403b; font-size:clamp(18px,2vw,23px); line-height:1.45; }
.muted { color:var(--muted); font-size:14px; }
.price { margin:18px 0 4px; font:500 clamp(32px,5vw,54px)/1 Georgia,serif; }
.available { color:#2e6547; font-weight:700; }
.unavailable { color:#9b3322; font-weight:700; }
.home-hero { display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; min-height:600px; }
.home-hero img { width:100%; border-radius:48% 48% 4px 4px; background:#ddd5c5; }
.editorial { display:grid; grid-template-columns:1fr 1.2fr; gap:32px; align-items:start; margin:100px 0 34px; padding-top:34px; border-top:1px solid var(--line); }
.editorial .eyebrow { grid-row:span 2; }
.editorial h2, .editorial p { margin-top:0; }
.page-intro { margin-bottom:48px; }
.page-intro.compact { max-width:760px; }
.filters { display:grid; grid-template-columns:1.5fr repeat(3,1fr) auto auto; gap:12px; align-items:end; margin-bottom:18px; padding:20px; border:1px solid var(--line); background:var(--card); }
.filters label { display:grid; gap:6px; color:var(--muted); font-size:13px; font-weight:700; }
.filters .check { display:flex; align-items:center; min-height:46px; white-space:nowrap; }
.filters .check input { width:auto; }
input, select { width:100%; min-height:42px; padding:9px 11px; border:1px solid #8f8e87; border-radius:0; background:white; color:var(--ink); }
.product-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:38px 18px; }
.catalogue-card { display:flex; flex-direction:column; min-width:0; }
.catalogue-card > a { text-decoration:none; }
.catalogue-card img { width:100%; aspect-ratio:4/3; margin-bottom:18px; object-fit:cover; background:#ddd8ca; transition:transform .25s ease; }
.catalogue-card:hover img { transform:translateY(-4px); }
.catalogue-card h2 { min-height:2.1em; margin:5px 0 8px; font-size:25px; }
.catalogue-card > p { flex:1; color:var(--muted); font-size:14px; }
.card-foot { display:flex; justify-content:space-between; gap:12px; padding-top:14px; border-top:1px solid var(--line); }
.card-foot strong { font-size:20px; }
.card-foot span { font-size:12px; }
.breadcrumbs { display:flex; gap:9px; margin-bottom:32px; color:var(--muted); font-size:13px; text-transform:capitalize; }
.product-layout { display:grid; grid-template-columns:1.25fr .75fr; gap:70px; align-items:center; }
.product-gallery img { width:100%; background:#ded8ca; }
.product-copy h1 { font-size:clamp(44px,6vw,76px); }
.product-copy button { margin-top:18px; min-width:190px; }
.product-lower { display:grid; grid-template-columns:1.25fr .75fr; gap:70px; margin-top:80px; padding-top:48px; border-top:1px solid var(--line); align-items:start; }
.specs { display:grid; grid-template-columns:1fr 2fr; max-width:580px; }
.specs dt, .specs dd { margin:0; padding:13px 0; border-bottom:1px solid var(--line); }
.specs dt { color:var(--muted); }
.specs dd { font-weight:700; }
.region, .trace, .narrow, .basket-page { border:1px solid var(--line); background:var(--card); padding:28px; }
.offer-card { border-top:7px solid var(--moss); }
.receipt-card { margin-top:16px; border-top:7px solid var(--clay); }
.basket-card { margin-top:16px; }
.offer-lines { display:grid; grid-template-columns:1fr auto; gap:7px 12px; margin:22px 0; }
.offer-lines dt, .offer-lines dd { margin:0; }
.offer-lines dd { font-variant-numeric:tabular-nums; text-align:right; }
.offer-lines dt:last-of-type, .offer-lines dd:last-of-type { padding-top:11px; border-top:1px solid var(--line); font-weight:800; }
.trace { margin-top:38px; }
.trace h2 { font:700 15px/1 system-ui,sans-serif; }
.trace ol { color:var(--muted); font:12px/1.7 ui-monospace,monospace; }
.narrow { max-width:720px; margin:25px auto; }
.narrow h1 { font-size:clamp(40px,6vw,68px); }
.stack { display:grid; gap:17px; margin:28px 0; }
.stack label { display:grid; gap:7px; font-weight:700; }
.membership { margin:28px 0; padding:25px; background:#e4eadf; border-left:6px solid var(--forest); }
.account-intro { max-width:800px; margin-bottom:70px; }
.member-offers { margin-bottom:34px; }
.member-offer-row { display:grid; grid-template-columns:160px minmax(190px,.8fr) minmax(270px,1fr) minmax(190px,auto); gap:24px; align-items:center; padding:28px 0; border-top:1px solid var(--line); }
.member-offer-row:last-child { border-bottom:1px solid var(--line); }
.member-offer-row img { width:160px; aspect-ratio:4/3; object-fit:cover; background:#ddd8ca; }
.member-offer-row h2 { margin:4px 0 8px; font-size:27px; }
.member-offer-row p { margin:6px 0; }
.member-offer-benefit .offer-lines { margin:12px 0; }
.member-offer-benefit time { color:var(--muted); font-size:14px; }
.account-basket { margin-top:34px; }
.policy { min-height:440px; }
.boundary { border-top:8px solid var(--clay); }
.notice, .error { padding:14px; background:#fff0c6; border-left:4px solid #a56e00; }
.link-button { min-height:auto; border:0; background:transparent; color:var(--ink); padding:10px 0; text-decoration:underline; }
.basket-lines { display:grid; gap:0; }
.basket-line { display:flex; justify-content:space-between; align-items:center; gap:30px; padding:24px 0; border-bottom:1px solid var(--line); }
.basket-line h2 { margin:4px 0; font-size:26px; }
.basket-line-actions { display:grid; justify-items:end; gap:12px; }
.basket-line-actions strong { font:500 28px Georgia,serif; }
.basket-total { display:flex; justify-content:space-between; padding:24px 0; font-size:22px; }
.field-message { min-height:1.5em; color:var(--muted); }
.recommendations { margin-bottom:32px; border-top:7px solid var(--moss); }
.recommendations[hidden] { display:none; }
.comparison { width:100%; border-collapse:collapse; }
.comparison th, .comparison td { padding:10px 8px; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; }
.comparison th:first-child { padding-left:0; }
.admin-heading { display:flex; justify-content:space-between; align-items:start; gap:24px; margin-bottom:42px; }
.admin-layout { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr); gap:42px; align-items:start; }
.admin-layout fieldset { margin:0; padding:16px; border:1px solid var(--line); }
.choice-grid, .form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 18px; }
.choice-grid { max-height:260px; overflow:auto; }
.choice-grid .check, [data-audience-members] .check { display:flex; align-items:center; gap:8px; font-weight:500; }
.choice-grid input, [data-audience-members] input { width:auto; min-height:auto; }
.admin-offer { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:20px; padding:22px 0; border-top:1px solid var(--line); }
.admin-offer h3 { margin:4px 0; font:500 25px/1.15 Georgia,serif; }
.admin-offer p { margin:5px 0; }
.admin-actions { display:flex; flex-wrap:wrap; align-items:center; gap:9px; }
.admin-actions button { white-space:nowrap; }
.admin-message { min-height:2em; color:var(--forest); font-weight:700; }
.rule-row { padding:20px 0; border-top:1px solid var(--line); }
@media (max-width:1000px) {
  .site-header { grid-template-columns:auto 1fr; }
  .site-header nav { justify-content:flex-end; }
  .header-search { grid-column:1/-1; width:100%; }
  .filters { grid-template-columns:repeat(2,1fr); }
  .product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .product-layout, .product-lower { gap:36px; }
  .member-offer-row { grid-template-columns:140px 1fr; align-items:start; }
  .member-offer-row img { width:140px; grid-row:1/4; }
  .member-offer-identity, .member-offer-benefit, .member-offer-row > button { grid-column:2; }
  .member-offer-row > button { justify-self:start; }
  .admin-layout { grid-template-columns:1fr; }
}
@media (max-width:760px) {
  .site-header { display:flex; flex-wrap:wrap; gap:14px; padding:14px 18px; }
  .site-header nav { order:3; width:100%; justify-content:flex-start; gap:16px; overflow-x:auto; padding-top:10px; border-top:1px solid var(--line); white-space:nowrap; }
  .site-header nav a:nth-child(2) { display:none; }
  .header-search { flex:1; min-width:190px; }
  main { padding:38px 18px 70px; }
  footer { flex-direction:column; padding:38px 18px; }
  footer nav { flex-direction:column; gap:10px; }
  h1 { font-size:clamp(42px,14vw,64px); }
  .home-hero, .editorial, .product-layout, .product-lower { grid-template-columns:1fr; gap:30px; }
  .home-hero { min-height:0; }
  .home-hero img { order:-1; }
  .editorial { margin-top:65px; }
  .filters, .product-grid { grid-template-columns:1fr; }
  .catalogue-card { display:grid; grid-template-columns:120px 1fr; gap:0 15px; }
  .catalogue-card > a { display:contents; }
  .catalogue-card img { grid-row:1/5; }
  .catalogue-card .eyebrow, .catalogue-card h2, .catalogue-card > p, .catalogue-card .card-foot { grid-column:2; }
  .catalogue-card h2 { min-height:auto; font-size:22px; }
  .product-lower { margin-top:45px; }
  .basket-line { align-items:flex-start; }
  .account-intro { margin-bottom:48px; }
  .member-offer-row { grid-template-columns:96px 1fr; gap:18px 14px; }
  .member-offer-row img { width:96px; grid-row:auto; }
  .member-offer-identity { grid-column:2; }
  .member-offer-benefit, .member-offer-row > button { grid-column:1/-1; }
  .member-offer-row > button { width:100%; min-height:44px; }
  .admin-heading { flex-direction:column; }
  .admin-offer { grid-template-columns:1fr; }
  .choice-grid, .form-grid { grid-template-columns:1fr; }
}
