/* Kruh Odorice: page styles. Tokens, tiles, buttons and footer live in base.css. */

main { display: block; }
.motion [data-tpop] { opacity: 0; }
figure { margin: 0; }
section, article { scroll-margin-top: 14px; }
.sec { overflow-x: clip; }
.sec-head { display: grid; gap: 4px; margin-bottom: clamp(26px, 4vw, 52px); }
.sec-head .note { margin: 0; }
.sec-head--dark { color: var(--cream); }
.sec-head--dark .note { color: var(--mustard); }
.band-leaf .sec-head--dark .note { color: var(--cream); }
.note--forest { color: var(--forest); }
.hint { font-weight: 500; font-size: 0.85rem; color: var(--ink-soft); }

.band { position: relative; overflow-x: clip; padding-block: clamp(72px, 10vw, 132px); }
.band-leaf { background: var(--leaf) url("../assets/texture/mottle.png"); color: var(--cream); clip-path: polygon(0 0.9%, 100% 0, 100% 99.2%, 0 100%); }
.band-mustard { background: var(--mustard) url("../assets/texture/mottle.png"); color: var(--forest); clip-path: polygon(0 0, 100% 1%, 100% 100%, 0 99%); }

/* ---------- HERO ---------- */
.hero { position: relative; overflow-x: clip; padding-block: clamp(4px, 2vw, 24px) clamp(52px, 6vw, 92px); }
.hero-grid {
  position: relative; z-index: 2;
  display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  grid-template-areas: "copy art" "idx art";
  grid-template-rows: auto 1fr;
  column-gap: clamp(28px, 5vw, 72px);
  align-items: center; align-content: center;
  min-height: clamp(380px, 54vh, 580px);
}
.hero-copy { grid-area: copy; align-self: end; }
.hero-art { grid-area: art; position: relative; aspect-ratio: 1.3; width: 100%; }
.idx { grid-area: idx; align-self: start; margin-top: clamp(14px, 2vw, 26px); }
.hero-note { margin: 0 0 16px; min-height: 1.2em; }
.hero-title { font-size: clamp(3.2rem, 0.5rem + 9.6vw, 6.9rem); margin: 0 0 clamp(14px, 2vw, 22px); }
.hero-title .l1, .hero-title .l2 { display: block; }
.hero-title .l2 { color: var(--forest); margin-left: 0.14em; }
.hero-lead { max-width: 42ch; margin: 0 0 20px; text-wrap: pretty; }
.hero-print { position: absolute; inset: 0; rotate: 1.8deg; }
.hero-print img { width: 100%; height: 100%; aspect-ratio: auto; }
.hero-seal {
  position: absolute; left: -5%; bottom: -11%; width: clamp(116px, 12vw, 164px); aspect-ratio: 1; border-radius: 50%; rotate: -9deg;
  display: grid; place-content: center; text-align: center; background: var(--clay); color: var(--cream);
  outline: 2px dashed var(--cream); outline-offset: -9px; z-index: 3;
}
.hero-seal b { font-family: var(--font-poster); font-weight: 900; font-size: clamp(2.2rem, 1.4rem + 2vw, 3.2rem); line-height: 0.9; font-variation-settings: "SOFT" 60, "WONK" 1, "opsz" 144; }
.hero-seal span { font-family: var(--font-note); font-weight: 700; font-size: 1.45rem; line-height: 1; }
.hero-seal i { font-style: normal; font-weight: 800; font-size: 0.95rem; line-height: 1.1; }
.hero-stamp { position: absolute; right: 5%; bottom: -16px; background: var(--cream); color: var(--clay); padding: 5px 14px; font-size: 0.9rem; rotate: 3deg; }
.idx-label { margin: 0; font-size: 1.35rem; }
.idx ul { display: flex; flex-wrap: wrap; gap: 0 22px; }
.idx-link { min-height: 44px; font-family: var(--font-note); font-size: 1.6rem; font-weight: 700; line-height: 1; }
.hero .s1 { top: 13%; left: 45%; }
.hero .s2 { right: 0.5%; bottom: 4%; }
.hero .s3 { left: 40%; bottom: 3%; }
.hero .s4 { right: 1%; top: 0; }

/* ---------- OTAZKY ---------- */
.ask-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(28px, 5vw, 80px); align-items: start; }
.ask-print { rotate: -2.2deg; margin-bottom: 22px; }
.ask-cap { max-width: 34ch; font-family: var(--font-note); font-weight: 600; font-size: 1.5rem; line-height: 1.12; color: var(--clay); margin-bottom: 12px; }
.sec-otazky .o1 { right: 1%; top: 3%; }

.faq { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(24px, 5vw, 72px); margin-top: clamp(64px, 8vw, 112px); align-items: start; }
.faq-side { position: sticky; top: 24px; }
.faq-side h3 { font-size: var(--fs-h2); line-height: 1.05; margin-bottom: 8px; }
.faq-note { margin: 0 0 12px; }
.faq-art { width: clamp(72px, 9vw, 110px); rotate: -6deg; }
.faq-list details { border-bottom: 2.5px dashed rgba(30, 58, 40, 0.35); }
.faq-list details:first-child { border-top: 2.5px dashed rgba(30, 58, 40, 0.35); }
.faq-list summary {
  display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 14px; align-items: center; min-height: 68px; padding: 12px 2px;
  cursor: pointer; list-style: none; font-weight: 800; font-size: clamp(1.05rem, 0.95rem + 0.5vw, 1.35rem); line-height: 1.2;
}
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary:hover .q-t { color: var(--clay); }
.q-n { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; background: var(--forest); color: var(--cream); font-family: var(--font-note); font-weight: 700; font-size: 1.6rem; line-height: 1; rotate: -5deg; }
.faq-list details:nth-child(even) .q-n { background: var(--clay); rotate: 5deg; }
.plus { position: relative; width: 38px; height: 38px; border: 2px solid var(--forest); border-radius: 50%; transition: rotate 320ms var(--ease-back), background-color 200ms var(--ease-out); }
.plus::before, .plus::after { content: ""; position: absolute; left: 50%; top: 50%; width: 16px; height: 2.5px; background: var(--forest); translate: -50% -50%; }
.plus::after { rotate: 90deg; transition: rotate 320ms var(--ease-back); }
details[open] .plus { background: var(--mustard); rotate: 180deg; }
details[open] .plus::after { rotate: 0deg; }
.faq-body { padding: 2px 4px 24px 56px; max-width: 64ch; }
.faq-body p { margin-bottom: 10px; }
details[open] .faq-body { animation: faq-in 340ms var(--ease-out); }
@keyframes faq-in { from { opacity: 0; translate: 0 -8px; } to { opacity: 1; translate: 0 0; } }

/* ---------- PAS MALEHO OBJAVITELA ---------- */
.pas-intro p:not(.note) { max-width: 54ch; margin-top: 8px; }
.band-mustard .p1 { right: 3%; top: 4%; }
.band-mustard .p2 { left: 0.5%; bottom: 5%; }
.pass {
  position: relative; max-width: 1120px; margin-inline: auto; padding: clamp(22px, 3.4vw, 48px);
  background: var(--cream); color: var(--forest); border: 2.5px solid var(--forest); border-radius: var(--r-tile); rotate: -0.5deg;
}
.pass::before { content: ""; position: absolute; inset: 8px; border: 2px dashed rgba(30, 58, 40, 0.3); border-radius: 2px; pointer-events: none; }
.pass-head { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr) minmax(220px, 290px); gap: 18px clamp(18px, 3vw, 40px); align-items: end; margin-bottom: 22px; padding-bottom: 20px; border-bottom: 2.5px solid var(--forest); }
.pass-logo { width: 112px; }
.pass-title-wrap .note { margin: 0; font-size: 1.55rem; }
.pass-title-wrap h3 { font-size: clamp(1.6rem, 1.1rem + 2.2vw, 3rem); text-transform: uppercase; color: var(--berry); line-height: 1; font-weight: 800; }
.pass-name label { display: block; font-weight: 700; font-size: 0.9rem; }
.pass-name input { width: 100%; min-height: 46px; padding: 6px 2px; border: 0; border-bottom: 2.5px solid var(--forest); border-radius: 0; background: transparent; color: var(--forest); font: inherit; font-size: 1.2rem; }
.pass-name input:focus { outline: 2.5px solid var(--clay); outline-offset: 2px; background: var(--paper); }

.tasks { position: relative; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(8px, 1.2vw, 14px); }
.task {
  position: relative; width: 100%; height: 100%; min-height: 188px; display: flex; flex-direction: column; justify-content: flex-end; text-align: left;
  padding: 14px; border: 2px solid var(--forest); border-radius: var(--r-tile); background: var(--paper-2); color: var(--forest); cursor: pointer;
  transition: background-color 200ms var(--ease-out), rotate 220ms var(--ease-back);
}
.task:hover { background: var(--paper); translate: 0 -2px; }
.task:active { translate: 0 2px; }
.task-num { position: absolute; left: 12px; top: 8px; font-family: var(--font-note); font-weight: 700; font-size: 1.6rem; line-height: 1; color: var(--clay); }
.task-art { position: absolute; right: 12px; top: 12px; width: 78px; height: 78px; object-fit: contain; transition: opacity 200ms; }
.task-art--mtn { color: var(--soil); }
.task-text { position: relative; z-index: 2; margin-top: 86px; font-weight: 700; font-size: 1rem; line-height: 1.22; }
.seal {
  position: absolute; z-index: 3; right: -8px; top: -10px; width: 62%; aspect-ratio: 1; height: auto; pointer-events: none;
  color: var(--clay); mix-blend-mode: multiply; opacity: 0; scale: 0.4; rotate: var(--rot, 0deg);
  transition: opacity 140ms ease-in, scale 140ms ease-in;
}
.task[aria-pressed="true"] { background: var(--cream); }
.task[aria-pressed="true"] .task-art { opacity: 0.4; }
.task[aria-pressed="true"] .seal { opacity: 0.94; scale: 1; }
.task.is-stamping { animation: thud 300ms ease-out; }
.task.is-stamping .seal { animation: stamp 360ms linear; }
@keyframes stamp {
  0% { opacity: 0; scale: 1.9; rotate: calc(var(--rot, 0deg) - 16deg); animation-timing-function: cubic-bezier(0.55, 0, 1, 0.45); }
  52% { opacity: 1; scale: 0.9; rotate: var(--rot, 0deg); animation-timing-function: cubic-bezier(0.2, 0.8, 0.3, 1); }
  76% { scale: 1.06; }
  100% { opacity: 0.94; scale: 1; rotate: var(--rot, 0deg); }
}
@keyframes thud { 0% { translate: 0 0; } 45% { translate: 0 3px; } 100% { translate: 0 0; } }

.pass-foot { position: relative; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; margin-top: 22px; padding-top: 16px; border-top: 2.5px solid var(--forest); }
.pass-progress { margin: 0; font-weight: 800; font-size: 1.25rem; }
.dots { display: inline-flex; gap: 6px; }
.dots i { width: 18px; height: 18px; border: 2px solid var(--forest); border-radius: 50%; transition: background-color 180ms var(--ease-out), scale 260ms var(--ease-back); }
.dots i.on { background: var(--clay); scale: 1.18; }
.pass.is-full .pass-title-wrap h3 { color: var(--clay); }
.pass.is-full .pass-progress { color: var(--clay); }
.pass-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 12px 32px; margin-top: 32px; }
.reset { border: 0; padding: 0 0 6px; min-height: 44px; background-color: transparent; cursor: pointer; font-size: 1rem; }

/* ---------- ADOPCIA ---------- */
.sec-adopcia .a1 { right: 2%; top: 2%; }
.adopt-top { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); gap: clamp(24px, 4vw, 64px); align-items: center; margin-bottom: clamp(28px, 4vw, 52px); }
.adopt-top .sec-head { margin-bottom: 0; }
.adopt-top .sec-head p:not(.note) { max-width: 46ch; margin-top: 8px; }
.adopt-print { rotate: 3deg; }
.adopt-list { display: grid; gap: clamp(12px, 1.6vw, 18px); }
.adopt { display: grid; grid-template-columns: clamp(76px, 11vw, 140px) minmax(0, 1fr) minmax(210px, 0.46fr); gap: clamp(16px, 3vw, 44px); align-items: center; padding: clamp(18px, 2.6vw, 36px) clamp(20px, 3vw, 44px); }
.adopt:nth-child(2) { margin-left: clamp(0px, 5vw, 72px); }
.adopt:nth-child(3) { margin-right: clamp(0px, 3vw, 44px); }
.adopt-art { width: 100%; }
.adopt h3 { font-size: clamp(1.4rem, 1.1rem + 1.3vw, 2.2rem); line-height: 1.08; margin-bottom: 12px; }
.perks { display: flex; flex-wrap: wrap; gap: 8px; }
.perks li { padding: 3px 12px; border: 1.5px solid currentColor; border-radius: var(--r-pill); font-weight: 700; font-size: 0.9rem; line-height: 1.35; }
.adopt-price { margin: 0 0 8px; font-family: var(--font-poster); font-weight: 900; font-size: clamp(1.8rem, 1.2rem + 1.7vw, 2.9rem); line-height: 1; font-variation-settings: "SOFT" 60, "WONK" 1, "opsz" 144; }
.adopt .link-hand { min-height: 44px; }

/* ---------- MAPA ---------- */
.band-leaf .mp1 { right: 3%; top: 4%; }
.sec-head--dark p:not(.note) { max-width: 54ch; margin-top: 8px; }
.map-honest { font-size: clamp(1.7rem, 1.3rem + 1vw, 2.3rem); line-height: 1.05; margin-top: 6px !important; }
.map-grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(26px, 4vw, 60px); align-items: start; }
.map-frame { padding: 8px; rotate: -0.6deg; }
.map { height: clamp(400px, 46vw, 580px); border-radius: var(--r-tile); background: var(--paper-3); overflow: hidden; }
.map-fallback { padding: 26px; max-width: 40ch; }
.map .leaflet-tile-pane { filter: sepia(0.3) saturate(0.85) contrast(0.97); }
.leaflet-container { font-family: var(--font-hand); background: var(--paper-3); }
.leaflet-bar { border: 2px solid var(--forest) !important; border-radius: var(--r-tile) !important; box-shadow: none !important; }
.leaflet-bar a, .leaflet-bar a:hover { width: 40px !important; height: 40px !important; line-height: 38px !important; background: var(--cream); color: var(--forest); border-bottom-color: var(--forest); font-size: 20px; }
.leaflet-bar a:hover { background: var(--mustard); }
.leaflet-bar a:first-child, .leaflet-bar a:last-child { border-radius: 0 !important; }
.leaflet-popup-content-wrapper { border: 2px solid var(--forest); border-radius: var(--r-tile); box-shadow: none; background: var(--cream); color: var(--forest); font-weight: 700; }
.leaflet-popup-tip { background: var(--cream); box-shadow: none; }
.leaflet-container a.leaflet-popup-close-button { width: 32px; height: 32px; font-size: 22px; line-height: 32px; color: var(--forest); }
.leaflet-control-attribution { background: rgba(251, 245, 232, 0.88) !important; color: var(--forest); font-size: 0.75rem; }
.leaflet-control-attribution a { color: var(--clay); }
.map-dot { width: 40px; height: 40px; border-radius: 50%; border: 3px solid var(--cream); background: var(--clay) url("../assets/art/sun-cream.svg") center / 74% no-repeat; position: relative; }
.map-dot::after { content: ""; position: absolute; inset: -9px; border: 2px solid var(--clay); border-radius: 50%; animation: ping 2.6s ease-out infinite; }
@keyframes ping { 0% { scale: 0.7; opacity: 0.9; } 100% { scale: 1.5; opacity: 0; } }

/* ---------- STAVIAME ---------- */
.sec-staviame { padding-bottom: clamp(88px, 11vw, 150px); }
.sec-staviame .b1 { right: 2%; top: 3%; }
.sec-staviame .b2 { left: 0.5%; bottom: 3%; }
.build-grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(28px, 5vw, 80px); align-items: start; }
.figs { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 20px; }
.figs li { display: flex; flex-direction: column; justify-content: space-between; gap: 14px; min-height: 160px; padding: clamp(18px, 2.4vw, 30px); }
.figs b { font-family: var(--font-poster); font-weight: 900; font-size: clamp(3rem, 1.8rem + 3.6vw, 5.4rem); line-height: 0.9; font-variation-settings: "SOFT" 60, "WONK" 1, "opsz" 144; }
.figs span { font-weight: 800; font-size: 1.2rem; line-height: 1.15; }
.build-note { max-width: 46ch; }
.plan-h { margin: 28px 0 12px; font-family: var(--font-note); font-size: 2.2rem; line-height: 1; font-weight: 700; color: var(--clay); }
.plan { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(8px, 1.2vw, 12px); margin-bottom: 30px; }
.plan li { aspect-ratio: 1 / 1.05; display: flex; flex-direction: column; align-items: flex-start; justify-content: space-between; padding: clamp(12px, 1.4vw, 18px); }
.plan img, .plan .waves { width: 52%; align-self: center; flex: 1; min-height: 0; object-fit: contain; }
.plan .waves { flex: none; height: auto; margin-block: auto; }
.plan span { font-weight: 800; font-size: clamp(0.92rem, 0.8rem + 0.3vw, 1.08rem); line-height: 1.14; }
.build-links { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 30px; }
.build-print { rotate: 2.6deg; position: sticky; top: 28px; }
.build-print img { aspect-ratio: 1969 / 1372; }

/* ---------- forms ---------- */
.ticket {
  position: relative; background: var(--cream); color: var(--forest); border: 2px solid var(--forest);
  padding: clamp(24px, 3.2vw, 40px); border-radius: var(--r-tile); rotate: 0.6deg;
}
.ticket::before { content: ""; position: absolute; inset: 8px; border: 2px dashed rgba(30, 58, 40, 0.28); pointer-events: none; }
.ticket-head h3 { font-size: clamp(1.5rem, 1.1rem + 1vw, 2rem); margin-bottom: 16px; }
.field { display: grid; gap: 6px; margin: 0 0 14px; position: relative; }
.field label { font-weight: 700; font-size: 0.95rem; font-variation-settings: "INFM" 60, "BNCE" 0; }
.field input[type="text"], .field input[type="email"], .field textarea, .field select {
  width: 100%; min-height: 48px; padding: 10px 14px; border: 2px solid var(--forest); border-radius: var(--r-tile);
  background: var(--paper); color: var(--forest); font: inherit; font-size: 1rem;
}
.field textarea { resize: vertical; }
.field input:focus, .field textarea:focus, .field select:focus { outline: 2.5px solid var(--clay); outline-offset: 2px; background: var(--cream); }
.field input[aria-invalid="true"], .field textarea[aria-invalid="true"] { border-color: var(--berry); border-style: dashed; }
.check { display: flex; align-items: flex-start; gap: 12px; min-height: 44px; cursor: pointer; font-size: 0.95rem; line-height: 1.4; font-weight: 600; }
.check input { appearance: none; -webkit-appearance: none; flex: none; display: grid; place-content: center; width: 28px; height: 28px; margin: 0; border: 2px solid currentColor; border-radius: var(--r-tile); background: var(--paper); color: var(--forest); cursor: pointer; }
.check input::after { content: ""; width: 14px; height: 8px; border-left: 3.5px solid var(--cream); border-bottom: 3.5px solid var(--cream); rotate: -45deg; translate: 0 -2px; scale: 0; transition: scale 180ms var(--ease-back); }
.check input:checked { background: var(--clay); border-color: var(--forest); }
.check input:checked::after { scale: 1; }
.check input:focus-visible { outline: 2.5px solid var(--clay); outline-offset: 3px; }
.err { margin: 0; color: var(--berry); font-family: var(--font-note); font-size: 1.35rem; font-weight: 700; line-height: 1.05; }
.err[hidden] { display: none; }
.form-status { margin: 14px 0 0; }
.form-status:not(:empty) {
  padding: 14px 16px 14px 66px; border-radius: var(--r-tile); rotate: -1deg;
  background: var(--mustard) url("../assets/art/sprig-forest.svg") no-repeat 12px 50% / 42px auto;
  color: var(--forest); font-weight: 700; line-height: 1.35;
  animation: status-in 460ms var(--ease-back);
}
@keyframes status-in { from { opacity: 0; scale: 0.8; rotate: -6deg; } to { opacity: 1; scale: 1; rotate: -1deg; } }
.ticket .btn { margin-top: 6px; }

/* ---------- tablet 641 to 960 ---------- */
@media (max-width: 960px) and (min-width: 641px) {
  .hero-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 0.9fr); grid-template-areas: "copy art" "idx idx"; grid-template-rows: auto auto; min-height: 0; }
  .hero-title { font-size: 9vw; }
  .hero .s3 { display: none; }
  .hero .s1 { left: 40%; }
  .hero-art { align-self: center; }
  .ask-grid { grid-template-columns: minmax(0, 1fr); }
  .ask-side { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px 28px; align-items: center; }
  .ask-print { margin: 0; grid-row: span 2; }
  .faq { grid-template-columns: minmax(0, 1fr); }
  .faq-side { position: relative; top: 0; }
  .tasks { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .pass-head { grid-template-columns: auto minmax(0, 1fr); }
  .pass-name { grid-column: 1 / -1; }
  .adopt-top { grid-template-columns: minmax(0, 1fr) minmax(0, 0.7fr); }
  .adopt { grid-template-columns: 90px minmax(0, 1fr); }
  .adopt-buy { grid-column: 2; }
  .map-grid { grid-template-columns: minmax(0, 1fr); }
  .build-grid { grid-template-columns: minmax(0, 1fr); }
  .build-print { position: relative; top: 0; max-width: 560px; }
}

/* ---------- phone ---------- */
@media (max-width: 640px) {
  .hero-grid { grid-template-columns: minmax(0, 1fr); grid-template-areas: "art" "copy" "idx"; grid-template-rows: auto; min-height: 0; }
  .hero-art { aspect-ratio: 1.4; margin: 4px 0 40px; }
  .hero-seal { left: -2%; bottom: -26px; width: 104px; }
  .hero-stamp { right: 3%; }
  .hero-title { font-size: 17.5vw; }
  .hero-btn { width: 100%; justify-content: center; }
  .idx { margin-top: 12px; }
  .idx-link { font-size: 1.5rem; }
  .hero .s1 { top: 395px; left: auto; right: 6%; }
  .hero .s2 { display: none; }

  .ask-grid, .faq, .adopt-top, .map-grid, .build-grid { grid-template-columns: minmax(0, 1fr); }
  .ask-print { margin-bottom: 14px; }
  .faq-side { position: relative; top: 0; }
  .faq-art { position: absolute; right: 0; top: 0; }
  .faq-side { padding-right: 90px; }
  .faq-body { padding-left: 4px; }
  .faq-list summary { gap: 10px; }
  .q-n { width: 36px; height: 36px; font-size: 1.4rem; }

  .tasks { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .task { min-height: 168px; padding: 12px; }
  .task-art { width: 54px; height: 54px; }
  .task-text { margin-top: 62px; font-size: 0.95rem; }
  .pass-head { grid-template-columns: minmax(0, 1fr); }
  .pass-logo { width: 96px; }
  .pass-foot { flex-direction: column; align-items: flex-start; }
  .dots { gap: 5px; }
  .dots i { width: 16px; height: 16px; }
  .pass-actions { flex-direction: column; }
  .pass-actions .btn { width: 100%; justify-content: center; }

  .adopt-print { max-width: 260px; margin-inline: auto; }
  .adopt { grid-template-columns: 70px minmax(0, 1fr); gap: 14px; }
  .adopt:nth-child(2), .adopt:nth-child(3) { margin: 0; }
  .adopt-buy { grid-column: 1 / -1; }
  .map { height: 380px; }
  .ticket .btn, .build-links .btn { width: 100%; justify-content: center; }
  .figs { grid-template-columns: minmax(0, 1fr); }
  .figs li { min-height: 112px; }
  .pass-head { border-bottom-width: 0; padding-bottom: 6px; margin-bottom: 14px; }
  .pass-name input { border-bottom-width: 2.5px; }
  .plan { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .plan li { aspect-ratio: 1 / 0.85; }
  .band-leaf { clip-path: polygon(0 0.5%, 100% 0, 100% 99.6%, 0 100%); }
  .band-mustard { clip-path: polygon(0 0, 100% 0.5%, 100% 100%, 0 99.5%); }
}

/* ---------- print: only the explorer pass ---------- */
@media print {
  @page { margin: 10mm; }
  html, body { background: #fff !important; }
  body::after, .site-header, .mobile-menu, .site-footer, .sticker, .hero, .sec, .pas-intro, .pass-actions { display: none !important; }
  main > section:not(#pas) { display: none !important; }
  #pas { display: block !important; padding: 0 !important; background: none !important; clip-path: none !important; }
  #pas .sticker { display: none !important; }
  .pass { rotate: 0deg; max-width: none; border-color: #000; break-inside: avoid; }
  .task { break-inside: avoid; }
  .tasks { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .pass-name input { border-bottom-color: #000; }
  .seal { mix-blend-mode: normal; opacity: 0.95; }
  * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  [data-pop], [data-pop-group] > *, [data-reveal] .w, .pass { opacity: 1 !important; transform: none !important; }
}
