/* Pizza Dům — základní styly, self-contained (bez externích CDN/fontů) */
:root{
  --bg: oklch(97% 0.012 60);
  --surface: oklch(99% 0.005 60);
  --surface-2: oklch(93% 0.025 60);
  --surface-3: oklch(90% 0.05 70);
  --ink: oklch(23% 0.02 40);
  --ink-soft: oklch(45% 0.02 40);
  --ink-soft-2: oklch(30% 0.02 40);
  --accent: oklch(55% 0.15 35);
  --accent-hover: oklch(42% 0.13 32);
  --accent-soft: oklch(38% 0.1 50);
  --border: oklch(90% 0.015 55);
  --border-2: oklch(88% 0.02 55);
  --dark: oklch(23% 0.02 40);
  --dark-2: oklch(38% 0.02 40);
  --dark-3: oklch(45% 0.02 40);
  --cream: oklch(96% 0.015 65);
  --cream-2: oklch(90% 0.01 55);
  --cream-3: oklch(78% 0.01 55);
  --cream-4: oklch(65% 0.01 55);
  --gold: oklch(65% 0.13 70);
  --font-head: Georgia, 'Times New Roman', 'Noto Serif', serif;
  --font-body: -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--bg);
  font-family:var(--font-body);
  color:var(--ink-soft-2);
}
a{color:var(--accent); text-decoration:none;}
a:hover{color:var(--accent-hover);}
img{max-width:100%; display:block;}
button{font-family:inherit;}

.wrap{max-width:1320px; margin:0 auto; padding-left:6vw; padding-right:6vw;}
.wrap-narrow{max-width:1100px; margin:0 auto; padding-left:6vw; padding-right:6vw;}
.wrap-doc{max-width:820px; margin:0 auto; padding:56px 6vw 90px;}

/* Header */
.site-header{
  display:flex; align-items:center; justify-content:space-between; gap:24px;
  padding:18px 6vw; background:var(--cream); border-bottom:1px solid var(--border-2);
  flex-wrap:wrap; position:relative; z-index:100;
}
.logo{font-family:var(--font-head); font-size:26px; font-weight:700; color:var(--ink); text-decoration:none; letter-spacing:.3px;}
.logo span{color:var(--accent);}
.main-nav{display:flex; align-items:center; gap:22px; flex-wrap:wrap;}
.main-nav a{color:var(--ink); font-weight:500; font-size:15px; text-decoration:none;}
.main-nav a.active{color:var(--accent); font-weight:600; border-bottom:2px solid var(--accent); padding-bottom:4px;}
.header-actions{display:flex; align-items:center; gap:16px;}
.header-phone{color:var(--dark-3); text-decoration:none; font-size:14px; font-weight:500;}
.cart-link{
  position:relative; display:flex; align-items:center; gap:8px; background:var(--dark);
  color:var(--surface); padding:10px 18px; border-radius:3px; text-decoration:none;
  font-size:14px; font-weight:600;
}
.cart-badge{
  background:var(--accent); color:var(--surface); border-radius:50%; min-width:20px; height:20px;
  display:flex; align-items:center; justify-content:center; font-size:12px; padding:0 4px;
}
.nav-toggle{display:none; background:none; border:1px solid var(--border-2); border-radius:4px; padding:8px 10px; cursor:pointer; font-size:18px;}

@media (max-width: 860px){
  .main-nav{ display:none; width:100%; flex-direction:column; align-items:flex-start; gap:14px; padding-top:14px; }
  .main-nav.open{ display:flex; }
  .nav-toggle{display:block;}
  .site-header{position:sticky; top:0;}
}

/* Hero / general sections */
section{font-family:var(--font-body);}
.eyebrow{display:inline-block; background:var(--surface-3); color:var(--accent-soft); font-size:13px; font-weight:600; letter-spacing:.5px; padding:6px 14px; border-radius:20px; margin-bottom:18px;}
.eyebrow-plain{font-size:13px; font-weight:600; letter-spacing:.5px; color:var(--accent); margin-bottom:10px;}
h1,h2,h3{font-family:var(--font-head); color:var(--ink); margin:0;}

.btn{display:inline-block; text-decoration:none; padding:15px 30px; border-radius:3px; font-weight:600; font-size:15px; border:none; cursor:pointer; font-family:var(--font-body);}
.btn-primary{background:var(--accent); color:var(--surface);}
.btn-primary:hover{background:var(--accent-hover); color:var(--surface);}
.btn-outline{background:transparent; border:1.5px solid var(--ink); color:var(--ink);}
.btn-outline:hover{background:var(--ink); color:var(--surface);}
.btn-dark{background:var(--dark); color:var(--surface);}
.btn-dark:hover{opacity:.9; color:var(--surface);}
.btn-block{width:100%;}

.hero{
  display:grid; grid-template-columns:1.1fr 1fr; gap:48px; align-items:center;
  padding:72px 6vw; max-width:1320px; margin:0 auto;
}
.hero h1{font-size:clamp(34px,5vw,54px); line-height:1.12; margin:0 0 20px;}
.hero p.lead{font-size:17px; line-height:1.65; color:var(--dark-3); max-width:480px; margin:0 0 32px;}
.hero-actions{display:flex; gap:16px; flex-wrap:wrap;}
.hero-stats{display:flex; gap:32px; margin-top:44px; flex-wrap:wrap;}
.hero-stats .num{font-family:var(--font-head); font-size:26px; color:var(--ink);}
.hero-stats .label{font-size:13px; color:var(--dark-3);}
.photo-box{border-radius:10px; overflow:hidden; aspect-ratio:4/3.4;}
.photo-box img{width:100%; height:100%; object-fit:cover;}

.ribbon{background:var(--dark); padding:26px 6vw; display:flex; justify-content:center; gap:56px; flex-wrap:wrap;}
.ribbon div{color:var(--cream-2); font-size:14px; font-weight:500;}

.section{padding:80px 6vw; max-width:1320px; margin:0 auto;}
.section-head{display:flex; justify-content:space-between; align-items:baseline; margin-bottom:36px; flex-wrap:wrap; gap:12px;}
.section-head h2{font-size:32px;}
.section-link{font-size:15px; font-weight:600; text-decoration:none;}

.grid-cards{display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:28px;}
.card{background:var(--surface); border-radius:8px; overflow:hidden; border:1px solid var(--border); display:flex; flex-direction:column;}
.card .thumb{height:170px; overflow:hidden;}
.card .thumb img{width:100%; height:100%; object-fit:cover;}
.card-body{padding:20px; display:flex; flex-direction:column; flex:1;}
.card-title{font-family:var(--font-head); font-size:19px; color:var(--ink); margin-bottom:6px;}
.card-desc{font-size:13.5px; color:var(--dark-3); line-height:1.5; margin:0 0 14px; flex:1;}
.card-foot{display:flex; justify-content:space-between; align-items:center;}
.price{font-weight:700; color:var(--ink);}

.grid-links{display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:24px;}
.link-card{text-decoration:none; background:var(--surface-2); border-radius:8px; padding:26px; display:block;}
.link-card .t{font-family:var(--font-head); font-size:20px; color:var(--ink); margin-bottom:8px;}
.link-card p{font-size:14px; color:var(--dark-3); line-height:1.55; margin:0;}

.banner{background:linear-gradient(120deg, oklch(40% 0.09 60), oklch(30% 0.07 55)); padding:64px 6vw; color:oklch(97% 0.01 55);}
.banner-inner{max-width:1320px; margin:0 auto; display:flex; justify-content:space-between; align-items:center; gap:24px; flex-wrap:wrap;}
.banner h3{font-size:28px; color:oklch(97% 0.01 55); margin:0 0 8px;}
.banner .kicker{font-size:13px; font-weight:600; letter-spacing:.5px; color:var(--gold); margin-bottom:10px;}
.banner p{margin:0; font-size:15px; opacity:.85; max-width:520px;}
.banner .btn-primary{background:oklch(97% 0.01 55); color:oklch(30% 0.07 55); font-weight:700;}
.banner .btn-primary:hover{background:oklch(90% 0.01 55); color:oklch(30% 0.07 55);}

.testimonials{display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:28px;}
.testimonial{background:var(--surface-2); border-radius:8px; padding:28px;}
.stars{color:var(--gold); font-size:16px; margin-bottom:12px;}
.testimonial p{font-size:14.5px; color:var(--ink-soft-2); line-height:1.6; font-style:italic; margin:0 0 14px;}
.testimonial .who{font-size:13px; font-weight:600; color:var(--ink);}

/* Footer */
.site-footer{background:var(--dark); color:var(--cream-2); padding:56px 6vw 24px;}
.footer-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:36px; max-width:1280px; margin:0 auto;}
.footer-brand{font-family:var(--font-head); font-size:24px; font-weight:700; color:var(--cream); margin-bottom:12px;}
.footer-grid p{font-size:14px; line-height:1.6; color:var(--cream-3); max-width:260px;}
.footer-social{display:flex; gap:14px; margin-top:16px;}
.footer-social a{color:var(--cream-3); text-decoration:none; font-size:13px; border:1px solid var(--dark-2); padding:6px 12px; border-radius:3px;}
.footer-col-title{font-weight:600; color:var(--cream); margin-bottom:14px; font-size:15px;}
.footer-links{display:flex; flex-direction:column; gap:10px;}
.footer-links a{color:var(--cream-3); text-decoration:none; font-size:14px;}
.footer-contact{display:flex; flex-direction:column; gap:8px; font-size:14px; color:var(--cream-3); line-height:1.6;}
.footer-contact a{color:var(--cream-3); text-decoration:none;}
.footer-bottom{max-width:1280px; margin:40px auto 0; padding-top:20px; border-top:1px solid var(--dark-2); display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-size:12.5px; color:var(--cream-4);}

/* Cookie banner */
.cookie-banner{
  position:fixed; bottom:0; left:0; right:0; background:var(--dark); color:oklch(92% 0.01 55);
  padding:18px 6vw; display:flex; align-items:center; justify-content:space-between; gap:24px;
  flex-wrap:wrap; font-size:14px; z-index:9999; box-shadow:0 -4px 20px oklch(0% 0 0 / .2);
}
.cookie-banner.hidden{display:none;}
.cookie-text{max-width:680px; line-height:1.5;}
.cookie-text a{color:var(--gold); text-decoration:underline;}
.cookie-actions{display:flex; gap:12px; align-items:center; flex-wrap:wrap;}
.cookie-actions a{color:oklch(80% 0.01 55); text-decoration:none; font-size:13px; padding:10px 6px;}
.cookie-accept{background:var(--accent); color:var(--surface); border:none; padding:10px 22px; border-radius:3px; font-weight:600; cursor:pointer; font-size:14px;}

/* Legal / doc pages */
.doc h1{font-family:var(--font-head); font-size:32px; color:var(--ink); margin:0 0 8px;}
.doc .updated{font-size:13px; color:oklch(50% 0.02 40); margin:0 0 32px;}
.doc h2{font-family:var(--font-head); font-size:20px; color:var(--ink); margin:32px 0 12px;}
.doc p{font-size:15px; line-height:1.7; color:var(--ink-soft-2);}
.doc table{border-collapse:collapse; width:100%;}
.doc td, .doc th{padding:10px 12px; border:1px solid var(--border-2); text-align:left; font-size:13.5px;}
.doc th{background:var(--surface-2);}

/* Page header block */
.page-head{padding:60px 6vw 24px; max-width:1320px; margin:0 auto;}
.page-head.narrow{max-width:1100px; padding-bottom:30px;}
.page-head h1{font-size:40px; margin:0 0 14px;}
.page-head p{font-size:15.5px; color:var(--dark-3); max-width:640px; line-height:1.6; margin:0 0 8px;}

/* Menu tabs */
.tabs{display:flex; gap:10px; flex-wrap:wrap; margin-bottom:28px; padding:8px 6vw 0; max-width:1320px; margin-left:auto; margin-right:auto;}
.tab{background:var(--surface-2); color:oklch(35% 0.02 40); border:none; padding:10px 20px; border-radius:20px; font-size:14px; font-weight:500; cursor:pointer;}
.tab.active{background:var(--dark); color:var(--surface); font-weight:600;}
.menu-grid{padding:0 6vw 80px; max-width:1320px; margin:0 auto; display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:26px;}
.pizza-card{background:var(--surface); border:1px solid var(--border); border-radius:8px; overflow:hidden; display:flex; flex-direction:column;}
.pizza-card .thumb{height:160px; overflow:hidden;}
.pizza-card .thumb img{width:100%; height:100%; object-fit:cover;}
.pizza-card .body{padding:20px; display:flex; flex-direction:column; flex:1;}
.pizza-card .row{display:flex; justify-content:space-between; align-items:flex-start; gap:8px; margin-bottom:6px;}
.pizza-card .name{font-family:var(--font-head); font-size:18px; color:var(--ink);}
.pizza-card .price{font-weight:700; color:var(--ink); white-space:nowrap;}
.pizza-card .desc{font-size:13.5px; color:var(--dark-3); line-height:1.5; margin:0 0 16px; flex:1;}
.add-btn{background:var(--dark); color:var(--surface); border:none; padding:11px 16px; border-radius:3px; font-weight:600; font-size:13.5px; cursor:pointer;}
.add-btn.added{background:oklch(50% 0.08 125);}

/* Contact / forms */
.contact-grid{padding:20px 6vw 70px; max-width:1200px; margin:0 auto; display:grid; grid-template-columns:1fr 1.1fr; gap:40px;}
.contact-info{display:flex; flex-direction:column; gap:16px; font-size:15px; color:var(--ink-soft-2);}
.contact-info .label{font-weight:600; margin-bottom:4px;}
.contact-info .val{color:var(--dark-3);}
.map-box{border-radius:8px; height:240px; overflow:hidden; margin-bottom:24px;}
.map-box img{width:100%; height:100%; object-fit:cover;}
.contact-form-box{background:var(--surface-2); border-radius:8px; padding:32px;}
.contact-form-box h2{font-size:22px; margin:0 0 20px;}
.form-field{padding:12px 14px; border:1px solid var(--border); border-radius:4px; font-size:14px; width:100%; box-sizing:border-box; font-family:var(--font-body); background:var(--surface);}
.form-row{display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:14px;}
.form-stack{display:flex; flex-direction:column; gap:14px;}
.form-note{font-size:11.5px; color:oklch(50% 0.02 40); margin:0; line-height:1.5;}
.form-success{background:oklch(96% 0.02 125); border-radius:6px; padding:20px; text-align:center; color:var(--ink-soft-2);}
.form-success.big{background:oklch(93% 0.03 125); border:1px solid oklch(80% 0.06 125); border-radius:8px; padding:40px; text-align:center;}
.form-success.big .t{font-family:var(--font-head); font-size:24px; color:var(--ink); margin-bottom:10px;}
.form-success.big p{font-size:15px; color:oklch(40% 0.02 40); max-width:480px; margin:0 auto 20px;}

/* Cart page */
.cart-empty{background:var(--surface-2); border-radius:8px; padding:50px; text-align:center;}
.cart-layout{display:grid; grid-template-columns:1.5fr 1fr; gap:32px; align-items:start;}
.cart-item{display:flex; justify-content:space-between; align-items:center; gap:14px; padding:18px 0; border-bottom:1px solid var(--border);}
.cart-item .name{font-weight:600; color:var(--ink); font-size:15.5px; margin-bottom:4px;}
.cart-item .unit{font-size:13px; color:var(--dark-3);}
.qty-controls{display:flex; align-items:center; gap:10px;}
.qty-btn{width:28px; height:28px; border-radius:50%; border:1px solid oklch(80% 0.02 55); background:var(--surface); cursor:pointer; font-size:15px;}
.qty-val{min-width:20px; text-align:center; font-weight:600;}
.line-total{font-weight:700; color:var(--ink); min-width:70px; text-align:right;}
.remove-link{background:none; border:none; color:oklch(50% 0.1 30); cursor:pointer; font-size:13px; text-decoration:underline;}
.order-summary{background:var(--surface-2); border-radius:8px; padding:26px; position:sticky; top:20px;}
.order-summary .row{display:flex; justify-content:space-between; font-size:14px; color:oklch(40% 0.02 40); margin-bottom:10px;}
.order-summary .hint{font-size:12px; color:oklch(50% 0.02 40); margin:0 0 16px;}
.order-summary .total{display:flex; justify-content:space-between; font-size:18px; font-weight:700; color:var(--ink); border-top:1px solid var(--border); padding-top:14px; margin-bottom:20px;}
.payment-options{display:flex; gap:12px;}
.payment-opt{flex:1; padding:12px; border-radius:4px; border:1px solid var(--border); background:var(--surface); font-weight:500; font-size:13.5px; cursor:pointer;}
.payment-opt.active{border:2px solid var(--accent); background:oklch(97% 0.03 40); font-weight:600;}
.delivery-title{font-size:14px; font-weight:600; color:var(--ink); margin-bottom:10px;}

/* Round photo */
.round-photo{width:120px; height:120px; border-radius:50%; margin:0 auto 14px; overflow:hidden;}
.round-photo img{width:100%; height:100%; object-fit:cover;}
.team-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:24px; text-align:center;}
.team-grid .name{font-weight:600; color:var(--ink);}
.team-grid .role{font-size:13px; color:var(--dark-3);}

.values-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:28px; text-align:center;}
.values-grid .t{font-family:var(--font-head); font-size:26px; color:var(--accent); margin-bottom:10px;}
.values-grid p{font-size:14px; color:var(--dark-3); line-height:1.6; margin:0;}

.num-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:24px;}
.num-grid .n{font-family:var(--font-head); font-size:22px; color:var(--accent); margin-bottom:8px;}
.num-grid .t{font-weight:600; color:var(--ink); margin-bottom:6px; font-size:15px;}
.num-grid p{font-size:13.5px; color:var(--dark-3); line-height:1.55; margin:0;}

.combo-card{display:grid; grid-template-columns:220px 1fr; gap:0; background:var(--surface); border:1px solid var(--border); border-radius:8px; overflow:hidden;}
.combo-card .thumb{overflow:hidden;}
.combo-card .thumb img{width:100%; height:100%; object-fit:cover;}
.combo-card .body{padding:26px;}
.combo-card .row{display:flex; justify-content:space-between; align-items:baseline; flex-wrap:wrap; gap:8px;}
.combo-card .t{font-family:var(--font-head); font-size:21px; color:var(--ink);}
.combo-card .price{font-weight:700; color:var(--accent);}
.combo-card .price .old{font-size:12px; color:var(--dark-3); font-weight:400;}
.combo-card p{font-size:14px; color:var(--dark-3); line-height:1.6; margin:10px 0 0;}
@media (max-width: 640px){ .combo-card{grid-template-columns:1fr;} .combo-card .thumb{height:180px;} }

.cta-band{background:var(--surface-2); border-radius:8px; padding:34px; margin-top:40px; display:flex; justify-content:space-between; align-items:center; gap:20px; flex-wrap:wrap;}
.cta-band .t{font-family:var(--font-head); font-size:20px; color:var(--ink); margin-bottom:6px;}
.cta-band p{font-size:14px; color:var(--dark-3); margin:0; max-width:520px;}

.ingredient-note{background:var(--surface-2); padding:56px 6vw;}
.ingredient-note-inner{max-width:900px; margin:0 auto; text-align:center;}
.ingredient-note h2{font-size:26px; margin:0 0 14px;}
.ingredient-note p{font-size:14.5px; color:var(--dark-3); line-height:1.6; margin:0 0 10px;}

.seasonal-hero{background:linear-gradient(120deg, oklch(40% 0.09 60), oklch(30% 0.07 55)); padding:70px 6vw; color:oklch(97% 0.01 55); text-align:center;}
.seasonal-hero-inner{max-width:900px; margin:0 auto;}
.seasonal-hero h1{font-size:38px; color:oklch(97% 0.01 55); margin:0 0 14px;}
.seasonal-hero p{margin:0; font-size:16px; opacity:.88;}
.seasonal-hero .kicker{font-size:13px; font-weight:600; letter-spacing:.5px; color:var(--gold); margin-bottom:12px;}

@media (max-width: 900px){
  .hero, section[style]{grid-template-columns:1fr !important;}
  .hero{padding:48px 6vw;}
  .contact-grid, .cart-layout, .combo-card{grid-template-columns:1fr !important;}
}
