/* TOWN BY TOWN (scripts/gen-town-compare.mjs): one country's towns compared as
   places to stay. Loaded after city.css, which supplies the tokens, nav, footer
   and .pageupd. LIGHT reading surface, dashed rules, sharp corners. */
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.la-crumbs{font:500 13px 'Inter',sans-serif;color:var(--muted);margin:0 0 26px}
.la-crumbs a{color:var(--ink)}

.tc-head{max-width:980px;margin:0 auto;padding:clamp(110px,15vh,160px) var(--gut) clamp(34px,4vw,50px);text-align:center;border-bottom:1px dashed var(--dash)}
.tc-head .eyebrow{color:var(--muted)}
.tc-head h1{font:800 clamp(34px,5.6vw,68px)/1 'Archivo',sans-serif;text-transform:uppercase;letter-spacing:-.01em;margin:16px 0 0}
.tc-stand{font:400 clamp(17px,1.7vw,20px)/1.6 'Lora',Georgia,serif;color:var(--ink-2);max-width:660px;margin:22px auto 0}

.tc-sec{max-width:1240px;margin:0 auto;padding:clamp(44px,5vw,70px) var(--gut) 0}
.tc-sec-head{margin-bottom:22px}
.tc-sec-head h2{font:800 clamp(24px,3vw,36px)/1.05 'Archivo',sans-serif;text-transform:uppercase;margin:0}
/* the grid's chapter title reads like the country page's "Where should you stay?" */
.tc-centre{text-align:center}
.tc-centre h2{font-size:clamp(34px,4.6vw,60px);line-height:.98;text-wrap:balance}
.tc-centre .tc-hint{font-size:clamp(17px,1.6vw,21px);margin:14px auto 0;text-wrap:balance}
.tc-hint{font:400 16px/1.55 'Lora',Georgia,serif;color:var(--muted);margin:10px 0 0;max-width:640px}

/* the hero: the nav sits over it until the reader scrolls (town-compare.js) */
.tc-hero{position:relative;height:min(78vh,860px);min-height:460px;overflow:hidden;background:#111}
.tc-hero-ph{margin:0;position:absolute;inset:0}
.tc-hero-ph img{width:100%;height:100%;object-fit:cover;display:block}
.tc-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.38) 0,rgba(0,0,0,0) 24%,rgba(0,0,0,0) 45%,rgba(0,0,0,.6) 100%)}
.tc-hero-t{position:absolute;left:0;right:0;bottom:7vh;z-index:1;text-align:center;color:#fff;padding:0 var(--gut)}
.tc-hero-t .eyebrow{color:rgba(255,255,255,.85)}
.tc-hero-t h1{font:900 clamp(68px,10vw,150px)/.9 'Archivo',sans-serif;text-transform:uppercase;letter-spacing:-.01em;margin:14px 0 0;text-shadow:0 2px 40px rgba(0,0,0,.35)}
.tc-head.has-hero{padding-top:clamp(26px,3vw,40px)}
.tc-head.has-hero .tc-stand{margin-top:0}
.tc-back{display:inline-block;margin-top:18px;font:600 13px 'Inter',sans-serif;color:var(--ink);text-decoration:underline;text-underline-offset:4px}
.tc-end{max-width:1240px;margin:clamp(50px,6vw,80px) auto 0;padding:clamp(40px,5vw,60px) var(--gut) 0;text-align:center;border-top:1px dashed var(--dash)}
.tc-end h2{font:800 clamp(24px,3vw,36px)/1.05 'Archivo',sans-serif;text-transform:uppercase;margin:12px 0 22px}
.nav:not(.solid) .navlink,.nav:not(.solid) .brand{color:#fff}
.nav:not(.solid) .hamburger span{background:#fff}
.nav:not(.solid) .nav-acct svg{stroke:#fff}
h1 .tc-h1-c{display:block}
h1 .tc-h1-s{display:block;font-size:.36em;line-height:1.05;letter-spacing:.02em;margin-top:.35em}
@media(max-width:600px){.tc-hero{height:70svh;min-height:420px}}

/* the picker */
/* one line, scrolls sideways when it runs out of room; bleeds to the screen edge on phones */
.tc-pick{display:flex;flex-wrap:nowrap;align-items:center;gap:8px;margin:0 0 18px;overflow-x:auto;
  scroll-snap-type:x proximity;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
.tc-pick::-webkit-scrollbar{display:none}
.tc-chip{flex:none;white-space:nowrap;scroll-snap-align:start}
.tc-chip{
  border:1px solid var(--line-strong);background:none;color:var(--ink-2);cursor:pointer;transition:background .2s,color .2s,border-color .2s;
  font:500 13.5px/1 'Inter',sans-serif;letter-spacing:0;text-transform:none;border-radius:999px;padding:10px 16px}
.tc-chip:hover{border-color:var(--ink);color:var(--ink)}
.tc-chip[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#fff}
.tc-chip:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.tc-count{flex:none;white-space:nowrap;font:600 13px 'Inter',sans-serif;color:var(--muted);margin-left:8px}

/* the grid */
/* contain:paint stops the table's min-width widening the mobile layout viewport (page went 512px wide at 390) */
.tc-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border-top:1px solid var(--ink);contain:paint}
.tc-grid{width:100%;border-collapse:collapse;min-width:680px}
.tc-grid th,.tc-grid td{padding:12px 8px;text-align:center;border-bottom:1px dashed var(--dash)}
.tc-grid thead th{font:600 12px/1.25 'Inter',sans-serif;color:var(--muted);vertical-align:bottom;padding-top:14px}
.tc-grid thead th.on-pick{color:var(--ink)}
.tc-grid .tc-town{text-align:left;width:22%;font:700 15px 'Archivo',sans-serif;white-space:nowrap;position:sticky;left:0;background:var(--bg);z-index:1}
.tc-grid thead .tc-town{font:600 12px 'Inter',sans-serif;color:var(--muted)}
.tc-grid tbody .tc-town a{border-bottom:1px solid transparent}
.tc-grid tbody .tc-town a:hover{border-bottom-color:var(--ink)}
.tc-grp th{text-align:left;font:700 12.5px 'Inter',sans-serif;color:var(--ink);padding-top:22px;background:var(--bg)}
.tc-grp th span{position:sticky;left:8px}
.tc-grid td .why{display:none}
.tc-grid td.on{cursor:pointer}
.dot{display:inline-block;width:12px;height:12px;border-radius:50%;background:var(--ink);transition:transform .2s}
.tc-grid td.on:hover .dot,.tc-grid td.sel .dot{transform:scale(1.35)}
.tc-grid td.sel .dot{box-shadow:0 0 0 2.5px var(--bg),0 0 0 4px var(--ink)}
.tc-grid tr.out{opacity:.28}
.tc-grid tr.out .tc-town{opacity:1}
.tc-why{font:400 16px/1.55 'Lora',Georgia,serif;color:var(--ink);margin:16px 0 0;padding:14px 18px;background:var(--bg-2);max-width:760px}
.tc-why b{font:700 13px 'Inter',sans-serif;letter-spacing:.02em;margin-right:6px}

/* the towns */
.tc-group .tc-sec-head{border-top:1px solid var(--ink);padding-top:16px}
.tc-town-card{display:grid;grid-template-columns:5fr 7fr;gap:clamp(22px,3vw,44px);padding:30px 0;border-bottom:1px dashed var(--dash);scroll-margin-top:80px;transition:opacity .3s}
.tc-town-card:last-child{border-bottom:0}
.tc-town-card.out{opacity:.35}
.tc-ph{display:block;aspect-ratio:4/3;overflow:hidden;background:var(--bg-2);align-self:start}
.tc-ph img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.tc-ph:hover img{transform:scale(1.04)}
.tc-noph{display:flex;height:100%;align-items:center;justify-content:center;font:800 22px 'Archivo',sans-serif;text-transform:uppercase;color:var(--muted-2)}
.tc-body h3{font:800 clamp(26px,2.8vw,36px)/1 'Archivo',sans-serif;text-transform:uppercase;margin:0}
.tc-chips{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:14px 0 0;padding:0}
.tc-chips li{font:500 12.5px/1 'Inter',sans-serif;padding:7px 11px;border:1px solid var(--line-strong);border-radius:999px;color:var(--ink-2)}
.tc-verdict{font:400 clamp(17px,1.5vw,19px)/1.55 'Lora',Georgia,serif;margin:16px 0 0;color:var(--ink)}
.tc-grid td.tc-km{font:500 12.5px 'Inter',sans-serif;color:var(--ink-2);white-space:nowrap}
.tc-grid th.tc-km{border-left:1px dashed var(--dash)}
.tc-grid td.tc-km{border-left:1px dashed var(--dash)}
.tc-cols{display:grid;grid-template-columns:1fr 1fr;margin-top:20px}
.tc-col{padding-right:22px}
.tc-col.no{padding:0 0 0 22px;border-left:1px dashed var(--dash)}
.tc-col h4{font:800 13px/1.25 'Archivo',sans-serif;text-transform:uppercase;letter-spacing:.03em;margin:0 0 10px}
.tc-col h4 a{text-decoration:underline;text-underline-offset:3px}
.tc-col ul{margin:0;padding:0 0 0 18px}
.tc-col li{font:400 15px/1.55 'Lora',Georgia,serif;color:var(--ink-2);margin:0 0 8px}
.tc-links{display:flex;flex-direction:column;align-items:flex-start;gap:16px;margin:22px 0 0}
.tc-sub{display:flex;flex-wrap:wrap;align-items:center;gap:12px 22px}
/* matches the country page .pill (full-country.css) */
.tc-pill{display:inline-block;font:600 12.5px/1 'Inter',sans-serif;padding:10px 16px;background:var(--ink);border-radius:999px;color:#fff;white-space:nowrap;transition:background .2s}
.tc-pill:hover{background:#2A2A30}
.tc-pill:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.tc-read span{font:500 12px 'Inter',sans-serif;color:var(--muted);margin-left:3px}
.tc-read{display:inline-block;font:600 13px 'Inter',sans-serif;color:var(--ink);text-decoration:underline;text-underline-offset:4px}

@media(max-width:820px){
  .tc-town-card{grid-template-columns:1fr}
  .tc-cols{grid-template-columns:1fr;gap:18px}
  .tc-col{padding:0}
  .tc-col.no{padding:18px 0 0;border-left:0;border-top:1px dashed var(--dash)}
}
@media(max-width:600px){
  .tc-pick{margin-inline:calc(-1 * var(--gut));padding-inline:var(--gut);scroll-padding-inline:var(--gut)}
  .tc-chip{padding:12px 16px}
  .tc-grid{min-width:560px}
  .tc-grid th,.tc-grid td{padding:10px 5px}
  .tc-grid .tc-town{font-size:13.5px}
}
@media(prefers-reduced-motion:reduce){.tc-ph img,.dot,.tc-town-card{transition:none}}
/* centre the chip row under the centred title when it fits; auto margins (not justify-content) keep the start reachable when it scrolls */
.tc-pick>:first-child{margin-left:auto}
.tc-pick>:last-child{margin-right:auto}
