/* =========================================================
   Ateliér Rozpočtu — steamwand.digital
   Boutique household budgeting studio
   ========================================================= */

:root{
  --paper:#FAF5EC;
  --paper-2:#F3EADA;
  --paper-3:#EADFC9;
  --card:#FFFCF6;
  --ink:#2A2723;
  --ink-soft:#5C554B;
  --ink-faint:#8A8175;
  --clay:#A45A38;
  --clay-dark:#8A4A2D;
  --olive:#6B7551;
  --brass:#A98A3C;
  --rule:rgba(42,39,35,.14);
  --rule-strong:rgba(42,39,35,.32);

  --display:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,serif;
  --body:"Avenir Next","Segoe UI",system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif;
  --num:ui-monospace,"SF Mono","Cascadia Mono",Menlo,Consolas,monospace;

  --wrap:1140px;
  --radius:3px;
  --shadow:0 1px 0 rgba(42,39,35,.06), 0 14px 34px -22px rgba(42,39,35,.45);
}

*,*::before,*::after{box-sizing:border-box}

html{scroll-behavior:smooth}

body{
  margin:0;
  background-color:var(--paper);
  background-image:
    radial-gradient(circle at 12% 8%, rgba(169,138,60,.07), transparent 42%),
    radial-gradient(circle at 88% 0%, rgba(107,117,81,.07), transparent 38%),
    url("img-paper.svg");
  background-attachment:fixed,fixed,scroll;
  color:var(--ink);
  font-family:var(--body);
  font-size:17px;
  line-height:1.68;
  -webkit-font-smoothing:antialiased;
}

img,svg{max-width:100%;height:auto;display:block}

a{color:var(--clay);text-decoration:none;border-bottom:1px solid rgba(164,90,56,.35);transition:color .2s,border-color .2s}
a:hover{color:var(--clay-dark);border-color:var(--clay-dark)}

:focus-visible{outline:2px solid var(--olive);outline-offset:3px;border-radius:2px}

h1,h2,h3,h4{font-family:var(--display);font-weight:600;line-height:1.16;letter-spacing:-.01em;margin:0 0 .5em}
h1{font-size:clamp(2.1rem,1.3rem + 3vw,3.5rem)}
h2{font-size:clamp(1.6rem,1.15rem + 1.8vw,2.4rem)}
h3{font-size:1.22rem}
p{margin:0 0 1.1em}

.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:22px}
.narrow{max-width:800px}

.eyebrow{
  font-family:var(--num);
  font-size:.72rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--brass);
  display:flex;align-items:center;gap:12px;
  margin:0 0 14px;
}
.eyebrow::after{content:"";flex:1;height:1px;background:var(--rule);max-width:120px}

.lead{font-size:1.12rem;color:var(--ink-soft);max-width:62ch}
.muted{color:var(--ink-soft)}
.small{font-size:.88rem}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:9px;
  font-family:var(--body);font-size:.95rem;font-weight:600;letter-spacing:.01em;
  padding:13px 24px;border-radius:var(--radius);border:1px solid var(--clay);
  background:var(--clay);color:#FFF9F0;cursor:pointer;
  transition:transform .18s ease, background .18s ease, box-shadow .18s ease;
  box-shadow:0 8px 18px -14px rgba(138,74,45,.9);
}
.btn:hover{background:var(--clay-dark);border-color:var(--clay-dark);color:#FFF9F0;transform:translateY(-1px)}
.btn--ghost{background:transparent;color:var(--ink);border-color:var(--rule-strong);box-shadow:none}
.btn--ghost:hover{background:var(--paper-2);color:var(--ink);border-color:var(--ink-soft)}
.btn--small{padding:9px 16px;font-size:.85rem}
.btn-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:26px}

/* ---------- Header ---------- */
.topbar{
  background:var(--ink);color:#E7DFD1;font-size:.8rem;
  font-family:var(--num);letter-spacing:.04em;
}
.topbar .wrap{display:flex;flex-wrap:wrap;gap:8px 26px;justify-content:space-between;padding-block:8px}
.topbar a{color:#F0E7D8;border-bottom-color:rgba(240,231,216,.3)}
.topbar a:hover{color:#fff}

.site-header{
  position:sticky;top:0;z-index:60;
  background:rgba(250,245,236,.93);
  backdrop-filter:blur(9px);
  border-bottom:1px solid var(--rule);
}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-block:14px}

.brand{display:flex;align-items:center;gap:12px;border:0}
.brand:hover{border:0}
.brand__mark{width:38px;height:38px;flex:none}
.brand__name{font-family:var(--display);font-size:1.22rem;color:var(--ink);line-height:1.1}
.brand__sub{display:block;font-family:var(--num);font-size:.6rem;letter-spacing:.24em;text-transform:uppercase;color:var(--ink-faint)}

.nav{display:flex;align-items:center;gap:26px}
.nav a{
  border:0;color:var(--ink-soft);font-size:.94rem;padding-block:4px;position:relative;
}
.nav a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;background:var(--clay);transition:right .25s ease}
.nav a:hover{color:var(--ink)}
.nav a:hover::after,.nav a[aria-current="page"]::after{right:0}
.nav a[aria-current="page"]{color:var(--ink)}

.nav-toggle{display:none;background:none;border:1px solid var(--rule-strong);border-radius:var(--radius);padding:9px 12px;cursor:pointer;color:var(--ink);font-family:var(--num);font-size:.75rem;letter-spacing:.16em}

/* ---------- Sections ---------- */
.section{padding-block:76px}
.section--tight{padding-block:52px}
.section--tinted{background:linear-gradient(180deg,rgba(234,223,201,.55),rgba(234,223,201,.15));border-block:1px solid var(--rule)}
.section--ink{background:var(--ink);color:#EFE7DA}
.section--ink h2,.section--ink h3{color:#FBF5EA}
.section--ink .lead,.section--ink .muted{color:#CBC0AE}
.section--ink .eyebrow{color:#C6A85E}
.section--ink .eyebrow::after{background:rgba(255,255,255,.18)}

.section-head{max-width:720px;margin-bottom:38px}

/* ---------- Hero ---------- */
.hero{padding-block:64px 78px;position:relative;overflow:hidden}
.hero__grid{display:grid;grid-template-columns:1.02fr .98fr;gap:54px;align-items:center}
.hero h1{margin-bottom:.35em}
.hero h1 em{font-style:italic;color:var(--clay)}
.hero__note{
  margin-top:30px;padding-top:18px;border-top:1px solid var(--rule);
  display:flex;flex-wrap:wrap;gap:10px 28px;font-family:var(--num);font-size:.78rem;
  letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint)
}

/* ---------- Cards ---------- */
.grid{display:grid;gap:24px}
.grid--3{grid-template-columns:repeat(3,1fr)}
.grid--2{grid-template-columns:repeat(2,1fr)}
.grid--4{grid-template-columns:repeat(4,1fr)}

.card{
  background:var(--card);border:1px solid var(--rule);border-radius:var(--radius);
  padding:30px 28px;box-shadow:var(--shadow);position:relative;
}
.card h3{margin-bottom:.4em}
.card p:last-child{margin-bottom:0}
.card__icon{width:44px;height:44px;margin-bottom:18px}

/* ---------- Envelope planner (signature) ---------- */
.planner{
  background:var(--card);border:1px solid var(--rule-strong);border-radius:var(--radius);
  padding:28px;box-shadow:var(--shadow);
}
.planner__head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;border-bottom:1px solid var(--rule);padding-bottom:16px;margin-bottom:20px}
.planner__title{font-family:var(--display);font-size:1.2rem;margin:0}
.planner__income{display:flex;align-items:center;gap:10px}
.planner__income label{font-family:var(--num);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint)}
.planner__income input{
  width:132px;padding:9px 11px;border:1px solid var(--rule-strong);border-radius:var(--radius);
  background:var(--paper);font-family:var(--num);font-size:1rem;color:var(--ink);text-align:right;
}
.env{display:grid;grid-template-columns:1fr;gap:16px}
.env__row{display:grid;grid-template-columns:132px 1fr 108px;gap:14px;align-items:center}
.env__label{display:flex;align-items:center;gap:9px;font-size:.92rem}
.env__swatch{width:11px;height:11px;border-radius:2px;flex:none}
.env__row input[type=range]{width:100%;accent-color:var(--clay);cursor:pointer}
.env__value{font-family:var(--num);font-size:.95rem;text-align:right;white-space:nowrap}
.env__pct{display:block;font-size:.72rem;color:var(--ink-faint)}
.planner__bar{display:flex;height:12px;border-radius:2px;overflow:hidden;margin:22px 0 12px;border:1px solid var(--rule)}
.planner__bar span{transition:width .25s ease}
.planner__foot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-family:var(--num);font-size:.8rem;color:var(--ink-soft)}
.planner__foot strong{color:var(--ink)}
.planner__alert{color:var(--clay-dark);font-weight:600}

/* ---------- Steps ---------- */
.steps{counter-reset:step;display:grid;gap:0;border-top:1px solid var(--rule)}
.step{
  display:grid;grid-template-columns:88px 1fr;gap:26px;
  padding:26px 0;border-bottom:1px solid var(--rule);
}
.step__num{font-family:var(--num);font-size:.82rem;letter-spacing:.14em;color:var(--brass);padding-top:6px}
.step h3{margin-bottom:.35em}
.step p{margin-bottom:0;color:var(--ink-soft)}

/* ---------- Pricing ---------- */
.plans{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;align-items:start}
.plan{
  background:var(--card);border:1px solid var(--rule);border-radius:var(--radius);
  padding:32px 28px;box-shadow:var(--shadow);display:flex;flex-direction:column;height:100%;
}
.plan--feature{border-color:var(--clay);box-shadow:0 18px 44px -26px rgba(164,90,56,.65)}
.plan__tag{
  position:absolute;top:-11px;left:28px;background:var(--clay);color:#FFF7EC;
  font-family:var(--num);font-size:.65rem;letter-spacing:.18em;text-transform:uppercase;padding:4px 11px;border-radius:2px;
}
.plan__wrap{position:relative}
.plan__name{font-family:var(--display);font-size:1.35rem;margin:0 0 4px}
.plan__for{font-size:.88rem;color:var(--ink-faint);margin-bottom:20px}
.plan__price{font-family:var(--num);font-size:2.1rem;color:var(--ink);line-height:1}
.plan__price span{font-size:.85rem;color:var(--ink-faint);letter-spacing:.06em}
.plan__vat{font-size:.78rem;color:var(--ink-faint);margin:8px 0 22px}
.plan ul{list-style:none;margin:0 0 26px;padding:0;display:grid;gap:11px}
.plan li{position:relative;padding-left:26px;font-size:.94rem;color:var(--ink-soft)}
.plan li::before{
  content:"";position:absolute;left:0;top:.55em;width:12px;height:6px;
  border-left:1.6px solid var(--olive);border-bottom:1.6px solid var(--olive);transform:rotate(-45deg);
}
.plan .btn{margin-top:auto;justify-content:center}

.table-wrap{overflow-x:auto;border:1px solid var(--rule);border-radius:var(--radius);background:var(--card)}
table{border-collapse:collapse;width:100%;min-width:620px;font-size:.94rem}
th,td{padding:14px 18px;text-align:left;border-bottom:1px solid var(--rule)}
thead th{font-family:var(--num);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);background:var(--paper-2)}
tbody tr:last-child td{border-bottom:0}
td.num{font-family:var(--num);white-space:nowrap}

/* ---------- FAQ ---------- */
.faq{border-top:1px solid var(--rule)}
.faq details{border-bottom:1px solid var(--rule)}
.faq summary{
  cursor:pointer;padding:20px 40px 20px 0;position:relative;list-style:none;
  font-family:var(--display);font-size:1.08rem;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  content:"";position:absolute;right:8px;top:50%;width:11px;height:11px;
  border-right:1.6px solid var(--clay);border-bottom:1.6px solid var(--clay);
  transform:translateY(-70%) rotate(45deg);transition:transform .22s ease;
}
.faq details[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.faq .faq__body{padding:0 40px 22px 0;color:var(--ink-soft)}
.faq .faq__body p:last-child{margin-bottom:0}

/* ---------- Form ---------- */
.form{background:var(--card);border:1px solid var(--rule);border-radius:var(--radius);padding:32px;box-shadow:var(--shadow)}
.field{margin-bottom:20px}
.field label{display:block;font-family:var(--num);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:7px}
.field input,.field select,.field textarea{
  width:100%;padding:12px 14px;border:1px solid var(--rule-strong);border-radius:var(--radius);
  background:var(--paper);font-family:var(--body);font-size:1rem;color:var(--ink);
}
.field textarea{min-height:132px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--olive);outline:none;box-shadow:0 0 0 3px rgba(107,117,81,.16)}
.field--row{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.check{display:flex;gap:12px;align-items:flex-start;font-size:.88rem;color:var(--ink-soft)}
.check input{width:18px;height:18px;margin-top:3px;flex:none;accent-color:var(--olive)}
.error{color:#8A2E22;font-size:.82rem;margin-top:6px;display:none}
.field.is-invalid .error{display:block}
.field.is-invalid input,.field.is-invalid textarea,.field.is-invalid select{border-color:#8A2E22}
.form__status{margin-top:18px;padding:14px 16px;border-radius:var(--radius);background:rgba(107,117,81,.12);border:1px solid rgba(107,117,81,.4);font-size:.92rem;display:none}
.form__status.is-visible{display:block}

/* ---------- Contact details ---------- */
.detail-list{list-style:none;margin:0;padding:0;display:grid;gap:18px}
.detail-list li{display:grid;grid-template-columns:120px 1fr;gap:14px;padding-bottom:16px;border-bottom:1px solid var(--rule)}
.detail-list strong{font-family:var(--num);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);font-weight:400;padding-top:3px}

/* ---------- Legal pages ---------- */
.legal h2{margin-top:2em;font-size:1.5rem}
.legal h3{margin-top:1.6em}
.legal ul,.legal ol{padding-left:22px;color:var(--ink-soft)}
.legal li{margin-bottom:9px}
.legal .updated{font-family:var(--num);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint)}
.toc{background:var(--paper-2);border:1px solid var(--rule);border-radius:var(--radius);padding:22px 26px;margin:28px 0}
.toc ol{margin:0;padding-left:20px}
.toc li{margin-bottom:6px}

/* ---------- Page header ---------- */
.page-head{padding-block:60px 34px;border-bottom:1px solid var(--rule)}
.crumbs{font-family:var(--num);font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:18px}
.crumbs a{border:0;color:var(--ink-faint)}
.crumbs a:hover{color:var(--clay)}

/* ---------- CTA band ---------- */
.cta-band{display:grid;grid-template-columns:1.4fr auto;gap:34px;align-items:center}
.cta-band h2{margin-bottom:.3em}

/* ---------- Footer ---------- */
.site-footer{background:var(--ink);color:#CFC5B4;padding-block:56px 26px;font-size:.92rem}
.site-footer a{color:#E8DFD0;border-bottom-color:rgba(232,223,208,.25)}
.site-footer a:hover{color:#fff}
.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.2fr;gap:34px}
.footer-grid h4{font-family:var(--num);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:#A79A85;margin-bottom:16px}
.footer-grid ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.footer-brand{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.footer-brand .brand__name{color:#FBF5EA}
.footer-bottom{
  margin-top:40px;padding-top:20px;border-top:1px solid rgba(255,255,255,.13);
  display:flex;flex-wrap:wrap;gap:10px 24px;justify-content:space-between;
  font-family:var(--num);font-size:.75rem;letter-spacing:.06em;color:#9E937F;
}

/* ---------- Cookie bar ---------- */
.cookie{
  position:fixed;left:20px;right:20px;bottom:20px;z-index:90;
  background:var(--card);border:1px solid var(--rule-strong);border-radius:var(--radius);
  box-shadow:0 22px 50px -24px rgba(42,39,35,.7);
  padding:22px 24px;display:none;
  grid-template-columns:1fr auto;gap:22px;align-items:center;max-width:980px;margin-inline:auto;
}
.cookie.is-open{display:grid}
.cookie h4{font-family:var(--display);font-size:1.05rem;margin:0 0 6px}
.cookie p{margin:0;font-size:.88rem;color:var(--ink-soft)}
.cookie__actions{display:flex;gap:10px;flex-wrap:wrap}
.cookie__prefs{margin-top:16px;display:none;border-top:1px solid var(--rule);padding-top:16px;grid-column:1/-1}
.cookie__prefs.is-open{display:block}
.cookie__prefs .check{margin-bottom:12px}

/* ---------- Utilities ---------- */
.hr{height:1px;background:var(--rule);border:0;margin-block:42px}
.figure{border:1px solid var(--rule);border-radius:var(--radius);background:var(--card);padding:16px;box-shadow:var(--shadow)}
.figure figcaption{font-family:var(--num);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);margin-top:12px;text-align:center}
.skip{position:absolute;left:-9999px}
.skip:focus{left:16px;top:12px;z-index:100;background:var(--ink);color:#fff;padding:10px 16px;border-radius:var(--radius)}

/* ---------- Responsive ---------- */
@media (max-width:960px){
  .hero__grid{grid-template-columns:1fr;gap:40px}
  .grid--3,.grid--4,.plans{grid-template-columns:1fr 1fr}
  .footer-grid{grid-template-columns:1fr 1fr}
  .cta-band{grid-template-columns:1fr}
}
@media (max-width:760px){
  body{font-size:16px}
  .nav{
    position:absolute;top:100%;left:0;right:0;background:var(--paper);
    border-bottom:1px solid var(--rule);flex-direction:column;align-items:flex-start;
    gap:0;padding:8px 22px 18px;display:none;
  }
  .nav.is-open{display:flex}
  .nav a{padding-block:11px;width:100%;border-bottom:1px solid var(--rule)}
  .nav a:last-child{border-bottom:0}
  .nav a::after{display:none}
  .nav-toggle{display:block}
  .site-header .wrap{position:relative}
  .grid--3,.grid--4,.grid--2,.plans,.field--row{grid-template-columns:1fr}
  .section{padding-block:56px}
  .env__row{grid-template-columns:1fr;gap:6px}
  .env__value{text-align:left}
  .step{grid-template-columns:1fr;gap:6px}
  .cookie{grid-template-columns:1fr;left:12px;right:12px;bottom:12px;padding:20px}
  .detail-list li{grid-template-columns:1fr;gap:2px}
  .footer-grid{grid-template-columns:1fr}
  .topbar .wrap{font-size:.72rem}
}

@media (prefers-reduced-motion:reduce){
  *{animation-duration:.01ms !important;transition-duration:.01ms !important;scroll-behavior:auto !important}
}
