/* Relaxtay local explorer (tablet + phone). Sizes in em: .xp-tab scales with the tablet's rem, .xp-phone is 15px. */
.xp,.xdlg{--xt:var(--teal,#017785);--xd:var(--deep,#123c40);--xl:var(--line,#e9dfd1);--xcard:var(--card,#fffdf9);--xm:var(--muted,#6b7572);font-family:var(--sans,system-ui,sans-serif);color:var(--ink,#24302f);-webkit-user-select:none;user-select:none}
.xp-tab{font-size:1.12rem}
.xp-phone{font-size:15px}
.xp button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}
.xp .xi{width:1.5em;height:1.5em;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.xp .xs{width:1.05em;height:1.05em;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none;vertical-align:-.15em}
.xbar{display:flex;align-items:center;justify-content:space-between;gap:.8em;flex-wrap:wrap;margin:0 0 .7em}
.xviews{display:inline-flex;background:#efe6d9;border-radius:999px;padding:.22em;gap:.15em}
.xv{border:0;background:transparent;border-radius:999px;padding:.55em 1.05em;font-weight:800;color:var(--xd);display:inline-flex;align-items:center;gap:.4em;white-space:nowrap;min-height:2.6em}
.xv.on{background:#fff;color:var(--xt);box-shadow:0 .1em .4em rgba(18,60,64,.12)}
.xcount{margin:0;color:var(--xm);font-weight:700}
.xchips{display:flex;gap:.5em;overflow-x:auto;padding:.1em .1em .55em;margin:0 -.1em;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.xchips::-webkit-scrollbar{display:none}
.xc{flex:none;border:1.5px solid var(--xl);background:#fff;border-radius:999px;padding:.5em .95em;display:inline-flex;align-items:baseline;gap:.4em;white-space:nowrap;min-height:2.6em;align-items:center}
.xc b{font-weight:800;color:var(--xd)}.xc i{font-style:normal;color:var(--xm);font-size:.86em;font-weight:700}
.xc em{font-style:normal;font-size:.78em;font-weight:800;background:#f3ece2;color:var(--xd);border-radius:999px;padding:.1em .55em;min-width:1.6em;text-align:center}
.xc.on{background:var(--xd);border-color:var(--xd)}.xc.on b,.xc.on i{color:#fff}.xc.on em{background:rgba(255,255,255,.18);color:#fff}
.xc:disabled{opacity:.4}
.xtiers .xc{border-color:#d6e6e3}
.xout{padding-top:.3em}
.xheros{display:grid;gap:.9em;margin:.4em 0 1.1em;grid-template-columns:repeat(auto-fit,minmax(min(100%,18em),1fr))}
.xhero{position:relative;min-height:12.5em;border-radius:1.3em;overflow:hidden;background:var(--xd) center/cover no-repeat;color:#fff;display:flex;align-items:stretch;box-shadow:0 .5em 1.6em rgba(18,60,64,.18)}
.xhb{flex:1;border:0;background:transparent;text-align:left;padding:1.1em 1.2em;display:flex;flex-direction:column;justify-content:flex-end;color:#fff;position:relative;min-width:0}
.xhero .xbig{position:absolute;right:.9em;top:.9em;width:3.6em;height:3.6em;fill:none;stroke:rgba(255,255,255,.55);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.xht{display:flex;flex-direction:column;gap:.2em;max-width:100%}
.xht i{font-style:normal;font-weight:800;font-size:.85em;letter-spacing:.02em;opacity:.95;text-transform:uppercase}
.xht b{font-family:var(--serif,Georgia,serif);font-weight:400;font-size:1.65em;line-height:1.1;text-shadow:0 .08em .5em rgba(0,0,0,.35)}
.xht span{font-weight:600;opacity:.95;font-size:.95em;line-height:1.3;text-shadow:0 .05em .4em rgba(0,0,0,.4)}
.xhero .xqr.light{align-self:flex-end;margin:0 1em 1em 0;background:#fff;color:var(--xd)}
.xhero .xgo.light{position:absolute;right:.9em;top:.9em;background:#fff;color:var(--xd)}
.xcr{position:absolute;left:1.2em;top:.6em;font-size:.62em;opacity:.8;color:#fff;text-shadow:0 0 .4em rgba(0,0,0,.6);max-width:70%}
.xsec{margin:0 0 1.3em}
.xsec h3{display:flex;align-items:center;gap:.45em;font-family:var(--serif,Georgia,serif);font-weight:400;color:var(--xd);font-size:1.45em;margin:.2em 0 .55em;line-height:1.15}
.xsec h3 i{font-family:var(--sans,system-ui);font-style:normal;font-size:.55em;font-weight:800;color:var(--xm)}
.xsec h3 em{font-family:var(--sans,system-ui);font-style:normal;font-size:.5em;font-weight:800;background:#f3ece2;border-radius:999px;padding:.15em .6em;color:var(--xd)}
.xdot{width:.5em;height:.5em;border-radius:50%;flex:none}
.xgrid{display:grid;gap:.75em;grid-template-columns:repeat(auto-fill,minmax(min(100%,17em),1fr))}
.xp-tab .xgrid{grid-template-columns:repeat(auto-fill,minmax(min(100%,21em),1fr))}
.xgrid.one{grid-template-columns:1fr}
.xcard{display:flex;align-items:stretch;background:var(--xcard);border:1px solid var(--xl);border-radius:1.05em;overflow:hidden;min-width:0;box-shadow:0 .1em .3em rgba(18,60,64,.04)}
.xbody{flex:1;min-width:0;border:0;background:transparent;text-align:left;display:flex;gap:.75em;padding:.85em .9em;align-items:flex-start}
.xico{flex:none;width:2.4em;height:2.4em;border-radius:.8em;display:inline-flex;align-items:center;justify-content:center;background:var(--xc,#017785);color:#fff}
.xico .xi{width:1.35em;height:1.35em}
.xtx{display:flex;flex-direction:column;gap:.18em;min-width:0}
.xtx b{font-weight:800;color:var(--xd);line-height:1.2;font-size:1.02em}
.xl{color:#4c5856;font-size:.88em;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.xm{color:var(--xt);font-weight:800;font-size:.85em;display:inline-flex;align-items:center;gap:.35em;margin-top:.1em}
.xqr{flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15em;padding:.55em .6em;border-left:1px dashed var(--xl);background:#fff;border-radius:0}
.xqr svg{width:5.2em;height:5.2em;display:block}
.xqr span{font-size:.66em;font-weight:800;color:var(--xm);text-transform:uppercase;letter-spacing:.03em}
.xqr.light{border:0;border-radius:.8em;padding:.5em}
.xqr.big svg{width:9em;height:9em}.xqr.big span{font-size:.8em}
.xgo{flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2em;padding:0 .95em;border-left:1px solid var(--xl);color:var(--xt);font-weight:800;text-decoration:none;font-size:.85em;min-width:3.6em}
.xgo .xs{width:1.4em;height:1.4em}
.xgo.light{flex-direction:row;border:0;border-radius:999px;padding:.55em .9em;font-size:.9em}
.xmore{display:block;margin:.7em auto 0;border:1.5px solid var(--xt);background:#fff;color:var(--xt);font-weight:800;border-radius:999px;padding:.6em 1.3em;min-height:2.7em}
.xmore.less{border-color:var(--xl);color:var(--xm)}
.xnone,.xhint{color:var(--xm);text-align:center;margin:1.2em 0;font-weight:700}
.xnote{color:var(--xm);font-size:.8em;text-align:center;margin:.4em 0 1em}
.xmap{position:relative;overflow:hidden;border-radius:1.2em;background:#e8e4dc;height:28em;border:1px solid var(--xl)}
.xp-tab .xmap{height:min(30em,52vh)}
.xtiles{position:absolute;inset:0}.xtiles img{position:absolute;width:256px;height:256px;max-width:none;filter:saturate(.5) sepia(.1) brightness(1.04)}
.xpin{position:absolute;transform:translate(-50%,-100%);width:2.2em;height:2.2em;border-radius:50% 50% 50% 0;rotate:-45deg;border:2px solid #fff;background:var(--xc,#017785);color:#fff;display:flex;align-items:center;justify-content:center;padding:0;box-shadow:0 .15em .4em rgba(0,0,0,.3)}
.xpin .xs{rotate:45deg;width:1em;height:1em}
.xpin.on{width:2.9em;height:2.9em;z-index:3;outline:3px solid rgba(255,255,255,.7)}
.xpin.home{background:var(--xd);z-index:2}
.xattr{position:absolute;right:.4em;bottom:.3em;font-size:.6em;background:rgba(255,255,255,.8);padding:.1em .4em;border-radius:.3em}
.xleg{position:absolute;left:.5em;top:.5em;display:flex;flex-wrap:wrap;gap:.3em .7em;background:rgba(255,255,255,.9);border-radius:.7em;padding:.4em .7em;font-size:.72em;font-weight:700;max-width:calc(100% - 1em)}
.xleg i{display:inline-block;width:.75em;height:.75em;border-radius:50%;margin-right:.3em;vertical-align:-.05em}
.xmapsel{margin-top:.8em}
.xdlg{position:fixed;inset:0;z-index:60;background:rgba(18,30,32,.55);display:flex;align-items:center;justify-content:center;padding:1.2em;animation:xfade .18s ease-out}
@keyframes xfade{from{opacity:0}to{opacity:1}}
.xdcard{position:relative;background:#fff;border-radius:1.4em;max-width:40em;width:100%;max-height:calc(100% - 1em);overflow:auto;box-shadow:0 1em 3em rgba(0,0,0,.3)}
.xdph{height:13em;background:#ddd center/cover no-repeat;position:relative}.xdph small{position:absolute;left:.8em;bottom:.5em;color:#fff;font-size:.65em;text-shadow:0 0 .4em rgba(0,0,0,.7)}
.xdin{padding:1.3em 1.5em 1.5em}
.xdin h2{font-family:var(--serif,Georgia,serif);font-weight:400;color:var(--xd);font-size:1.9em;line-height:1.1;margin:.2em 0 .4em}
.xdin p{margin:.35em 0;line-height:1.4}
.xk{display:flex;align-items:center;gap:.55em;color:var(--xm);font-weight:800;font-size:.9em;margin:0}
.xk .xico{width:2em;height:2em}
.xad{display:flex;gap:.45em;align-items:flex-start;color:#4c5856}
.xdx{position:absolute;right:.7em;top:.7em;width:2.8em;height:2.8em;border-radius:50%;border:0;background:rgba(255,255,255,.95);box-shadow:0 .1em .5em rgba(0,0,0,.2);display:flex;align-items:center;justify-content:center;z-index:2}
.xdx .xs{width:1.3em;height:1.3em}
.xdqrs{display:flex;gap:1.2em;margin-top:1em;flex-wrap:wrap}
.xdqrs .xqr{border:1px solid var(--xl);border-radius:1em}
.xdacts{display:flex;gap:.6em;margin-top:1em;flex-wrap:wrap}
.xbtn{display:inline-flex;align-items:center;gap:.45em;background:var(--xt);color:#fff;text-decoration:none;font-weight:800;border-radius:999px;padding:.7em 1.2em}
.xbtn.ghost{background:#fff;color:var(--xt);border:1.5px solid var(--xt)}
/* tablet placement */
.sg-local.sg-xp{display:flex;flex-direction:column;flex:1;min-height:0}
.sg-local.sg-xp .xwrap{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-bottom:2rem}
.sg-local.sg-xp .xwrap::-webkit-scrollbar{display:none}
.portrait .xp-tab .xgrid{grid-template-columns:repeat(auto-fill,minmax(min(100%,19em),1fr))}
@media (max-width:480px){.xp-phone .xv{padding:.5em .75em}.xp-phone .xbar{gap:.5em}.xp-phone .xcount{width:100%;order:2;font-size:.9em}}

/* tablet: every target >= 64 px, chips wrap (nothing scrolls sideways) */
.xp-tab .xchips{flex-wrap:wrap;overflow:visible;padding-bottom:.35em;margin:0}
.xp-tab .xc,.xp-tab .xv,.xp-tab .xmore{min-height:max(64px,3.1rem);min-width:64px}
.xp-tab .xv{padding:.55em 1.2em}
.xp-tab .xbody{min-height:max(64px,3.1rem)}
.xp-tab .xhb{min-width:64px}
.xp-tab .xpin{width:max(64px,3.2rem);height:max(64px,3.2rem);border:0;background:transparent;box-shadow:none;rotate:0deg;transform:translate(-50%,-78%)}
.xp-tab .xpin::before{content:"";position:absolute;left:50%;top:50%;width:2.3em;height:2.3em;border-radius:50% 50% 50% 0;rotate:-45deg;translate:-50% -50%;background:var(--xc,#017785);border:2px solid #fff;box-shadow:0 .15em .4em rgba(0,0,0,.3)}
.xp-tab .xpin .xs{rotate:0deg;position:relative;z-index:1;color:#fff}
.xp-tab .xpin.on::before{width:3em;height:3em;outline:3px solid rgba(255,255,255,.75)}
.xp-tab .xpin.home::before{background:var(--xd)}
.xdlg.xd-tab{font-size:1.12rem}
.xd-tab .xdx{width:max(64px,3.2rem);height:max(64px,3.2rem)}
.xd-tab .xdcard{max-width:46em}
.xd-tab .xdin{padding:1.6em 1.9em 1.9em}
.xdlg.xd-phone{font-size:15px;font-family:var(--sans,system-ui,sans-serif);color:var(--ink,#24302f)}
.xdlg .xs{width:1.05em;height:1.05em;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none;vertical-align:-.15em}.xdlg .xi{width:1.35em;height:1.35em;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.xdlg button{font:inherit;cursor:pointer}

/* phone: featured cards scroll sideways in one row */
.xp-phone .xheros{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:.7em;margin:.3em -1px 1em;padding-bottom:.3em;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.xp-phone .xheros::-webkit-scrollbar{display:none}
.xp-phone .xhero{flex:0 0 86%;scroll-snap-align:start;min-height:11.5em}
.xp-phone .xheros.n1 .xhero{flex-basis:100%}
.xp-phone .xhero .xbig{top:auto;bottom:.9em;right:.9em;width:2.6em;height:2.6em;opacity:.0}
.xp-phone .xht b{font-size:1.45em}
.xp-tab .xhero .xbig{right:auto;left:1.1em;top:1em}
.portrait .xp-tab,.portrait .xdlg.xd-tab{font-size:1.3rem}

/* v2.9: clear filter rows (How far / What / Good for), card chips, hours & price in the details */
.xdlg .xs{width:1.05em;height:1.05em;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none;vertical-align:-.15em}
.xfilt{background:#fbf7f1;border:1px solid var(--xl);border-radius:1.2em;padding:.75em .95em .6em;margin:0 0 1.1em;display:flex;flex-direction:column;gap:.6em}
.xrow{display:grid;grid-template-columns:7.4em minmax(0,1fr);align-items:center;gap:.8em;min-width:0}
.xrow+.xrow{border-top:1px dashed #e3d8c8;padding-top:.6em}
.xlab{display:inline-flex;align-items:center;gap:.4em;font-size:.76em;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--xm);white-space:nowrap}
.xlab .xs{width:1.35em;height:1.35em;color:var(--xt)}
/* How far = one segmented control */
.xp .xseg{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.2em;background:#e2eeec;border-radius:1em;padding:.25em;margin:0;overflow:visible}
.xseg .xc{border:0;background:transparent;border-radius:.75em;flex-direction:column;justify-content:center;gap:.08em;padding:.4em .3em;white-space:normal;text-align:center;min-width:0;line-height:1.15}
.xseg .xc b{font-size:.95em}
.xseg .xc i{font-size:.74em}
.xseg .xc em{display:none}
.xseg .xc.on{background:var(--xt);box-shadow:0 .15em .45em rgba(1,119,133,.32)}
.xseg .xc.on b,.xseg .xc.on i{color:#fff}
/* What = icon pills in each category's colour */
.xpills .xc{padding:.3em .85em .3em .3em;gap:.45em;border-color:#e6dccd}
.xpills .xci{width:1.85em;height:1.85em;border-radius:50%;display:inline-grid;place-items:center;background:var(--xc,var(--xd));color:#fff;flex:none}
.xpills .xci .xs{width:1.05em;height:1.05em}
.xpills .xc.on{background:var(--xc,var(--xd));border-color:var(--xc,var(--xd))}
.xpills .xc.on .xci{background:rgba(255,255,255,.22)}
/* Good for = small square tags */
.xgood .xc{border-radius:.6em;border-style:dashed;border-color:#d8c9b3;background:#fffdf9;padding:.4em .8em}
.xgood .xc.on{background:#8a5a14;border-color:#8a5a14;border-style:solid}
.xgood .xc.on b,.xgood .xc.on em{color:#fff}
.xmf{align-self:flex-start;border:0;background:none;color:var(--xt);font-weight:800;display:inline-flex;align-items:center;gap:.45em;padding:.2em .1em;font-size:.92em}
.xmf i{font-style:normal;color:var(--xm);font-weight:700;font-size:.9em}
.xmf.less{color:var(--xm);font-size:.82em}
.xp-tab .xmf{min-height:64px;min-width:64px;padding:0 .9em;border:1.5px solid #d6e6e3;border-radius:999px;background:#fff}
.xgrp{display:flex;align-items:center;flex-wrap:wrap;gap:.45em;font-size:.78em;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--xt);margin:.2em 0 .7em}
.xgrp i{text-transform:none;letter-spacing:0;color:var(--xm);font-style:normal;font-weight:700}
.xgrp .xtag{letter-spacing:0;text-transform:none}
.xdot.xdi{width:1.25em;height:1.25em;border-radius:.38em;display:inline-grid;place-items:center;color:#fff}
.xdot.xdi .xs{width:.72em;height:.72em}
/* card chips: price + who it suits */
.xtags{display:flex;flex-wrap:wrap;gap:.3em;margin-top:.32em}
.xtag{font-size:.74em;font-weight:800;padding:.16em .55em;border-radius:.45em;background:#f1ebe2;color:#5b524a;white-space:nowrap;line-height:1.35}
.xtag.pr{background:#e3efed;color:var(--xt)}
.xtag.free{background:#e2f3e7;color:#1d7a3e}
.xm .xo{margin-left:.35em;padding-left:.55em;border-left:1.5px solid #cfdcd9;color:#a5532f}
.xm .xo.open{color:#1d7a3e}
/* details: hours, price, good for, tip */
.xinfo{margin:.9em 0 .7em;border:1px solid var(--xl);border-radius:1em;padding:.3em 1em .4em;background:#fcfaf6}
.xir{display:grid;grid-template-columns:7em minmax(0,1fr);gap:.7em;padding:.55em 0;border-bottom:1px solid #f0e8dc;align-items:baseline}
.xil{display:inline-flex;gap:.4em;align-items:center;font-weight:800;color:var(--xm);font-size:.86em}
.xil .xs{color:var(--xt)}
.xiv{line-height:1.4;display:flex;flex-wrap:wrap;gap:.35em;align-items:center;color:var(--xd);font-weight:600}
.xiv .xtag{font-size:.8em}
.xiv .xo{font-size:.82em;font-weight:800;padding:.12em .55em;border-radius:.45em;background:#fbece5;color:#a5532f}
.xiv .xo.open{background:#e2f3e7;color:#1d7a3e}
.xdin p.xtip{display:flex;gap:.55em;align-items:flex-start;background:#fff6dc;border-radius:.75em;padding:.6em .8em;margin:.7em 0 .3em;color:#5d4b16;line-height:1.35}
.xtip .xs{color:#b8860b;margin-top:.15em}
.xdin p.xdisc{font-size:.78em;color:var(--xm);margin:.5em 0 .1em}
@media (max-width:480px){
  .xfilt{padding:.6em .7em .5em;border-radius:1em;gap:.5em}
  .xrow{display:block}
  .xlab{margin:0 0 .35em .1em;font-size:.7em}
  .xp .xseg{grid-template-columns:repeat(5,minmax(0,1fr));padding:.2em}
  .xseg .xc{padding:.35em .1em;min-height:3.1em}
  .xseg .xc b{font-size:.8em}
  .xseg .xc i{font-size:.66em}
  .xpills,.xgood{flex-wrap:nowrap}
  .xir{grid-template-columns:5.8em minmax(0,1fr)}
}

/* v2.10: street address in the detail view, right above directions */
.xaddr{display:flex;gap:.5em;align-items:flex-start;margin:.9em 0 0;padding:.65em .85em;border-radius:.8em;background:#f6f1e8;color:var(--xd);font-weight:700;line-height:1.35;text-decoration:none;overflow-wrap:anywhere}
.xaddr .xs{color:var(--xt);margin-top:.12em}
.xaddr span{flex:1;min-width:0}
.xaddr em{flex:none;font-style:normal;color:var(--xt);font-weight:800;font-size:.9em;white-space:nowrap;align-self:center}
.xaddr + .xdqrs,.xaddr + .xdacts{margin-top:.7em}

/* v2.12 place photos: card thumbnail + swipeable detail gallery */
.xico.xth{background:#ddd center/cover no-repeat;box-shadow:inset 0 0 0 1px rgba(0,0,0,.06)}
.xdgal{position:relative}
.xdtrack{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
.xdtrack::-webkit-scrollbar{display:none}
.xdtrack .xdph{flex:0 0 100%;scroll-snap-align:center;margin:0}
.xdph small{right:.8em;background:rgba(0,0,0,.35);padding:.15em .5em;border-radius:.4em;text-shadow:none;line-height:1.3;max-width:calc(100% - 1.6em);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;right:auto}
.xddots{position:absolute;left:0;right:0;bottom:2.1em;display:flex;justify-content:center;gap:.4em;pointer-events:none}
.xddots i{width:.5em;height:.5em;border-radius:50%;background:rgba(255,255,255,.55);box-shadow:0 0 .3em rgba(0,0,0,.4)}
.xddots i.on{background:#fff}
.xgp{position:absolute;top:50%;transform:translateY(-50%);width:2.4em;height:2.4em;border-radius:50%;border:0;background:rgba(255,255,255,.88);color:#123c40;font-size:1.25em;line-height:1;box-shadow:0 .1em .4em rgba(0,0,0,.25);cursor:pointer}
.xgp.prev{left:.6em}.xgp.next{right:.6em}
.xd-phone .xgp{display:none}
.xd-tab .xgp{min-width:64px;min-height:64px}

/* language picker (phone guide + tablet) */
.gi-lang{position:relative;display:inline-flex;z-index:30}
.gi-lb{display:inline-flex;align-items:center;gap:.35em;border:1px solid rgba(18,60,64,.18);background:rgba(255,255,255,.92);color:#123c40;border-radius:999px;padding:.35em .75em;font:700 .85em/1 system-ui,-apple-system,sans-serif;min-height:2.4em;cursor:pointer}
.gi-lb svg{width:1.15em;height:1.15em;fill:none;stroke:currentColor;stroke-width:1.8}
.gi-lm{position:absolute;right:0;top:calc(100% + .4em);background:#fff;border-radius:14px;box-shadow:0 10px 30px rgba(0,0,0,.18);padding:.4em;min-width:11em;display:flex;flex-direction:column}
.gi-lm[hidden]{display:none}
.gi-lm button{border:0;background:none;text-align:left;padding:.7em .9em;border-radius:10px;font:600 1em system-ui,-apple-system,sans-serif;color:#123c40;cursor:pointer;min-height:2.8em}
.gi-lm button.on{background:#e3f2ef;color:#0b6b5f}
.gi-lm p{margin:.3em .9em .4em;color:#7a8583;font:500 .75em system-ui,sans-serif}

.gi-fixed{position:fixed;top:max(12px,env(safe-area-inset-top));right:12px;z-index:900}
.gi-fixed[hidden]{display:none}
.gi-fixed.gi-tab{top:auto;bottom:1.4rem;left:1.6rem;right:auto;font-size:1.25rem}
.gi-fixed.gi-tab .gi-lm{top:auto;bottom:calc(100% + .4em);left:0;right:auto}
body:not(:has(.menu)) .gi-fixed.gi-tab{display:none}
@media print{.gi-lang{display:none!important}}
.gi-fixed.gi-tab .gi-lb{min-height:56px;min-width:96px;font-size:20px;padding:0 18px}.gi-fixed.gi-tab .gi-lm button{min-height:56px;font-size:20px}
