/* ============ TOWN CHART SYSTEM (shared by hero, sheet, footer) ============ */
.tc-plate{background:#142433;color:#faf8f5}
.tc-wrap{max-width:1200px;margin:0 auto;padding:0 24px}
.tc-mono{font-family:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace}
/* hero */
.tc-hero{min-height:480px;display:flex;align-items:center;padding:56px 24px 0}
.tc-hero-grid{display:grid;grid-template-columns:7fr 5fr;gap:48px;align-items:center;width:100%}
.tc-kick{font-family:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;font-size:12px;letter-spacing:.22em;text-transform:uppercase;margin:0 0 18px}
.tc-hero h1{font-family:"Playfair Display","Playfair Fallback",Georgia,serif;font-weight:400;font-size:clamp(2.75rem,6vw,4.25rem);line-height:1.05;margin:0 0 14px}
.tc-tag{font-family:"Playfair Display","Playfair Fallback",Georgia,serif;font-style:italic;font-size:1.25rem;line-height:1.45;margin:0;max-width:34ch}
.tc-chart{text-align:center}
.tc-chart svg{display:block;width:100%;max-width:400px;height:auto;margin:0 auto;fill:none;stroke:rgba(250,248,245,.55);stroke-width:1;stroke-linejoin:round;stroke-linecap:round}
.tc-chart .tc-dot{fill:var(--town,#d4b254);stroke:none}
.tc-chart .tc-ring{fill:none;stroke:rgba(250,248,245,.8);stroke-width:1.5}
.tc-chart .tc-tick{stroke:#d4b254;stroke-width:1}
.tc-coords{display:block;margin-top:12px;font-family:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;font-size:12px;letter-spacing:.14em;text-transform:uppercase}
.tc-ledger{display:flex;flex-wrap:wrap;margin-top:44px;padding:18px 0 26px;border-top:1px solid #2a3b4d}
.tc-ledger > span{font-family:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;font-size:12px;letter-spacing:.12em;text-transform:uppercase;padding:4px 22px 4px 0;margin-right:22px;border-right:1px solid #2a3b4d}
.tc-ledger > span:last-child{border-right:none;margin-right:0}
/* Fact seals (2026-08-20): the hero ledger facts as linked chart-seal chips */
.tc-ledger.tc-seals{gap:10px;align-items:center;border-top:1px solid #2a3b4d}
.tc-ledger .tc-seal,.tc-ledger > .tc-seal-id{border-right:none;margin-right:0;display:inline-flex;align-items:center;gap:8px;font-family:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;padding:8px 15px;margin:0;border:0;border-radius:999px}
.tc-ledger > .tc-seal-id{border-right:none;margin-right:0;color:#faf8f5 !important;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14)}
.tc-ledger a.tc-seal{color:#f3e9d7 !important;border:1px solid rgba(212,178,84,.45);text-decoration:none !important;transition:background .18s ease-out,color .18s ease-out,border-color .18s ease-out,transform .18s ease-out}
.tc-ledger a.tc-seal svg{width:14px;height:14px;stroke:#d4b254;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;transition:stroke .18s ease-out}
.tc-ledger a.tc-seal .tc-seal-go{width:10px;height:10px;stroke:rgba(212,178,84,.8);margin-left:1px}
.tc-ledger a.tc-seal:hover,.tc-ledger a.tc-seal:focus-visible{background:#d4b254;color:#1c2833 !important;border-color:#d4b254;transform:translateY(-1px)}
.tc-ledger a.tc-seal:hover svg,.tc-ledger a.tc-seal:focus-visible svg{stroke:#1c2833}
.tc-ledger a.tc-seal:focus-visible{outline:2px solid #faf8f5;outline-offset:2px}
@media(prefers-reduced-motion:reduce){.tc-ledger a.tc-seal{transition:none}}
@media(max-width:640px){.tc-ledger .tc-seal,.tc-ledger > .tc-seal-id{border-right:none;margin-right:0;padding:10px 15px;font-size:11px}}
@media(max-width:1023px){
  .tc-hero{min-height:560px;padding-top:44px}
  .tc-hero-grid{grid-template-columns:1fr;gap:30px}
  .tc-chart svg{max-width:300px}
  .tc-hero h1{font-size:clamp(2.4rem,9vw,3.2rem)}
  /* phones: the fact ledger reads as chips in a wrap row, not a bare stacked list */
  .tc-ledger{margin-top:28px;flex-wrap:wrap;gap:8px;align-items:flex-start}
  .tc-ledger > span:not(.tc-seal):not(.tc-seal-id){border-right:none;margin-right:0;padding:7px 13px;border:1px solid #2a3b4d;border-radius:999px;font-size:11px;max-width:100%}
}
/* ---- the sheet: typed plain content ---- */
article.town-sheet{display:block;background:#faf8f5}
/* the hub's plate arrives inside the content, so it breaks the measure itself */
.tc-hub .ck-content{padding-top:0}
.tc-hub .tc-plate{width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}
article.town-sheet .ck-content{max-width:1200px;margin:0 auto;padding:8px 24px 40px}
article.town-sheet .ck-content>p,article.town-sheet .ck-content>section>p{max-width:720px;font-size:17px;line-height:1.65;color:#1c2833}
article.town-sheet .ck-content h2:not(.tc-h2){position:relative;max-width:720px;font-family:"Playfair Display","Playfair Fallback",Georgia,serif;font-weight:400;font-size:clamp(1.65rem,3vw,2rem);line-height:1.2;color:#1c2833;margin:56px 0 18px;padding-top:16px}
article.town-sheet .ck-content h2:not(.tc-h2)::before{content:"";position:absolute;top:0;left:0;width:28px;height:2px;background:var(--town,#1a5276)}
article.town-sheet .ck-content a{color:#1a5276}
article.town-sheet .ck-content figure{margin:26px 0}
article.town-sheet .ck-content figure img{display:block;width:100%;height:auto}
article.town-sheet .ck-content figure figcaption{font-size:14px;font-style:italic;color:#5c5344;margin-top:8px}
article.town-sheet .ck-content ul:not([class]){max-width:720px;font-size:16px;line-height:1.6;list-style:none;padding-left:0;margin:14px 0}
article.town-sheet .ck-content ul:not([class]) li{position:relative;padding:5px 0 5px 20px}
article.town-sheet .ck-content ul:not([class]) li::before{content:"";position:absolute;left:0;top:13px;width:6px;height:6px;background:var(--town,#1a5276)}
/* ---- chart-figure / chart-strip ---- */
.tcf{max-width:720px;margin:28px 0}
.tcf.tcf-wide{max-width:1200px}
.tcf img{display:block;width:100%;height:auto}
.tcf-bar{display:flex;justify-content:space-between;gap:16px;border-top:1px solid #d8d2c6;padding-top:8px;margin-top:0}
.tcf-bar .l{font-family:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:#756853}
.tcf-cap{font-size:14px;font-style:italic;line-height:1.5;color:#1c2833;max-width:68ch;margin:6px 0 0}
.tcs{max-width:1200px;margin:28px 0;display:grid;gap:20px}
.tcs.c2{grid-template-columns:1fr 1fr}
.tcs.c3{grid-template-columns:1fr 1fr 1fr}
.tcs figure{margin:0}
.tcs .ph{aspect-ratio:3/2;overflow:hidden;border:1px solid #d8d2c6}
.tcs .ph img{display:block;width:100%;height:100%;object-fit:cover}
.tcs .fl{display:block;font-family:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:#756853;margin:8px 0 2px}
.tcs .fc{font-size:13px;font-style:italic;line-height:1.45;color:#1c2833}
@media(max-width:640px){.tcs.c2,.tcs.c3{grid-template-columns:1fr}}
/* ==== PHOTO SYSTEM v2 (2026-08-09): duplex lead, bleed, mosaic, teaser ==== */
/* lead duplex: portrait image + annotation column */
.tcd{max-width:1200px;margin:8px 0 34px;display:grid;grid-template-columns:460px 1fr;gap:48px;align-items:start}
.tcd .tcd-img{margin:0}
.tcd .tcd-img img{display:block;width:100%;height:auto}
.tcd .tcd-ann{padding-top:6px}
.tcd .tcd-rule{display:block;width:24px;height:2px;background:var(--town,#1a5276);margin-bottom:14px}
.tcd .tcd-loc{display:block;font-family:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:#756853;margin-bottom:14px}
.tcd .tcd-say{font-family:"Playfair Display","Playfair Fallback",Georgia,serif;font-style:italic;font-size:clamp(1.15rem,1.8vw,1.4rem);line-height:1.55;color:#1c2833;max-width:44ch;margin:0}
.tcd .tcd-foot{margin-top:22px;padding-top:10px;border-top:1px solid #d8d2c6;font-family:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:#756853}
/* landscape lead: image full measure, annotation beneath */
.tcd.tcd-wide{grid-template-columns:1fr;gap:18px}
.tcd.tcd-wide .tcd-say{max-width:62ch}
@media(max-width:1023px){
  .tcd{grid-template-columns:1fr;gap:22px}
  .tcd:not(.tcd-wide) .tcd-img img{aspect-ratio:4/5;object-fit:cover;object-position:65% 45%}
  .tcd .tcd-say{font-size:1.15rem}
}
/* full-bleed plate */
.tcb{margin:44px 0}
.tcb-img{width:100vw;margin-left:calc(50% - 50vw);height:clamp(360px,52vw,600px);display:block}
.tcb-img img{display:block;width:100%;height:100%;object-fit:cover}
.tcb-cap{max-width:1200px;margin:12px auto 0;display:flex;align-items:baseline;gap:12px;border-top:1px solid #d8d2c6;padding-top:9px}
.tcb-cap .sq{flex:0 0 auto;width:8px;height:8px;background:var(--town,#1a5276);transform:translateY(-1px)}
.tcb-cap .l{font-family:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:#756853}
.tcb-cap .r{margin-left:auto;font-family:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:#756853;white-space:nowrap}
.tcb-say{max-width:68ch;margin:7px 0 0;font-size:14px;font-style:italic;line-height:1.5;color:#1c2833}
/* mosaic: one large plate carrying two studies, captioned once */
.tcm{max-width:1200px;margin:30px 0}
.tcm-grid{display:grid;grid-template-columns:2fr 1fr;grid-template-rows:285px 285px;gap:20px}
.tcm-cell{position:relative;overflow:hidden;margin:0}
.tcm-cell.a{grid-row:1 / span 2}
.tcm-cell img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover}
.tcm-chip{position:absolute;top:10px;left:10px;width:20px;height:20px;background:rgba(250,248,245,.88);font-family:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;font-size:10px;line-height:20px;text-align:center;color:#1c2833}
.tcm-cap{display:flex;align-items:baseline;gap:12px;border-top:1px solid #d8d2c6;padding-top:9px;margin-top:12px}
.tcm-cap .l,.tcm-cap .r{font-family:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:#756853}
.tcm-cap .r{margin-left:auto;white-space:nowrap}
.tcm-say{max-width:68ch;margin:7px 0 0;font-size:14px;font-style:italic;line-height:1.5;color:#1c2833}
@media(max-width:720px){
  .tcm-grid{grid-template-columns:1fr 1fr;grid-template-rows:auto auto;gap:12px;align-items:start}
  .tcm-cell{height:auto}
  .tcm-cell.a{grid-row:1;grid-column:1 / span 2;aspect-ratio:4/3}
  .tcm-cell.b{grid-row:2;grid-column:1;aspect-ratio:1/1}
  .tcm-cell.c{grid-row:2;grid-column:2;aspect-ratio:1/1}
}
/* gallery teaser: the contact sheet */
.tct{display:block;max-width:1200px;margin:44px 0 0;background:#f1ebdf;border-top:1px solid #d8d2c6;padding:26px 28px;text-decoration:none;display:grid;grid-template-columns:1fr auto;gap:26px;align-items:center}
.tct-rule{display:block;width:24px;height:2px;background:var(--town,#1a5276);margin-bottom:12px}
.tct-kick{display:block;font-family:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:#1c2833;margin-bottom:8px}
.tct-line{display:block;font-family:"Playfair Display","Playfair Fallback",Georgia,serif;font-size:1.5rem;line-height:1.25;color:#1c2833;margin-bottom:8px;text-decoration-color:transparent}
.tct-sub{display:block;font-family:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;font-size:12px;letter-spacing:.13em;text-transform:uppercase;color:#756853}
.tct-strip{display:flex;gap:10px}
.tct-strip figure{position:relative;margin:0;width:104px;height:104px;overflow:hidden;transition:transform .16s ease-out}
.tct-strip img{display:block;width:100%;height:100%;object-fit:cover}
.tct-more{position:absolute;inset:0;background:rgba(250,248,245,.85);display:flex;align-items:center;justify-content:center;font-family:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;font-size:13px;color:#1c2833}
@media (prefers-reduced-motion: no-preference){
  .tct:hover .tct-strip figure{transform:translateY(-2px)}
}
.tct:hover .tct-line{text-decoration:underline;text-decoration-color:var(--town,#1a5276);text-underline-offset:4px}
@media(max-width:860px){
  .tct{grid-template-columns:1fr;gap:18px}
  .tct-strip figure{width:78px;height:78px}
  .tct-strip figure:nth-child(5){display:none}
}
/* On a phone four 78px frames plus the panel padding run 4px past the viewport
   and put a horizontal scrollbar on the whole page. Drop to three. */
@media(max-width:430px){
  .tct{padding:22px 18px}
  .tct-strip figure:nth-child(4){display:none}
}
/* Theme ships unscoped img{...!important} rules (border-radius, padding, forced
   aspect-ratio, height:auto) that would break every plate here: neutralise them
   for the chart components only. See the site's !important gotcha. */
.tcd .tcd-img img,.tcb-img img,.tcm-cell img,.tct-strip img,.tcf img,.tcs .ph img{
  margin:0 !important;padding:0 !important;border:0 !important;border-radius:0 !important;
  box-shadow:none !important;background:none !important;max-width:none !important}
.tcd .tcd-img img,.tcf img{width:100% !important;height:auto !important;aspect-ratio:auto !important;object-fit:fill !important}
.tcb-img img,.tcm-cell img,.tct-strip img,.tcs .ph img{width:100% !important;height:100% !important;aspect-ratio:auto !important;object-fit:cover !important}
.tcm-cell img{position:absolute !important;top:0 !important;left:0 !important}
/* The sheet's generic figure margin (26px) outranks the component classes and
   was inflating every grid row by 52px: restate margins at higher specificity. */
article.town-sheet .ck-content figure.tcm-cell,
article.town-sheet .ck-content figure.tcd-img,
article.town-sheet .ck-content .tcs figure,
article.town-sheet .ck-content .tct-strip figure{margin:0}
/* the anchor nav is centred by default; inside a sheet everything else starts
   on the same left edge, so it follows the measure here */
article.town-sheet .ck-content .wc-nav{justify-content:flex-start;margin-left:0;margin-right:0;max-width:none}
/* Some pages carry an h2 that is a full-width device rather than a heading in
   the prose measure: the restaurants page uses one as the town bar above each
   table. Those follow their table, not the 720px reading column. */
article.town-sheet .ck-content h2[class*="mv-town-"]{max-width:none}
/* A bare schedule table cannot shrink below its content and pushes the whole
   page sideways on a phone. Let it scroll inside itself instead. Tables that
   already have their own responsive treatment sit inside a <figure>, so the
   direct-child selector leaves them alone. */
@media(max-width:860px){
  article.town-sheet .ck-content > table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
  article.town-sheet .ck-content > table th,article.town-sheet .ck-content > table td{white-space:nowrap}
}
article.town-sheet .ck-content figure.tcf{margin:28px 0}
/* ---- section header (shared by ledgers/notes/faq/facts/reading) ---- */
.tc-sec{max-width:1200px;margin:56px 0 0}
.tc-sec-head{display:flex;align-items:baseline;justify-content:space-between;gap:20px;margin-bottom:6px}
.tc-sec-kick{display:flex;align-items:center;gap:10px;font-family:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:#1c2833;margin:0 0 10px}
.tc-sec-kick::before{content:"";width:24px;height:2px;background:var(--town,#1a5276)}
.tc-sec h2.tc-h2{font-family:"Playfair Display","Playfair Fallback",Georgia,serif;font-weight:400;font-size:clamp(1.65rem,3vw,2rem);color:#1c2833;margin:0}
.tc-sec-bare{margin-top:.2in;margin-top:18px}
.tc-sec-tally{justify-content:flex-end;margin-bottom:0}
.tc-count{font-family:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;font-size:12px;letter-spacing:.14em;color:#756853;white-space:nowrap}@media(max-width:560px){.tc-sec-head{flex-wrap:wrap;gap:4px 20px}.tc-sec-head .tc-count{flex-basis:100%}}
/* ---- ledger rows ---- */
.tc-rows{margin-top:14px}
.tc-row{display:grid;grid-template-columns:128px 1fr;gap:6px 20px;padding:14px 0;border-top:1px solid #d8d2c6}
.tc-row .m{font-family:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#756853;padding-top:3px}
.tc-row .n{font-size:17px;font-weight:600;color:#1c2833}
.tc-row .n a{color:#1a5276;text-decoration:none;border-bottom:1px solid #1a527633}
.tc-row .n a:hover{border-bottom-color:#1a5276}
.tc-row .b{grid-column:2;font-size:15.5px;line-height:1.55;color:#4a5560;max-width:68ch;margin:0}
.tc-more{margin-top:14px;font-size:15px}
.tc-more a{color:#1a5276;font-weight:600}
@media(max-width:640px){.tc-row{grid-template-columns:1fr}.tc-row .b{grid-column:1}}
/* ---- notes panel ---- */
.tc-notes{background:#f1ebdf;padding:28px 32px;margin-top:16px}
.tc-note{display:grid;grid-template-columns:96px 1fr;gap:6px 18px;padding:10px 0}
.tc-note+.tc-note{border-top:1px solid #d8d2c6}
.tc-note .l{font-family:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#1c2833;padding-top:2px}
.tc-note .t{font-size:15.5px;line-height:1.55;color:#1c2833;margin:0}
.tc-note .t a{color:#1a5276;font-weight:600}
@media(max-width:640px){.tc-note{grid-template-columns:1fr}.tc-notes{padding:20px 18px}}
/* ---- faq / facts ---- */
.tc-qa{padding:14px 0;border-top:1px solid #d8d2c6;max-width:820px}
.tc-qa .q{font-size:16px;font-weight:600;color:#1c2833;margin:0 0 6px}
.tc-qa .a{font-size:15.5px;line-height:1.6;color:#4a5560;margin:0}
.tc-fact{position:relative;padding:10px 0 10px 22px;border-top:1px solid #d8d2c6;max-width:68ch;font-size:15.5px;line-height:1.6;color:#1c2833}
.tc-fact::before{content:"";position:absolute;left:0;top:18px;width:6px;height:6px;background:#d4b254}
/* ---- reading rows ---- */
.tc-read{display:grid;grid-template-columns:96px 1fr auto;gap:16px;align-items:baseline;padding:12px 0;border-top:1px solid #d8d2c6;max-width:820px}
.tc-read .m{font-family:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#756853}
.tc-read .t a{font-size:16px;font-weight:600;color:#1a5276;text-decoration:none}
.tc-read .t a:hover{text-decoration:underline}
.tc-read .ar{color:#756853}
.tc-read .t .d{display:block;margin-top:3px;font-size:14px;line-height:1.5;color:#5c6670;max-width:60ch}
.tc-read .m{padding-top:2px}
@media(max-width:640px){.tc-read{grid-template-columns:1fr auto;gap:4px 12px}.tc-read .m{grid-column:1}.tc-read .t{grid-column:1}.tc-read .ar{grid-row:1;grid-column:2}}
@media(max-width:640px){.tc-read{grid-template-columns:1fr auto}.tc-read .m{grid-column:1 / -1}}
/* ---- footer plates ---- */
.tc-colo{max-width:1200px;margin:56px auto 0;padding:18px 24px 40px}
.tc-colo-in{border-top:1px solid #d8d2c6;padding-top:14px;font-family:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;font-size:12px;line-height:1.8;letter-spacing:.03em;color:#756853;max-width:820px}
.tc-next{padding:52px 0 56px}
.tc-next-grid{display:grid;grid-template-columns:7fr 5fr;gap:48px;align-items:center}
.tc-next-rows{margin-top:8px}
.tc-next-row{display:block;padding:16px 0;border-top:1px solid #2a3b4d;text-decoration:none}
.tc-next-row .nn{display:flex;align-items:baseline;justify-content:space-between;gap:16px;font-family:"Playfair Display","Playfair Fallback",Georgia,serif;font-size:22px}
.tc-next-row .nd{display:block;margin-top:4px;font-family:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;font-size:11px;letter-spacing:.14em}
.tc-next-row:hover .nn span:first-child{color:#d4b254 !important}
.tc-next .tc-chart svg{max-width:330px}
.tc-next .tc-chart .tc-ndot{fill:#d4b254;stroke:none}
@media(max-width:1023px){.tc-next-grid{grid-template-columns:1fr;gap:26px}.tc-next .tc-chart{order:-1}}
/* ---- beach index (hub) ---- */
.bx-plate{margin:0 0 8px}
.bx-plate-in{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,520px);gap:56px;align-items:center;padding-top:56px;padding-bottom:56px}
.bx-h{font-family:"Playfair Display","Playfair Fallback",Georgia,serif;font-weight:400;font-size:clamp(2rem,4.4vw,3.4rem);line-height:1.06;margin:12px 0 14px}
.bx-lede{font-family:"Playfair Display","Playfair Fallback",Georgia,serif;font-style:italic;font-size:1.2rem;line-height:1.5;max-width:44ch;margin:0}
.bx-chart svg{width:100%;max-width:520px}
.bx-chart .bx-dot{fill:#d4b254;stroke:none}
.bx-chart .bx-num{fill:#142433;font-family:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;font-size:7px;font-weight:700}
.bx-row{grid-template-columns:34px 176px 1fr}
.bx-row .bx-rnum{font-family:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;font-size:11px;letter-spacing:.06em;color:var(--town,#1a5276);font-weight:700;padding-top:3px}
.bx-row .n,.bx-row .b{grid-column:3}
@media(max-width:640px){.bx-row{grid-template-columns:34px 1fr}.bx-row .n,.bx-row .b{grid-column:2}}
.bx-nonum .bx-rnum{display:none}
.bx-nonum .bx-row{grid-template-columns:212px 1fr}
.bx-nonum .bx-row .n,.bx-nonum .bx-row .b{grid-column:2}
@media(max-width:640px){.bx-nonum .bx-row{grid-template-columns:1fr}.bx-nonum .bx-row .n,.bx-nonum .bx-row .b{grid-column:1}}
.bx-legend{display:block;margin-top:10px;font-family:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;font-size:11px;letter-spacing:.12em;text-transform:uppercase}
.bx-group{margin-top:44px}
.bx-group:first-of-type{margin-top:32px}
@media(max-width:900px){.bx-plate-in{grid-template-columns:1fr;gap:26px}.bx-chart svg{max-width:340px}}
/* Caption bars stack on small screens: a wrapping locator otherwise pushes the
   plate number into the middle of its own text. */
@media(max-width:640px){
  .tcm-cap,.tcb-cap,.tcf-bar{flex-direction:column;align-items:flex-start;gap:3px}
  .tcm-cap .r,.tcb-cap .r{margin-left:0}
}
h2[id]{scroll-margin-top:90px}
/* chart tables (2026-08-30): bare content tables pick up the survey look.
   Tables that carry their own inline styling keep it: inline always wins. */
.ck-content table{width:100%;border-collapse:collapse;margin:22px 0;font-size:15px;line-height:1.5;background:#fff;border:1px solid #e2dcd0}
.ck-content table th{font-family:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#756853;text-align:left;font-weight:700;padding:10px 14px;background:#faf8f5;border-bottom:2px solid #d4b254}
.ck-content table td{padding:10px 14px;border-bottom:1px solid #f0ebdf;color:#1c2833;vertical-align:top}
.ck-content table tbody tr:last-child td{border-bottom:none}
.ck-content table tbody tr:nth-child(even){background:#fbfaf7}
@media(max-width:860px){.ck-content > table,.ck-content > div > table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}}
/* itinerary rail (2026-08-30): chart-itinerary: a day's schedule as a survey
   plate: mono time rail, gold waypoint nodes, one hairline route line */
.tcy{position:relative;max-width:820px;margin:30px 0 34px;background:#fff;border:1px solid #e2dcd0;padding:24px 28px 10px}
.tcy::before,.tcy::after{content:"";position:absolute;width:11px;height:11px;pointer-events:none}
.tcy::before{top:7px;left:7px;border-top:1.5px solid #d4b254;border-left:1.5px solid #d4b254;opacity:.6}
.tcy::after{bottom:7px;right:7px;border-bottom:1.5px solid #d4b254;border-right:1.5px solid #d4b254;opacity:.6}
.tcy-head{display:flex;align-items:baseline;justify-content:space-between;gap:14px;margin:0 0 4px}
.tcy-kick{display:flex;align-items:center;gap:10px;font-family:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:#7d6218;font-weight:700}
.tcy-kick::after{content:"";flex:0 0 30px;height:2px;background:#d4b254}
.tcy-span{font-family:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:#756853;white-space:nowrap}
.tcy-title{font-family:"Playfair Display","Playfair Fallback",Georgia,serif;font-weight:400;font-size:1.45rem;line-height:1.2;color:#1c2833;margin:0 0 14px}
.tcy-row{display:grid;grid-template-columns:76px 24px 1fr;gap:0 14px}
.tcy-time{font-family:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;font-size:11px;letter-spacing:.08em;color:#756853;text-align:right;padding-top:19px;white-space:nowrap}
.tcy-node{position:relative}
.tcy-node::before{content:"";position:absolute;top:0;bottom:0;left:50%;transform:translateX(-.5px);width:1px;background:#d8d2c6}
.tcy-node::after{content:"";position:absolute;top:21px;left:50%;transform:translate(-50%,0);width:9px;height:9px;border-radius:50%;background:#d4b254;box-shadow:0 0 0 3px #fff}
.tcy-row.tcy-first .tcy-node::before{top:21px}
.tcy-row.tcy-last .tcy-node::before{bottom:calc(100% - 21px)}
.tcy-body{padding:14px 0 16px;border-bottom:1px solid #f0ebdf}
.tcy-row.tcy-last .tcy-body{border-bottom:none}
.tcy-what{display:block;font-size:16px;font-weight:600;color:#1c2833;line-height:1.4}
.tcy-note{display:block;margin-top:3px;font-size:14.5px;line-height:1.55;color:#4a5560;max-width:62ch}
.tcy-note a,.tcy-what a{color:#1a5276}
@media(max-width:560px){
  .tcy{padding:20px 16px 6px}
  .tcy-head{flex-direction:column;gap:2px}
  .tcy-row{grid-template-columns:20px 1fr;gap:0 12px}
  .tcy-time{grid-column:2;text-align:left;padding:12px 0 0;order:0}
  .tcy-node{grid-row:1 / span 2}
  .tcy-body{grid-column:2;padding-top:2px}
  .tcy-node::after{top:15px}
  .tcy-row.tcy-first .tcy-node::before{top:15px}
  .tcy-row.tcy-last .tcy-node::before{bottom:calc(100% - 15px)}
}
/* one-day arc (island pillar): scene opener */
.tds{margin:54px 0 26px;scroll-margin-top:90px}
.tds-img{position:relative;width:100vw;margin-left:calc(50% - 50vw);height:clamp(420px,56vw,620px);overflow:hidden}
.tds-img img{display:block;width:100%;height:100%;object-fit:cover}
.tds-wash{position:absolute;inset:0;background:linear-gradient(10deg,rgba(28,40,51,.94) 0%,rgba(28,40,51,.62) 40%,rgba(28,40,51,0) 72%)}
.tds-txt{position:absolute;left:0;right:0;bottom:0;padding:0 24px 36px}
.tds-in{max-width:1200px;margin:0 auto}
.tds-stamp{display:inline-flex;align-items:center;gap:12px;font-family:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:#d4b254}
.tds-stamp::before{content:"";width:34px;height:2px;background:#d4b254}
.tds-in h2{margin:10px 0 0;font-family:"Playfair Display","Playfair Fallback",Georgia,serif;font-size:clamp(2rem,4.8vw,3.4rem) !important;line-height:1.05 !important;color:#fff !important;text-wrap:balance;padding:0 !important}
.tds-in h2::before,.tds-in h2::after{display:none !important}
.tds-say{max-width:60ch;margin:10px 0 0;font-size:15px;font-style:italic;line-height:1.55;color:#e8e2d4 !important}
@media(max-width:700px){.tds-img{height:clamp(380px,88vw,480px)}.tds-txt{padding:0 16px 26px}.tds-wash{background:linear-gradient(8deg,rgba(28,40,51,.94) 0%,rgba(28,40,51,.7) 55%,rgba(28,40,51,.15) 88%)}}
/* one-day arc: day index plate */
.tdi{position:relative;max-width:1200px;margin:30px auto;background:#fff;border:1px solid #e2dcd0;padding:22px 26px}
.tdi::before,.tdi::after{content:"";position:absolute;width:11px;height:11px;pointer-events:none}
.tdi::before{top:7px;left:7px;border-top:1.5px solid #d4b254;border-left:1.5px solid #d4b254;opacity:.6}
.tdi::after{bottom:7px;right:7px;border-bottom:1.5px solid #d4b254;border-right:1.5px solid #d4b254;opacity:.6}
.tdi-kick{display:flex;align-items:center;gap:10px;font-family:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:#7d6218;margin:0 0 10px;font-weight:700}
.tdi-kick::after{content:"";flex:0 0 34px;height:2px;background:#d4b254}
.tdi-grid{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:repeat(6,auto);grid-auto-flow:column;gap:0 36px}
@media(max-width:700px){.tdi-grid{grid-template-columns:1fr;grid-template-rows:none;grid-auto-flow:row}}
.tdi-row{display:flex;align-items:baseline;gap:14px;padding:9px 2px;border-bottom:1px solid #f0ebdf;text-decoration:none}
.tdi-row:last-child{border-bottom:none}
@media(min-width:701px){.tdi-row:nth-child(6){border-bottom:none}}
.tdi-row .st{flex:0 0 96px;font-family:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#7d6218;font-weight:700}
.tdi-row .tt{font-weight:600;color:#1c2833;font-size:.95rem;transition:color .15s}
.tdi-row svg{margin-left:auto;flex:0 0 auto;width:13px;height:13px;stroke:#1a5276;stroke-width:2;fill:none;opacity:0;transform:translateX(-4px);transition:opacity .18s,transform .18s}
.tdi-row:hover .tt{color:#1a5276}
.tdi-row:hover svg{opacity:1;transform:none}
.tdi-row:focus-visible{outline:2px solid #1a5276;outline-offset:2px}
@media (hover:none){.tdi-row svg{opacity:.55;transform:none;stroke:#a99b80}}
.tds-isle{width:46px;height:auto;fill:none;stroke:#b9b09c;stroke-width:2.2;vertical-align:middle;margin-right:10px}
.tds-isle circle{fill:#d4b254;stroke:none}
/* one-day arc: photo place cards */
.tdt{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;max-width:1200px;margin:26px auto}
@media(max-width:900px){.tdt{grid-template-columns:repeat(2,1fr)}}
@media(max-width:540px){.tdt{grid-template-columns:1fr}}
.tdt-card{display:block;background:#fff;border:1px solid #e2dcd0;overflow:hidden;text-decoration:none;transition:transform .2s,box-shadow .2s,border-color .2s}
.tdt-card:hover{transform:translateY(-3px);box-shadow:0 16px 30px -18px rgba(28,40,51,.4);border-color:#1a5276}
.tdt-card:focus-visible{outline:2px solid #1a5276;outline-offset:2px}
.tdt-img{display:block;aspect-ratio:3/2;overflow:hidden;background:#e9e4d8}
.tdt-img img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .45s cubic-bezier(.22,1,.36,1)}
.tdt-card:hover .tdt-img img{transform:scale(1.05)}
.tdt-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:13px 15px 2px}
.tdt-head b{font-family:"Playfair Display","Playfair Fallback",Georgia,serif;font-weight:700;font-size:1.18rem;color:#1c2833}
.tdt-head i{font-style:normal;font-family:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:#756853;white-space:nowrap}
.tdt-line{display:block;padding:4px 15px 15px;font-size:.9rem;line-height:1.5;color:#5c5344}
@media (prefers-reduced-motion: reduce){.tdt-card:hover{transform:none}.tdt-card:hover .tdt-img img{transform:none}.tdi-row svg{transition:none}}
