:root {
  --site-primary: #ac3e49;
  --site-primary-dark: #870a1a;
  --site-accent: #5059cd;
  --site-surface: #fbefec;
  --site-secondary: #cd7a05;
  --site-text-secondary: #665e5c;
  --bs-body-bg: #f1e6df;
  --bs-body-color: #240505;
  --bs-body-font-family: 'Lexend', sans-serif;
  --bs-link-color: #ac3e49;
  --bs-link-hover-color: #870a1a;
  --step-body: 1.125rem;
  --step-small: .95rem;
  --step-eyebrow: .78rem;
  --step-h3: 1.5rem;
  --step-h2: 2.2rem;
  --step-h1: clamp(2.4rem, 5vw, 3.4rem);
  --section-pad: clamp(5rem, 8vw, 7rem);
  --card-shadow: 0 12px 32px rgba(0,0,0,.08);
  --button-shadow: 0 4px 12px rgba(0,0,0,.06);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { background: var(--bs-body-bg); color: var(--bs-body-color); font-family: var(--bs-body-font-family); font-size: var(--step-body); overflow-x: hidden; }
h1, h2, h3, h4, h5, h6 { font-family: 'Lexend', serif; font-weight: 650; letter-spacing: -.035em; }
h1 { font-size: var(--step-h1); } h2 { font-size: var(--step-h2); } h3 { font-size: var(--step-h3); }
p { max-width: 70ch; color: var(--site-text-secondary); text-wrap: pretty; }
h1, h2, h3 { text-wrap: balance; }
a { color: var(--site-primary); transition: color .2s ease; }
a:hover { color: var(--site-primary-dark); }
.btn { border-radius: 9999px; padding: .7rem 1.25rem; font-weight: 600; box-shadow: var(--button-shadow); letter-spacing: .01em; transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease, border-color .2s ease; border-width: 1px; }
.btn:hover { transform: translateY(-1px); box-shadow: 0 7px 18px rgba(0,0,0,.09); }
.btn-primary { background-color: var(--site-primary); border-color: var(--site-primary); color: #fff; }
.btn-primary:hover, .btn-primary:focus { background-color: var(--site-primary-dark); border-color: var(--site-primary-dark); color: #fff; }
.btn-outline-primary { color: var(--site-primary); border-color: var(--site-primary); background-color: transparent; }
.btn-outline-primary:hover, .btn-outline-primary:focus { background-color: var(--site-primary); border-color: var(--site-primary); color: #fff; }
.bg-primary { background-color: var(--site-primary) !important; }
.text-primary { color: var(--site-primary) !important; }
.border-primary { border-color: var(--site-primary) !important; }
.card { border-radius: 24px; box-shadow: var(--card-shadow); border: 0; background: var(--site-surface); transition: transform .2s ease, box-shadow .2s ease; }
.card:hover { transform: translateY(-3px); box-shadow: 0 16px 38px rgba(0,0,0,.1); }
.form-control, .form-select { border-radius: 12px; border-color: #d7c7c1; padding: .75rem .9rem; font-size: 1rem; }
.form-control:focus, .form-select:focus { border-color: var(--site-primary); box-shadow: 0 0 0 .2rem rgba(172,62,73,.15); }
.utility-bar { background: #240505; color: #f1e6df; font-size: var(--step-small); }
.utility-bar a { color: #f1e6df; text-decoration: none; }
.site-nav { background: #fbefec; border-bottom: 1px solid rgba(36,5,5,.1); }
.navbar-brand { color: #240505; font-weight: 650; letter-spacing: -.03em; }
.navbar-brand:hover { color: #240505; }
.logo-mark { width: 38px; height: 38px; border-radius: 12px; object-fit: cover; }
.nav-link { color: #240505; font-size: 1rem; font-weight: 500; }
.nav-link:hover, .nav-link:focus { color: var(--site-primary); }
.navbar-toggler { border-radius: 12px; border-color: rgba(36,5,5,.25); }
.section { position: relative; padding: var(--section-pad) 0; }
.section-marker::before { content: ''; position: absolute; top: 2rem; bottom: 2rem; left: max(1rem, calc((100% - 1280px) / 2)); width: 2px; background: var(--site-primary); opacity: .7; }
.eyebrow { font-size: var(--step-eyebrow); letter-spacing: .1em; text-transform: uppercase; font-weight: 650; color: var(--site-primary); }
.surface { background: var(--site-surface); }
.wash { background: rgba(254,136,139,.18); }
.hero { padding: 0; background: #240505; color: #f1e6df; }
.hero-image { min-height: 540px; background: linear-gradient(rgba(36,5,5,.22), rgba(36,5,5,.22)), url('../images/hero-rurilatal-caffe.jpg') center/cover; }
.hero-copy { min-height: 540px; display: flex; flex-direction: column; justify-content: center; padding: 4rem clamp(2rem, 6vw, 7rem) 4rem clamp(2rem, 5vw, 5rem); }
.hero p { color: #f1e6df; }
.hero .eyebrow { color: #fe888b; }
.inverted { background: #240505; color: #f1e6df; }
.inverted p, .inverted .eyebrow { color: #f1e6df; }
.inverted .btn-primary { background-color: #f1e6df; border-color: #f1e6df; color: #240505; }
.inverted .btn-primary:hover { background-color: #fbefec; border-color: #fbefec; color: #240505; }
.inverted .section-marker::before { background: #f1e6df; }
.section-image { width: 100%; height: 100%; min-height: 360px; object-fit: cover; border-radius: 16px; }
.inverted .section-image { border-radius: 16px; }
.edge-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.edge-copy-right { padding: var(--section-pad) clamp(2rem, 8vw, 10rem) var(--section-pad) clamp(2rem, 6vw, 6rem); }
.edge-copy-left { padding: var(--section-pad) clamp(2rem, 6vw, 6rem) var(--section-pad) clamp(2rem, 8vw, 10rem); }
.edge-visual { min-height: 510px; object-fit: cover; width: 100%; height: 100%; border-radius: 0; }
.product-list { border-top: 1px solid rgba(36,5,5,.16); }
.product-line { border-bottom: 1px solid rgba(36,5,5,.16); padding: 1rem 0; }
.price, .tabular { font-variant-numeric: tabular-nums; }
.top-rule { border-top: 1px solid rgba(36,5,5,.24); }
.contact-card { background: var(--site-surface); padding: 1.75rem; }
.contact-card p { font-size: 1rem; }
.order-table { background: var(--site-surface); border-radius: 24px; overflow: hidden; box-shadow: var(--card-shadow); }
.order-table th { background: #240505; color: #f1e6df; font-weight: 500; }
.map-wrap iframe { display: block; width: 100%; height: 260px; border: 0; border-radius: 16px; }
.footer { background: #240505; color: #f1e6df; font-size: var(--step-small); }
.footer a, .footer p { color: #f1e6df; }
.footer p { margin-bottom: 0; }
.footer-links a { text-decoration: none; }
.footer-bottom { border-top: 1px solid rgba(241,230,223,.25); }
.container-wide { max-width: 1280px; } .container-medium { max-width: 1140px; } .container-narrow { max-width: 900px; } .container-legal { max-width: 850px; } .container-not-found { max-width: 720px; }
.legal-main, .not-found { padding: var(--section-pad) 0; }
.legal-main h2 { margin-top: 2.5rem; }
.legal-main h3 { margin-top: 1.75rem; }
.cookie-banner { position: fixed; z-index: 1080; left: 1rem; right: 1rem; bottom: 1rem; max-width: 720px; margin: 0 auto; background: #240505; color: #f1e6df; border-radius: 24px; padding: 1rem 1.25rem; box-shadow: var(--card-shadow); }
.cookie-banner p { color: #f1e6df; font-size: var(--step-small); margin: 0; }
.cookie-banner .btn-outline-primary { color: #f1e6df; border-color: #f1e6df; }
.cookie-banner .btn-outline-primary:hover { background-color: #f1e6df; border-color: #f1e6df; color: #240505; }
@media (max-width: 991.98px) { .hero-image { min-height: 320px; } .hero-copy { min-height: auto; padding: 4rem 2rem; } .edge-grid { grid-template-columns: 1fr; } .edge-copy-right, .edge-copy-left { padding: var(--section-pad) 2rem; } .edge-visual { min-height: 340px; } .section-marker::before { left: .65rem; } }
@media (max-width: 575.98px) { body { font-size: 1rem; } .section-marker::before { top: 1.25rem; bottom: 1.25rem; } .utility-bar .container { justify-content: center !important; } .hero-copy { padding: 3.5rem 1.5rem; } }
