/* Shared enhancements. The source visual palette, card layouts and backgrounds are retained. */
html { scroll-behavior: smooth; }
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; min-width: 0; overflow-x: clip; }
img { max-width: 100%; height: auto; }
a, a:visited {  text-decoration: none; }
a:hover { color: var(--color-primary); }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible, summary:focus-visible { outline: 3px solid var(--color-accent); outline-offset: 3px; }
a:active { opacity: .85; }
.site-skip-link { position:fixed; inset: -80px auto auto 1rem; z-index:100000; background:var(--color-primary);color:#fff;padding:.75rem 1rem;border-radius:0 0 8px 8px; }
.site-skip-link:focus { top:0; }
.site-main { display:block; min-width:0; }
/* Header refreshed in the existing visual system */
navigation-wrapper { display:block; position:sticky; top:0; z-index:9500; width:100%; }
.navigation-container1 { width:100%; }
.navigation-section { width:100%; position:relative; background:var(--color-surface); }
.navigation-bar { width:100%; min-height:82px; max-width:1600px; margin:0 auto; padding:1rem clamp(1rem,3vw,3rem); gap:1.5rem; }
.navigation-brand-block { flex:0 0 auto; }
.navigation-logo-link { display:inline-flex; align-items:center; color:var(--color-primary); text-decoration:none; }
.logo-mark { display:flex; gap:.72rem; align-items:center; }
.logo-icon { width:32px; height:32px; flex:none; }
.logo-text-stack {display:flex;flex-direction:column;line-height:1.25;}
.logo-brand-name { font-family:var(--font-family-heading); font-size:clamp(1.15rem,1.5vw,1.42rem); font-weight:700; }
.logo-tagline {font-family:var(--font-family-body); font-size:.67rem; font-weight:500; letter-spacing:.02em;color:var(--color-on-surface-secondary);}
.navigation-desktop-links { flex-wrap:nowrap; justify-content:center; gap:clamp(.55rem,1.3vw,1.45rem); }
.navigation-link { font-size:.77rem; letter-spacing:.025em; font-weight:600; padding:.5rem 0; }
.navigation-link[aria-current="page"] { color:var(--color-primary); }
.navigation-link[aria-current="page"]::after {width:100%;}
.navigation-actions {gap:.35rem;}
.navigation-cta { white-space:nowrap; }
.navigation-hamburger { min-width:44px; min-height:44px; }
.navigation-mobile-overlay[hidden] { display:none!important; }
.navigation-mobile-overlay:not([hidden]) { display:flex!important; }
.navigation-mobile-overlay {position:fixed; inset:0; width:100%; height:100dvh; min-height:100vh; overscroll-behavior:contain; overflow-y:auto; padding:1.5rem clamp(1rem,5vw,2rem); z-index:9999; background:var(--color-surface); }
.navigation-overlay-header { margin-bottom:2rem; }
.navigation-overlay-links {gap:1rem;}
.navigation-overlay-link:hover {border-color:var(--color-accent);}
body.site-menu-open { overflow:hidden; }
@media (max-width: 1199px) {
 .navigation-desktop-links {display:none!important;}
 .navigation-hamburger {display:inline-flex!important;}
 .navigation-actions .navigation-cta:not(.navigation-overlay-cta) {display:none!important;}
 .navigation-bar { min-height:68px; padding:.75rem 1.25rem; }
}
@media (min-width:1200px) { .navigation-hamburger {display:none!important;} }
@media (max-width:767px) {
 .navigation-bar {min-height:62px; padding:.6rem 1rem;}
 .logo-brand-name {font-size:1.14rem;}
 .logo-icon {width:28px;height:28px;}
 .hero-title,.section-title,.hero-section {overflow-wrap:anywhere;word-break:break-word;white-space:normal;}
 .site-legal-grid {grid-template-columns:1fr!important;}
 .legal-main {padding:clamp(2rem,5vw,3rem) 1rem!important;}
 .legal-content {padding:0!important;}
 .legal-content h1 {font-size:clamp(2.2rem,9vw,3.5rem)!important;}
 .legal-section h2 {font-size:clamp(1.3rem,5vw,1.8rem)!important;}
 .site-legal-block {padding:1.25rem!important;}
 .footer-lower-bar {flex-wrap:wrap;}
 .footer-nav-list {flex-wrap:wrap;}
 .plain-contact-text {overflow-wrap:anywhere;}
}
/* Publisher/contact information follows the original footer's layout and palette */
.site-legal-block {width:100%; padding:1.5rem 1.75rem;border:1px solid color-mix(in srgb,var(--color-neutral) 33%,transparent);border-radius:var(--border-radius-md);background:color-mix(in srgb,var(--color-surface) 92%,var(--color-primary) 8%);color:var(--color-on-surface);}
.site-legal-block-title {font-family:var(--font-family-heading);font-size:1.2rem;font-weight:700;margin-bottom:1rem;color:var(--color-primary);}
.site-legal-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem 2rem;}
.site-legal-grid p {display:flex;min-width:0;flex-direction:column;gap:.15rem;font-size:.89rem;line-height:1.5;margin:0;overflow-wrap:anywhere;}
.site-legal-grid p strong {color:var(--color-primary);font-size:.75rem;letter-spacing:.07em;text-transform:uppercase;}
.footer-lower-bar {display:flex;flex-wrap:wrap;align-items:flex-start;gap:1.25rem;}
.footer-lower-bar .site-legal-block {flex:1 1 100%;}
.site-legal-nav {display:flex;gap:.65rem 1.4rem;flex-wrap:wrap;align-items:center;}
.site-legal-nav a,.site-legal-nav a:visited {text-decoration:none;color:inherit;}
.site-legal-nav a:hover,.site-legal-nav a:focus {color:var(--color-accent);}
.plain-contact-text {color:inherit;}
/* Complete legal pages share the same outer header/footer, font stack and colour variables */
.legal-main {background:var(--color-surface);padding:clamp(2.5rem,5vw,5rem) clamp(1rem,3vw,2rem);width:100%;}
.legal-content {margin:0 auto;max-width:980px;color:var(--color-on-surface);font-family:var(--font-family-body);}
.legal-eyebrow {font-size:.77rem;letter-spacing:.14em;color:var(--color-primary);text-transform:uppercase;font-weight:700;margin-bottom:1rem;}
.legal-content h1 {font-family:var(--font-family-heading);font-size:clamp(2.5rem,4vw,4.25rem);line-height:1.13;color:var(--color-primary);margin:0 0 1rem;}
.legal-summary {font-size:clamp(1rem,1.4vw,1.2rem);line-height:1.7;color:var(--color-on-surface-secondary);margin:0 0 1rem;}
.legal-date {margin-bottom:2rem;font-size:.85rem;color:var(--color-on-surface-secondary);}
.legal-content>.site-legal-block {margin:0 0 2rem;}
.legal-section {padding:1.5rem 0;border-top:1px solid color-mix(in srgb,var(--color-neutral) 30%,transparent);}
.legal-section h2 {font-family:var(--font-family-heading);color:var(--color-primary);font-weight:700;line-height:1.25;font-size:clamp(1.45rem,2.2vw,2rem);margin:0 0 .8rem;}
.legal-section p {font-size:1rem;line-height:1.85;color:var(--color-on-surface-secondary);margin:0;overflow-wrap:anywhere;}
.legal-back {display:inline-flex;margin:1.4rem 0 2.5rem;background:var(--color-primary);color:var(--color-on-primary)!important;border-radius:100px;padding:.9rem 1.5rem;font-weight:600;}
.legal-back:hover {background:var(--color-secondary);color:#fff!important;}
.site-404 {min-height:55vh;display:flex;align-items:center;}
.form-help-note {font-size:.85rem;color:var(--color-on-surface-secondary);line-height:1.55;margin:.7rem 0;}
.form-status {font-size:.9rem;color:var(--color-primary);margin:.6rem 0;}
/* Capped images: retain intentional cover artwork where needed. */
.editorial-hero-bg img,.editorial-hero-card-media img,.featured-destinations-card img,.journal-card-media img,.countryside-escapes-card img {width:100%;height:100%;object-fit:cover;}

/* Overflow corrections verified at 1440px and 320px. */
.travel-info-contact-split {min-width:0;grid-template-columns:repeat(2,minmax(0,1fr));}
.travel-info-contact-split > *, .travel-info-contact-image-wrap {min-width:0;width:100%;max-width:100%;}
.travel-info-contact-image-wrap img {width:100%;height:100%;object-fit:cover;}
.about-us-btn,.practical-travel-info-btn {max-width:100%;width:auto;white-space:normal;overflow-wrap:anywhere;text-align:center;}
.rail-text-block {min-width:0;max-width:100%;}
.rail-card-title,.rail-sub {min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere;}
@media (max-width: 767px) {
 .travel-info-contact-split {grid-template-columns:minmax(0,1fr);}
 .about-us-btn,.practical-travel-info-btn {max-width:100%;min-width:0;flex-shrink:1;padding-inline:clamp(.5rem,4vw,1.3rem);}
 .rail-text-block {flex:1 1 auto;}
 .rail-thumb-box {flex:0 0 3.7rem;max-width:3.7rem;}
 .about-us-rail-card,.rail-card,.travel-info-feature-actions,.travel-info-sustainable-actions,.travel-info-header-actions {min-width:0;max-width:100%;flex-wrap:wrap;}
}
@media (max-width: 359px) {
 .about-us-btn,.practical-travel-info-btn {font-size:.79rem;letter-spacing:0;padding-inline:.65rem;line-height:1.3;min-height:44px;}
}
@media (min-width:768px) {
 .editorial-hero-card-btn {max-width:100%;padding:.7rem 1rem;white-space:normal;font-size:.75rem;line-height:1.3;}
}
