/* Expanded editorial content; keep labels and instructions readable. */
.field-notes { padding-top: 50px; padding-bottom: 62px; }
.field-notes-head { display:grid; grid-template-columns:1fr 1fr; gap:32px; align-items:end; margin-bottom:24px; }
.field-notes-head h2 { font-size:clamp(32px,4vw,54px); line-height:1.08; letter-spacing:-.045em; margin:10px 0 0; }
.field-notes-head > p { font-size:17px; line-height:1.65; color:#486367; max-width:490px; margin:0; }
.field-notes-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.field-notes-grid article { display:flex; flex-direction:column; padding:26px; background:#f0f5ef; border:1px solid #d7e5db; }
.field-notes-grid span { font-size:14px; letter-spacing:.08em; font-weight:800; color:#326d71; }
.field-notes-grid h3 { font-size:23px; line-height:1.2; margin:17px 0 12px; }
.field-notes-grid p { color:#425d61; font-size:16px; line-height:1.65; margin:0 0 20px; }
.field-notes-grid a { color:#126872; text-decoration:underline; font-size:14px; font-weight:800; margin-top:auto; }
.field-notes-caveat { font-size:14px; line-height:1.55; color:#526c6c; margin:16px 0 0; }
.apec-transit-note { border:1px solid #c7dfd2; background:#f5f8f1; padding:25px 29px; margin-top:16px; }
.apec-transit-note strong { color:#235d63; font-size:16px; }
.apec-transit-note p { color:#38585c; font-size:16px; line-height:1.65; margin:11px 0; }
.apec-transit-note a { color:#166b74; font-size:14px; font-weight:800; text-decoration:underline; }
.practical-guide { margin-top:35px; }
.practical-guide h3 { font-size:28px; letter-spacing:-.035em; margin:0 0 8px; }
.practical-guide > p { font-size:16px; color:#496367; line-height:1.6; margin:0 0 20px; }
.practical-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }
.practical-grid article { background:#fff; border:1px solid #d4dfd8; padding:24px; }
.practical-grid span { display:block; color:#377076; font-size:14px; font-weight:800; letter-spacing:.07em; }
.practical-grid h4 { font-size:21px; line-height:1.25; margin:12px 0 9px; }
.practical-grid p { font-size:16px; line-height:1.65; color:#435e61; margin:0 0 14px; }
.practical-grid a { color:#156a73; text-decoration:underline; font-size:14px; font-weight:800; }
.dialog-note-source { display:block; margin-top:9px; font-size:14px; font-weight:700; color:#166a72; }
.route-card { min-height: 395px; }
.route-card-body { padding: 23px; }
.route-card p { margin-bottom: 15px; }
.route-card p.route-local-name { display:flex; flex-wrap:wrap; align-items:baseline; gap:2px 8px; margin:0 0 12px; padding:7px 9px; background:#eaf2ec; color:#315b60; font-size:13px; line-height:1.4; }
.route-local-name b { color:#123e43; font-size:16px; font-weight:700; }
.route-start { color: #345e62; font-size: 14px; line-height: 1.5; font-weight: 700; margin: auto 0 17px; }
.translation-source { color:#4b6668; font-size:14px; line-height:1.55; margin:12px 0 0; }
.translation-source a { color:#155f67; font-weight:700; text-decoration:underline; }
.route-art.heritage { background: linear-gradient(145deg,#c3ad89,#e4d6b5 46%,#9c645c); }
.route-art.heritage:before { left: 13%; right: 13%; bottom: 0; height: 70%; background: #814e4c; clip-path: polygon(0 100%,0 28%,8% 28%,8% 18%,30% 18%,30% 30%,40% 30%,40% 0,60% 0,60% 30%,70% 30%,70% 18%,92% 18%,92% 28%,100% 28%,100% 100%); }
.route-art.heritage:after { left: 23%; right: 23%; bottom: 0; height: 42%; background: repeating-linear-gradient(90deg,#e8cfa5 0 15px,#774d49 15px 19px); }
.route-art.has-image img { display:block; width:100%; height:100%; object-fit:cover; object-position:center; }
.route-art.has-image:before,.route-art.has-image:after { display:none; }
.route-art .art-label { position:absolute; right:10px; bottom:9px; padding:7px 9px; background:#092c32dc; color:#fff; font-size:13px; line-height:1.15; font-weight:700; letter-spacing:.01em; border-radius:2px; }
.dialog-art.route-art.has-image img { object-position:center 48%; }
.route-depart { display: flex; flex-wrap: wrap; gap: 6px 16px; padding: 14px 16px; background: #e5eee8; color: #204d52; font-size: 15px; }
.route-depart strong { white-space: nowrap; }
.local-name-note { display:flex; flex-wrap:wrap; gap:5px 12px; padding:11px 16px; border:1px solid #d5e4dc; border-top:0; color:#315b5f; font-size:14px; line-height:1.5; }
.local-name-note strong { font-weight:700; }
.local-name-note span { color:#173d43; font-weight:600; }
.dialog-inner h3 { margin-top: 22px; }
.dialog-inner li { padding: 8px 0; }
.dialog-links { gap: 8px 18px; }
.dialog-links a { margin-top: 6px; }
.arrival-layout { align-items: start; }
.arrival-lead p:not(.eyebrow) { color: #d8e8e3; }
.arrival-lead p.arrival-name-tip { max-width:480px; margin:11px 0 0; color:#c9e1dc; font-size:14px; line-height:1.55; }
.arrival-card { min-height: 0; }
.arrival-card h3 { margin-bottom: 12px; }
.arrival-card .arrival-local-name { display:flex; flex-wrap:wrap; gap:6px 12px; margin:0 0 14px; padding:10px 12px; background:#eaf2ec; color:#2c555b; font-size:14px; line-height:1.45; }
.arrival-local-name span { color:#153b42; font-weight:600; }
.arrival-card .arrival-summary { font-size: 16px; color: #3f6467; margin: 0 0 16px; line-height: 1.55; }
.arrival-card li { font-size: 15px; line-height: 1.55; }
.arrival-card li strong { font-size: 15px; color: #23555b; }
.arrival-card .arrival-extra-source { display:block; margin-top:10px; }
.arrival-quick { max-width: 480px; margin-top: 30px; border-top: 1px solid #6c9694; padding-top: 23px; }
.arrival-quick strong { color: #bfe5d9; font-size: 17px; }
.arrival-quick p { margin: 9px 0 11px !important; font-size: 15px !important; }
.arrival-quick a { color: #d4f0e6; text-decoration: underline; font-size: 14px; font-weight: 700; }
.arrival-tips { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; margin-top: 35px; }
.arrival-tips article { border: 1px solid #4d7778; padding: 22px; }
.arrival-tips span { font-size: 14px; font-weight: 800; color: #9bcfc2; }
.arrival-tips h3 { font-size: 19px; margin: 14px 0 10px; }
.arrival-tips p { font-size: 15px; color: #d6e7e1; line-height: 1.65; margin: 0; }
.apec-facts { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:16px; }
.apec-facts article { padding:23px; background:#f0f5f0; border:1px solid #d6e3db; }
.apec-facts span { font-weight:800; color:#326d71; font-size:14px; letter-spacing:.7px; }
.apec-facts h3 { font-size:20px; line-height:1.2; margin:13px 0 9px; }
.apec-facts p { font-size:15px; line-height:1.6; color:#425b60; margin:0; }
.apec-guidance { display:grid; grid-template-columns:1.25fr 1fr; border:1px solid #d6e3db; }
.apec-primary { background:#e1ede5; padding:37px 39px; }
.apec-primary h3 { font-size:30px; max-width:600px; line-height:1.2; letter-spacing:-.04em; margin:22px 0 16px; }
.apec-primary p { font-size:16px; line-height:1.7; color:#3d575a; margin:0 0 16px; }
.apec-primary .verified { margin-top:20px; font-size:14px; }
.apec-checklist { background:#fff; padding:37px 39px; }
.apec-checklist h3 { font-size:23px; margin:0 0 21px; }
.apec-checklist ol { padding-left:22px; margin:0; }
.apec-checklist li { padding:0 0 14px 5px; font-size:16px; line-height:1.55; color:#38565a; }
.source-row { display:flex; flex-wrap:wrap; gap:10px; margin:18px 0 10px; }
.source-row a { background:#f1f5f0; color:#245e65; border:1px solid #d7e5dc; padding:11px 14px; font-size:14px; font-weight:700; }
.source-row a:hover { background:#e0ece4; }
.update-disclaimer { font-size:14px; color:#50676a; }
.weather-panel { display:grid; grid-template-columns:1fr 1fr; background:#fff; border:1px solid #d4dfd8; margin-bottom:8px; }
.weather-panel > div:first-child { padding:32px 35px; }
.weather-panel .mini-label { color:#2e6970; font-size:14px; font-weight:800; letter-spacing:.8px; }
.weather-panel h3 { font-size:27px; line-height:1.2; margin:16px 0 11px; letter-spacing:-.035em; }
.weather-panel p { font-size:15px; line-height:1.65; color:#425b60; }
.weather-panel a { font-size:14px; color:#156771; font-weight:800; text-decoration:underline; }
.weather-live { padding:33px 36px; background:#dcebe4; display:flex; flex-direction:column; justify-content:center; }
.weather-main { display:flex; align-items:baseline; flex-wrap:wrap; gap:10px 20px; }
.weather-main strong { font-size:62px; letter-spacing:-.07em; line-height:1.05; }
.weather-main span { font-size:19px; font-weight:700; }
.weather-metrics { display:flex; flex-wrap:wrap; gap:8px; margin-top:18px; }
.weather-metrics span { padding:8px 10px; border:1px solid #a5c9bb; background:#edf5ee; color:#26565a; font-size:14px; font-weight:700; }
.weather-time, .weather-state { font-size:14px !important; color:#466266 !important; margin:16px 0 0; }
.weather-credit { font-size:13px; color:#526b6c; margin-bottom:24px; }
.weather-credit a { text-decoration:underline; }
.essentials-grid { grid-template-columns:repeat(3,1fr); gap:14px; }
.essential { min-height:310px; padding:26px; }
.essential h3 { font-size:21px; line-height:1.25; margin:21px 0 11px; }
.essential p { font-size:15px; line-height:1.65; }
.essential a { font-size:14px; }
.featured-scenes { padding-top:68px; padding-bottom:8px; }
.featured-scenes-head { display:grid; grid-template-columns:1.25fr .75fr; gap:38px; align-items:end; margin-bottom:24px; }
.featured-scenes-head .eyebrow { margin-bottom:10px; }
.featured-scenes-head h2 { font-size:clamp(32px,3.7vw,49px); line-height:1.13; letter-spacing:-.045em; margin:0; }
.featured-scenes-head h2 em { font-style:normal; color:#377477; }
.featured-scenes-head > p { color:#425b60; font-size:16px; line-height:1.65; margin:0; }
.featured-scenes-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.featured-scene { min-width:0; height:286px; position:relative; display:block; overflow:hidden; padding:0; border:0; border-radius:3px; background:#23545a; color:white; text-align:left; cursor:pointer; }
.featured-scene img { width:100%; height:100%; display:block; object-fit:cover; transition:transform .3s; }
.featured-scene:hover img { transform:scale(1.045); }
.featured-scene::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,#062c36e8 0%,#0b334b73 45%,transparent 78%); }
.featured-scene-caption { position:absolute; z-index:1; left:23px; right:23px; bottom:20px; display:flex; flex-direction:column; align-items:flex-start; gap:6px; }
.featured-scene-caption > span { font-size:13px; line-height:1.3; font-weight:800; letter-spacing:.07em; color:#cbe9de; }
.featured-scene-caption strong { font-size:22px; line-height:1.15; letter-spacing:-.035em; }
.featured-scene-caption em { font-size:17px; line-height:1.25; font-style:normal; font-weight:700; color:#e8f4ef; }
.featured-scene-caption small { font-size:14px; line-height:1.3; font-weight:700; color:#fff; border-bottom:1px solid #d5e8e2; margin-top:5px; }
.featured-scene-label { position:absolute; z-index:1; right:12px; top:12px; padding:7px 9px; background:#092c32dc; color:white; font-size:13px; line-height:1.15; font-weight:700; }
.featured-scenes + .intro { padding-top:72px; }
@media(max-width:900px){
  .featured-scenes-grid { gap:10px; }
  .featured-scene { height:245px; }
  .field-notes-grid { grid-template-columns:1fr; }
  .apec-facts { grid-template-columns:repeat(2,1fr); }
  .essentials-grid { grid-template-columns:repeat(2,1fr); }
  .arrival-tips { grid-template-columns:1fr; }
}
@media(max-width:680px){
  .featured-scenes { padding-top:48px; }
  .featured-scenes-head { grid-template-columns:1fr; gap:12px; }
  .featured-scenes-grid { grid-template-columns:1fr; gap:12px; }
  .featured-scene { height:235px; }
  .featured-scenes + .intro { padding-top:60px; }
  .field-notes-head,.practical-grid { grid-template-columns:1fr; }
  .field-notes { padding-top:35px; padding-bottom:45px; }
  .route-card { min-height:0; }
  .apec-guidance, .weather-panel { grid-template-columns:1fr; }
  .apec-primary, .apec-checklist { padding:27px 24px; }
  .apec-primary h3 { font-size:26px; }
  .source-row a { width:100%; }
  .weather-panel > div:first-child,.weather-live { padding:25px; }
  .essentials-grid { grid-template-columns:1fr; }
  .essential { min-height:0; }
}
@media(max-width:420px){
  .apec-facts { grid-template-columns:1fr; }
  .weather-main strong { font-size:54px; }
}
