/* Pokrývačství Liberec — hlavní stylesheet. Self-hosted fonts, žádné externí CDN. */

@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('../fonts/archivo-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215;
}
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('../fonts/archivo-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400 500;
  font-display: swap;
  src: url('../fonts/jbmono-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215;
}
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400 500;
  font-display: swap;
  src: url('../fonts/jbmono-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

:root{
  --bg:#f5f2ec;
  --text:#1c1e21;
  --accent:#b4502c;
  --accent-dark:#8f3d1f;
  --accent-light:#d0643b;
  --accent-soft:#e0764d;
  --dark:#22262b;
  --dark-footer:#1a1d21;
  --border:#ddd6cb;
  --border2:#cfc7ba;
  --muted:#5b5f63;
  --muted2:#4a4e52;
  --muted3:#3f4347;
  --muted-ink:#2f3337;
  --on-dark-muted:#b9b3a9;
  --on-dark-muted2:#9a948a;
  --panel:#fbfaf7;
  --badge-bg:#f1e3da;
  --badge-text:#7a3218;
  --footer-muted:#8d877d;
  --footer-link:#c9c3b8;
  --font-sans:'Archivo',Arial,'Helvetica Neue',sans-serif;
  --font-mono:'JetBrains Mono','Courier New',monospace;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased}
body{min-height:100vh;display:flex;flex-direction:column}
img{max-width:100%;display:block}
a{color:var(--accent);text-decoration:none}
a:hover{color:var(--accent-dark)}
input,select,textarea,button{font-family:inherit}
h1,h2,h3,p{margin:0}
ul{margin:0;padding:0}
.container{max-width:1240px;margin:0 auto;padding:0 24px}
.mono{font-family:var(--font-mono)}
.eyebrow{font-family:var(--font-mono);font-size:12px;letter-spacing:0.1em;text-transform:uppercase;color:var(--accent);margin-bottom:14px}
.eyebrow.on-dark{color:var(--accent-soft)}
main{flex:1}

/* ---------- top bars ---------- */
.emergency-bar{background:var(--dark);color:#efeae2;font-size:13px}
.emergency-bar .row{max-width:1240px;margin:0 auto;padding:9px 24px;display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between;align-items:center}
.emergency-bar .dot{width:8px;height:8px;border-radius:50%;background:var(--accent-soft);display:inline-block;margin-right:10px}
.emergency-bar a{color:#fff;font-weight:600}
.emergency-bar .meta{display:flex;gap:20px;flex-wrap:wrap;color:var(--on-dark-muted)}
.emergency-bar .meta a{color:var(--on-dark-muted)}

/* ---------- header ---------- */
.site-header{position:sticky;top:0;z-index:40;background:rgba(245,242,236,0.96);backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}
.site-header .row{max-width:1240px;margin:0 auto;padding:14px 24px;display:flex;flex-wrap:wrap;gap:14px 28px;align-items:center;justify-content:space-between}
.brand{display:flex;align-items:center;gap:12px;color:var(--text)}
.brand-name{display:flex;flex-direction:column;line-height:1.05}
.brand-name strong{font-weight:800;font-size:19px;letter-spacing:-0.01em}
.brand-name span{font-family:var(--font-mono);font-size:10.5px;color:var(--muted);letter-spacing:0.08em;text-transform:uppercase;margin-top:3px}
.main-nav{display:flex;flex-wrap:wrap;gap:4px 22px;align-items:center;font-size:15px;font-weight:500}
.main-nav a{color:var(--text);padding:6px 0;border-bottom:2px solid transparent}
.main-nav a:hover{color:var(--accent)}
.main-nav a.active{border-bottom-color:var(--accent)}
.header-actions{display:flex;gap:10px;align-items:center}
.cart-btn{display:flex;align-items:center;gap:8px;background:transparent;border:1px solid var(--text);padding:10px 14px;font-size:14px;font-weight:600;cursor:pointer;color:var(--text)}
.cart-btn:hover{background:var(--text);color:var(--bg)}
.cart-count{background:var(--accent);color:#fff;min-width:22px;height:22px;border-radius:11px;display:inline-flex;align-items:center;justify-content:center;font-size:12px;padding:0 6px}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:16px 24px;font-weight:600;font-size:16px;border:0;cursor:pointer;line-height:1.2}
.btn-primary{background:var(--accent);color:#fff}
.btn-primary:hover{background:var(--accent-dark);color:#fff}
.btn-outline{border:1px solid var(--text);color:var(--text);background:transparent}
.btn-outline:hover{background:var(--text);color:var(--bg)}
.btn-outline-light{border:1px solid #efeae2;color:#efeae2;background:transparent}
.btn-outline-light:hover{background:#efeae2;color:var(--dark)}
.btn-dark{background:var(--text);color:#fff}
.btn-dark:hover{background:var(--accent)}
.btn-white{background:#fff;color:var(--text)}
.btn-white:hover{background:var(--dark);color:#fff}
.btn-sm{padding:10px 16px;font-size:14px;font-weight:600}
.btn-block{width:100%}

/* ---------- hero ---------- */
.hero{padding:56px 24px 40px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,460px),1fr));gap:48px;align-items:center}
.hero h1{font-size:clamp(40px,5.6vw,72px);line-height:0.98;letter-spacing:-0.03em;font-weight:800;margin:0 0 24px}
.hero p.lead{font-size:19px;line-height:1.55;color:var(--muted3);max-width:540px;margin:0 0 32px}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:40px}
.hero-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;border-top:1px solid var(--border);padding-top:22px;max-width:540px}
.hero-stats .num{font-size:30px;font-weight:800;letter-spacing:-0.02em}
.hero-stats .label{font-size:13px;color:var(--muted);margin-top:4px}
.hero-media{position:relative}
.photo-box{aspect-ratio:4/5;background:#e5ded3;overflow:hidden;position:relative}
.photo-box img{width:100%;height:100%;object-fit:cover}
.hero-badge{position:absolute;left:-18px;bottom:36px;background:var(--dark);color:#efeae2;padding:18px 20px;max-width:250px}
.hero-badge .label{font-family:var(--font-mono);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--accent-soft);margin-bottom:6px}
.hero-badge .text{font-size:15px;line-height:1.4}

/* ---------- trust bar ---------- */
.trust-bar{border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--panel)}
.trust-bar .row{padding:18px 24px;display:flex;flex-wrap:wrap;gap:12px 36px;justify-content:space-between;font-size:14px;color:var(--muted3)}

/* ---------- generic sections ---------- */
.section{padding:88px 24px 40px}
.section.tight{padding:60px 24px}
.section.tight-top{padding:60px 24px 40px}
.section-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:40px}
.section-head h2{font-size:clamp(30px,3.6vw,46px);letter-spacing:-0.025em;line-height:1.05;margin:0;max-width:640px}
.section-head a{font-weight:600;color:var(--text);border-bottom:1px solid var(--text);padding-bottom:3px}
.section-head a:hover{color:var(--accent);border-bottom-color:var(--accent)}
.page-head{max-width:1240px;margin:0 auto;padding:64px 24px 24px}
.page-head h1{font-size:clamp(38px,5vw,64px);letter-spacing:-0.03em;line-height:1;margin:0 0 20px;max-width:900px}
.page-head p{font-size:19px;line-height:1.55;color:var(--muted3);max-width:760px;margin:0}

/* ---------- services grid (home) ---------- */
.services-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:1px;background:var(--border);border:1px solid var(--border)}
.service-tile{background:var(--bg);padding:30px 28px;color:var(--text);display:flex;flex-direction:column;gap:12px;min-height:240px}
.service-tile:hover{background:var(--panel)}
.service-tile .num{font-family:var(--font-mono);font-size:12px;color:var(--accent)}
.service-tile .title{font-size:22px;font-weight:700;letter-spacing:-0.01em}
.service-tile .desc{font-size:15px;line-height:1.55;color:var(--muted2);flex:1}
.service-tile .from{font-size:14px;font-weight:600}

/* ---------- why us ---------- */
.why-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:48px;align-items:start}
.why-list{display:flex;flex-direction:column;gap:24px}
.why-item{display:grid;grid-template-columns:40px 1fr;gap:16px}
.why-item .letter{font-weight:800;font-size:20px;color:var(--accent)}
.why-item .title{font-weight:700;font-size:18px;margin-bottom:6px}
.why-item .text{color:var(--muted2);line-height:1.55}

/* ---------- dark process section ---------- */
.dark-section{background:var(--dark);color:#efeae2}
.dark-section .section-inner{max-width:1240px;margin:0 auto;padding:88px 24px}
.dark-section h2{font-size:clamp(30px,3.6vw,46px);letter-spacing:-0.025em;line-height:1.05;margin:0 0 48px;max-width:700px}
.process-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:32px}
.process-step{border-top:1px solid #4a4f56;padding-top:20px}
.process-step .step-num{font-size:44px;font-weight:800;color:var(--accent-soft);margin-bottom:12px}
.process-step .step-title{font-weight:700;font-size:19px;margin-bottom:8px}
.process-step .step-text{color:var(--on-dark-muted);line-height:1.55;font-size:15px}

/* ---------- project cards ---------- */
.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:24px}
.projects-grid.realizace{gap:32px 24px}
.project-card .photo-box{aspect-ratio:4/3;margin-bottom:14px}
.project-card .cat{font-family:var(--font-mono);font-size:11px;color:var(--accent);text-transform:uppercase;letter-spacing:0.08em;margin-bottom:6px}
.project-card .title{font-weight:700;font-size:19px;margin-bottom:4px}
.project-card h3.title{font-size:20px;margin:0 0 6px}
.project-card .meta{color:var(--muted);font-size:14px}
.project-card .desc{margin:8px 0 0;color:var(--muted3);line-height:1.55;font-size:15px}
.filters{display:flex;flex-wrap:wrap;gap:8px}
.filter-btn{padding:10px 16px;border:1px solid var(--text);background:transparent;color:var(--text);font-weight:600;font-size:14px;cursor:pointer}
.filter-btn.active{background:var(--text);color:#fff}

/* ---------- calculator CTA band ---------- */
.calc-cta{padding:60px 24px}
.calc-cta .panel{background:var(--accent);color:#fff;padding:clamp(28px,5vw,56px);display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:32px;align-items:center}
.calc-cta h2{font-size:clamp(28px,3.4vw,42px);letter-spacing:-0.02em;line-height:1.05;margin:0 0 14px}
.calc-cta p{font-size:17px;line-height:1.55;margin:0;color:#fff;max-width:520px}
.calc-cta .eyebrow{color:#ffe3d6;margin-bottom:14px}

/* ---------- shop teaser & product cards ---------- */
.products-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));gap:20px}
.products-grid.shop{grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr))}
.product-card{background:var(--panel);border:1px solid var(--border);display:flex;flex-direction:column}
.product-card .photo-box{aspect-ratio:1/1;position:relative}
.product-card .stock-badge{position:absolute;top:12px;left:12px;background:var(--dark);color:#efeae2;padding:4px 8px;font-family:var(--font-mono);font-size:11px}
.product-body{padding:16px;display:flex;flex-direction:column;gap:8px;flex:1}
.product-cat{font-family:var(--font-mono);font-size:11px;color:var(--accent);text-transform:uppercase;letter-spacing:0.06em}
.product-name{font-weight:600;font-size:16px;line-height:1.3;flex:1}
.product-desc{font-size:14px;color:var(--muted2);line-height:1.45;flex:1}
.product-row{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:6px}
.product-price{font-weight:800;font-size:19px}
.product-unit{font-size:12px;color:var(--muted)}
.add-btn{background:var(--text);color:#fff;border:0;padding:11px 14px;font-weight:600;font-size:13px;cursor:pointer}
.add-btn:hover{background:var(--accent)}

/* ---------- perks strip (eshop) ---------- */
.perks-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:1px;background:var(--border);border:1px solid var(--border)}
.perk{background:var(--bg);padding:24px}
.perk .title{font-weight:700;margin-bottom:6px}
.perk .text{color:var(--muted2);font-size:15px;line-height:1.5}

/* ---------- reviews ---------- */
.reviews-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:24px}
.review-card{margin:0;background:var(--panel);border:1px solid var(--border);padding:28px;display:flex;flex-direction:column;gap:18px}
.review-card .stars{color:var(--accent);letter-spacing:3px}
.review-card blockquote{margin:0;font-size:17px;line-height:1.55;flex:1}
.review-card figcaption{font-size:14px}
.review-card figcaption span{color:var(--muted)}

/* ---------- coverage ---------- */
.coverage-grid{padding:60px 24px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:48px}
.town-tags{display:flex;flex-wrap:wrap;gap:8px}
.town-tag{border:1px solid var(--border2);padding:7px 12px;font-size:14px;background:var(--panel)}
.map-box{min-height:320px;position:relative;overflow:hidden}
.map-box img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.map-box .map-note{position:relative;z-index:1;align-self:flex-end;margin-top:auto;background:rgba(34,38,43,0.82);color:#efeae2;padding:10px 14px;font-family:var(--font-mono);font-size:12px;display:inline-block}
.map-box{display:flex;align-items:flex-end;padding:16px}

/* ---------- bottom CTA banner ---------- */
.cta-banner-wrap{padding:60px 24px 100px}
.cta-banner{background:var(--dark);color:#efeae2;padding:clamp(28px,5vw,64px);display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));gap:40px;align-items:center}
.cta-banner h2{font-size:clamp(30px,3.6vw,46px);letter-spacing:-0.025em;line-height:1.05;margin:0 0 16px}
.cta-banner p{color:var(--on-dark-muted);font-size:17px;line-height:1.55;margin:0}
.cta-banner .actions{display:flex;flex-wrap:wrap;gap:12px}
.cta-banner-wrap.small .cta-banner{margin-top:40px;padding:28px;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;align-items:center}
.cta-banner-wrap.small .cta-banner .title{font-size:18px;font-weight:600}

/* ---------- services page (detail list) ---------- */
.service-article{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:40px;padding:48px 0;border-top:1px solid var(--border)}
.service-article h2{font-size:clamp(26px,3vw,36px);letter-spacing:-0.02em;margin:0 0 16px}
.service-article p{font-size:16.5px;line-height:1.65;color:var(--muted3);margin:0 0 14px}
.service-article ul{margin:18px 0 22px;list-style:none;display:grid;gap:8px}
.service-article li{display:flex;gap:10px;font-size:15.5px}
.service-article li .dash{color:var(--accent);font-weight:700}
.service-foot{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.badge{background:var(--badge-bg);color:var(--badge-text);padding:8px 12px;font-weight:600;font-size:14px}
.service-article .photo-box{aspect-ratio:4/3}

/* ---------- pricing / calculator ---------- */
.calc-panel{background:var(--panel);border:1px solid var(--border);display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,440px),1fr))}
.calc-inputs{padding:clamp(24px,4vw,44px);display:flex;flex-direction:column;gap:28px}
.calc-row-label{display:flex;justify-content:space-between;font-weight:600;margin-bottom:10px}
.calc-hint{font-size:13px;color:var(--muted);margin-top:6px}
input[type=range]{width:100%;accent-color:var(--accent)}
.mat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.mat-btn{text-align:left;padding:12px;border:1px solid var(--border2);background:#fff;cursor:pointer;color:var(--text)}
.mat-btn.active{border-color:var(--accent);background:var(--badge-bg)}
.mat-btn .name{font-weight:600;font-size:14px}
.mat-btn .price{font-size:12px;color:var(--muted);margin-top:3px}
.check-row{display:flex;gap:10px;align-items:center;cursor:pointer}
.check-row input{width:18px;height:18px;accent-color:var(--accent)}
.calc-result{background:var(--dark);color:#efeae2;padding:clamp(24px,4vw,44px);display:flex;flex-direction:column;gap:18px}
.calc-result .range{font-size:clamp(30px,4vw,46px);font-weight:800;letter-spacing:-0.02em;line-height:1.05}
.calc-result .note1{color:var(--on-dark-muted)}
.calc-rows{display:flex;flex-direction:column;gap:8px;border-top:1px solid #4a4f56;padding-top:16px;font-size:15px}
.calc-rows .r{display:flex;justify-content:space-between;gap:12px}
.calc-rows .r span:first-child{color:var(--on-dark-muted)}
.calc-disclaimer{font-size:13px;color:var(--on-dark-muted2);line-height:1.5;margin-top:auto}
.price-list{border-top:2px solid var(--text)}
.price-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;padding:14px 0;border-bottom:1px solid var(--border);font-size:16px}
.price-row .name{font-weight:600}
.price-row .note{font-size:13px;color:var(--muted);margin-top:2px}
.price-row .price{font-weight:700;white-space:nowrap}
.price-footnote{font-size:14px;color:var(--muted);margin-top:18px;line-height:1.55}

/* ---------- forms ---------- */
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}
.field{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:500}
.field.full{grid-column:1/-1}
.field input,.field select,.field textarea{padding:12px 14px;border:1px solid var(--border2);background:#fff;font-size:15px}
.field textarea{resize:vertical}
.consent-row{display:flex;gap:10px;align-items:flex-start;font-size:14px;line-height:1.45}
.consent-row input{width:18px;height:18px;margin-top:2px;accent-color:var(--accent);flex-shrink:0}
.contact-form{background:var(--panel);border:1px solid var(--border);padding:clamp(22px,4vw,36px);display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}
.contact-form .heading{grid-column:1/-1;font-weight:700;font-size:22px;margin-bottom:4px}
.success-box{background:var(--dark);color:#efeae2;padding:32px}
.success-box .title{font-size:24px;font-weight:700;margin-bottom:8px}
.success-box .text{color:var(--on-dark-muted);line-height:1.55}

/* ---------- contact page layout ---------- */
.contact-grid{padding:64px 24px 96px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:56px;align-items:start}
.contact-info{display:grid;gap:22px;font-size:16px}
.contact-info .label{font-family:var(--font-mono);font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:0.08em;margin-bottom:4px}
.contact-info .big-phone{font-size:22px;font-weight:700;color:var(--text)}
.contact-info .big-phone.accent{color:var(--accent)}
.contact-info .mail{font-size:18px;font-weight:600}
.legal-box{background:var(--panel);border:1px solid var(--border);padding:20px;font-size:14.5px;line-height:1.6;color:var(--muted3)}
.contact-col{display:flex;flex-direction:column;gap:24px}

/* ---------- checkout ---------- */
.checkout-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,400px),1fr));gap:40px;align-items:start}
.checkout-col{display:flex;flex-direction:column;gap:32px}
.checkout-step-title{font-weight:700;font-size:20px;margin-bottom:14px}
.option-list{display:flex;flex-direction:column;gap:8px}
.option-btn{display:flex;justify-content:space-between;gap:12px;text-align:left;padding:14px 16px;border:1px solid var(--border2);background:#fff;cursor:pointer;font-size:15px;color:var(--text);width:100%}
.option-btn .lbl{display:flex;flex-direction:column;gap:2px}
.option-btn .note{font-size:13px;color:var(--muted)}
.option-btn .price{font-weight:700}
.option-btn.active{border-color:var(--accent);background:var(--badge-bg)}
.order-summary{background:var(--panel);border:1px solid var(--border);padding:28px;display:flex;flex-direction:column;gap:14px;position:sticky;top:110px}
.order-summary .title{font-weight:700;font-size:20px}
.summary-line{display:flex;justify-content:space-between;gap:12px;font-size:15px}
.summary-totals{border-top:1px solid var(--border);padding-top:12px;display:flex;flex-direction:column;gap:6px;font-size:15px}
.summary-grand{border-top:2px solid var(--text);padding-top:12px;display:flex;justify-content:space-between;font-size:22px;font-weight:800}
.summary-vat{font-size:13px;color:var(--muted)}
.empty-cart-note{font-size:18px}

/* ---------- cart drawer ---------- */
.cart-overlay{position:fixed;inset:0;z-index:60;display:none;justify-content:flex-end}
.cart-overlay.open{display:flex}
.cart-overlay .backdrop{position:absolute;inset:0;background:rgba(20,22,25,0.45)}
.cart-drawer{position:relative;width:min(440px,100%);height:100%;background:var(--bg);display:flex;flex-direction:column;box-shadow:-10px 0 40px rgba(0,0,0,0.15)}
.cart-head{display:flex;justify-content:space-between;align-items:center;padding:22px 24px;border-bottom:1px solid var(--border)}
.cart-head .title{font-weight:800;font-size:22px}
.cart-close{background:none;border:0;font-size:28px;cursor:pointer;line-height:1;color:var(--text)}
.cart-body{flex:1;overflow:auto;padding:8px 24px}
.cart-empty{padding:40px 0;color:var(--muted)}
.cart-line{display:grid;grid-template-columns:64px minmax(0,1fr);gap:14px;padding:16px 0;border-bottom:1px solid var(--border)}
.cart-line .thumb{width:64px;height:64px;background:#e5ded3;object-fit:cover}
.cart-line .info{display:flex;flex-direction:column;gap:8px}
.cart-line .name{font-weight:600;font-size:15px;line-height:1.3}
.cart-line .row{display:flex;justify-content:space-between;align-items:center;gap:8px}
.qty-ctrl{display:flex;border:1px solid var(--border2)}
.qty-ctrl button{width:32px;height:32px;border:0;background:#fff;cursor:pointer;font-size:16px}
.qty-ctrl .qty{width:36px;display:flex;align-items:center;justify-content:center;font-weight:600;background:#fff}
.remove-link{align-self:flex-start;background:none;border:0;padding:0;color:var(--muted);font-size:13px;cursor:pointer;text-decoration:underline}
.cart-foot{padding:20px 24px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:12px;background:var(--panel)}
.free-bar{height:4px;background:#e5ded3}
.free-bar .fill{height:4px;background:var(--accent)}
.cart-subtotal{display:flex;justify-content:space-between;font-size:20px;font-weight:800}

/* ---------- toast ---------- */
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:24px;z-index:70;background:var(--text);color:#fff;padding:14px 18px;font-size:15px;display:none;gap:16px;align-items:center;box-shadow:0 8px 30px rgba(0,0,0,0.2)}
.toast.show{display:flex}
.toast button{background:none;border:0;color:var(--accent-soft);font-weight:700;cursor:pointer;font-size:15px}

/* ---------- cookie banner ---------- */
.cookie-banner{position:fixed;left:16px;right:16px;bottom:16px;z-index:80;display:none;justify-content:center}
.cookie-banner.show{display:flex}
.cookie-card{background:var(--panel);border:1px solid var(--border2);box-shadow:0 12px 40px rgba(0,0,0,0.18);max-width:760px;width:100%;padding:24px;display:flex;flex-direction:column;gap:16px}
.cookie-card .title{font-weight:800;font-size:18px}
.cookie-card .text{font-size:14.5px;line-height:1.55;color:var(--muted3)}
.cookie-settings{display:none;flex-direction:column;gap:10px;border-top:1px solid var(--border);padding-top:14px;font-size:14.5px}
.cookie-settings.show{display:flex}
.cookie-settings label{display:flex;gap:10px;align-items:center;cursor:pointer}
.cookie-actions{display:flex;flex-wrap:wrap;gap:8px}
.cookie-link{background:none;color:var(--text);border:0;padding:12px 10px;font-weight:600;font-size:14px;cursor:pointer;text-decoration:underline}

/* ---------- articles ---------- */
.articles-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:28px}
.article-card{color:var(--text);display:flex;flex-direction:column;gap:10px}
.article-card:hover{color:var(--accent)}
.article-card .photo-box{aspect-ratio:16/10}
.article-card .date{font-family:var(--font-mono);font-size:11px;color:var(--muted)}
.article-card .title{font-weight:700;font-size:21px;line-height:1.25}
.article-card .excerpt{color:var(--muted2);line-height:1.55;font-size:15px}
.article-page{max-width:760px;margin:0 auto;padding:56px 24px 96px}
.article-back{font-size:14px;font-weight:600}
.article-meta{font-family:var(--font-mono);font-size:12px;color:var(--muted);margin:28px 0 12px}
.article-page h1{font-size:clamp(32px,4.4vw,52px);letter-spacing:-0.025em;line-height:1.05;margin:0 0 28px}
.article-page .photo-box{aspect-ratio:16/9;margin-bottom:32px}
.article-page h2{font-size:24px;letter-spacing:-0.01em;margin:32px 0 12px}
.article-page p{font-size:18px;line-height:1.7;color:var(--muted-ink);margin:0 0 16px}

/* ---------- FAQ ---------- */
.faq-page{max-width:900px;margin:0 auto;padding:64px 24px 96px}
.faq-page h1{font-size:clamp(38px,5vw,64px);letter-spacing:-0.03em;line-height:1;margin:0 0 36px}
.faq-list{border-top:2px solid var(--text)}
.faq-item{border-bottom:1px solid var(--border)}
.faq-q{width:100%;display:flex;justify-content:space-between;gap:20px;align-items:center;text-align:left;background:transparent;border:0;padding:22px 0;font-size:19px;font-weight:600;cursor:pointer;color:var(--text)}
.faq-q .sign{font-size:26px;color:var(--accent);font-weight:400}
.faq-a{margin:0 0 24px;font-size:17px;line-height:1.65;color:var(--muted3);max-width:760px;display:none}
.faq-item.open .faq-a{display:block}

/* ---------- legal pages ---------- */
.legal-page{max-width:860px;margin:0 auto;padding:64px 24px 96px;font-size:16.5px;line-height:1.7;color:var(--muted-ink)}
.legal-page h1{font-size:clamp(34px,4.5vw,54px);letter-spacing:-0.03em;line-height:1.02;margin:0 0 12px;color:var(--text)}
.legal-page .subtitle{color:var(--muted);margin:0 0 32px}
.legal-page h2{font-size:22px;margin:32px 0 10px;color:var(--text)}
.legal-page p{margin:0 0 14px}
.legal-page ul{margin:0 0 14px;padding-left:22px}
.legal-page .sample-box{background:var(--panel);border:1px solid var(--border);padding:clamp(20px,4vw,36px);margin-top:28px;font-size:15.5px}
.legal-page .sample-box .heading{font-weight:700;font-size:20px;margin-bottom:14px;color:var(--text)}
.legal-table .row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px 16px;padding:12px 0;border-bottom:1px solid var(--border)}
.legal-table .row.head{font-weight:700}
.legal-table{border-top:2px solid var(--text);margin-bottom:28px;font-size:15px}

/* ---------- about / team ---------- */
.about-hero{padding:64px 24px 48px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,440px),1fr));gap:48px;align-items:center}
.about-hero h1{font-size:clamp(38px,5vw,64px);letter-spacing:-0.03em;line-height:1;margin:0 0 24px}
.about-hero p{font-size:18px;line-height:1.65;color:var(--muted3);margin:0 0 16px}
.about-hero .photo-box{aspect-ratio:4/3}
.team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr));gap:24px}
.team-card .photo-box{aspect-ratio:1/1;margin-bottom:12px}
.team-card .name{font-weight:700;font-size:18px}
.team-card .role{color:var(--muted);font-size:14px;margin-top:2px}
.certs-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:1px;background:var(--border);border:1px solid var(--border)}
.cert{background:var(--bg);padding:26px}
.cert .title{font-weight:700;font-size:17px;margin-bottom:8px}
.cert .text{color:var(--muted2);line-height:1.55;font-size:15px}

/* ---------- footer ---------- */
.site-footer{background:var(--dark-footer);color:var(--footer-link)}
.footer-grid{max-width:1240px;margin:0 auto;padding:64px 24px 32px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));gap:36px}
.footer-col{display:flex;flex-direction:column;gap:8px;font-size:14.5px}
.footer-col.brand-col{gap:12px;line-height:1.6}
.footer-col.brand-col .name{font-weight:800;font-size:19px;color:#fff}
.footer-head{font-family:var(--font-mono);font-size:11px;letter-spacing:0.1em;text-transform:uppercase;color:var(--footer-muted);margin-bottom:6px}
.footer-col a{color:var(--footer-link)}
.footer-col a:hover{color:#fff}
.footer-col .phone{color:#fff;font-weight:600}
.footer-col .emergency-link{color:var(--accent-soft);font-weight:600}
.footer-cookie-btn{background:none;border:0;padding:0;text-align:left;color:var(--footer-link);font-size:14.5px;cursor:pointer}
.footer-cookie-btn:hover{color:#fff}
.footer-bottom{border-top:1px solid #2f343a}
.footer-bottom .row{max-width:1240px;margin:0 auto;padding:20px 24px;display:flex;flex-wrap:wrap;gap:10px 28px;justify-content:space-between;font-size:13px;color:var(--footer-muted)}
.footer-bottom a{color:var(--footer-muted)}

/* ---------- utility placeholders for stock photos ---------- */
.photo-box.ph{background:repeating-linear-gradient(135deg,#e5ded3 0 10px,#ede8e0 10px 20px);display:flex;align-items:flex-end;padding:16px;font-family:var(--font-mono);font-size:12px;color:#6b665e}

/* ---------- responsive ---------- */
@media (max-width:640px){
  .section,.page-head,.about-hero,.contact-grid{padding-left:16px;padding-right:16px}
  .container{padding:0 16px}
  .order-summary{position:static}
}
