/* Six-page travel book. The screen and PDF share the same editable content. */
.guide-page { background:#e7f2ef; }
.guide-main { max-width:1000px; padding:35px 25px; }
.book-page { position:relative; overflow:hidden; background:#fffdf5; border:1px solid #b9dcd4; border-radius:20px; margin:0 0 35px; padding:0; box-shadow:0 14px 35px #163c4520; }
.book-page::before { content:''; position:absolute; right:-120px; bottom:-140px; width:440px; height:270px; border:35px solid #dff0e8; border-radius:50%; transform:rotate(-15deg); pointer-events:none; opacity:.6; }
.book-page > * { position:relative; }
.cover-top { padding:42px 42px 20px; background:radial-gradient(circle at 86% 22%,#ffdb74 0 50px,transparent 51px),linear-gradient(130deg,#cceeea,#f2f9ed); }
.cover-top h1 { font-size:42px; line-height:1.5; margin:18px 0; letter-spacing:.025em; }
.cover-lead { font-size:18px; line-height:1.9; }
.cover-stamp { position:absolute; right:34px; top:27px; border:2px solid #237c7d; border-radius:50%; padding:21px 13px; font-size:13px; text-align:center; transform:rotate(12deg); color:#1a6a6c; background:#fff9db90; }
.cover-postcards { display:flex; padding:16px 34px 12px; gap:17px; background:linear-gradient(#e5f6ef,#fffdf5); }
.cover-postcards figure { width:33.33%; margin:0; padding:8px 8px 11px; background:white; box-shadow:0 5px 9px #254f5120; transform:rotate(-3deg); }
.cover-postcards figure:nth-child(2) { transform:rotate(3deg); }.cover-postcards figure:nth-child(3) { transform:rotate(-2deg); }
.cover-postcards img { display:block; width:100%; height:120px; object-fit:cover; }.cover-postcards figcaption { font-size:12px; text-align:center; margin-top:9px; }
.cover-bottom { padding:16px 40px 22px; }.guide-description { line-height:1.9; font-size:15px; margin:0 0 20px; }
.time-overview { padding:20px 24px; background:#fff; border:1px solid #b9dcd4; border-radius:14px; }
.time-overview h2 { font-size:22px; margin:0 0 14px; }.time-overview h2 small { display:block; font-size:12px; font-weight:400; margin-top:5px; }
.time-overview dl { margin:0; }.time-overview dl > div { display:grid; grid-template-columns:125px 1fr; border-top:1px dashed #c1dcd3; padding:10px 0; font-size:15px; align-items:center; }.time-overview dt { font-weight:700; }.time-overview dd { margin:0; font-weight:700; }.time-overview dd small { font-size:11px; font-weight:400; }
.time-overview p { font-size:11px; line-height:1.8; margin-top:10px; color:#486a68; }.book-foot { display:flex; justify-content:space-between; padding:16px 35px; background:#d9eee6; font-size:11px; letter-spacing:.05em; }
.guide-route { --route-accent:#027c91; --route-pale:#e1f3f1; scroll-margin-top:90px; }.guide-route[data-plan="island"] { --route-accent:#3b7661; --route-pale:#e3efe1; }.guide-route[data-plan="rail"] { --route-accent:#aa653a; --route-pale:#fff0d3; }.guide-route[data-plan="town"] { --route-accent:#856742; --route-pale:#f5ecdc; }
.route-banner { height:260px; background:#b6dce2; }.route-banner > img { display:block; width:100%; height:100%; object-fit:cover; }.route-banner::after { content:''; position:absolute; inset:50% 0 0; background:linear-gradient(transparent,#102b3266); }.route-stamp { position:absolute; z-index:1; left:28px; top:22px; width:75px; height:75px; background:#fffdf3; border:2px dashed var(--route-accent); outline:6px solid #fffdf3; border-radius:50%; color:var(--route-accent); display:flex; flex-direction:column; align-items:center; justify-content:center; font-size:11px; letter-spacing:.15em; transform:rotate(-10deg); }.route-stamp strong { font-size:29px; line-height:1.2; }.route-area { position:absolute; z-index:1; bottom:15px; right:24px; color:white; font-size:11px; letter-spacing:.08em; }
.route-body { padding:24px 35px 25px; }.route-body > .eyebrow { color:var(--route-accent); font-size:11px; }.guide-route h2 { font-size:29px; margin:8px 0; }.guide-route .route-lead { font-size:14px; }
.time-ticket { padding:14px 22px; background:var(--route-pale); border-left:5px solid var(--route-accent); border-radius:0 14px 14px 0; margin:20px 0 16px; }.time-ticket span { display:block; font-size:11px; letter-spacing:.1em; }.time-ticket strong { display:block; font-size:25px; color:var(--route-accent); margin:3px 0; }.time-ticket small { font-size:11px; }
.journey-line { display:flex; padding:0; margin:0 0 14px; list-style:none; }.journey-line li { flex:1; text-align:center; position:relative; padding:0 8px 12px; border-bottom:2px dashed #afd4ca; }.journey-line li::after { content:''; position:absolute; bottom:-5px; left:calc(50% - 4px); width:8px; height:8px; border-radius:50%; background:var(--route-accent); outline:4px solid #fffdf5; }.journey-line small { display:block; font-size:11px; color:var(--route-accent); }.journey-line strong { font-size:15px; }.guide-route .journey-extra { font-size:12px; line-height:1.8; margin:18px 0; }
.guide-steps { margin:18px 0 6px; }.guide-steps li { padding:0 0 14px 40px; }.guide-steps li::before { background:var(--route-pale); color:var(--route-accent); border-radius:50%; width:29px; height:29px; text-align:center; line-height:29px; font-size:12px; }.guide-steps h3 { font-size:17px; }.guide-steps p { font-size:13px; line-height:1.85; }
.guide-route .guide-caution { padding:12px 15px; background:#f4efdf; font-size:11px!important; line-height:1.8; border-radius:8px; }.guide-links { margin-top:14px; font-size:11px; gap:8px 16px; }.guide-route .time-disclaimer { font-size:10px; line-height:1.7; margin-top:12px; color:#526d67; }
.stay-cover-photo { height:290px; }.stay-cover-photo img { width:100%; height:100%; object-fit:cover; }.stay-cover-photo span { position:absolute; bottom:15px; right:20px; color:white; background:#183c44b0; padding:5px 12px; font-size:11px; border-radius:20px; }
.closing-body { padding:28px 36px 30px; background:linear-gradient(135deg,#f7faed,#fffdf5); }.guide-checklist h2 { font-size:36px; line-height:1.6; margin:12px 0; }.closing-lead { font-size:15px; line-height:1.9; }.closing-stay { background:#e0f1e8; border:1px solid #bfdacf; border-radius:14px; padding:22px; margin:22px 0; }.closing-stay h3 { font-size:24px; }.closing-stay h3 small { font-size:12px; }.closing-stay p { font-size:13px; margin:12px 0; }.closing-stay .button { font-size:14px; }.closing-stay .official-url { margin-bottom:0; color:#216b70; font-size:12px; letter-spacing:.08em; }
.departure-check { border-top:1px dashed #b3cec3; padding-top:20px; }.departure-check h3 { font-size:20px; margin-bottom:10px; }.departure-check ul { list-style:none; padding:0; font-size:13px; }.departure-check li::before { content:'□'; color:#248379; margin-right:8px; }.guide-source { font-size:10px; line-height:1.8; margin-top:15px; }
@media(max-width:600px) { .guide-main { padding:20px 12px; }.cover-top { padding:30px 22px 15px; }.cover-top h1 { font-size:27px; }.cover-stamp { display:none; }.cover-top .eyebrow { font-size:9px; }.cover-lead { font-size:15px; }.cover-postcards { padding:12px; gap:8px; }.cover-postcards figure { padding:4px 4px 8px; }.cover-postcards img { height:80px; }.cover-postcards figcaption { font-size:9px; }.cover-bottom { padding:20px; }.guide-description { font-size:14px; }.time-overview { padding:16px; }.time-overview h2 { font-size:20px; }.time-overview dl > div { grid-template-columns:1fr; gap:3px; font-size:14px; }.book-foot { font-size:8px; padding:14px 16px; }.route-banner { height:180px; }.route-body,.closing-body { padding:22px; }.guide-route h2 { font-size:25px; }.time-ticket { padding:12px; }.time-ticket strong { font-size:21px; }.journey-line strong { font-size:12px; }.journey-line small { font-size:9px; }.journey-line li { padding-left:2px; padding-right:2px; }.stay-cover-photo { height:200px; }.guide-checklist h2 { font-size:30px; }.closing-stay { padding:18px; }.closing-stay .button { font-size:13px; }.closing-lead br { display:none; } }
@media print {
 @page { size:A4; margin:10mm; }
 .guide-page { background:white; -webkit-print-color-adjust:exact; print-color-adjust:exact; }
 .guide-main { padding:0; max-width:none; }.book-page { border-radius:4mm; box-shadow:none; margin:0; min-height:275mm; break-before:page; break-inside:avoid; display:flex; flex-direction:column; }.guide-intro { break-before:auto; }.book-foot { margin-top:auto; padding:4mm 7mm; font-size:8pt; }
 .cover-top { padding:9mm 9mm 5mm; }.cover-top h1 { font-size:28pt; }.cover-lead { font-size:12pt; }.cover-stamp { top:7mm; right:7mm; }.cover-top .eyebrow { font-size:8pt; }.cover-postcards { padding:3mm 8mm; gap:4mm; }.cover-postcards img { height:29mm; }.cover-postcards figcaption { font-size:8pt; }.cover-bottom { padding:5mm 9mm; }.guide-description { font-size:10.5pt; margin-bottom:5mm; }.time-overview { padding:5mm 6mm; }.time-overview h2 { font-size:16pt; }.time-overview dl > div { font-size:10pt; padding:2.6mm 0; grid-template-columns:32mm 1fr; }.time-overview dd small { font-size:8pt; }.time-overview p { font-size:8pt; }
 .route-banner { height:52mm; flex-shrink:0; }.route-body { padding:5mm 8mm 4mm; }.guide-route h2 { font-size:22pt; }.guide-route .route-lead { font-size:10pt; }.time-ticket { margin:4mm 0; padding:3mm 5mm; }.time-ticket strong { font-size:19pt; }.time-ticket small,.time-ticket span { font-size:8pt; }.journey-line strong { font-size:11pt; }.journey-line small { font-size:8pt; }.guide-route .journey-extra { font-size:9pt; line-height:1.75; margin:4mm 0; }.guide-steps { margin:4mm 0 2mm; }.guide-steps h3 { font-size:12pt; }.guide-steps li { padding-bottom:3mm; }.guide-steps p { font-size:9.5pt; line-height:1.8; }.guide-route .guide-caution { font-size:8.5pt!important; padding:3mm 4mm; }.guide-links { display:flex; font-size:8.5pt; margin-top:3mm; gap:2mm 5mm; }.guide-links a { display:inline; margin:0; }.guide-links a::after,.guide-links a:first-child::after { content:none; }.guide-route .time-disclaimer { font-size:7.5pt; margin-top:3mm; }
 .stay-cover-photo { height:66mm; flex-shrink:0; }.closing-body { padding:6mm 9mm; }.guide-checklist h2 { font-size:26pt; }.closing-lead { font-size:10.5pt; }.closing-stay { margin:5mm 0; padding:5mm; }.closing-stay h3 { font-size:18pt; }.closing-stay .button { display:inline-flex; font-size:10pt; padding:3mm 5mm; }.closing-stay p { font-size:9pt; margin:3mm 0; }.closing-stay .stay-facts { margin:3mm 0; }.departure-check { padding-top:4mm; }.departure-check h3 { font-size:14pt; }.departure-check ul { font-size:9.5pt; margin-bottom:3mm; }.guide-checklist .guide-caution { font-size:8pt!important; line-height:1.8; }.guide-checklist .guide-source { font-size:7.5pt; margin-top:3mm; }.guide-checklist p { margin-top:0; }
}
@media print {
 /* Keep each folio inside its own sheet; Chromium can fragment auto flex margins. */
 .book-page { display:block; min-height:275mm; padding-bottom:15mm; }
 .book-foot { position:absolute; left:0; right:0; bottom:0; margin:0; }
 .cover-top { padding-top:7mm; padding-bottom:4mm; }.cover-top h1 { margin:4mm 0; }.cover-bottom { padding-top:4mm; padding-bottom:4mm; }.time-overview dl > div { padding:2.2mm 0; }
 .stay-cover-photo { height:59mm; }.closing-body { padding-top:5mm; padding-bottom:4mm; }.guide-checklist h2 { margin:2mm 0; }.closing-stay { margin:4mm 0; }
}
