/*
Theme Name: Kuglófkereső
Author: Dobogó Természetjáró és Hegymászó Egyesület
Description: Egyedi eseményközpontú WordPress sablon a Kuglófkereső oldalhoz.
Version: 1.0.8
Requires at least: 6.4
Requires PHP: 8.0
Text Domain: kuglofkereso
*/
:root{--primary:#6b3453;--secondary:#496044;--accent:#f6d6a8;--dark:#2d2927;--muted:#756d67;--max:1200px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--dark);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.65}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}img{max-width:100%;height:auto}.wrap{width:min(var(--max),calc(100% - 36px));margin:auto}
.site-header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);border-bottom:1px solid rgba(0,0,0,.07)}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:28px;min-height:76px}.brand{display:flex;align-items:center;gap:12px;color:var(--dark);font-weight:900}.brand-mark{width:44px;height:44px;border-radius:14px;background:linear-gradient(145deg,var(--primary),var(--secondary))}.custom-logo{max-height:58px;width:auto}.main-nav ul{display:flex;list-style:none;gap:24px;margin:0;padding:0}.main-nav a{color:var(--dark);font-weight:750}.menu-toggle{display:none;border:0;background:var(--accent);padding:10px 14px;border-radius:12px;font-weight:800}
.hero{position:relative;overflow:hidden;background:linear-gradient(115deg,var(--primary),var(--secondary));color:#fff;min-height:570px;display:grid;align-items:center}.hero-bg{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.42}.hero-grid{position:relative;z-index:2;display:grid;grid-template-columns:1.25fr .75fr;gap:48px;align-items:center;padding:82px 0}.eyebrow,.section-kicker{font-weight:900;text-transform:uppercase;letter-spacing:.14em;font-size:.78rem}.hero h1{font-size:clamp(2.7rem,7vw,5.5rem);line-height:.96;letter-spacing:-.055em;margin:.12em 0 .22em}.hero p{font-size:clamp(1.05rem,2vw,1.3rem);max-width:680px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:13px 22px;font-weight:900;border:2px solid transparent}.btn-light{background:#fff;color:var(--primary)}.btn-ghost{border-color:rgba(255,255,255,.75);color:#fff}.hero-card{background:rgba(255,255,255,.95);color:var(--dark);padding:28px;border-radius:22px;box-shadow:0 16px 40px rgba(20,25,23,.10)}.hero-card .bigdate{font-size:2rem;font-weight:950;color:var(--primary)}.hero-card dl{display:grid;grid-template-columns:auto 1fr;gap:8px 14px}.hero-card dt{font-weight:900}.hero-card dd{margin:0;color:var(--muted)}
.section{padding:76px 0}.soft{background:#faf8f3}.section-kicker{color:var(--primary)}.section-title{font-size:clamp(2rem,4vw,3.25rem);line-height:1.05;letter-spacing:-.04em}.lead{font-size:1.12rem;color:var(--muted);max-width:780px}.card-grid,.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:30px}.info-card,.distance-card,.news-card,.entry-card{background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:22px;padding:24px;box-shadow:0 10px 26px rgba(0,0,0,.05)}.icon{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:var(--accent);font-size:1.2rem;margin-bottom:16px}.distance-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:28px}.distance-card strong{font-size:2rem;color:var(--primary)}.distance-card p,.news-card p{color:var(--muted)}.cta-band{background:linear-gradient(115deg,var(--primary),var(--secondary));color:#fff;border-radius:30px;padding:42px;display:flex;align-items:center;justify-content:space-between;gap:24px}.cta-band h2{font-size:clamp(1.8rem,4vw,3rem);margin:0}.entry-shell{padding:60px 0}.content-wrap{max-width:900px}.entry-card h1{font-size:clamp(2rem,5vw,3.8rem)}.site-footer{background:#1d2321;color:#fff;padding:46px 0 30px;margin-top:60px}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:36px}.site-footer a{color:#fff}.copyright{border-top:1px solid rgba(255,255,255,.15);margin-top:34px;padding-top:20px;color:rgba(255,255,255,.65)}

.theme-stripe{height:6px;background:linear-gradient(90deg,#6b3453,#d89a3c,#496044)}
.hero-card,.info-card,.distance-card,.news-card,.cta-band{border-radius:28px}

@media(max-width:900px){.hero-grid{grid-template-columns:1fr;padding:64px 0}.card-grid,.news-grid{grid-template-columns:1fr 1fr}.distance-grid{grid-template-columns:1fr 1fr}.main-nav{display:none;position:absolute;top:76px;left:0;right:0;background:#fff;padding:18px}.main-nav.open{display:block}.main-nav ul{flex-direction:column}.menu-toggle{display:block}.footer-grid{grid-template-columns:1fr}}
@media(max-width:620px){.card-grid,.news-grid,.distance-grid{grid-template-columns:1fr}.cta-band{flex-direction:column;align-items:flex-start}}


/* === 1.0.1 RESPONSIVE / FLUID LAYOUT PATCH === */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{overflow-x:hidden}
body,p,li,dd,dt,h1,h2,h3,h4,h5,h6,a,button,input,select,textarea,code{overflow-wrap:anywhere;word-break:normal}
.hero,.hero-card,.info-card,.distance-card,.news-card,.entry-card,.cta-band{height:auto;min-height:0}
.wrap{width:min(var(--max),calc(100% - clamp(24px,6vw,48px)))}
body{font-size:clamp(.98rem,.94rem + .18vw,1.08rem)}
.hero h1{font-size:clamp(2.25rem,7vw,5.5rem);max-width:100%}.section-title{font-size:clamp(1.9rem,5vw,3.25rem)}.entry-card h1{font-size:clamp(2rem,6vw,3.8rem)}.hero-card .bigdate{font-size:clamp(1.55rem,4vw,2rem)}
.hero-grid>*,.card-grid>*,.news-grid>*,.distance-grid>*,.footer-grid>*{min-width:0}
.card-grid,.news-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))}.distance-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr))}
input,select,textarea,button{max-width:100%}input[type=text],input[type=email],input[type=tel],input[type=number],input[type=date],input[type=time],input[type=url],select,textarea{width:100%;min-height:44px}
img,svg,video,canvas,iframe,embed,object{max-width:100%}iframe,video{width:100%}
.entry-content table,.wp-block-table table{width:100%}.wp-block-table,.entry-content .table-scroll,.has-tours-table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.hero-actions,.cta-band{flex-wrap:wrap}.btn{white-space:normal;text-align:center;line-height:1.25}
@media(max-width:980px){.hero-grid{grid-template-columns:1fr;gap:28px}.hero-card{width:100%;max-width:700px}.header-inner{min-height:68px}}
@media(max-width:640px){.wrap{width:min(100% - 24px,var(--max))}.hero-grid{padding:48px 0}.hero h1{font-size:clamp(2.1rem,12vw,3.4rem)}.hero-card,.info-card,.distance-card,.news-card,.entry-card{padding:clamp(18px,5vw,24px)}.hero-card dl{grid-template-columns:1fr;gap:2px}.hero-card dd{margin-bottom:12px}.section{padding:52px 0}.cta-band{padding:26px 20px}.btn{width:100%}}
@media(max-width:390px){.wrap{width:calc(100% - 18px)}.site-header .brand span:last-child{font-size:.94rem}.hero h1{font-size:clamp(1.9rem,13vw,2.8rem)}}
@media(max-width:320px){.header-inner{gap:10px}.brand-mark{width:36px;height:36px}.menu-toggle{padding:8px 10px}}


/* === 1.0.2 ACCESSIBILITY PATCH ===
   WCAG 2.1 / EN 301 549-oriented theme layer.
   Content and plugin output must also be accessible for full compliance.
*/

/* Keyboard skip link */
.skip-link {
  position: fixed;
  left: 12px;
  top: 12px;
  z-index: 10000;
  padding: 12px 16px;
  background: #fff;
  color: #111;
  border: 3px solid currentColor;
  border-radius: 8px;
  font-weight: 800;
  transform: translateY(-180%);
}
.skip-link:focus {
  transform: translateY(0);
}

/* Strong, visible keyboard focus. Never remove outlines. */
:focus {
  outline: 3px solid #111;
  outline-offset: 3px;
}
:focus:not(:focus-visible) {
  outline: none;
}
:focus-visible {
  outline: 3px solid #111;
  outline-offset: 3px;
}
.site-header :focus-visible,
.hero :focus-visible,
.site-footer :focus-visible {
  outline-color: #fff;
}

/* Links in running text are not identifiable by color alone. */
.entry-content a,
.news-card p a,
.site-footer a {
  text-decoration: underline;
  text-decoration-thickness: .12em;
  text-underline-offset: .18em;
}
.main-nav a,
.brand,
.btn {
  text-decoration: none;
}
.main-nav a:hover,
.main-nav a:focus-visible,
.btn:hover,
.btn:focus-visible {
  text-decoration: underline;
  text-underline-offset: .18em;
}

/* Current menu item has a non-color indicator. */
.main-nav .current-menu-item > a,
.main-nav .current_page_item > a,
.main-nav .current-menu-ancestor > a {
  text-decoration: underline;
  text-decoration-thickness: .18em;
  text-underline-offset: .28em;
}

/* Minimum pointer target size */
.menu-toggle,
.btn,
.main-nav a,
input,
select,
textarea,
button {
  min-height: 44px;
}
.main-nav a {
  display: inline-flex;
  align-items: center;
  padding-block: 8px;
}

/* Form legibility and error readability */
label {
  font-weight: 700;
}
input,
select,
textarea,
button {
  font: inherit;
}
input,
select,
textarea {
  border: 2px solid #6b6b6b;
  border-radius: 8px;
  background: #fff;
  color: #111;
}
input:focus,
select:focus,
textarea:focus {
  border-color: #111;
}
::placeholder {
  color: #626262;
  opacity: 1;
}

/* Do not encode status using only color. */
.notice,
.error,
.success,
.warning {
  border-left-width: 5px;
  border-left-style: solid;
}

/* Text selection remains visible. */
::selection {
  background: #111;
  color: #fff;
}

/* Tables: clear headers and local horizontal scrolling on narrow screens. */
.entry-content table {
  border-collapse: collapse;
}
.entry-content th,
.entry-content td {
  border: 1px solid #777;
  padding: .7rem .8rem;
  text-align: left;
  vertical-align: top;
}
.entry-content th {
  font-weight: 800;
}

/* Reduced motion preference */
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto !important;
  }
  *,
  *::before,
  *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
  }
}

/* High-contrast / forced-colors support */
@media (forced-colors: active) {
  .btn,
  .hero-card,
  .info-card,
  .distance-card,
  .news-card,
  .entry-card,
  .cta-band,
  input,
  select,
  textarea,
  button {
    border: 1px solid CanvasText;
  }
}

/* Large text / zoom resilience */
@media (max-width: 700px) {
  .main-nav a {
    width: 100%;
    padding: 12px 4px;
  }
}


/* === 1.0.3 TOLNA-LIKE EVENT LAYOUT === */
:root {
  --primary:#6b3453;
  --secondary:#496044;
  --accent:#f6d6a8;
}

.site-header {
  box-shadow: 0 1px 0 rgba(0,0,0,.08);
}

.hero {
  min-height: 620px;
  background:
    linear-gradient(115deg, color-mix(in srgb, var(--primary) 92%, #111 8%), color-mix(in srgb, var(--secondary) 88%, #111 12%));
}

.hero-grid {
  grid-template-columns: minmax(0, 1.2fr) minmax(280px, .8fr);
}

.hero-meta {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  margin-top:34px;
}

.hero-meta-item {
  border-top:1px solid rgba(255,255,255,.45);
  padding-top:12px;
}

.hero-meta-item span {
  display:block;
  font-size:.77rem;
  text-transform:uppercase;
  letter-spacing:.1em;
  opacity:.82;
  font-weight:800;
}

.hero-meta-item strong {
  display:block;
  margin-top:3px;
  font-size:1.05rem;
}

.countdown {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:8px;
  margin-top:24px;
}

.countdown-box {
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.28);
  border-radius:14px;
  padding:14px 10px;
  text-align:center;
}

.countdown-box strong {
  font-size:1.55rem;
  display:block;
}

.about-grid {
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);
  gap:40px;
  align-items:center;
}

.about-visual {
  aspect-ratio:4/3;
  border-radius:28px;
  background:
    linear-gradient(135deg, color-mix(in srgb,var(--primary) 18%,#fff 82%), color-mix(in srgb,var(--secondary) 22%,#fff 78%));
  display:grid;
  place-items:center;
  overflow:hidden;
  border:1px solid rgba(0,0,0,.07);
}

.about-visual::before {
  content:"";
  width:68%;
  aspect-ratio:1;
  border:18px solid color-mix(in srgb,var(--primary) 78%,#fff 22%);
  border-right-color:color-mix(in srgb,var(--secondary) 78%,#fff 22%);
  border-radius:50%;
  opacity:.9;
}

.about-stat {
  font-size:clamp(2.4rem,7vw,5.4rem);
  line-height:.92;
  font-weight:950;
  letter-spacing:-.06em;
  color:var(--primary);
}

.route-tabs {
  display:flex;
  gap:8px;
  overflow-x:auto;
  padding-bottom:8px;
  scrollbar-width:thin;
}

.route-tab {
  flex:0 0 auto;
  border:1px solid rgba(0,0,0,.14);
  border-radius:999px;
  padding:10px 16px;
  background:#fff;
  font-weight:800;
}

.route-map {
  margin-top:18px;
  min-height:360px;
  border-radius:24px;
  background:
    repeating-linear-gradient(45deg,#f5f5f5,#f5f5f5 14px,#ededed 14px,#ededed 28px);
  display:grid;
  place-items:center;
  border:1px solid rgba(0,0,0,.08);
  color:var(--muted);
  text-align:center;
  padding:24px;
}

.faq {
  border-top:1px solid rgba(0,0,0,.12);
}

.faq details {
  border-bottom:1px solid rgba(0,0,0,.12);
  padding:18px 0;
}

.faq summary {
  cursor:pointer;
  font-weight:900;
  list-style:none;
  padding-right:36px;
  position:relative;
}

.faq summary::-webkit-details-marker { display:none; }

.faq summary::after {
  content:"+";
  position:absolute;
  right:0;
  top:-3px;
  font-size:1.5rem;
}

.faq details[open] summary::after {
  content:"–";
}

.faq p {
  max-width:780px;
  color:var(--muted);
}

.final-cta {
  background:linear-gradient(120deg,var(--primary),var(--secondary));
  color:#fff;
  border-radius:30px;
  padding:clamp(28px,5vw,54px);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  flex-wrap:wrap;
}

.final-cta h2 {
  margin:.1em 0;
  font-size:clamp(2rem,5vw,3.8rem);
  line-height:1;
}

@media(max-width:900px) {
  .about-grid {
    grid-template-columns:1fr;
  }
  .hero-meta {
    grid-template-columns:1fr;
  }
}

@media(max-width:640px) {
  .hero {
    min-height:auto;
  }
  .countdown {
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .countdown-box strong {
    font-size:1.2rem;
  }
}

.distance-card dl{display:grid;gap:.4rem;margin:1rem 0}.distance-card dl div{display:flex;justify-content:space-between;gap:1rem}.distance-card dt{font-weight:800}.distance-card dd{margin:0}.route-card-text{color:var(--muted)}.route-min-speed{padding:.7rem .8rem;background:rgba(0,0,0,.045);border-radius:10px}.route-register{display:inline-block;margin-top:.5rem;font-weight:900}

.organizer-table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.organizer-table{width:100%;border-collapse:collapse;margin-top:24px;background:#fff}
.organizer-table th,.organizer-table td{padding:16px 18px;border-bottom:1px solid rgba(0,0,0,.12);text-align:left;vertical-align:top}
.organizer-table thead th{background:var(--primary);color:#fff}
.organizer-table tbody th{font-weight:900}
@media(max-width:620px){.organizer-table th,.organizer-table td{padding:12px 10px}}


.organizer-page .content-wrap{max-width:1200px}
.organizer-intro{max-width:1000px;color:var(--muted,#555)}
.timeline-card{margin-top:28px;border:1px solid rgba(0,0,0,.12);border-radius:16px;background:#fff;padding:20px;overflow:hidden}
.timeline-grid{display:grid;grid-template-columns:minmax(74px,110px) minmax(620px,1fr);row-gap:14px;align-items:center;min-width:760px}
.timeline-axis-label{height:54px}
.timeline-axis{position:relative;height:54px;border-bottom:1px solid rgba(0,0,0,.12)}
.timeline-tick{position:absolute;top:0;bottom:-220px;width:1px;background:rgba(0,0,0,.12)}
.timeline-hour{position:absolute;bottom:-24px;transform:translateX(-50%);font-size:.78rem;color:#6b6b6b;white-space:nowrap}
.timeline-route-label{font-weight:700;padding-right:14px}
.timeline-row{position:relative;height:20px}
.timeline-full{position:absolute;top:2px;height:16px;background:#e8efe7;border:1px solid #2f5d3a;border-radius:2px}
.timeline-start{position:absolute;top:2px;height:16px;background:#2f5d3a;border:1px solid #2f5d3a;border-radius:2px}
.sun-line{position:absolute;top:-4px;bottom:-220px;border-left:2px dashed #bb7a12;z-index:4}
.sun-line.sunrise{border-left-color:#d8a335}
.sun-line.sunset{border-left-color:#b86b00}
.sun-label{position:absolute;top:-20px;transform:translateX(-50%);font-size:.73rem;font-weight:700;white-space:nowrap;color:#7b5400;background:#fff;padding:1px 4px}
.timeline-legend{display:flex;flex-wrap:wrap;gap:20px;margin-top:42px;font-size:.9rem}
.timeline-legend span{display:inline-flex;align-items:center;gap:7px}
.timeline-legend i{display:inline-block;width:22px;height:10px;border-radius:2px}
.legend-start{background:#2f5d3a}
.legend-full{background:#e8efe7;border:1px solid #2f5d3a}
.legend-sun{width:2px!important;height:14px!important;border-left:2px dashed #bb7a12;border-radius:0!important}
.legend-sun.sunrise{border-left-color:#d8a335}
.legend-sun.sunset{border-left-color:#b86b00}
@media(max-width:860px){.timeline-card{overflow-x:auto}.timeline-grid{min-width:820px}}


/* Optional sponsor strip */
.sponsor-strip{
  padding:38px 0 42px;
  background:#fff;
  border-top:1px solid rgba(0,0,0,.08);
  border-bottom:1px solid rgba(0,0,0,.08);
}
.sponsor-strip-head{
  text-align:center;
  margin-bottom:24px;
}
.sponsor-strip-kicker{
  margin:0 0 4px;
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--muted,#6b716e);
}
.sponsor-strip h2{
  margin:0;
  font-size:clamp(1.45rem,2.7vw,2rem);
}
.sponsor-logo-grid{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:22px 34px;
}
.sponsor-logo-item{
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:280px;
  min-height:164px;
  padding:10px 14px;
}
.sponsor-logo-item a{
  display:flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
}
.sponsor-logo{
  display:block;
  width:auto;
  max-width:380px;
  max-height:164px;
  object-fit:contain;
  filter:none;
}
.sponsor-logo-item a:hover .sponsor-logo,
.sponsor-logo-item a:focus .sponsor-logo{
  transform:scale(1.035);
}
.sponsor-logo{
  transition:transform .16s ease;
}
@media(max-width:640px){
  .sponsor-strip{padding:30px 0 34px}
  .sponsor-logo-grid{gap:16px 20px}
  .sponsor-logo-item{min-width:240px;min-height:136px;padding:8px 10px}
  .sponsor-logo{max-width:300px;max-height:68px}
}

/* 1.0.7 – partner strip */
.sponsor-strip-kicker{display:none!important}


/* === Responsive + accessibility hardening === */
html{scroll-padding-top:88px}
img,svg,video,canvas,iframe{max-width:100%}
.wrap,
.header-inner,
.hero-grid,
.about-grid,
.distance-grid,
.routes-grid,
.route-detail-layout,
.route-mode-grid,
.final-card,
.final-cta,
.sponsor-logo-grid{
  min-width:0;
}
.hero-grid>*,
.about-grid>*,
.distance-grid>*,
.routes-grid>*,
.route-detail-layout>*,
.route-mode-grid>*,
.final-card>*,
.final-cta>*{
  min-width:0;
}

/* Prevent card collisions at tablet widths. */
.distance-grid,
.routes-grid,
.route-mode-grid{
  grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))!important;
  align-items:stretch;
}
.distance-card,
.route-card,
.route-mode-card,
.hero-card,
.info-card,
.news-card,
.entry-card,
.route-side-card{
  min-width:0;
  max-width:100%;
  overflow-wrap:break-word;
}

/* Controls keep a readable single-line label and shrink before wrapping. */
.button,
.btn,
.outline-button,
.route-tab,
.route-map-tab,
.menu-toggle,
.route-detail-link,
.route-register-link{
  min-height:44px;
  max-width:100%;
  font-size:clamp(.76rem,2.7vw,.95rem);
  line-height:1.1;
}
.button,
.btn,
.outline-button,
.route-detail-link,
.route-register-link{
  white-space:nowrap;
}

/* Headings shrink fluidly on small screens instead of breaking too early. */
.hero h1,
.route-detail-hero h1{
  font-size:clamp(1.7rem,7vw,4.9rem)!important;
  line-height:1.02;
}
.section-title,
.section-head h2,
.map-section-head h2,
.route-detail-section h2{
  font-size:clamp(1.45rem,5.3vw,3rem);
  line-height:1.08;
}

/* Long route tabs stay on one line and scroll horizontally rather than overlap. */
.route-tabs,
.route-map-tabs{
  display:flex;
  gap:8px;
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:thin;
  padding-bottom:5px;
}
.route-tab,
.route-map-tab{
  flex:0 0 auto;
  white-space:nowrap;
}

/* Flex rows may wrap instead of covering neighboring content. */
.hero-actions,
.route-map-actions,
.perczel-map-meta,
.download-actions,
.footer-legal{
  flex-wrap:wrap;
}

/* Accessible keyboard focus. */
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{
  outline:3px solid #0b6fd3!important;
  outline-offset:3px!important;
  box-shadow:none!important;
}
.sponsor-logo-item a{
  border-radius:8px;
}
.sponsor-logo-item a:focus-visible{
  outline:3px solid #0b6fd3!important;
  outline-offset:5px!important;
}

/* Skip link. */
.skip-link{
  position:fixed;
  left:12px;
  top:12px;
  z-index:99999;
  transform:translateY(-160%);
  padding:10px 14px;
  background:#111;
  color:#fff!important;
  border-radius:6px;
  font-weight:700;
  text-decoration:none;
}
.skip-link:focus{
  transform:translateY(0);
}

/* Touch targets and form readability. */
input,
select,
textarea,
button{
  font:inherit;
}
input,
select,
textarea{
  max-width:100%;
}
.menu-toggle{
  min-width:44px;
  min-height:44px;
}

/* Keep sponsor logos large, but never wider than the viewport. */
.sponsor-logo-item{
  width:min(100%,420px);
  min-width:0!important;
  min-height:150px;
}
.sponsor-logo{
  max-width:min(380px,88vw)!important;
  max-height:164px!important;
}

/* Inherently wide data structures may scroll; normal page content must not. */
.route-checkpoints-table-wrap,
.timeline-card,
.chart,
.organizer-table-wrap{
  max-width:100%;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}

/* Respect user motion preferences. */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}
  *,
  *::before,
  *::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
    scroll-behavior:auto!important;
  }
}

/* Better forced-colors/high-contrast behavior. */
@media (forced-colors:active){
  .button,.btn,.outline-button,.route-tab,.route-map-tab{
    border:1px solid ButtonText;
  }
  .route-tab.active,.route-map-tab.active{
    outline:2px solid Highlight;
  }
}

/* Tablet */
@media (max-width:900px){
  .hero-grid,
  .about-grid,
  .route-detail-layout,
  .final-card,
  .final-cta{
    grid-template-columns:1fr!important;
  }
  .hero-card,
  .route-detail-sidebar{
    width:100%;
    max-width:none;
  }
  .sponsor-logo-grid{
    gap:14px 18px;
  }
}

/* Phone */
@media (max-width:640px){
  .wrap{
    width:min(100% - 24px,var(--max,1200px))!important;
  }
  .section{
    padding-left:0;
    padding-right:0;
  }
  .hero-actions,
  .route-map-actions,
  .download-actions{
    gap:8px;
  }
  .hero-actions .button,
  .hero-actions .btn,
  .route-map-actions .button,
  .route-map-actions .outline-button,
  .download-actions .button,
  .download-actions .outline-button{
    width:auto!important;
    flex:0 1 auto;
  }
  .hero-meta,
  .fact-row,
  .route-detail-summary{
    grid-template-columns:repeat(auto-fit,minmax(min(100%,120px),1fr))!important;
  }
  .distance-card,
  .route-card,
  .route-detail-panel,
  .route-detail-side,
  .route-side-card,
  .content-page article{
    padding-left:clamp(14px,4vw,22px)!important;
    padding-right:clamp(14px,4vw,22px)!important;
  }
  .brand,
  .brand span,
  .brand strong,
  .brand small{
    min-width:0;
  }
  .brand{
    max-width:calc(100vw - 110px);
  }
  .brand span{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .sponsor-logo-item{
    min-height:126px;
    padding:8px;
  }
  .sponsor-logo{
    max-width:min(300px,86vw)!important;
    max-height:136px!important;
  }
}

/* Very narrow phones: reduce labels further rather than splitting them. */
@media (max-width:380px){
  .button,
  .btn,
  .outline-button,
  .route-tab,
  .route-map-tab,
  .route-detail-link,
  .route-register-link{
    font-size:.72rem;
    padding-left:.7rem!important;
    padding-right:.7rem!important;
  }
  .hero h1,
  .route-detail-hero h1{
    font-size:clamp(1.45rem,7.4vw,2rem)!important;
  }
}


body{overflow-x:hidden}
@media(max-width:640px){
  .hero-meta{gap:8px}
}

/* responsive/a11y release 1.0.8 */
