/* Irish Daily, 22/09 build. One file, no framework. Written by hand against the tokens below.
   Type: Figtree 400/600 (Ashton's pick, 21/09). Seven sizes and nothing between them.
   Grounds: paper, stone, and one deep band a page. Orange carries words; green is the button. */
@font-face{font-family:Figtree;src:url(/assets/fonts/figtree-400.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Figtree;src:url(/assets/fonts/figtree-600.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}
:root{
  --paper:#FAF8F4;--stone:#F2EEE6;--card:#fff;--ink:#16181A;--ink-2:#5B6065;--line:#E4DED3;
  --accent:#F58138;--accent-text:#B34E17;--accent-dark:#8F3D10;
  --green:#1F6B31;--green-dark:#174F24;--deep:#123C1B;--deep-2:#CFE0D2;--deep-3:#1C4E27;
  --t1:12px;--t2:14px;--t3:16px;--t4:18px;--t5:24px;--t6:32px;--t7:44px;
  --r:14px;--r-s:10px;--gut:20px;--wrap:1200px;--hd:64px;
  --shadow:0 1px 2px rgba(22,24,26,.06),0 8px 24px rgba(22,24,26,.06);
  --font:Figtree,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
}
@media (min-width:700px){:root{--gut:28px}}
@media (min-width:1024px){:root{--hd:72px}}
*,*::before,*::after{box-sizing:border-box}
*{margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--hd) + 56px)}
body{background:var(--paper);color:var(--ink);font:400 var(--t3)/1.6 var(--font);-webkit-font-smoothing:antialiased;overflow-x:clip;text-align:center}
img,svg{display:block;max-width:100%}
img{height:auto}
a{color:var(--accent-text);text-decoration:none}
a:hover{color:var(--accent-dark)}
a,button,summary,label,select{touch-action:manipulation}
button,input,select,textarea{font:inherit;color:inherit}
@media (pointer:coarse){input,select,textarea{font-size:max(16px,1em)}}
h1,h2,h3{font-weight:600;line-height:1.15;letter-spacing:-.01em;text-wrap:balance}
h1{font-size:var(--t6)}h2{font-size:var(--t5)}h3{font-size:var(--t4)}
@media (min-width:900px){h1{font-size:var(--t7)}h2{font-size:var(--t6)}}
p{text-wrap:pretty}
ul,ol{list-style:none}
:focus-visible{outline:3px solid var(--accent-text);outline-offset:2px;border-radius:4px}
.ic{width:1.25em;height:1.25em;fill:currentColor;flex:none}
.vh,.hp{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-9999px;top:8px;z-index:100;background:var(--card);color:var(--ink);padding:10px 16px;border-radius:8px}
.skip:focus{left:12px}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gut)}
.narrow{max-width:800px}
.small{font-size:var(--t2);color:var(--ink-2)}
.kicker{font-size:var(--t2);font-weight:600;color:var(--accent-text);margin-bottom:10px;display:flex;align-items:center;justify-content:center;gap:8px}
.kicker-ic{width:28px;height:28px;color:var(--accent-text)}
.lede{font-size:var(--t4);color:var(--ink-2);max-width:40em;margin-inline:auto;margin-top:12px}
.intro{color:var(--ink-2);max-width:40em;margin:12px auto 0}
.read{max-width:40em;margin-inline:auto}
.empty{color:var(--ink-2);padding:24px 0}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 24px;border-radius:999px;background:var(--green);color:#fff;font-weight:600;border:0;cursor:pointer;transition:background-color .2s}
.btn:hover{background:var(--green-dark);color:#fff}
.btn-ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink)}
.btn-ghost:hover{background:var(--ink);color:#fff}
.arrow{display:inline-flex;align-items:center;gap:6px;font-weight:600;min-height:44px}
.arrow .ic{transition:transform .2s}
.arrow:hover .ic{transform:translateX(3px)}
.chip{display:inline-flex;align-items:center;min-height:40px;padding:0 16px;border-radius:999px;background:var(--card);box-shadow:inset 0 0 0 1px var(--line);color:var(--ink);font-size:var(--t2);font-weight:600;white-space:nowrap;cursor:pointer;border:0}
.chip:hover{box-shadow:inset 0 0 0 1.5px var(--ink);color:var(--ink)}
.chip[aria-pressed=true]{background:var(--ink);color:#fff;box-shadow:none}
.chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:20px 0}
.tag{display:inline-block;font-size:var(--t1);font-weight:600;padding:2px 8px;border-radius:999px;background:var(--stone);color:var(--ink-2)}
.tag-free{background:#E3EFE5;color:var(--green)}

/* header */
.hd{position:sticky;top:0;z-index:50;height:var(--hd);background:rgba(250,248,244,.94);-webkit-backdrop-filter:saturate(1.4) blur(10px);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--line)}
.hd-in{max-width:var(--wrap);margin-inline:auto;height:100%;padding-inline:var(--gut);display:flex;align-items:center;gap:8px}
.brand{display:flex;align-items:center;gap:10px;color:var(--ink);font-weight:600;font-size:var(--t4);margin-right:auto;min-height:44px}
.brand img{width:36px;height:36px;border-radius:50%}
.brand:hover{color:var(--ink)}
.hd-nav{display:none}
.hd-search,.hd-burger{display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:12px;background:transparent;cursor:pointer;color:var(--ink)}
.hd-search .ic,.hd-burger .ic{width:24px;height:24px}
.hd-search-label,.hd-search kbd{display:none}
.hd-search:hover,.hd-burger:hover{background:var(--stone)}
@media (min-width:1024px){
  .brand{margin-right:24px}
  .hd-nav{display:flex;gap:4px;margin-right:auto}
  .hd-nav a{color:var(--ink);font-weight:600;font-size:var(--t3);padding:0 14px;min-height:44px;display:flex;align-items:center;border-radius:10px}
  .hd-nav a:hover{background:var(--stone)}
  .hd-nav a[aria-current=page]{color:var(--accent-text)}
  .hd-search{display:flex;width:320px;justify-content:flex-start;gap:10px;padding:0 12px 0 14px;background:var(--card);box-shadow:inset 0 0 0 1px var(--line);border-radius:12px;color:var(--ink-2)}
  .hd-search .ic{width:20px;height:20px}
  .hd-search-label{display:block;font-size:var(--t2)}
  .hd-search kbd{display:block;margin-left:auto;font:600 var(--t1) var(--font);border:1px solid var(--line);border-radius:6px;padding:1px 7px;color:var(--ink-2)}
  .hd-search:hover{background:var(--card);box-shadow:inset 0 0 0 1.5px var(--ink-2)}
  .hd-burger{display:none}
}

/* dialogs: drawer, search, privacy */
dialog{border:0;padding:0;max-width:none;max-height:none;color:var(--ink);background:var(--paper)}
dialog::backdrop{background:rgba(18,20,22,.45);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
body.locked{overflow:hidden}
.drawer{margin:0 0 0 auto;width:min(420px,100%);height:100%;height:100dvh}
.dr-in{padding:12px var(--gut) 40px;text-align:left}
.dr-top{display:flex;align-items:center;justify-content:space-between;min-height:56px;margin-bottom:8px}
.dr-title{font-weight:600;color:var(--ink-2);font-size:var(--t2)}
.dr-close{display:grid;place-items:center;width:44px;height:44px;border:0;background:var(--stone);border-radius:12px;cursor:pointer}
.dr-close .ic{width:22px;height:22px}
.dr-links{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.dr-big{display:flex;align-items:center;min-height:52px;font-size:var(--t4);font-weight:600;color:var(--ink);border-bottom:1px solid var(--line)}
.dr-big[aria-current=page]{color:var(--accent-text)}
.dr-h{font-size:var(--t2);color:var(--ink-2);margin:28px 0 8px}
.dr-counties{display:grid;grid-template-columns:1fr 1fr;gap:4px 16px}
.dr-prov h3{font-size:var(--t2);color:var(--accent-text);margin:12px 0 4px}
.dr-prov a{display:flex;align-items:center;min-height:36px;color:var(--ink)}
.so{margin:0 auto;width:100%;height:100%;height:100dvh;display:none;flex-direction:column}
.so[open]{display:flex}
@media (min-width:900px){.so{margin-top:9vh;width:min(760px,92vw);height:auto;max-height:80vh;border-radius:18px;box-shadow:0 30px 80px rgba(0,0,0,.25)}}
.so-form{display:flex;align-items:center;gap:8px;padding:10px var(--gut);border-bottom:1px solid var(--line);background:var(--card)}
.so-ic{width:22px;height:22px;color:var(--ink-2)}
.so-form input{flex:1;min-width:0;height:52px;border:0;outline:0;background:transparent;font-size:var(--t4)}
.so-form input::-webkit-search-cancel-button{display:none}
.so-close{display:grid;place-items:center;width:44px;height:44px;border:0;background:var(--stone);border-radius:12px;cursor:pointer}
.so-close .ic{width:22px;height:22px}
.so-body{overflow-y:auto;padding:8px var(--gut) 32px;text-align:left;flex:1;overscroll-behavior:contain}
.modal{margin:auto;width:min(720px,94vw);max-height:86vh;border-radius:18px}
.modal-in{padding:20px 24px 32px;text-align:left}
.modal-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}

/* search results (overlay and page share these) */
.sr-group{margin-top:20px}
.sr-h{display:flex;align-items:baseline;justify-content:space-between;font-size:var(--t2);font-weight:600;color:var(--ink-2);padding-bottom:6px;border-bottom:1px solid var(--line)}
.sr{display:flex;align-items:center;gap:14px;padding:10px 8px;min-height:60px;border-radius:12px;color:var(--ink)}
.sr:hover,.sr[aria-selected=true]{background:var(--stone);color:var(--ink)}
.sr-pic{width:48px;height:48px;border-radius:10px;overflow:hidden;flex:none;background:var(--stone);display:grid;place-items:center;color:var(--accent-text)}
.sr-pic img{width:100%;height:100%;object-fit:cover}
.sr-pic .ic{width:22px;height:22px}
.sr-b{min-width:0;display:flex;flex-direction:column}
.sr-t{font-weight:600;line-height:1.3}
.sr-t mark{background:transparent;color:var(--accent-text)}
.sr-s{font-size:var(--t2);color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sr-all{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;min-height:44px;margin-top:6px;border:0;background:transparent;color:var(--accent-text);font-weight:600;border-radius:10px;cursor:pointer}
.sr-all:hover{background:var(--stone)}
.sr-note{color:var(--ink-2);padding:16px 8px;font-size:var(--t3)}
.sr-sugg{display:flex;flex-wrap:wrap;gap:8px;padding:8px 0}
.sr-recent{display:flex;align-items:center;justify-content:space-between}
.sr-clear{border:0;background:transparent;color:var(--accent-text);font-size:var(--t2);font-weight:600;min-height:40px;cursor:pointer}
.sp-tabs{display:flex;gap:8px;overflow-x:auto;margin-top:16px;padding-bottom:4px;scrollbar-width:none;justify-content:flex-start}
@media (min-width:700px){.sp-tabs{justify-content:center;flex-wrap:wrap}}
.sp-tabs::-webkit-scrollbar{display:none}

/* search box */
.sbox{position:relative;display:flex;gap:8px;max-width:620px;margin:24px auto 0}
.sbox input{flex:1;min-width:0;height:52px;padding:0 16px 0 46px;border-radius:14px;border:0;box-shadow:inset 0 0 0 1.5px var(--line);background:var(--card);font-size:var(--t3)}
.sbox input:focus{outline:0;box-shadow:inset 0 0 0 2px var(--ink)}
.sbox-ic{position:absolute;left:15px;top:15px;width:22px;height:22px;color:var(--ink-2);pointer-events:none}
.sbox-big input{height:60px;font-size:var(--t4);padding-left:50px}
.sbox-big .sbox-ic{top:19px;left:17px}
.btn-go{border-radius:14px;min-height:52px}
.sbox-big .btn-go{min-height:60px}
@media (max-width:520px){.btn-go{display:none}}

/* sections */
.s{padding:56px 0}
@media (min-width:900px){.s{padding:80px 0}}
/* two sections on the same ground read as one long hole: close the gap and draw a faint rule
   between them instead (23/09, Ashton: "What's on in Clare" to "More in Clare") */
.s:not(.s-stone):not(.s-deep):has(+ .s:not(.s-stone):not(.s-deep)){padding-bottom:28px}
.s:not(.s-stone):not(.s-deep)+.s:not(.s-stone):not(.s-deep){padding-top:28px}
.s:not(.s-stone):not(.s-deep)+.s:not(.s-stone):not(.s-deep)::before{content:"";display:block;width:calc(100% - 2*var(--gut));max-width:calc(var(--wrap) - 2*var(--gut));height:1px;margin:0 auto 36px;background:var(--line)}
@media (min-width:900px){.s:not(.s-stone):not(.s-deep):has(+ .s:not(.s-stone):not(.s-deep)){padding-bottom:32px}.s:not(.s-stone):not(.s-deep)+.s:not(.s-stone):not(.s-deep){padding-top:32px}.s:not(.s-stone):not(.s-deep)+.s:not(.s-stone):not(.s-deep)::before{margin-bottom:40px}}
.phead+.s:not(.s-stone):not(.s-deep){padding-top:24px}
.s-stone{background:var(--stone)}
.s-deep{background:var(--deep);color:#F4F1EA}
.s-deep .lede,.s-deep .intro{color:var(--deep-2)}
.s-flush{padding-bottom:0}
.s-flush-top{padding-top:8px}
.sh{margin-bottom:28px}
.sh .lede{margin-top:10px}
.sh-link{margin-top:6px}
.s-foot{margin-top:28px}

/* cover */
.cover{padding:0 0 40px}
.cover-in{display:grid;gap:24px}
.cover-pic{margin-inline:calc(-1 * var(--gut))}
.cover-pic img{width:100%;aspect-ratio:16/9;object-fit:cover}
.cover-t{padding-top:4px}
.dateline{display:flex;flex-wrap:wrap;gap:6px 16px;justify-content:center;font-size:var(--t2);color:var(--ink-2);margin-bottom:12px}
.dateline .ic{width:18px;height:18px;margin-right:4px;color:var(--accent-text)}
.dl-sun,.dl-sun>span{display:inline-flex;align-items:center}
.dl-sun{gap:14px}
.quick{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:16px}
@media (min-width:1024px){
  .cover{padding:48px 0 72px}
  .cover-in{grid-template-columns:1fr 1.15fr;align-items:center;gap:56px}
  .cover-pic{order:2;margin:0}
  .cover-pic img{border-radius:20px}
  .cover h1{font-size:var(--t7)}
}

/* cards */
.card a{display:flex;flex-direction:column;height:100%;color:var(--ink);background:var(--card);border-radius:var(--r);overflow:hidden;box-shadow:inset 0 0 0 1px var(--line);transition:box-shadow .2s,transform .2s}
@media (hover:hover){.card a:hover{color:var(--ink);box-shadow:var(--shadow),inset 0 0 0 1px var(--line);transform:translateY(-2px)}}
.card-pic{display:block;aspect-ratio:16/9;background:var(--stone);overflow:hidden}
.card-pic img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.card a:hover .card-pic img{transform:scale(1.03)}
.card-body{display:flex;flex-direction:column;gap:4px;padding:16px 18px 20px;flex:1;justify-content:center}
.card-meta{font-size:var(--t1);font-weight:600;color:var(--accent-text)}
.card-t{font-size:var(--t4);font-weight:600;line-height:1.25}
.card-l{font-size:var(--t2);color:var(--ink-2);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.card-s .card-t{font-size:var(--t3)}
.card-s .card-l{-webkit-line-clamp:2}
.card-xl .card-t{font-size:var(--t5)}
.card-xl .card-l{font-size:var(--t3);-webkit-line-clamp:4}
@media (min-width:900px){
  .card-xl a{display:grid;grid-template-columns:1.4fr 1fr;align-items:stretch}
  .card-xl .card-pic{aspect-ratio:auto;min-height:100%}
  .card-xl .card-body{justify-content:center;padding:32px}
}
.cgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;text-align:center}
.cgrid-3{grid-template-columns:1fr}
@media (min-width:700px){.cgrid-3{grid-template-columns:repeat(3,1fr)}}
@media (min-width:1024px){.cgrid{grid-template-columns:repeat(3,1fr);gap:20px}}
@media (min-width:1200px){.cgrid:not(.cgrid-3){grid-template-columns:repeat(6,1fr)}}
.mosaic{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.mosaic .card-xl{grid-column:1/-1}
@media (min-width:1024px){
  .mosaic{grid-template-columns:2fr 1fr 1fr;grid-template-rows:auto auto;gap:20px}
  .mosaic .card-xl{grid-column:1;grid-row:1/3}
  .mosaic .card-xl a{display:flex}
  .mosaic .card-xl .card-pic{aspect-ratio:auto;flex:1;min-height:360px}
}
.plate{display:grid;place-items:center;width:100%;height:100%;min-height:100%;aspect-ratio:16/9;background:linear-gradient(135deg,#E3EDE4,#F2EEE6);color:var(--green);font-size:var(--t6);font-weight:600;letter-spacing:.02em}
.plate.sm{aspect-ratio:1;font-size:var(--t4)}
.plate.xl{border-radius:var(--r)}

/* rows */
.rows{display:grid;gap:0;text-align:left}
.rows-2{column-gap:32px}
@media (min-width:900px){.rows-2{grid-template-columns:1fr 1fr}}
.row a{display:grid;grid-template-columns:88px 1fr 20px;gap:14px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line);color:var(--ink)}
.row a:hover{color:var(--ink)}
.row a:hover .row-t{color:var(--accent-text)}
.row-pic{width:88px;height:88px;border-radius:12px;overflow:hidden;background:var(--stone)}
.row-pic img{width:100%;height:100%;object-fit:cover}
.row-b{display:flex;flex-direction:column;gap:2px;min-width:0}
.row-t{font-weight:600;line-height:1.3}
.row-m{font-size:var(--t1);font-weight:600;color:var(--accent-text)}
.row-l{font-size:var(--t2);color:var(--ink-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.row-go{width:20px;height:20px;color:var(--ink-2)}
.rk-lead{margin-top:28px}
.rk-pair{display:grid;gap:14px;margin-top:14px}
@media (min-width:700px){.rk-pair{grid-template-columns:1fr 1fr;gap:20px;margin-top:20px}}
.rk-rows{margin-top:16px}
@media (min-width:900px){.rk-rows{grid-template-columns:1fr 1fr;column-gap:32px}}
.more-rows{margin-top:24px}
.more-rows summary{list-style:none;cursor:pointer}
.more-rows summary::-webkit-details-marker{display:none}
.more-rows[open] summary{margin-bottom:8px}
@media (min-width:900px){.more-rows .rows{grid-template-columns:1fr 1fr;column-gap:32px}}

/* agenda */
.ag-day+.ag-day{margin-top:24px}
.ag-h{font-size:var(--t3);font-weight:600;color:var(--accent-text);text-align:left;padding-bottom:6px;border-bottom:1.5px solid var(--ink)}
@media (max-width:699px){.ag-h{text-align:center}}
.agenda{text-align:left}
.ev>a,.ev-nolink{display:grid;grid-template-columns:68px 1fr 20px;gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line);color:var(--ink)}
.ev-nolink{grid-template-columns:68px 1fr}
.ev>a:hover .ev-t{color:var(--accent-text)}
.ev-d{display:flex;flex-direction:column;align-items:center;justify-content:center;width:68px;min-height:56px;border-radius:12px;background:var(--card);box-shadow:inset 0 0 0 1px var(--line);line-height:1.15}
.s-stone .ev-d{background:var(--paper)}
.ev-d small{font-size:var(--t1);font-weight:600;color:var(--accent-text)}
.ev-d b{font-size:var(--t2);font-weight:600;white-space:nowrap}
.ev-b{display:flex;flex-direction:column;gap:2px;min-width:0}
.ev-t{font-weight:600;line-height:1.3}
.ev-w,.ev-runs{font-size:var(--t2);color:var(--ink-2)}
.ev-tags{display:flex;gap:6px;margin-top:4px}
.ev-go{width:18px;height:18px;color:var(--ink-2)}
.ev.hl>a{background:#FFF1E6;border-radius:12px}
.wk .agenda{margin-top:4px}
.wk-more{margin-top:20px}
/* the time control: equal cells that always fit, never a sideways scroll (Ashton, 23/09) */
.seg{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:4px;padding:4px;border-radius:999px;background:var(--card);box-shadow:inset 0 0 0 1px var(--line);margin:0 auto 16px;width:100%;max-width:440px}
.s-stone .seg{background:var(--paper)}
.seg button{border:0;background:transparent;min-height:40px;padding:0 6px;border-radius:999px;font-weight:600;font-size:var(--t2);white-space:nowrap;cursor:pointer;color:var(--ink-2)}
.seg button[aria-pressed=true]{background:var(--ink);color:#fff}
.evf{margin-bottom:12px}
.evf-row{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;align-items:center}
.sel select{height:44px;padding:0 36px 0 14px;border-radius:12px;border:0;box-shadow:inset 0 0 0 1px var(--line);background:var(--card) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256' fill='%235B6065'%3E%3Cpath d='M213.66,101.66l-80,80a8,8,0,0,1-11.32,0l-80-80A8,8,0,0,1,53.66,90.34L128,164.69l74.34-74.35a8,8,0,0,1,11.32,11.32Z'/%3E%3C/svg%3E") no-repeat right 12px center/16px;-webkit-appearance:none;appearance:none;font-weight:600;font-size:var(--t3)}
.tgl{position:relative;display:inline-flex;cursor:pointer}
.tgl input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.tgl span{display:inline-flex;align-items:center;min-height:44px;padding:0 18px;border-radius:999px;background:var(--card);box-shadow:inset 0 0 0 1px var(--line);font-size:var(--t2);font-weight:600;color:var(--ink)}
.tgl input:checked+span{background:var(--ink);color:#fff;box-shadow:none}
.tgl input:focus-visible+span{outline:3px solid var(--accent-text);outline-offset:2px}
.sel select{min-height:44px}
.evf-count{font-size:var(--t2);color:var(--ink-2);margin-top:8px;min-height:1.6em}
.evcounties,.tlinks{display:grid;grid-template-columns:1fr 1fr;gap:8px}
@media (min-width:700px){.evcounties,.tlinks{grid-template-columns:repeat(3,1fr)}}
@media (min-width:1024px){.evcounties{grid-template-columns:repeat(5,1fr)}.tlinks{grid-template-columns:repeat(4,1fr)}}
.tlink{display:flex;flex-direction:column;justify-content:center;min-height:60px;padding:8px 14px;border-radius:12px;background:var(--card);box-shadow:inset 0 0 0 1px var(--line);color:var(--ink);font-weight:600}
.tlink small{font-size:var(--t2);font-weight:400;color:var(--ink-2)}
.tlink:hover{box-shadow:inset 0 0 0 1.5px var(--ink);color:var(--ink)}

/* map section */
.mapgrid{display:grid;gap:32px;align-items:center}
@media (min-width:1024px){.mapgrid{grid-template-columns:5fr 7fr;gap:56px}}
.imap{width:100%;max-width:460px;height:auto;margin-inline:auto;overflow:visible}
.imap path{fill:rgba(255,255,255,.14);stroke:var(--deep);stroke-width:1.1;stroke-linejoin:round;transition:fill .15s}
.imap .ni{fill:rgba(255,255,255,.05)}
.imap a:hover path,.imap a:focus path,.imap .hot path{fill:var(--accent)}
.imap a:focus{outline:0}
.imap-l text{font:600 10px var(--font);fill:#F4F1EA;text-anchor:middle;dominant-baseline:middle;pointer-events:none;display:none}
.imap-l text.hot{display:block;font-size:14px;paint-order:stroke;stroke:var(--deep);stroke-width:3px}
@media (min-width:1024px){.imap-l text{display:block;opacity:.75}}
.pindex{display:grid;grid-template-columns:1fr 1fr;gap:20px 24px;text-align:left}
.pi:first-child{grid-column:1/-1}
@media (max-width:699px){.pindex{text-align:center}.pi a{align-items:center}.pi:last-child:nth-child(even){grid-column:1/-1}}
.pi:first-child ul{columns:2;column-gap:24px}
.pi li{break-inside:avoid}
@media (min-width:700px){.pindex{grid-template-columns:2fr 1fr 1fr 1fr}.pi:first-child{grid-column:auto}}
.pi h3{font-size:var(--t2);color:var(--accent);margin-bottom:6px;padding-bottom:6px;border-bottom:1px solid rgba(255,255,255,.18)}
.pi a{display:flex;flex-direction:column;justify-content:center;min-height:44px;color:#F4F1EA;line-height:1.2}
.pi a:hover,.pi a.hot{color:var(--accent)}
.pi-g{font-size:var(--t1);color:var(--deep-2)}
.s:not(.s-deep) .pi h3{color:var(--accent-text);border-color:var(--line)}
.s:not(.s-deep) .pi a{color:var(--ink)}
.s:not(.s-deep) .pi-g{color:var(--ink-2)}

/* kinds */
.kgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media (min-width:700px){.kgrid{grid-template-columns:repeat(3,1fr);gap:14px}}
@media (min-width:1024px){.kgrid{grid-template-columns:repeat(4,1fr)}}
.ktile{display:flex;flex-direction:column;align-items:center;gap:6px;padding:22px 12px;border-radius:var(--r);background:var(--card);box-shadow:inset 0 0 0 1px var(--line);color:var(--ink);transition:box-shadow .2s,transform .2s}
.s:not(.s-stone) .ktile{background:var(--stone);box-shadow:none}
@media (hover:hover){.ktile:hover{color:var(--ink);transform:translateY(-2px);box-shadow:var(--shadow)}}
.ktile-ic{width:36px;height:36px;color:var(--accent-text)}
.ktile-t{font-weight:600;line-height:1.25;min-height:2.5em;display:flex;align-items:center;justify-content:center}
.ktile-n{font-size:var(--t2);color:var(--ink-2)}

/* county tiles */
.ctiles{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (min-width:700px){.ctiles{grid-template-columns:repeat(4,1fr);gap:16px}}
@media (min-width:1200px){.ctiles{grid-template-columns:repeat(6,1fr)}}
.ctiles-sm{grid-template-columns:repeat(2,1fr)}
@media (min-width:700px){.ctiles-sm{grid-template-columns:repeat(4,1fr)}}
.ctile{position:relative;display:block;border-radius:var(--r);overflow:hidden;aspect-ratio:4/5;background:var(--deep);color:#fff}
.ctile-pic,.ctile-pic img,.ctile-pic .plate{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ctile::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 45%,rgba(0,0,0,.72))}
.ctile-b{position:absolute;left:0;right:0;bottom:0;padding:14px;z-index:1;display:flex;flex-direction:column}
.ctile-t{font-size:var(--t4);font-weight:600;line-height:1.2}
.ctile-g{font-size:var(--t1);opacity:.9}
.ctile:hover{color:#fff}
.ctile:hover img{transform:scale(1.04)}
.ctile img{transition:transform .5s}

/* guides */
.glist{display:grid;gap:20px}
@media (min-width:1024px){.glist{grid-template-columns:1.2fr 1fr;gap:32px;align-items:start}}
.gcard a{display:grid;grid-template-columns:120px 1fr;gap:16px;align-items:center;color:var(--ink);text-align:left;padding:10px 0;border-bottom:1px solid var(--line)}
.gcard-pic{aspect-ratio:1;border-radius:12px;overflow:hidden;background:var(--stone)}
.gcard-pic img{width:100%;height:100%;object-fit:cover}
.gcard-b{display:flex;flex-direction:column;gap:2px}
.gcard-k{font-size:var(--t1);font-weight:600;color:var(--accent-text)}
.gcard-t{font-weight:600;font-size:var(--t4);line-height:1.25}
.gcard-l{font-size:var(--t2);color:var(--ink-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.gcard a:hover .gcard-t{color:var(--accent-text)}
.gcard-lead a{display:flex;flex-direction:column;text-align:center;border:0;padding:0;gap:14px}
.gcard-lead .gcard-pic{aspect-ratio:16/9;border-radius:var(--r)}
.gcard-lead .gcard-t{font-size:var(--t5)}
.cgrid-3 .gcard a{display:flex;flex-direction:column;text-align:center;border:0}
.cgrid-3 .gcard-pic{aspect-ratio:16/9;width:100%}

/* marquee: never pauses, no fade (Ashton 21/09) */
.mq{display:grid;gap:12px;padding-bottom:56px}
.mq-row{overflow:hidden}
.mq-track{display:flex;gap:12px;width:max-content;animation:mq 140s linear infinite}
.mq-row.rev .mq-track{animation-direction:reverse}
@keyframes mq{to{transform:translateX(calc(-50% - 6px))}}
.mq-fig{position:relative;flex:none;width:168px;border-radius:12px;overflow:hidden;color:#fff}
.mq-fig img{width:100%;aspect-ratio:4/5;object-fit:cover}
.mq-cap{position:absolute;left:0;right:0;bottom:0;padding:24px 10px 10px;font-size:var(--t2);font-weight:600;background:linear-gradient(180deg,transparent,rgba(0,0,0,.65))}
@media (min-width:900px){.mq-fig{width:200px}}
@media (prefers-reduced-motion:reduce){.mq-track{animation:none;flex-wrap:wrap;width:auto;justify-content:center}.mq-fig[aria-hidden]{display:none}}

/* advertise band */
.band-adv{position:relative;overflow:hidden;color:#fff;background:var(--ink)}
.adv-pic,.adv-pic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.band-adv::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,20,22,.55),rgba(18,20,22,.78));z-index:1}
.adv-in{position:relative;z-index:2;padding-top:88px;padding-bottom:88px}
.band-adv .kicker{color:var(--accent)}
.band-adv .lede{color:#E9E4DA;margin-bottom:24px}

/* page heads */
.phead{padding:12px 0 32px}
.phead .lede{margin-bottom:0}
.crumbs ol{display:flex;flex-wrap:wrap;gap:4px 0;font-size:var(--t2);color:var(--ink-2);margin-bottom:20px;justify-content:flex-start;text-align:left}
.crumbs li{display:flex;align-items:center}
.crumbs li+li::before{content:"/";margin:0 8px;color:var(--line)}
.crumbs a{color:var(--ink-2);min-height:36px;display:inline-flex;align-items:center}
.crumbs a:hover{color:var(--accent-text)}
.crumbs [aria-current]{color:var(--ink);max-width:22ch;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* county hero */
.chero{padding:12px 0 36px}
.chero-in{display:grid;gap:22px}
.chero-pic{margin-inline:calc(-1 * var(--gut))}
.chero-pic img{width:100%;aspect-ratio:16/9;object-fit:cover}
.chero h1{font-size:var(--t7)}
.facts{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:18px}
.facts li{font-size:var(--t2);font-weight:600;color:var(--ink-2);background:var(--stone);border-radius:999px;padding:4px 12px}
@media (min-width:1024px){
  .chero-in{grid-template-columns:1fr 1.2fr;align-items:center;gap:48px}
  .chero-pic{order:2;margin:0}
  .chero-pic img{border-radius:20px}
}

/* tab row: the nav is sticky, the list inside it scrolls. Never both on one element. */
.tabs{position:sticky;top:var(--hd);z-index:40;background:rgba(250,248,244,.96);border-bottom:1px solid var(--line)}
.tabs ul{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;justify-content:flex-start}
@media (min-width:900px){.tabs ul{justify-content:center}}
.tabs ul::-webkit-scrollbar{display:none}
.tabs a{display:flex;align-items:center;min-height:48px;padding:0 14px;color:var(--ink-2);font-weight:600;font-size:var(--t2);white-space:nowrap;box-shadow:inset 0 -2px 0 transparent}
.tabs a.on{color:var(--ink);box-shadow:inset 0 -2px 0 var(--accent-text)}

/* county map */
.cmap-wrap{display:grid;gap:24px;align-items:start}
@media (min-width:900px){.cmap-wrap{grid-template-columns:1.3fr 1fr}}
.cmap{width:100%;max-height:560px;background:var(--paper);border-radius:var(--r)}
.cmap .me{fill:#E4DCCB;stroke:var(--ink-2);stroke-width:.4}
.cmap .nb{fill:#EFEBE3;stroke:#D8D0C1;stroke-width:.3}
.cmap .ni{fill:#F3F0EA;stroke:#D8D0C1;stroke-width:.3}
.cmap .pin circle{fill:var(--accent);stroke:#fff;stroke-width:.5;transition:r .15s}
.cmap .pin:hover circle,.cmap .pin.hot circle{fill:var(--accent-text)}
.cmap-side{text-align:left}
.cmap-list{columns:2;column-gap:20px;margin-top:10px}
.cmap-list a{display:flex;align-items:center;min-height:36px;color:var(--ink);font-size:var(--t2);break-inside:avoid}
.cmap-list a:hover,.cmap-list a.hot{color:var(--accent-text)}

/* feed rows */
.frs{text-align:left}
@media (min-width:900px){.frs{columns:2;column-gap:32px}}
.fr{break-inside:avoid}
.fr>a,.fr-in{display:grid;grid-template-columns:1fr 18px;gap:10px;padding:12px 0;border-bottom:1px solid var(--line);color:var(--ink)}
.fr-in{grid-template-columns:1fr}
.fr-t,.fr-m,.fr-l{grid-column:1}
.fr-t{font-weight:600;line-height:1.3}
.fr-m{font-size:var(--t1);font-weight:600;color:var(--accent-text)}
.fr-l{font-size:var(--t2);color:var(--ink-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.fr-go{width:18px;height:18px;color:var(--ink-2);grid-column:2;grid-row:1/4;align-self:center}
.fr>a:hover .fr-t{color:var(--accent-text)}
.fr.hl>a,.fr.hl .fr-in{background:#FFF1E6;border-radius:10px}
.fr-more{margin-top:10px;text-align:left}
.fr-more summary{display:flex;align-items:center;gap:6px;min-height:44px;font-weight:600;color:var(--accent-text);cursor:pointer;list-style:none}
.fr-more summary::-webkit-details-marker{display:none}
.fr-more[open] summary .ic{transform:rotate(180deg)}

/* collections */
.cgs{display:grid;gap:36px;text-align:left}
@media (min-width:1024px){.cgs{grid-template-columns:1fr 1fr;gap:40px 48px}}
.cg-h{display:flex;align-items:baseline;justify-content:space-between;gap:12px;font-size:var(--t4);padding-bottom:8px;border-bottom:1.5px solid var(--ink)}
.cg-h a{color:var(--ink);display:inline-flex;align-items:center;min-height:44px}
.cg-h a:hover{color:var(--accent-text)}
.cg-h span{font-size:var(--t2);font-weight:400;color:var(--ink-2)}

/* place pages */
.pl-grid{display:grid;gap:22px}
.pl-grid>*,.chero-in>*,.cover-in>*,.mapgrid>*,.cmap-wrap>*,.glist>*{min-width:0}
.pl-pic{margin-inline:calc(-1 * var(--gut))}
.pl-pic img,.pl-pic .plate{width:100%;aspect-ratio:16/9;object-fit:cover}
.pl-pic .cmap{background:var(--stone);border-radius:0;max-height:none}
.pl-where{display:flex;align-items:center;justify-content:center;gap:6px;color:var(--ink-2);margin-top:8px}
.pl-where .ic{width:18px;height:18px;color:var(--accent-text)}
@media (min-width:1024px){
  .pl-grid{grid-template-columns:1.25fr 1fr;align-items:start;gap:48px}
  .pl-pic{margin:0;position:sticky;top:calc(var(--hd) + 16px)}
  .pl-pic img,.pl-pic .plate,.pl-pic .cmap{border-radius:20px}
}
.prac{margin-top:24px;background:var(--card);border-radius:var(--r);box-shadow:inset 0 0 0 1px var(--line);text-align:left;overflow:hidden}
.prac div{display:grid;grid-template-columns:118px 1fr;gap:12px;padding:12px 16px;border-top:1px solid var(--line)}
.prac div:first-child{border-top:0}
.prac dt{font-size:var(--t2);font-weight:600;color:var(--ink-2)}
.prac dd{font-size:var(--t2)}
.prac dd a{display:inline-flex;align-items:center;gap:4px;font-weight:600;min-height:28px}
.prac dd .ic{width:14px;height:14px}
.prac .sep{color:var(--ink-2);margin:0 6px}
.locator{margin-top:20px;background:var(--stone);border-radius:var(--r);padding:12px}
.locator .cmap{max-height:220px;background:transparent}
.locator figcaption{font-size:var(--t2);color:var(--ink-2);margin-top:6px}
.listing{margin:20px auto 0;max-width:40em;padding:0 8px}
.listing blockquote{font-size:var(--t3);line-height:1.6;color:var(--ink)}
.listing blockquote p::before{content:"\201C"}.listing blockquote p::after{content:"\201D"}
.listing figcaption{font-size:var(--t1);font-weight:600;color:var(--ink-2);margin-top:6px}

/* prose */
.prose{text-align:center}
.prose p{margin-top:16px;font-size:var(--t3);line-height:1.7}
@media (min-width:900px){.prose p{font-size:var(--t4)}}
.prose h2{margin-top:44px}
.prose h3{margin-top:28px}
.prose ul{margin-top:12px;text-align:left;display:grid;gap:8px}
.prose ul li{padding-left:18px;position:relative}
.prose ul li::before{content:"";position:absolute;left:0;top:.7em;width:6px;height:6px;border-radius:50%;background:var(--accent)}
.prose .credits{font-size:var(--t2)}
.prose a{text-decoration:underline;text-decoration-color:rgba(179,78,23,.35);text-underline-offset:3px}
.byline{font-size:var(--t2);color:var(--ink-2);margin-top:14px}
.guide-pic{margin-top:28px}
.guide-pic img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:20px}
@media (max-width:699px){.guide-pic{padding:0}.guide-pic img{border-radius:0}}
.toc{background:var(--stone);border-radius:var(--r);padding:18px 20px;text-align:left;margin-bottom:12px}
.toc-h{font-size:var(--t2);font-weight:600;color:var(--ink-2)}
.toc ol{list-style:decimal;padding-left:22px;margin-top:6px}
.toc a{display:inline-flex;min-height:36px;align-items:center;font-weight:600}

/* faq and getting there */
.faq-h{margin:40px 0 12px}
.faq{text-align:left}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:56px;padding:12px 0;font-weight:600;cursor:pointer;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq-ic{width:20px;height:20px;transition:transform .2s;color:var(--ink-2)}
.faq details[open] .faq-ic{transform:rotate(180deg)}
.faq-a{padding:0 0 16px;color:var(--ink-2)}
.gt{display:grid;gap:10px;text-align:left}
@media (min-width:700px){.gt{grid-template-columns:1fr 1fr}}
.gt-r{display:grid;grid-template-columns:28px 1fr;gap:4px 12px;padding:16px;border-radius:var(--r);background:var(--paper)}
.gt-r .ic{grid-row:1/3;width:24px;height:24px;color:var(--accent-text)}
.gt dt{font-weight:600}
.gt dd{font-size:var(--t2);color:var(--ink-2)}

/* forms and fixed pages */
.form{display:grid;gap:16px;text-align:left;max-width:560px;margin-inline:auto}
.f label{display:block;font-size:var(--t2);font-weight:600;margin-bottom:6px}
.f .opt{font-weight:400;color:var(--ink-2)}
.f input:not([type=checkbox]),.f textarea{width:100%;min-height:48px;padding:12px 14px;border-radius:12px;border:0;box-shadow:inset 0 0 0 1.5px var(--line);background:var(--card);font-size:var(--t3)}
.f input:focus,.f textarea:focus{outline:0;box-shadow:inset 0 0 0 2px var(--ink)}
.f-check{display:flex;gap:10px;align-items:flex-start}
.f-check input{width:22px;height:22px;margin-top:2px;accent-color:var(--green);flex:none}
.f-check label{font-weight:400;margin:0}
.form-err{color:#A32B1B;font-weight:600;font-size:var(--t2)}
.form-ok{color:var(--green);font-weight:600}
.form .btn{justify-self:start}
.stats{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:36px}
@media (min-width:700px){.stats{grid-template-columns:repeat(4,1fr)}}
.stats li{background:var(--stone);border-radius:var(--r);padding:18px 10px;display:flex;flex-direction:column}
.stats b{font-size:var(--t6);font-weight:600;font-variant-numeric:tabular-nums}
.stats span{font-size:var(--t2);color:var(--ink-2)}
.about-pic img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:20px;margin-bottom:12px}
.gets{display:grid;gap:12px}
@media (min-width:700px){.gets{grid-template-columns:repeat(3,1fr)}}
.gets li{background:var(--card);box-shadow:inset 0 0 0 1px var(--line);border-radius:var(--r);padding:22px 18px}
.gets p{font-size:var(--t2);color:var(--ink-2);margin-top:6px}
.note{color:var(--ink-2);margin-top:16px}
.contact-ways{display:grid;gap:10px;margin-bottom:48px}
@media (min-width:700px){.contact-ways{grid-template-columns:repeat(3,1fr)}}
.cway{display:flex;flex-direction:column;align-items:center;gap:4px;padding:22px 12px;border-radius:var(--r);background:var(--card);box-shadow:inset 0 0 0 1px var(--line);color:var(--ink)}
.cway .ic{width:28px;height:28px;color:var(--accent-text)}
.cway span{font-size:var(--t2);color:var(--ink-2)}
.cway:hover{color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink)}

/* footer */
.ft{background:var(--ink);color:#C9C4BA;padding:56px 0 32px;font-size:var(--t2)}
.ft a{color:#F2EEE6}
.ft a:hover{color:var(--accent)}
.brand-inv{color:#fff;justify-content:center;margin:0 auto;flex-direction:column;gap:8px}
.brand-inv:hover{color:#fff}
.ft-top{display:flex;flex-direction:column;align-items:center;gap:10px;padding-bottom:32px;border-bottom:1px solid rgba(255,255,255,.12)}
.ft-social{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 18px}
.ft-social a{display:inline-flex;align-items:center;gap:6px;min-height:44px}
.ft-cols{display:grid;grid-template-columns:1fr;gap:32px;padding:32px 0;text-align:center}
.ft-counties ul{columns:3;column-gap:12px}
.ft li a{text-decoration:underline;text-decoration-color:rgba(242,238,230,.28);text-underline-offset:4px;text-decoration-thickness:1px}
.ft li a:hover{text-decoration-color:var(--accent)}
.ft-social a{text-decoration:underline;text-decoration-color:rgba(242,238,230,.28);text-underline-offset:4px}
@media (min-width:900px){.ft-cols{grid-template-columns:1fr 3fr 1fr;gap:40px;text-align:left}.ft-counties ul{columns:4}}
.ft h3{font-size:var(--t2);color:#fff;margin-bottom:8px}
.ft li a{display:inline-flex;align-items:center;min-height:36px}
.ft-base{display:flex;flex-direction:column;align-items:center;gap:6px;padding-top:24px;border-top:1px solid rgba(255,255,255,.12)}
.ft-base a{text-decoration:underline;text-decoration-color:rgba(242,238,230,.28);text-underline-offset:4px}

/* Featured: paid placements, always labelled, never styled as editorial (23/09) */
.feat-slot{margin-top:28px}
.feat[hidden]{display:none}
.feat a{display:grid;grid-template-columns:1fr;overflow:hidden;border-radius:var(--r);background:var(--card);box-shadow:inset 0 0 0 1.5px var(--accent);color:var(--ink);transition:box-shadow .2s}
.feat a:hover{color:var(--ink);box-shadow:inset 0 0 0 2px var(--accent-text)}
.feat-pic{display:block;aspect-ratio:16/9;background:var(--stone);overflow:hidden}
.feat-pic img{width:100%;height:100%;object-fit:cover}
.feat-b{display:flex;flex-direction:column;align-items:center;gap:6px;padding:20px 20px 22px}
.feat-tag{display:inline-block;padding:3px 10px;border-radius:999px;background:var(--accent);color:var(--ink);font-size:var(--t1);font-weight:600}
.feat-t{font-size:var(--t4);font-weight:600;line-height:1.25}
.feat-m{font-size:var(--t1);font-weight:600;color:var(--accent-text)}
.feat-l{font-size:var(--t2);color:var(--ink-2);max-width:36em}
.feat .arrow{color:var(--accent-text);font-size:var(--t2)}
.feat-house a{background:var(--stone);box-shadow:inset 0 0 0 1.5px var(--line)}
.feat-house a:hover{box-shadow:inset 0 0 0 1.5px var(--ink)}
.s-stone .feat-house a{background:var(--paper)}
@media (min-width:700px){.feat:not(.feat-house) a{grid-template-columns:1fr 1fr;align-items:stretch}.feat:not(.feat-house) .feat-pic{aspect-ratio:auto;min-height:220px}.feat-b{justify-content:center;padding:28px}}
.ev-spon>a{display:grid;grid-template-columns:68px 1fr 20px;gap:14px;align-items:center;padding:14px 12px;margin:0 -12px;border-bottom:1px solid var(--line);border-radius:12px;background:#FDF1E8;color:var(--ink)}
.ev-spon>a:hover .ev-t{color:var(--accent-text)}
.ev-spon .ev-d small{color:var(--accent-dark)}

/* chat: the travel assistant (23/09). Launcher bottom right, never opens on its own. The panel is a
   non-modal pop-up in the corner (a sheet with the header still showing on a phone); the page stays
   usable behind it, and it stays open from page to page until it is closed or the tab is. */
.chat-fab{position:fixed;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));z-index:45;display:inline-flex;align-items:center;justify-content:center;gap:8px;width:56px;height:56px;padding:0;border:0;border-radius:999px;background:var(--green);color:#fff;font-weight:600;cursor:pointer;box-shadow:0 2px 6px rgba(18,60,27,.18),0 10px 28px rgba(18,60,27,.22);transition:background-color .2s,opacity .2s,transform .2s}
.chat-fab .ic{width:28px;height:28px}
.chat-scrim{position:fixed;inset:0;z-index:55;background:rgba(18,20,22,.35);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;pointer-events:none;transition:opacity .2s}
.chat-scrim.on{opacity:1;pointer-events:auto}
@media (min-width:700px){.chat-scrim{display:none}}
.chat-fab span{display:none}
.chat-fab:hover{background:var(--green-dark)}
.chat-fab:active{transform:scale(.97)}
.chat-fab.away,.chat-fab.open{opacity:0;pointer-events:none;transform:translateY(8px)}
@media (min-width:1024px){.chat-fab{width:auto;height:52px;padding:0 22px 0 18px}.chat-fab .ic{width:24px;height:24px}.chat-fab span{display:inline}}
.ft{padding-bottom:72px}
.chat{position:fixed;inset:auto 8px max(8px,env(safe-area-inset-bottom)) 8px;z-index:60;margin:0;width:auto;height:min(620px,calc(100dvh - 96px));flex-direction:column;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;box-shadow:0 2px 8px rgba(22,24,26,.12),0 18px 48px rgba(22,24,26,.24)}
.chat[open]{display:flex}
.chat-in{display:flex;flex-direction:column;height:100%;min-height:0;text-align:left}
.chat-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px var(--gut);border-bottom:1px solid var(--line);background:var(--card)}
.chat-top h2{font-size:var(--t4);line-height:1.25}
.chat-sub{font-size:var(--t2);color:var(--ink-2)}
.chat-ai{display:inline-block;margin-right:6px;padding:1px 8px;border-radius:999px;background:var(--stone);color:var(--ink);font-size:var(--t1);font-weight:600}
.chat-log{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:16px var(--gut) 8px;display:flex;flex-direction:column;gap:12px}
.cm{max-width:88%;padding:10px 14px;border-radius:16px;line-height:1.5;overflow-wrap:anywhere}
.cm p+p,.cm p+ul,.cm ul+p{margin-top:8px}
.cm ul{list-style:disc;padding-left:20px}
.cm li+li{margin-top:4px}
.cm a{color:var(--accent-text);text-decoration:underline;text-decoration-color:rgba(179,78,23,.35);text-underline-offset:3px}
.cm-bot{align-self:flex-start;background:var(--card);box-shadow:inset 0 0 0 1px var(--line);border-bottom-left-radius:6px}
.cm-me{align-self:flex-end;background:var(--stone);border-bottom-right-radius:6px}
.cm-err{align-self:flex-start;background:#FBEDE6;color:var(--accent-dark)}
.cm-typing{display:inline-flex;gap:5px;align-items:center;min-height:44px}
.cm-typing i{width:7px;height:7px;border-radius:50%;background:var(--ink-2);opacity:.35;animation:chatdot 1.2s infinite}
.cm-typing i:nth-child(2){animation-delay:.2s}.cm-typing i:nth-child(3){animation-delay:.4s}
@keyframes chatdot{0%,80%,100%{opacity:.25}40%{opacity:.9}}
.chat-sugg{display:flex;flex-wrap:wrap;gap:8px;padding:4px var(--gut) 8px}
.chat-sugg[hidden]{display:none}
.chat-form{padding:10px var(--gut) max(12px,env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--card)}
.chat-ts:empty{display:none}
.chat-ts{margin-bottom:8px}
.chat-row{display:flex;align-items:flex-end;gap:8px}
.chat-row textarea{flex:1;min-width:0;min-height:48px;max-height:132px;padding:12px 14px;border:0;border-radius:14px;background:var(--paper);box-shadow:inset 0 0 0 1px var(--line);font-size:var(--t3);line-height:1.5;resize:none}
.chat-row textarea:focus{outline:0;box-shadow:inset 0 0 0 2px var(--green)}
.chat-send{display:grid;place-items:center;flex:none;width:48px;height:48px;border:0;border-radius:999px;background:var(--green);color:#fff;cursor:pointer}
.chat-send:hover{background:var(--green-dark)}
.chat-send:disabled{opacity:.5;cursor:default}
.chat-send .ic{width:22px;height:22px}
.chat-note{margin-top:8px;font-size:var(--t1);color:var(--ink-2);text-align:center}
.chat-note a{text-decoration:underline;text-underline-offset:3px}
@media (min-width:700px){.chat{left:auto;right:24px;bottom:24px;width:400px;height:min(640px,calc(100dvh - 120px))}}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
