/* Shared improvements: clear type, compact planning surface and visible keyboard states. */
:root { --body-font: system-ui, -apple-system, "Segoe UI", sans-serif; --heading-font: Georgia, "Times New Roman", serif; }
body { font-family:var(--body-font); }
[hidden] { display:none !important; }
button,input,select,textarea { font:inherit; }
button,a,input,select,textarea,summary { touch-action:manipulation; }
:focus-visible { outline:3px solid #245cd5; outline-offset:4px; }
input:focus-visible,textarea:focus-visible,select:focus-visible { outline-offset:2px; }
.site-header { gap:20px; padding:16px max(4vw,24px); flex-wrap:wrap; }
.brand { white-space:normal; font-size:1.25rem; }
.brand em,.hero h1 i,.section-heading h2 i,h2 i,.park-card h3 { font-family:var(--heading-font); }
.site-header nav { flex-wrap:wrap; gap:18px; }
.site-header nav a { font-size:.95rem; min-height:32px; align-content:center; }
.header-action { display:none; }
.hero { min-height:0; padding:48px max(5.4vw,24px) 72px; gap:40px; grid-template-columns:1.3fr .7fr; }
.hero h1 { font-size:clamp(2.6rem,4.6vw,4.3rem); line-height:1.08; letter-spacing:-.045em; }
.hero .lede { font-size:1.1rem; margin:20px 0; max-width:650px; }
.hero-panel { align-self:center; padding:26px; }
.hero-panel h2 { font-family:var(--body-font); font-size:1.65rem; line-height:1.2; margin:14px 0 20px; }
.hero-panel li,.panel-kicker { font-size:.9rem; }
.hero-stamp { bottom:18px; transform:none; font: .875rem/1.5 var(--body-font); letter-spacing:0; }
.hero-stamp small { font-size:.875rem; }
.notice { background:#edf1e8; padding:20px max(5.4vw,24px); }
.notice p,.notice a { font-size:.95rem; }
.finder { padding-top:44px; padding-bottom:64px; }
.section-heading { margin-bottom:26px; }
.section-heading h2 { font-size:clamp(2.2rem,4vw,3.5rem); line-height:1.1; }
.eyebrow,.result-count { font-family:var(--body-font); font-size:.875rem; letter-spacing:.065em; }
.filters { flex-wrap:wrap; align-items:end; gap:16px; }
.search-label { min-width:200px; max-width:none; }
.search-label input { min-height:48px; }
.country-control { display:grid; gap:3px; font-size:.875rem; }
.country-control select { min-height:46px; border:1px solid var(--line); background:white; padding:8px; max-width:100%; }
.filter-buttons { flex-basis:100%; justify-content:flex-start; }
.filter { font-family:var(--body-font); font-size:.9rem; min-height:44px; border-radius:3px; }
.filter.is-active { background:var(--ink); color:white; }
.finder-context { display:flex; align-items:center; gap:20px; justify-content:space-between; margin:15px 0; }
.finder-context p { max-width:760px; color:var(--soft-ink); font-size:.95rem; }
.finder-context button { min-width:105px; min-height:44px; }
.park-grid { gap:16px; grid-template-columns:repeat(3,minmax(0,1fr)); }
.park-card { border:1px solid var(--line) !important; background:#fffefb; border-radius:5px; padding:24px; min-height:350px; }
.park-card-art { margin:-24px -24px 18px; overflow:hidden; background:#e9eee6; }
.park-card-art img { display:block; width:100%; height:175px; object-fit:cover; }
.park-card-art figcaption { padding:7px 16px 9px; font-size:.75rem; line-height:1.3; color:var(--soft-ink); }
.park-top { flex-wrap:wrap; gap:10px; }
.park-country,.tag { font-family:var(--body-font); font-size:.875rem; letter-spacing:0; }
.tag { white-space:normal; }
.park-card h3 { font-size:1.75rem; margin:22px 0 8px; line-height:1.15; }
.park-summary { font-size:1rem; line-height:1.6; margin:12px 0 20px; }
.park-card button[data-park] { font-size:.95rem; min-height:44px; text-align:left; max-width:100%; padding-right:30px; }
.park-card .full-guide-link { font-size:.95rem; margin:12px 46px 0 0; width:auto; }
.park-card .save-park { width:44px !important; height:44px; bottom:20px; right:16px; background:white; }
.review-note { font-size:.875rem; color:var(--soft-ink); }
.prepare,.systems,.questions,.method,.trip-brief,.faq,.support { padding-top:64px; padding-bottom:64px; gap:48px; }
.prepare h2,.systems h2,.questions h2,.method h2,.trip-brief h2,.faq h2,.support h2,.travel-heading h2 { font-size:clamp(2rem,3.7vw,3rem); line-height:1.1; }
.systems-list p,.checklist small,.travel-card p,.faq details p,.method-points p,.support-copy li,.dialog-note { font-size:1rem; line-height:1.65; }
.checklist input:focus-visible + .check-box { outline:3px solid #245cd5; outline-offset:3px; }
.saved-parks { margin-top:28px; }
.travel-toolkit { padding-top:64px; padding-bottom:64px; }
.travel-card h3 { margin-top:25px; }
.button { font-size:1rem; min-height:44px; display:inline-block; text-decoration:none; }
.dialog-inner h2 { font-family:var(--heading-font); line-height:1.1; }
.dialog-inner .location,.detail-grid h3 { font-family:var(--body-font); font-size:.875rem; }
.detail-grid p { font-size:1rem; line-height:1.65; }
.dialog-close { width:44px; height:44px; }
.page-shell { max-width:1100px; padding:32px 24px 72px; margin:auto; }
.page-heading { max-width:800px; padding:20px 0 28px; }
.page-heading h1 { font:500 clamp(2.3rem,5vw,3.6rem)/1.1 var(--heading-font); margin:12px 0 20px; letter-spacing:-.035em; }
.page-heading p { font-size:1.125rem; max-width:720px; color:var(--soft-ink); }
.page-columns { display:grid; grid-template-columns:minmax(0,2fr) minmax(230px,1fr); gap:40px; }
.prose { max-width:760px; min-width:0; overflow-wrap:anywhere; line-height:1.75; }
.prose nav { display:flex; flex-wrap:wrap; margin:20px 0; gap:10px; }
.prose h2 { font-size:1.65rem; line-height:1.25; margin:32px 0 12px; }
.prose h3 { margin:24px 0 8px; }
.prose a { text-underline-offset:3px; }
.prose li { margin-bottom:9px; }
.prose section { scroll-margin-top:24px; }
.aside-card { padding:24px; background:#e9eee4; height:max-content; border-radius:5px; }
.aside-card h2 { font-size:1.25rem; margin-top:0; }
.aside-card a { display:block; margin-top:16px; }
.breadcrumb { font-size:.95rem; }
.feedback-form { display:grid; gap:20px; max-width:720px; }
.feedback-form label { display:grid; gap:6px; font-weight:600; }
.feedback-form input,.feedback-form select,.feedback-form textarea,.editor textarea,.editor select { background:white; border:1px solid #66766e; border-radius:3px; padding:12px; width:100%; min-height:46px; }
.feedback-form textarea { min-height:180px; resize:vertical; }
.feedback-form small { font-weight:400; color:var(--soft-ink); font-size:.9rem; }
.feedback-form .consent { display:flex; align-items:flex-start; gap:12px; font-weight:400; }
.feedback-form .consent input { width:22px; min-height:22px; flex-shrink:0; margin-top:3px; }
.feedback-form .trap { display:none; }
.form-status { padding:16px; border-left:4px solid var(--ink); background:#e9eee4; overflow-wrap:anywhere; }
.form-status:empty { display:none; }
.feedback-form button { justify-self:start; }
.helpful { border-top:1px solid var(--line); margin-top:32px; padding-top:24px; }
.helpful button { min-height:44px; background:white; border:1px solid var(--ink); padding:8px 16px; margin-right:8px; border-radius:3px; }
.helpful a { display:inline-block; margin-top:12px; }
.metric-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-bottom:20px; }
.metric { padding:20px; background:#e9eee4; border-radius:5px; }
.metric b { display:block; font-size:2rem; }
.editor-controls { display:flex; flex-wrap:wrap; gap:15px; align-items:center; margin:28px 0; }
.editor-controls select { width:auto; }
.inbox-item { background:#fff; padding:24px; border:1px solid var(--line); margin-bottom:20px; border-radius:5px; }
.inbox-item h2 { font-size:1.2rem; margin-top:0; }
.inbox-message { white-space:pre-wrap; overflow-wrap:anywhere; border-left:3px solid #c3d9b0; padding-left:16px; }
.inbox-item label { display:grid; gap:7px; margin:16px 0; font-weight:600; }
.inbox-item textarea { min-height:120px; }
.inbox-actions { display:flex; flex-wrap:wrap; gap:12px; }
.inbox-actions button { padding:10px 16px; min-height:44px; }
.inbox-actions .delete-message { margin-left:auto; color:#8d2518; }
.table-wrap { overflow:auto; }
table { border-collapse:collapse; width:100%; }
th,td { padding:12px; border-bottom:1px solid var(--line); text-align:left; }
footer { flex-wrap:wrap; font-size:.9rem; }
footer a { text-underline-offset:3px; }
@media(max-width:1050px) { .park-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .hero { grid-template-columns:1.2fr .8fr; } }
@media(max-width:800px) { .site-header nav { display:flex; margin:0; width:100%; gap:10px 20px; } .hero { grid-template-columns:1fr; padding-top:32px; } .hero-panel { display:none; } .hero-stamp { display:block; position:static; grid-column:1; margin-top:-10px; } .hero { padding-bottom:28px; } .park-grid,.page-columns { grid-template-columns:1fr; } .filters { display:flex; } .filter-buttons { justify-content:flex-start; } .hero-actions { flex-wrap:wrap; } .metric-grid { grid-template-columns:1fr 1fr; } .finder-context { align-items:start; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition:none !important; animation:none !important; } }
@media print { .site-header,footer,.hero,.notice,.finder,.prepare,.systems,.travel-toolkit,.questions,.faq,.method,.support,.brief-intro,.brief-form,.brief-actions,.helpful { display:none !important; } .trip-brief { display:block; background:white; padding:0; } .brief-result { display:block !important; border:0; padding:0; } body { color:black; background:white; } a { text-decoration:underline; } .brief-source { display:block !important; overflow-wrap:anywhere; } }
.checklist-actions { grid-column:2; display:flex; flex-wrap:wrap; gap:12px; align-self:start; }
.checklist-actions .button-outline { grid-column:auto; margin:0; }
@media(max-width:800px) { .checklist-actions { grid-column:auto; } }
@media print { .prepare { display:block !important; padding:20px 0 0; background:white; break-before:page; } .prepare-intro .eyebrow { display:none; } .prepare h2 { font-size:22px; } .prepare-intro > p:last-child { max-width:none; margin:6px 0; } .checklist label { padding:5px 0; break-inside:avoid; } .checklist small { font-size:11px; } .checklist-actions { display:none; } .trip-brief:has(.brief-result[hidden]) { display:none; } }
.hero { display:block; padding:30px max(5.4vw,24px) 68px; }
.hero h1 { max-width:none; font-size:clamp(2.3rem,4vw,3.35rem); }
.hero .lede { max-width:950px; margin:16px 0 0; }
.hero-panel,.hero-actions { display:none; }
.hero-stamp { position:absolute; bottom:16px; }
@media(max-width:800px) { .hero { padding:28px 24px 22px; } .hero-stamp { position:static; margin-top:18px; } .finder { padding-top:30px; } }
@media(max-width:600px) { .hero .eyebrow,.hero-stamp { display:none; } .hero .lede { font-size:1rem; } .site-header nav a[href="#travel"],.site-header nav a[href="#about"] { display:none; } .finder-context { display:block; } .finder-context p { margin:10px 0 0; } .notice { padding:16px 24px; } }
/* Care and rest comparison: filters reveal evidence; they never score parks. */
.care-page{max-width:1240px}.care-intro{max-width:850px;margin-bottom:32px}.care-legend{display:grid;grid-template-columns:max-content 1fr;gap:8px 14px;align-items:center;background:#f1f3e9;padding:18px;margin:22px 0}.care-state{display:inline-block;width:max-content;border-radius:999px;padding:4px 9px;font:700 .68rem/1.3 system-ui,sans-serif;letter-spacing:.04em;text-transform:uppercase}.care-state-published{background:#dcebdc;color:#244f35}.care-state-unknown{background:#f3dfd2;color:#713724}.care-state-access{background:#dde8ef;color:#244b61}.care-controls{display:flex;justify-content:space-between;gap:24px;align-items:end;border-top:2px solid #476b61;border-bottom:1px solid #d5ddd9;padding:20px 0}.care-controls fieldset{border:0;padding:0;margin:0}.care-controls legend{font-weight:700;margin-bottom:10px}.care-controls label{display:inline-flex;gap:7px;align-items:center;margin:0 18px 8px 0;min-height:36px}.care-controls input{width:18px;height:18px}.care-actions{display:flex;gap:8px;flex-shrink:0}.care-actions button{min-height:44px;padding:8px 14px;border:1px solid #476b61;background:#fff;color:#163746}.care-status{font-size:.88rem;color:#52646b}.care-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:26px 0}.care-card{border:1px solid #d5ddd9;border-top:4px solid #bd754d;background:#fff;padding:24px}.care-card:nth-child(even){border-top-color:#839167}.care-card header h2{margin:.2rem 0}.care-evidence{list-style:none;padding:0;margin:22px 0}.care-evidence li{display:grid;grid-template-columns:110px 1fr;gap:14px;padding:14px 0;border-top:1px solid #e0e5e1}.care-evidence strong{display:block}.care-evidence p{margin:3px 0;font-size:.9rem}.care-card details{background:#f8f4ea;padding:14px}.care-card summary{cursor:pointer;font-weight:700}.care-card details li{margin:8px 0}.care-links{font-size:.82rem;line-height:1.9}.care-links a{display:inline-block;margin-right:10px}.care-callout{border-left:4px solid #476b61;background:#edf0e8;padding:20px 24px;margin:34px 0}.care-callout h2{margin-top:0}@media(max-width:760px){.care-grid{grid-template-columns:1fr}.care-controls{align-items:stretch;flex-direction:column}.care-evidence li{grid-template-columns:1fr}.care-actions{flex-wrap:wrap}}@media print{.care-page .breadcrumb,.care-page .page-heading,.care-controls,.care-status{display:none!important}.care-page{max-width:none}.care-grid{display:block}.care-card{break-inside:avoid;margin:0 0 18px}.care-evidence li[hidden]{display:grid}.care-card details:not([open])>*:not(summary){display:block}.care-links{font-size:.72rem}}
/* A printable, source-linked decision sequence in the Brühl guide. */
.journey-decisions{border-top:3px solid #476b61;margin:50px 0;padding-top:24px}.journey-decisions>p{max-width:67ch}.journey-steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:24px 0}.journey-steps article{border:1px solid #cad7d2;background:#f7f8f3;padding:20px;min-width:0;break-inside:avoid}.journey-steps h3{margin:8px 0;font-size:1.2rem;line-height:1.3}.journey-steps p{font-size:1rem;line-height:1.6}.journey-number{font:700 .85rem/1.2 system-ui,sans-serif;color:#476b61;letter-spacing:.12em}.journey-steps a{display:inline-block;margin:4px 8px 4px 0}.journey-note{border-left:4px solid #bd754d;background:#faf3e8;padding:18px 24px}.journey-note h3{margin-top:0}.journey-note li{padding-bottom:10px;overflow-wrap:anywhere}@media(max-width:700px){.journey-steps{grid-template-columns:1fr}}@media print{.journey-decisions{break-before:page}.journey-steps{grid-template-columns:1fr 1fr}.journey-steps article{background:white;border-color:#777}.journey-note{background:white}.journey-decisions a{overflow-wrap:anywhere}}
/* Arrival decisions: readable in print and at narrow widths. */
.arrival-intro { margin: 1.5rem 0; padding: clamp(1.25rem,3vw,2rem); background: #123b4a; color: #fff; border-radius: 1.25rem; }
.arrival-intro h2 { color: #fff; max-width: 22ch; }
.arrival-intro p { max-width: 70ch; }
.arrival-steps { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1.25rem; }
.arrival-steps span { border: 1px solid #9fc1c6; border-radius: 999px; padding: .45rem .8rem; font-size: .9rem; }
.arrival-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; margin: 1.5rem 0; }
.arrival-card { background: #fff; border: 1px solid #b7c9cc; border-radius: 1rem; padding: 1.25rem; min-width: 0; }
.arrival-card h2 { margin-top: .3rem; }
.arrival-card p { line-height: 1.6; }
.arrival-links { border-top: 1px solid #d9e2e4; padding-top: .8rem; }
.arrival-checklist { border-left: .35rem solid #126b78; padding: .6rem 1.25rem; margin: 2rem 0; background: #f0f7f7; }
.arrival-checklist li { margin: .7rem 0; }
@media (max-width: 850px) { .arrival-grid { grid-template-columns: 1fr; } }
@media print { .site-header,.site-footer,.arrival-print { display:none!important; } .arrival-intro { color:#000; background:none; border:1px solid #555; } .arrival-intro h2 { color:#000; } .arrival-card { break-inside:avoid; } .arrival-grid { display:block; } .arrival-card { margin:0 0 .5rem; } }
.billund-journey { max-width: none; }
.billund-lead { background:#123b4a; color:#fff; border-radius:1.1rem; padding:clamp(1.25rem,3vw,2rem); margin:1rem 0 2rem; }
.billund-lead h2,.billund-lead a { color:#fff; }
.billund-lead p { max-width:72ch; }
.billund-route-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.billund-route-grid article { border:1px solid #b7c9cc; background:#fff; padding:1.2rem; border-radius:1rem; min-width:0; }
.billund-route-grid h3 { margin-top:0; }
.billund-journey > section:not(.billund-lead) { margin:2rem 0; }
.billund-journey #billund-boarding { background:#f0f7f7; border-left:.35rem solid #126b78; padding:1rem 1.25rem; }
.billund-journey li { margin:.55rem 0; }
@media(max-width:850px) { .billund-route-grid { grid-template-columns:1fr; } }
@media print { .billund-lead { background:none; color:#000; border:1px solid #555; } .billund-lead h2,.billund-lead a { color:#000; } .billund-route-grid { display:block; } .billund-route-grid article { break-inside:avoid; margin:.5rem 0; } }
.salou-journey { max-width:none; }
.salou-contents { display:flex; flex-wrap:wrap; gap:.65rem 1.15rem; margin:1.2rem 0; }
.salou-lead { background:#193e59; color:#fff; border-radius:1.1rem; padding:clamp(1.3rem,3vw,2.2rem); margin:1rem 0 2rem; }
.salou-lead h2,.salou-lead a { color:#fff; }
.salou-lead p { max-width:72ch; }
.salou-choice-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.salou-choice-grid article { background:#fff; border:1px solid #b5c8d0; border-top:.4rem solid #32778a; border-radius:.8rem; padding:1.25rem; min-width:0; break-inside:avoid; }
.salou-choice-grid article:nth-child(2) { border-top-color:#b7683e; }
.salou-choice-grid article:nth-child(3) { border-top-color:#776995; }
.salou-choice-grid h3 { margin:.2rem 0 1rem; font-size:1.23rem; }
.salou-route-label { color:#425e66; font:700 .83rem/1.4 system-ui,sans-serif; letter-spacing:.08em; }
.salou-journey > section:not(.salou-lead) { margin:2.2rem 0; }
.salou-access-note { background:#eef6f7; border-left:.4rem solid #32778a; padding:1.1rem 1.4rem; }
.salou-room-questions { background:#f8f1e8; border-left:.4rem solid #b7683e; padding:1rem 1.4rem; }
.salou-journey li { margin:.55rem 0; }
@media(max-width:900px) { .salou-choice-grid { grid-template-columns:1fr; } }
@media print { .salou-lead,.salou-access-note,.salou-room-questions { background:#fff; color:#000; border:1px solid #666; } .salou-lead h2,.salou-lead a { color:#000; } .salou-choice-grid { display:block; } .salou-choice-grid article { margin:.7rem 0; } .salou-contents { display:none; } }
