/* ==========================================================================
   Půjčovna Lodiček Lipno — "Riviera na Lipně"
   ochre / indigo / linen, striped awnings, citrus ornaments, azure water
   ========================================================================== */

:root{
  --indigo: #223759;
  --indigo-deep: #141f38;
  --indigo-soft: #35517c;
  --azure: #3f90ad;
  --azure-light: #a9d6e0;
  --ochre: #c97f2c;
  --ochre-light: #e3a455;
  --lemon: #e8c547;
  --linen: #f6efe0;
  --linen-dark: #ece1c6;
  --paper: #fffaf0;
  --ink: #1c2534;
  --ink-soft: #4a5063;
  --line: rgba(28,37,52,.14);
  --radius-l: 28px;
  --radius-m: 16px;
  --radius-s: 10px;
  --shadow-card: 0 18px 40px -22px rgba(20,31,56,.45);
  --shadow-soft: 0 10px 24px -16px rgba(20,31,56,.35);
  --font-display: "Iowan Old Style", "Palatino Linotype", Georgia, "Times New Roman", serif;
  --font-body: -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --font-label: "Courier New", "SFMono-Regular", Consolas, monospace;
  --maxw: 1240px;
  --ease: cubic-bezier(.22,.8,.3,1);
}

@media (prefers-color-scheme: dark){
  :root{ --paper: #fffaf0; }
}

*,*::before,*::after{ box-sizing: border-box; }
html,body{ overflow-x: clip; }
html{ scroll-behavior: smooth; }
body{
  margin:0;
  font-family: var(--font-body);
  color: var(--ink);
  background: var(--linen);
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
img{ max-width:100%; display:block; }
a{ color: inherit; text-decoration: none; }
h1,h2,h3,h4{ font-family: var(--font-display); font-weight: 600; margin: 0 0 .5em; line-height: 1.1; color: var(--indigo-deep); }
p{ margin: 0 0 1em; }
ul{ margin:0; padding:0; list-style:none; }
button{ font-family: inherit; }
.container{ max-width: var(--maxw); margin-inline:auto; padding-inline: clamp(1.1rem, 4vw, 2.5rem); }
.visually-hidden{ position:absolute !important; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; left:-9999px; }

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

.skip-link{
  position:absolute; left:-9999px; top:0; background:var(--indigo-deep); color:#fff;
  padding:.6em 1em; z-index:200; border-radius: 0 0 8px 0;
}
.skip-link:focus{ left:0; }

/* ---------- icon sprite ---------- */
.icon{ width:1.3em; height:1.3em; stroke:currentColor; fill:none; stroke-width:1.7; vertical-align:-.2em; flex-shrink:0; }

/* ---------- buttons ---------- */
.btn{
  position:relative; display:inline-flex; align-items:center; justify-content:center; gap:.5em;
  padding:.85em 1.6em; border-radius: 999px; font-weight:600; font-size:.98rem;
  border:1.5px solid var(--indigo-deep); background:transparent; color:var(--indigo-deep);
  cursor:pointer; overflow:hidden; isolation:isolate; min-height:44px;
  transition: color .3s var(--ease), border-color .3s var(--ease);
}
.btn::before{
  content:""; position:absolute; inset:0; left:-100%; width:100%; background: var(--indigo-deep);
  z-index:-1; transition: left .35s var(--ease);
}
.btn:hover::before, .btn:focus-visible::before{ left:0; }
.btn:hover, .btn:focus-visible{ color:#fff; }
.btn-primary{ background: var(--ochre); border-color: var(--ochre); color: var(--indigo-deep); }
.btn-primary::before{ background: var(--indigo-deep); }
.btn-primary:hover, .btn-primary:focus-visible{ color:#fff; }
.btn-ghost-dark{ border-color: rgba(255,255,255,.55); color:#fff; }
.btn-ghost-dark::before{ background:#fff; }
.btn-ghost-dark:hover, .btn-ghost-dark:focus-visible{ color: var(--indigo-deep); }
.btn-sm{ padding:.55em 1.1em; font-size:.88rem; }
.btn[disabled]{ opacity:.55; cursor:not-allowed; }

/* ---------- header ---------- */
.site-header{
  position: sticky; top:0; z-index:100; background: rgba(246,239,224,.92);
  backdrop-filter: blur(8px); border-bottom:1px solid var(--line);
}
.site-header .container{ display:flex; align-items:center; justify-content:space-between; gap:1rem; padding-block:.85rem; }
.logo{ display:flex; align-items:center; gap:.6rem; flex-shrink:0; }
.logo svg{ width: 44px; height:44px; }
.logo .wordmark{ width: clamp(130px,22vw,190px); height:auto; color:var(--indigo-deep); }
.wordmark .word-top{ font-family: var(--font-label); font-size:9px; letter-spacing:.14em; fill: currentColor; }
.wordmark .word-main{ font-family: var(--font-display); font-size:30px; font-weight:700; fill: currentColor; }
.main-nav{ display:flex; align-items:center; gap:clamp(.9rem,2vw,1.8rem); }
.main-nav a{ font-weight:600; font-size:.95rem; position:relative; padding:.3em 0; }
.main-nav a::after{
  content:""; position:absolute; left:0; right:100%; bottom:0; height:2px; background:var(--ochre);
  transition: right .3s var(--ease);
}
.main-nav a:hover::after, .main-nav a:focus-visible::after, .main-nav a[aria-current="page"]::after{ right:0; }
.header-actions{ display:flex; align-items:center; gap:.8rem; }
.cart-link{ display:flex; align-items:center; gap:.4em; font-weight:700; padding:.5em .9em; border-radius:999px; background:var(--indigo-deep); color:#fff; min-height:44px; }
.cart-count{ display:inline-flex; align-items:center; justify-content:center; min-width:1.5em; height:1.5em; border-radius:50%; background:var(--lemon); color:var(--indigo-deep); font-size:.8rem; font-weight:800; transition: transform .35s var(--ease); }
.cart-count.bump{ animation: bump .4s var(--ease); }
@keyframes bump{ 0%{transform:scale(1);} 35%{transform:scale(1.5) rotate(-8deg);} 100%{transform:scale(1);} }
.nav-toggle{ display:none; }

@media (max-width: 860px){
  .main-nav{
    position:fixed; inset:0 0 0 auto; width:min(320px,86vw); height:100vh; background: var(--indigo-deep);
    flex-direction:column; align-items:flex-start; justify-content:flex-start; gap:1.4rem;
    padding: 6rem 1.6rem 2rem; transform: translateX(100%); visibility:hidden;
    transition: transform .4s var(--ease), visibility .4s;
    overflow-y:auto;
  }
  .main-nav.open{ transform: translateX(0); visibility:visible; }
  .main-nav a{ color:#fff; font-size:1.1rem; }
  .main-nav a::after{ background: var(--lemon); }
  .nav-toggle{
    display:flex; flex-direction:column; gap:5px; width:44px; height:44px; align-items:center; justify-content:center;
    border:1.5px solid var(--indigo-deep); border-radius:50%; background:transparent; cursor:pointer; z-index:110;
  }
  .nav-toggle span{ width:20px; height:2px; background:var(--indigo-deep); transition: transform .3s, opacity .3s; }
  .nav-toggle[aria-expanded="true"] span:nth-child(1){ transform: translateY(7px) rotate(45deg); }
  .nav-toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
  .nav-toggle[aria-expanded="true"] span:nth-child(3){ transform: translateY(-7px) rotate(-45deg); }
  .nav-backdrop{ position:fixed; inset:0; background: rgba(20,31,56,.45); opacity:0; visibility:hidden; transition:opacity .3s, visibility .3s; z-index:99; }
  .nav-backdrop.open{ opacity:1; visibility:visible; }
}

/* ---------- hero (paper layers) ---------- */
.hero{ position:relative; padding-block: clamp(2.5rem,6vw,5rem) clamp(3rem,8vw,6rem); overflow:hidden; }
.hero .container{ display:grid; grid-template-columns: 1.1fr 1fr; gap:2.5rem; align-items:center; }
.hero-eyebrow{ font-family: var(--font-label); letter-spacing:.14em; text-transform:uppercase; font-size:.78rem; color: var(--ochre); display:inline-flex; align-items:center; gap:.5em; margin-bottom:1em; }
.hero h1{ font-size: clamp(2.6rem, 6.5vw, 4.6rem); letter-spacing:-.01em; }
.hero p.lead{ font-size:1.15rem; color: var(--ink-soft); max-width:36ch; }
.hero-actions{ display:flex; gap:1rem; flex-wrap:wrap; margin-top:1.6rem; }
.hero-art{ position:relative; aspect-ratio: 1/1; }
.hero-art svg{ width:100%; height:100%; }
.hero-art .layer{ transition: transform 1.1s var(--ease), opacity 1.1s var(--ease); }
.hero-art.stacked .layer{ opacity:0; }
.hero-art.stacked .layer-sky{ transform: translate(0,-60px); }
.hero-art.stacked .layer-hills{ transform: translate(-70px,20px) rotate(-3deg); }
.hero-art.stacked .layer-lake{ transform: translate(70px,40px) rotate(2deg); }
.hero-art.stacked .layer-boat{ transform: translate(0,90px) scale(.8); }
.hero-art.stacked .layer-sun{ transform: translate(50px,-50px) scale(.7); }
.hero-art .layer{ opacity:1; transform:none; }

/* continuous subtle motion: water shimmer */
.layer-water-shimmer{ animation: shimmer 6s ease-in-out infinite; transform-origin:center; }
@keyframes shimmer{ 0%,100%{ transform: translateY(0); } 50%{ transform: translateY(3px); } }

/* ---------- map composition (home) ---------- */
.map-section{ position:relative; padding-block: clamp(3rem,6vw,5rem); }
.map-canvas{
  position:relative; border-radius: var(--radius-l); background: var(--indigo-deep);
  background-image: radial-gradient(circle at 20% 20%, rgba(255,255,255,.06), transparent 60%);
  padding: clamp(1.5rem,4vw,3rem); min-height: 640px; overflow:hidden;
}
.map-canvas .map-lake{ position:absolute; inset:0; width:100%; height:100%; opacity:.9; }
.map-pins{ position:relative; z-index:2; display:grid; grid-template-columns: repeat(12,1fr); gap:1rem; height:100%; }
.pin-card{
  grid-column: span 4; background: var(--paper); border-radius: var(--radius-m); padding:1.3rem 1.4rem;
  box-shadow: var(--shadow-card); align-self:start; position:relative;
  transition: transform .35s var(--ease), box-shadow .35s var(--ease);
}
.pin-card:hover{ transform: translateY(-6px); box-shadow: 0 26px 46px -22px rgba(20,31,56,.55); }
.pin-card .pin-dot{ position:absolute; top:-10px; left:1.4rem; width:18px; height:18px; border-radius:50%; background:var(--ochre); border:3px solid var(--paper); box-shadow: var(--shadow-soft); }
.pin-card h3{ font-size:1.05rem; margin-bottom:.35em; }
.bg-indigo .pin-card h3{ color: var(--ink); }
.pin-card p{ font-size:.92rem; color: var(--ink-soft); margin-bottom:.6em; }
.pin-1{ grid-row:1; margin-top: 2%; }
.pin-2{ grid-row:1; grid-column: 9 / span 4; margin-top: 24%; }
.pin-3{ grid-row:2; grid-column: 2 / span 4; margin-top: 10%; }
.pin-4{ grid-row:2; grid-column: 7 / span 4; margin-top: 38%; }
@media (max-width: 900px){
  .map-pins{ grid-template-columns: 1fr; }
  .pin-card, .pin-1, .pin-2, .pin-3, .pin-4{ grid-column:auto; grid-row:auto; margin-top:0; }
  .map-canvas{ min-height:auto; }
  .map-pins{ gap:1rem; }
}

/* ---------- dividers ---------- */
.wave-divider{ display:block; width:100%; height:auto; color: var(--azure); }
.wave-divider.flip{ transform: scaleY(-1); }

/* ---------- section basics ---------- */
.section{ padding-block: clamp(3rem,6vw,5.5rem); }
.section-head{ max-width: 56ch; margin-bottom: 2.2rem; }
.section-head .kicker{ font-family: var(--font-label); text-transform:uppercase; letter-spacing:.12em; font-size:.75rem; color: var(--azure); }
.bg-indigo{ background: var(--indigo-deep); color: #fff; }
.bg-indigo h2, .bg-indigo h3{ color:#fff; }
.bg-indigo .section-head p{ color: rgba(255,255,255,.75); }
.bg-paper{ background: var(--paper); }

/* ---------- grid / cards ---------- */
.grid{ display:grid; gap: clamp(1.1rem,2.5vw,1.8rem); }
.grid-3{ grid-template-columns: repeat(3,1fr); }
.grid-2{ grid-template-columns: repeat(2,1fr); }
.grid-4{ grid-template-columns: repeat(4,1fr); }
@media (max-width: 980px){ .grid-4{ grid-template-columns: repeat(2,1fr); } }
@media (max-width: 760px){ .grid-3,.grid-2{ grid-template-columns: 1fr; } }
@media (max-width: 560px){ .grid-4{ grid-template-columns: 1fr; } }

.card{
  background: var(--paper); border-radius: var(--radius-m); overflow:hidden; box-shadow: var(--shadow-soft);
  border:1px solid var(--line); transition: transform .35s var(--ease), box-shadow .35s var(--ease);
  display:flex; flex-direction:column;
}
.card:hover{ transform: translateY(-5px); box-shadow: var(--shadow-card); }
.card-media{ position:relative; aspect-ratio: 4/3; overflow:hidden; background: var(--linen-dark); }
.card-media img{ width:100%; height:100%; object-fit:cover; transition: transform .6s var(--ease); }
.card:hover .card-media img{ transform: scale(1.08); }
.card-body{ padding:1.2rem 1.3rem 1.4rem; display:flex; flex-direction:column; gap:.5rem; flex:1; }
.card-body h3{ font-size:1.08rem; }
.price-tag{ font-family: var(--font-label); font-weight:700; color: var(--ochre); font-size:1rem; }
.card-body .muted{ color: var(--ink-soft); font-size:.9rem; }
.card-foot{ margin-top:auto; display:flex; gap:.6rem; align-items:center; justify-content:space-between; padding-top:.6rem; }

/* ---------- catalog strip ---------- */
.catalog-filters{ display:flex; gap:.6rem; flex-wrap:wrap; margin-bottom:1.8rem; }
.chip{ padding:.5em 1.1em; border-radius:999px; border:1.5px solid var(--indigo-deep); font-size:.85rem; font-weight:600; background:transparent; cursor:pointer; min-height:40px; }
.chip[aria-pressed="true"]{ background: var(--indigo-deep); color:#fff; }
.catalog-grid{ display:grid; grid-template-columns: repeat(3,1fr); gap: 1.6rem; }
@media (max-width: 980px){ .catalog-grid{ grid-template-columns: repeat(2,1fr); } }
@media (max-width: 620px){
  .catalog-grid{
    grid-template-columns: none; grid-auto-flow:column; grid-auto-columns: 78%;
    display:flex; overflow-x:auto; scroll-snap-type: x mandatory; padding-bottom:1rem; margin: 0 -1.1rem; padding-inline:1.1rem;
  }
  .catalog-grid .card{ scroll-snap-align:start; min-width:78%; }
}

/* ---------- product detail ---------- */
.product-detail-grid{ display:grid; grid-template-columns: 1fr 1fr; gap: clamp(1.6rem,4vw,3rem); align-items:start; }
.product-detail-grid .card-media img{ width:100%; height:100%; object-fit:cover; border-radius: var(--radius-m); aspect-ratio: 4/3; }
@media (max-width: 760px){ .product-detail-grid{ grid-template-columns:1fr; } }

/* ---------- navigator (signature feature) ---------- */
.navigator{ background: var(--paper); border-radius: var(--radius-l); padding: clamp(1.6rem,4vw,3rem); box-shadow: var(--shadow-card); position:relative; overflow:hidden; color: var(--ink); }
.navigator-grid{ display:grid; grid-template-columns: 1fr 1fr; gap: 2.2rem; align-items:start; }
@media (max-width: 820px){ .navigator-grid{ grid-template-columns:1fr; } }
.navigator form{ display:grid; gap:1rem; }
.field{ display:grid; gap:.4rem; }
.field label{ font-weight:700; font-size:.88rem; }
.field select, .field input{
  width:100%; padding:.75em .9em; border-radius: var(--radius-s); border:1.5px solid var(--line);
  background: var(--linen); font-size:1rem; min-height:44px; accent-color: var(--ochre);
}
.field-row{ display:grid; grid-template-columns: 1fr 1fr; gap:1rem; }
@media (max-width:480px){ .field-row{ grid-template-columns:1fr; } }
.navigator-result{ background: var(--linen); border-radius: var(--radius-m); padding:1.4rem 1.5rem; border:1.5px dashed var(--ochre); min-height:120px; }
.navigator-result .result-figure{ font-family: var(--font-label); font-size:2.2rem; color: var(--indigo-deep); font-weight:700; }
.navigator-result dl{ display:grid; grid-template-columns: auto 1fr; gap:.3rem 1rem; margin-top:.8rem; font-size:.92rem; }
.navigator-result dt{ color: var(--ink-soft); }
.navigator-result dd{ margin:0; font-weight:600; }
.navigator-note{ font-size:.82rem; color: var(--ink-soft); margin-top:1rem; }

/* ---------- ornaments ---------- */
.ornament{ position:absolute; pointer-events:none; }
.ornament svg{ width:100%; height:100%; display:block; }
.lemon-float{ width:70px; height:70px; top:-20px; right:6%; animation: float 7s ease-in-out infinite; }
@keyframes float{ 0%,100%{ transform: translateY(0) rotate(0deg); } 50%{ transform: translateY(-14px) rotate(8deg); } }
.stripe-banner{ height:14px; width:100%; }

/* ---------- badge/seal ---------- */
.seal{ width:120px; height:120px; color: var(--ochre); }

/* ---------- forms (contact/newsletter/checkout) ---------- */
.form-card{ background: var(--paper); border-radius: var(--radius-m); padding: clamp(1.4rem,4vw,2.4rem); box-shadow: var(--shadow-soft); border:1px solid var(--line); }
form .field + .field{ margin-top: .2rem; }
.form-grid{ display:grid; gap:1rem; }
textarea{ width:100%; padding:.75em .9em; border-radius: var(--radius-s); border:1.5px solid var(--line); background:var(--linen); font: inherit; min-height:120px; resize:vertical; }
.form-error{ color:#9b2c2c; font-size:.85rem; min-height:1.2em; }
.form-success{ background: #e8f3e3; border:1.5px solid #6fa36a; color:#2f5a2b; padding:1rem 1.2rem; border-radius: var(--radius-s); font-weight:600; }
.required-note{ font-size:.82rem; color: var(--ink-soft); }

/* honeypot */
.hp-field{ position:absolute !important; left:-9999px !important; top:-9999px !important; width:1px; height:1px; overflow:hidden; }

/* ---------- cookie banner ---------- */
.cookie-banner{
  position:fixed; left:1rem; right:1rem; bottom:1rem; z-index:150; max-width:640px; margin-inline:auto;
  background: var(--indigo-deep); color:#fff; border-radius: var(--radius-m); padding:1.4rem 1.6rem;
  box-shadow: 0 20px 50px -20px rgba(0,0,0,.5); display:grid; gap:1rem;
  transform: translateY(130%); transition: transform .5s var(--ease); visibility:hidden;
}
.cookie-banner.show{ transform: translateY(0); visibility:visible; }
.cookie-banner p{ margin:0; font-size:.92rem; color: rgba(255,255,255,.88); }
.cookie-banner a{ text-decoration:underline; }
.cookie-actions{ display:flex; gap:.8rem; flex-wrap:wrap; }

/* ---------- cart / booking page ---------- */
.cart-table{ width:100%; border-collapse: collapse; }
.cart-table th{ text-align:left; font-size:.82rem; text-transform:uppercase; letter-spacing:.06em; color: var(--ink-soft); padding-bottom:.6rem; border-bottom:2px solid var(--line); }
.cart-table td{ padding: 1rem 0; border-bottom:1px solid var(--line); vertical-align:middle; }
.cart-item-info{ display:flex; gap:1rem; align-items:center; }
.cart-item-info img{ width:72px; height:72px; object-fit:cover; border-radius: var(--radius-s); flex-shrink:0; }
.qty-input{ width:70px; padding:.4em .5em; border-radius: var(--radius-s); border:1.5px solid var(--line); min-height:40px; }
.cart-summary{ background: var(--linen); border-radius: var(--radius-m); padding:1.5rem; margin-top:1.5rem; display:grid; gap:.6rem; }
.cart-summary .total-row{ display:flex; justify-content:space-between; font-size:1.2rem; font-weight:700; border-top:1.5px solid var(--line); padding-top:.7rem; margin-top:.3rem; }
.cart-empty{ text-align:center; padding: 3rem 1rem; color: var(--ink-soft); }
.remove-btn{ background:none; border:none; color:#9b2c2c; cursor:pointer; font-weight:700; padding:.3em; min-height:30px; }

/* ---------- FAQ ---------- */
.faq-item{ border-bottom:1px solid var(--line); padding: .3rem 0; }
.faq-item summary{ cursor:pointer; font-weight:700; padding:1rem 0; list-style:none; display:flex; justify-content:space-between; gap:1rem; align-items:center; }
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary .icon{ transition: transform .3s var(--ease); flex-shrink:0; }
.faq-item[open] summary .icon{ transform: rotate(45deg); }
.faq-item p{ padding-bottom:1.2rem; color: var(--ink-soft); }

/* ---------- legal pages ---------- */
.legal-page{ max-width: 72ch; }
.legal-page h2{ margin-top:1.8em; font-size:1.3rem; }
.legal-page p, .legal-page li{ color: var(--ink-soft); }
.legal-page ul{ list-style:disc; padding-left:1.3em; margin-bottom:1em; }
.legal-page li{ margin-bottom:.4em; }
.updated-note{ font-family: var(--font-label); font-size:.82rem; color: var(--azure); }

/* ---------- 404 ---------- */
.error-page{ min-height:60vh; display:flex; align-items:center; justify-content:center; text-align:center; padding-block:4rem; }
.error-page .error-figure{ font-family: var(--font-display); font-size: clamp(5rem,16vw,9rem); color: var(--ochre); margin:0; }

/* ---------- footer ---------- */
.site-footer{ background: var(--indigo-deep); color: rgba(255,255,255,.85); padding-top: clamp(3rem,6vw,4.5rem); }
.footer-grid{ display:grid; grid-template-columns: 1.3fr 1fr 1fr 1.2fr; gap: 2.5rem; padding-bottom: 3rem; border-bottom:1px solid rgba(255,255,255,.14); }
@media (max-width: 860px){ .footer-grid{ grid-template-columns: 1fr 1fr; } }
@media (max-width: 500px){ .footer-grid{ grid-template-columns: 1fr; } }
.site-footer h4{ color:#fff; font-size:.85rem; text-transform:uppercase; letter-spacing:.08em; margin-bottom:1rem; font-family: var(--font-label); }
.site-footer ul li{ margin-bottom:.6rem; }
.site-footer a:hover{ text-decoration:underline; }
.footer-brand .wordmark{ width:170px; height:auto; color:#fff; margin-bottom:1rem; }
.footer-brand p{ color: rgba(255,255,255,.65); font-size:.9rem; max-width:30ch; }
.newsletter-form{ display:flex; gap:.6rem; flex-wrap:wrap; }
.newsletter-form input{ flex:1; min-width:160px; padding:.7em .9em; border-radius: var(--radius-s); border:none; min-height:44px; }
.footer-bottom{ display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; padding-block:1.6rem; font-size:.82rem; color: rgba(255,255,255,.6); }

/* ---------- grain overlay ---------- */
.grain-overlay{ position:fixed; inset:0; width:100vw; height:100vh; pointer-events:none; z-index:300; opacity:.05; mix-blend-mode:multiply; }

/* ---------- reveal animations ---------- */
.reveal{ opacity:1; transform:none; }
.reveal.js-armed{ opacity:0; transform: translateY(26px); clip-path: inset(0 0 12% 0); transition: opacity .7s var(--ease), transform .7s var(--ease), clip-path .7s var(--ease); }
.reveal.js-armed.in-view{ opacity:1; transform:none; clip-path: inset(0 0 0 0); }

@media (prefers-reduced-motion: reduce){
  *{ animation-duration: .001s !important; transition-duration: .001s !important; }
  .reveal.js-armed{ opacity:1; transform:none; clip-path:none; }
  html{ scroll-behavior:auto; }
}

@media (max-width: 760px){
  .hero .container{ grid-template-columns: 1fr; }
  .hero-art{ order:-1; max-width:320px; margin-inline:auto; }
  .footer-grid{ padding-bottom:2rem; }
}
