:root{
  --brand-paper:#FAF6F0;--brand-surface:#FFFFFF;
  --brand-ink:#0D1B22;--brand-ink-muted:#4A5560;
  --brand-action:#123C43;--brand-action-hover:#0D3036;
  --brand-action-wash:#E8F1EF;--brand-action-line:#BCD2CE;
  --brand-action-ink-dark:#A9D5CF;--brand-action-wash-dark:#1B3538;--brand-action-line-dark:#527B78;
  --brand-line:#DDDCD1;--brand-warmth:#B3531A;
  --brand-control-radius:10px;--brand-card-radius:16px;
  --brand-content-width:1160px;
  --brand-font-display:Fraunces,ui-serif,Georgia,serif;
  --brand-font-ui:"Plus Jakarta Sans",ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
/* Olladay sauna directory. Shares the foundation in src/brand-theme.js. */
@font-face{font-family:"Plus Jakarta Sans";src:url(/saunas/_assets/fonts/plus-jakarta-sans.153fc85b7029.woff2) format("woff2");font-weight:200 800;font-display:swap}
@font-face{font-family:"Plus Jakarta Sans";src:url(/saunas/_assets/fonts/plus-jakarta-sans-italic.bb113d8f5be8.woff2) format("woff2");font-weight:200 800;font-style:italic;font-display:swap}
@font-face{font-family:Fraunces;src:url(/saunas/_assets/fonts/fraunces.7f9d191d9993.woff2) format("woff2");font-weight:100 900;font-display:swap}

:root{
  --paper:var(--brand-paper);--surface:var(--brand-surface);--sidebar:#f2ece1;--sunk:#f5efe5;
  --line:var(--brand-line);--line-strong:#c8cec8;--line-control:#7d8790;
  --ink:var(--brand-ink);--ink-2:var(--brand-ink-muted);--ink-3:#5b6770;
  --rust:var(--brand-action);--rust-hover:var(--brand-action-hover);--rust-ink:var(--brand-action);--rust-wash:var(--brand-action-wash);--rust-line:var(--brand-action-line);--ember:var(--brand-warmth);--cedar:var(--brand-warmth);
  --sage:#15803d;--sage-ink:#166534;--sage-wash:#dcfce7;--amber:#8a5a00;--amber-wash:#fbf0d9;--red:#a12a1c;--red-wash:#fbe7e3;
  --tide:#0369a1;--tide-wash:#e0f2fe;--focus:#f59e0b;--card-shadow:0 4px 20px -2px rgba(13,27,34,.05);
  --sans:var(--brand-font-ui);
  --serif:var(--brand-font-display);
  --radius:var(--brand-card-radius);--radius-sm:var(--brand-control-radius);
  --shadow-pop:0 12px 32px -8px rgb(13 27 34 / .18),0 2px 6px rgb(13 27 34 / .06);
  --ease:cubic-bezier(.2,.8,.2,1);
  color-scheme:light;
  font-family:var(--sans);font-size:100%;line-height:1.5;color:var(--ink);background:var(--paper);
  text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  accent-color:var(--rust);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scrollbar-color:var(--line-strong) transparent}
body{margin:0;min-height:100dvh;background:var(--paper)}
::selection{background:var(--rust-wash);color:var(--rust-ink)}
img,svg{display:block;max-width:100%}
.icon{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}

/* Type */
h1,h2,h3,h4{margin:0;color:var(--ink);text-wrap:balance}
h1{font-family:var(--serif);font-weight:600;font-size:2.125rem;line-height:1.12;letter-spacing:-.02em}
h2{font-size:1.125rem;font-weight:620;line-height:1.3;letter-spacing:-.005em}
h3{font-size:1rem;font-weight:620;line-height:1.35}
p{margin:0}
p+p{margin-top:.6em}
.lead{font-size:1.0625rem;color:var(--ink-2);max-width:62ch;margin-top:.5rem}
.hint,.fine{font-size:.875rem;color:var(--ink-2)}
/* A help line belongs to the field above it and keeps clear of whatever comes next. */
label+.hint,label+.fine{margin-top:-.75rem}
p.hint:not(:last-child),p.fine:not(:last-child){margin-bottom:1.125rem}
.button-row+p.hint,.button-row+p.fine{margin-top:.75rem}
.sub-head{font-size:1rem;color:var(--ink);margin:1.75rem 0 .75rem;padding-top:1.5rem;border-top:1px solid var(--line)}
.fine{margin-top:.75rem}
/* Inline links in small print get a 24px-tall hit area (WCAG 2.5.8) without moving the text around them. */
.hint a:not([class]),.fine a:not([class]){padding-block:.3rem}
strong{font-weight:620}
a{color:var(--rust-ink);text-decoration-thickness:1px;text-underline-offset:.2em;text-decoration-color:var(--rust-line);transition:color .15s,text-decoration-color .15s}
a:hover{color:var(--rust-ink);text-decoration-color:currentColor}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px;box-shadow:0 0 0 2px var(--ink);border-radius:4px}
.eyebrow{font-size:.875rem;color:var(--ink-2);margin:0 0 .25rem}
.badge{display:inline-flex;align-items:center;gap:.35rem;height:24px;padding:0 .55rem;border-radius:999px;background:var(--sunk);color:var(--ink-2);font-size:.8125rem;font-weight:560;white-space:nowrap}
.badge.is-confirmed,.badge.confirmed{background:var(--sage-wash);color:var(--sage-ink)}
.badge.error{background:var(--red-wash);color:var(--red)}
td{font-variant-numeric:tabular-nums}

/* Skip link */
.skip{position:absolute;left:1rem;top:-4rem;z-index:50;background:var(--ink);color:#fff;padding:.6rem .9rem;border-radius:var(--radius-sm);text-decoration:none}
.skip:focus{top:1rem;color:#fff}

/* Wordmark */
.wordmark{font-family:var(--serif);font-weight:600;font-size:1.75rem;letter-spacing:-.02em;color:var(--ink);text-decoration:none;line-height:1.2}
.wordmark:hover{color:var(--ink)}

/* Controls */
label{display:grid;gap:.375rem;margin:0 0 1.125rem;font-size:.9375rem;font-weight:560;color:var(--ink)}
input,select,textarea{font:inherit;font-size:1rem;font-weight:400;color:var(--ink);background:var(--surface);border:1px solid var(--line-control);border-radius:var(--radius-sm);min-height:44px;padding:.55rem .75rem;width:100%;transition:border-color .15s,box-shadow .15s}
textarea{min-height:6.5rem;resize:vertical;line-height:1.5}
input::placeholder,textarea::placeholder{color:var(--ink-3)}
input:hover,select:hover,textarea:hover{border-color:var(--ink-3)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--rust)}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--focus);outline-offset:2px;box-shadow:0 0 0 2px var(--ink);border-radius:var(--radius-sm)}
input:user-invalid,select:user-invalid,textarea:user-invalid{border-color:var(--red)}
input[readonly]{background:var(--sunk);color:var(--ink-2)}
input:disabled,select:disabled,textarea:disabled{background:var(--sunk);color:var(--ink-3);cursor:not-allowed}
select{appearance:none;padding-right:2.25rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%235f544b' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m1 1.5 5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .8rem center}
input[type=checkbox],input[type=radio]{width:24px;height:24px;min-height:0;margin:0;padding:0;flex:none;cursor:pointer}
label:has(>input[type=checkbox]),label:has(>input[type=radio]){display:flex;align-items:flex-start;min-height:44px;padding-block:.625rem;gap:.625rem;font-weight:400;font-size:.9375rem;color:var(--ink);cursor:pointer;line-height:1.45}
/* A run of checkboxes or radios stacks as 44px rows without the gap a text field gets. */
:not(.checks)>label:has(>input[type=checkbox],>input[type=radio])+label:has(>input[type=checkbox],>input[type=radio]){margin-top:-1.125rem}
fieldset{border:0;margin:0;padding:0;min-width:0}
legend{padding:0;font-weight:620}

button,.button{font:inherit;font-size:1rem;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:44px;padding:.55rem 1.25rem;border-radius:var(--radius-sm);border:1px solid var(--rust);background:var(--rust);color:#fff;cursor:pointer;text-decoration:none;white-space:normal;line-height:1.4;overflow-wrap:anywhere;text-align:center;transition:background .15s var(--ease),border-color .15s,color .15s,transform .1s}
button:hover,.button:hover{background:var(--rust-hover);border-color:var(--rust-hover);color:#fff}
button:active,.button:active{transform:translateY(1px)}
button:disabled{opacity:.5;cursor:not-allowed;transform:none}
button.secondary,.button.secondary{background:var(--surface);color:var(--ink);border-color:var(--line-control)}
button.secondary:hover,.button.secondary:hover{background:var(--sunk);border-color:var(--ink-3);color:var(--ink)}
.button.wallet-button,.button.wallet-button:hover{background:#000;border-color:#000;color:#fff}
form{margin:0}
form+form{margin-top:.75rem}

details>summary{cursor:pointer;list-style:none}
details>summary::-webkit-details-marker{display:none}
details.advanced{margin:.25rem 0 0}
details.advanced>summary,.more-tools-toggle{display:inline-flex;align-items:center;gap:.4rem;min-height:44px;font-size:.875rem;font-weight:560;color:var(--ink-2)}
details.advanced>summary::before{content:"";width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg);transition:transform .15s var(--ease)}
details.advanced[open]>summary::before{transform:rotate(45deg)}
details.advanced>summary:hover{color:var(--ink)}
details.advanced[open]{padding-bottom:.25rem}
details.advanced[open]>summary{margin-bottom:.75rem}

.columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:0 1rem;align-items:end}
.columns.length-pair{grid-template-columns:1fr 1fr}
.wide{grid-column:1/-1}

/* Notices */
/* Block, not flex: a flex notice turns every text run and inline link into its own column. */
.notice{position:relative;display:block;margin:1.25rem 0;padding:.8rem 1rem .8rem 2.1rem;border-radius:var(--radius-sm);background:var(--sage-wash);color:#1f4a36;font-size:.9375rem}
.notice::before{content:"";position:absolute;left:1rem;top:1.3rem;width:8px;height:8px;border-radius:50%;background:var(--sage)}
.notice.error{background:var(--red-wash);color:#7a1f14}
.pending-changes p{margin:0 0 .6rem}.pending-changes form{margin:0}
.notice.error::before{background:var(--red)}

.columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:0 1rem;align-items:end}
.empty-state{padding:2.5rem 1.5rem;border:1px dashed var(--line-strong);border-radius:var(--radius);text-align:center;color:var(--ink-2);background:var(--sunk)}
.empty-state h3{margin:0 0 .25rem;color:var(--ink)}
.setup-section{display:grid;grid-template-columns:minmax(0,15rem) minmax(0,1fr);gap:1.5rem 3rem;padding:2rem 0;border-top:1px solid var(--line)}
.topbar{border-bottom:1px solid var(--line);background:var(--paper)}
.topbar-inner{max-width:var(--brand-content-width);margin:0 auto;padding:0 1rem;min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:1rem}
.public-app{font-size:16px}
.public-app main{max-width:760px;margin:0 auto;padding:0 1.25rem 3rem}
.slots{list-style:none;padding:0;margin:0}
.slot{display:grid;grid-template-columns:4rem minmax(0,1fr) auto;align-items:center;gap:1rem;padding:1rem .75rem;margin:0 -.75rem;border-radius:var(--radius-sm);min-height:76px;text-decoration:none;color:var(--ink);transition:background .15s}
.slot-time{font-size:1.0625rem;font-weight:600}
.slot-body{display:grid;gap:.15rem;min-width:0}
.slot-book{display:inline-flex;align-items:center;min-height:36px;padding:0 1rem;border-radius:var(--radius-sm);background:var(--ink);color:#fff;font-size:.875rem;font-weight:600;transition:background .15s}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.site-footer{max-width:760px;margin:0 auto;padding:2rem 1.25rem 3rem;font-size:.875rem;color:var(--ink-3)}
.public-app .card{background:none;border:0;padding:2.25rem 0 0;border-radius:0}
.public-app .card>a:first-child,.public-app .card>p:first-child>a:only-child{display:inline-flex;align-items:center;gap:.35rem;margin:0 0 1.25rem;font-size:.9375rem;text-decoration:none;color:var(--ink-2)}
.public-app .card>a:first-child::before{content:"←"}
.public-app .card h1{font-size:clamp(2rem,6vw,2.75rem);margin-bottom:.75rem}
.public-app .card>p strong,.when{font-size:1.0625rem}
.public-app .card form{margin-top:1.5rem;max-width:520px}
.public-app .card form button.wide{width:100%;min-height:52px;font-size:1rem;margin-top:.5rem}
.public-app .card .fine{max-width:520px}
.pill{display:inline-flex;align-items:center;gap:.35rem;height:22px;padding:0 .5rem;border-radius:999px;background:var(--sunk);color:var(--ink-2);font-size:.75rem;font-weight:560;white-space:nowrap;letter-spacing:0}
.pill.is-good{background:var(--sage-wash);color:var(--sage-ink)}
.button-row{display:flex;flex-wrap:wrap;gap:.625rem;align-items:center;margin-top:1rem}
.checks{display:grid;gap:0;margin:0 0 1.125rem;padding:.875rem 1rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--sunk)}
.checks legend{float:left;width:100%;font-size:.8125rem;font-weight:560;color:var(--ink-2);margin-bottom:.375rem}
.checks label{margin:0}
.public-app main{max-width:1040px}
.site-footer{max-width:1040px}
.public-app .card.narrow{max-width:620px}
.public-app .card.narrow .lead{margin:0 0 1.25rem}
.public-app .card>a.crumb:first-child::before{content:"←"}
label.choice{display:block;margin:0;position:relative;cursor:pointer}
label.choice input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
label.choice span{display:flex;align-items:center;justify-content:center;min-height:56px;padding:0 .75rem;border:1px solid var(--line-control);border-radius:var(--radius-sm);background:var(--surface);font-weight:600;font-size:1rem;transition:border-color .15s,background .15s,box-shadow .15s}
label.choice:hover span{border-color:var(--ink-3)}
label.choice input:checked+span{border-color:var(--rust);background:var(--rust-wash);color:var(--rust-ink);box-shadow:inset 0 0 0 1px var(--rust)}
label.choice input:focus-visible+span{outline:3px solid var(--focus);outline-offset:2px;box-shadow:0 0 0 2px var(--ink)}
label.choice.card{background:none;border:0;padding:0;border-radius:0}
label.choice.card span{display:block;text-align:left;padding:.875rem 1rem;font-weight:400;font-size:.9375rem;line-height:1.45}
label.choice.card span strong{font-weight:620}
label.choice.card input:checked+span{color:var(--ink)}
label.choice.card+label.choice.card{margin-top:.5rem}
label.choice.card:has(>input[type=radio]),label.choice.card:has(>input[type=checkbox]){display:block;min-height:0;padding-block:0}
.public-app .card.status{max-width:560px}
.public-app .card form.gs-form{max-width:none}
.public-app{accent-color:var(--rust)}
.public-app{--steam:#faf6f0;--card-line:#e6dec8;--slate:#0d1b22;--cedar:#d96b27;--cedar-ink:#b3531a;--cedar-hover:#9a4210;--emerald:#16a34a;--emerald-ink:#15803d;--cap-low:#d08a00;--cap-off:#b9b0a5;--action:var(--rust);--action-hover:var(--rust-hover)}
/* Find a sauna: the public sauna directory (/saunas), its owner pages and the free tools (/tools), which share .directory-app.
   Sizes are px on the brand type and spacing scales (docs/brand-standard.md 3.2, 3.3): the shared root is 15px, so rem lands
   between steps here. Display type is Fraunces, everything else Plus Jakarta Sans, the one action colour cedar (--rust). */
.directory-app{font-size:16px;line-height:1.6}
.directory-app main{max-width:1040px;padding:0 16px 48px}
.directory-app .topbar-inner{max-width:1040px;min-height:64px;padding:0 16px}
.directory-app .wordmark,.directory-app .topbar-link{display:inline-flex;align-items:center;min-height:44px}
.directory-app .topbar-link{font-size:16px;color:var(--ink-2);text-decoration:none}
.directory-app .topbar-link:hover{color:var(--ink)}
.directory-nav{display:flex;align-items:center;gap:20px}
.directory-nav [aria-current="page"],.directory-menu [aria-current="page"]{text-decoration:underline;text-underline-offset:5px}
.directory-menu{display:none;position:relative}
.directory-menu summary{min-height:44px;display:flex;align-items:center;cursor:pointer;color:var(--rust-ink);font-weight:600}
.directory-menu nav{position:absolute;right:0;top:100%;z-index:10;min-width:220px;padding:12px 16px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow-pop)}
.directory-app .directory-menu .topbar-link{display:flex;font-size:1rem}
@media(max-width:1100px){.directory-nav{display:none}.directory-menu{display:block}}
.directory-app .dir-owner-guide{padding-top:32px}
.dir-owner-guide>section{margin-top:32px}
.dir-owner-guide h2{margin-bottom:12px}
.dir-owner-guide p{margin:0 0 16px}
.dir-owner-guide section>a{display:inline-flex;align-items:center;min-height:44px}
.directory-app .site-footer{max-width:1040px;display:flex;flex-wrap:wrap;align-items:center;gap:0 16px;padding:32px 16px 48px;font-size:14px}
.directory-app .site-footer a{display:inline-flex;align-items:center;min-height:44px}
@media (min-width:720px){.directory-app main{padding:0 24px 64px}.directory-app .topbar-inner{min-height:72px;padding:0 24px}.directory-app .site-footer{padding:48px 24px 64px}}
.directory-app h1{font-size:36px;line-height:1.15}
.directory-app h2{font-family:var(--serif);font-weight:600;font-size:24px;line-height:1.3;letter-spacing:-.02em}
.directory-app h3{font-size:18px;font-weight:600;line-height:1.4}
.directory-app p+p{margin-top:12px}
.directory-app .lead{font-size:18px;line-height:1.55;max-width:65ch;margin-top:8px}
.directory-app .fine,.directory-app .hint{font-size:14px}
.directory-app label{font-size:14px;font-weight:600}
.directory-app label:has(>input[type=checkbox]),.directory-app label:has(>input[type=radio]){font-size:16px;font-weight:400}
.directory-app button,.directory-app .button{font-size:16px;min-height:44px;padding:0 24px}
.directory-app .button .icon{width:16px;height:16px}
.directory-app button.secondary,.directory-app .button.secondary{border-color:var(--line-control)}
.directory-app .dir-danger{color:var(--red);border-color:var(--red)}
.directory-app :focus-visible{outline:3px solid var(--focus);outline-offset:2px;box-shadow:0 0 0 2px var(--ink)}
.directory-app label.choice input:focus-visible+span{outline:3px solid var(--focus);outline-offset:2px;box-shadow:0 0 0 2px var(--ink)}
.directory-app .card h1{font-size:36px;margin-bottom:12px}
.directory-app .card>a:first-child{min-height:44px;margin:0 0 8px;font-size:14px}
.directory-app .setup-section h2{font-size:24px}
@media (min-width:900px){.directory-app h1,.directory-app .card h1{font-size:48px;line-height:1.1}.directory-app h2{font-size:30px;line-height:1.2}}

.dir{padding-top:16px}
.dir.card{max-width:640px}
.dir.card.dir-badge-page{max-width:760px}
.dir-head{margin-bottom:24px}
.dir-head .pill{margin-top:12px;height:24px;font-size:12px;font-weight:600}
.dir-head .eyebrow{font-size:14px;margin:0 0 4px}
.dir-crumbs{font-size:14px;color:var(--ink-2);margin:16px 0 8px}
.dir-crumbs a{display:inline-block;padding-block:4px;color:var(--ink-2)}
.dir-total{font-family:var(--serif);font-size:24px;font-weight:600;line-height:1.3;letter-spacing:-.02em;margin:8px 0 0;color:var(--rust-ink)}
.dir-summary{max-width:65ch;margin-top:12px;color:var(--ink-2)}
.dir-search{display:grid;gap:16px;padding:16px;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:var(--card-shadow);margin:24px 0}
.dir-search label{display:grid;gap:8px;margin:0;font-size:14px;font-weight:600;color:var(--ink)}
.dir-search input[type=search],.dir-search select{min-height:44px;font:inherit;font-size:16px;padding:0 12px;border:1px solid var(--line-control);border-radius:10px;background-color:var(--surface);color:var(--ink)}
.dir-search label.choice span{min-height:44px;padding:0 16px;border-color:var(--line-control);border-radius:var(--radius-sm);font-size:16px;font-weight:600}
.dir-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:end}
@media (min-width:720px){.dir-search{padding:24px}.dir-filters{grid-template-columns:repeat(4,minmax(0,1fr))}}
.dir-areas{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}
.dir-areas a{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 16px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);text-decoration:none;font-size:14px;font-weight:500}
.dir-areas a span{color:var(--ink-2);font-variant-numeric:tabular-nums}
.dir-areas a:hover{border-color:var(--ink-2)}
.dir-areas a[aria-current=page]{border-color:var(--ink)}
.dir-features a[aria-current]{background:var(--ink);border-color:var(--ink);color:var(--on-deep,#faf6f0)}
.dir-features a[aria-current] span{color:inherit}
.dir-body{display:grid;gap:32px;margin-top:24px}
@media (min-width:900px){.dir-body{grid-template-columns:minmax(0,1fr) 360px;align-items:start}.dir-map{position:sticky;top:16px}}
.directory-app .dir-count{font-family:var(--sans);font-size:20px;font-weight:600;line-height:1.4;letter-spacing:0;color:var(--ink);margin:0}
.dir-note{font-size:14px;color:var(--ink-2);margin:4px 0 16px}
.dir-count+.dir-list{margin-top:16px}

/* Listing cards (docs/brand-standard.md 4.11): name and town, a facts line, tags, then one action. */
.dir-list{list-style:none;padding:0;margin:0;display:grid;gap:12px}
.dir-card{display:grid;gap:8px;padding:16px;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:var(--card-shadow)}
.dir-card.is-live{box-shadow:inset 0 3px 0 var(--cedar),var(--card-shadow)}
@media (min-width:720px){.dir-card{padding:24px}}
.dir-card-main{display:block;padding-block:2px;color:var(--ink);text-decoration:none;line-height:1.35}
.dir-card-main strong{font-family:var(--sans);font-size:18px;font-weight:600}
.dir-card-main:hover strong{color:var(--rust-ink);text-decoration:underline;text-underline-offset:.2em}
.dir-where{font-size:16px;font-weight:400;color:var(--ink-2)}
.dir-facts,.dir-tags{font-size:14px;color:var(--ink-2)}
.dir-badge{justify-self:start;display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 10px;border-radius:999px;background:var(--sidebar);color:var(--ink-2);font-size:12px;font-weight:600;margin:0}
.dir-badge.is-live{background:var(--sage-wash);color:var(--sage-ink)}
.dir-badge.is-live::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--sage)}
.dir-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin-top:4px}
.dir-card .dir-cta{white-space:normal;text-align:center}
.dir-card.is-live .dir-cta:first-child{flex:1 1 100%;min-height:48px}
@media (min-width:720px){.dir-card.is-live .dir-cta:first-child{flex:0 1 auto}}
.dir-hook{display:inline-flex;align-items:center;min-height:44px;font-size:14px;font-weight:600;color:var(--rust-ink)}
.dir-strip{display:grid;gap:8px;margin-top:4px}
.dir-strip-day{font-size:14px;font-weight:600;color:var(--ink)}
.dir-times{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px}
.dir-times a{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border:1px solid var(--line-control);border-radius:10px;background:var(--surface);color:var(--ink);font-size:14px;text-decoration:none;font-variant-numeric:tabular-nums}
.dir-times a strong{font-size:16px;font-weight:600}
.dir-times a span{color:var(--sage)}
.dir-times a.is-low span{color:var(--amber)}
.dir-times a:hover{border-color:var(--ink);background:var(--paper)}

.dir-map{margin:0}
.dir-map svg{width:100%;max-width:420px;height:auto;margin:0 auto}
.dir-map .land{fill:var(--sidebar);stroke:var(--line-strong);stroke-width:1}
.dir-map .dot{fill:var(--ink-2);stroke:var(--paper);stroke-width:1.5}
.dir-map .dot.is-live{fill:var(--rust)}
.dir-map a:hover .dot,.dir-map a:focus .dot{fill:var(--rust-ink)}
.dir-map figcaption{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px;font-size:14px;color:var(--ink-2);margin-top:8px}
.dir-map .key{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--ink-2);margin-left:12px}
.dir-map .key.is-live{background:var(--rust)}
.dir-pager{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;margin-top:24px;font-size:14px;color:var(--ink-2)}
.dir-owner{margin:48px 0 16px;padding:24px;border:1px solid var(--line);border-left:4px solid var(--cedar);border-radius:16px;background:var(--surface)}
.dir-owner h2{margin-bottom:8px}
.dir-owner p{color:var(--ink-2);margin:0 0 16px;max-width:65ch}
.dir-faq{margin-top:48px;max-width:65ch}
.dir-faq h2{margin-bottom:12px}
.dir-faq h3{margin:24px 0 4px}
.dir-near{margin-top:48px}
.dir-near h2{margin-bottom:16px}
.dir-subhead{margin:48px 0 12px}

/* The owner banner on listings not taking bookings on Olladay: dark while unclaimed, a quiet card once claimed. */
.dir-claim{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px;margin:16px 0 8px;padding:16px;border:1px solid var(--line);border-left:4px solid var(--cedar);border-radius:16px;background:var(--surface)}
.dir-claim p{margin:0;flex:1 1 22rem;max-width:65ch;color:var(--ink)}
.dir-claim p strong{display:inline-flex;align-items:center;gap:8px}
.dir-claim p strong::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--cedar);flex:none}
.dir-claim .button{white-space:normal;text-align:center}
.dir-claim.is-dark{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.dir-claim.is-dark p{color:var(--paper)}
.dir-claim.is-dark .button{background:var(--paper);border-color:var(--paper);color:var(--ink)}
.dir-claim.is-dark .button:hover{background:#fff;border-color:#fff;color:var(--ink)}
.dir-claim.is-dark :focus-visible{box-shadow:none}

/* A listing's own page */
.dir-listing{max-width:1040px;color:var(--ink)}
.dir-listing .lead,.dir-listing .dir-status{color:var(--ink)}
.dir-place{margin:8px 0 0;color:var(--ink-2)}
.dir-listing .dir-claim{margin-top:48px;border:0;box-shadow:none;background:var(--sidebar)}
.dir-listing .dir-claim p strong::before{content:none}
.dir-owner-link{display:inline-flex;align-items:center;min-height:44px;font-weight:600}
.dir-photo{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:16px;background:var(--sunk);margin-bottom:24px}
.dir-profile{display:grid;gap:24px}
@media (max-width:899px){.dir-profile .dir-side{order:-1}}
@media (min-width:900px){.dir-profile{grid-template-columns:minmax(0,1fr) 340px;align-items:start}.dir-side{position:sticky;top:16px}}
.dir-side h2{font-size:24px;line-height:1.3}
.dir-tag-list{list-style:none;padding:0;margin:16px 0 0;display:flex;flex-wrap:wrap;gap:8px}
.dir-tag-list li{display:inline-flex;align-items:center;min-height:32px;padding:0 12px;border-radius:999px;background:var(--sidebar);color:var(--ink-2);font-size:14px;font-weight:500}
.dir-facts-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:16px;margin:24px 0;padding:16px 0;border-block:1px solid var(--line)}
.dir-facts-list dt{font-size:14px;color:var(--ink-2)}
.dir-facts-list dd{margin:0;font-weight:600;font-variant-numeric:tabular-nums}
.dir-source{margin-top:24px}
.dir-bookbox,.dir-live{padding:16px;border:0;border-radius:16px;background:var(--surface);box-shadow:none}
@media (min-width:720px){.dir-bookbox,.dir-live{padding:24px}}
.dir-bookbox h2,.dir-live h2{margin-bottom:8px}
.dir-bookbox .button,.dir-live .button.wide,.dir-book .button{width:100%;white-space:normal;text-align:center;min-height:48px}
.dir-live .button.wide{margin-top:16px}
.dir-book{display:grid;gap:12px;margin:0}
.dir-status{color:var(--ink-2);margin-bottom:16px}
.dir-fee{margin:0 0 8px}
.dir-slots .slot{grid-template-columns:88px minmax(0,1fr) auto;gap:12px;padding:12px;margin:0 -12px}
.dir-slots .slot-time{display:grid;gap:2px;font-variant-numeric:tabular-nums}
.dir-slots .slot-time strong{font-size:18px;font-weight:600}
.dir-slots .slot-time span{font-size:14px;font-weight:400;color:var(--ink-2)}
.dir-slots .slot-body strong{font-size:16px;font-weight:600}
.dir-slots .slot-body span,.dir-slots .slot-book{font-size:14px}
.dir-slots .slot-body .dir-left{font-size:14px;font-weight:600;color:var(--sage)}
.dir-slots .slot-body .dir-left.is-low{color:var(--amber)}
.dir-dots{display:flex;gap:4px;margin:4px 0 2px}
.dir-dots i{width:8px;height:8px;border-radius:50%;box-shadow:inset 0 0 0 1px var(--line-control)}
.dir-dots i.is-free{background:#16a34a;box-shadow:none}
.dir-links{display:flex;flex-wrap:wrap;gap:0 16px;margin:0}
.dir-links a{display:inline-flex;align-items:center;min-height:44px}
.dir-listing .dir-areas{margin-top:24px}
.dir-token code{display:inline-block;font-size:24px;padding:8px 16px;border:1px dashed var(--rust);border-radius:10px;background:var(--surface);user-select:all}
.dir-edit textarea,.dir-edit select{width:100%}

.directory-app main,.directory-app .topbar-inner,.directory-app .site-footer{max-width:var(--brand-content-width);margin-inline:auto}
.dir-head{margin-bottom:16px}.dir-head .lead{font-size:16px}.dir-search{margin:16px 0;padding:16px;gap:12px;box-shadow:none}.dir-body{display:block;margin-top:20px}.dir-summary{font-size:14px}
.dir-list{grid-template-columns:1fr;gap:24px;align-items:start}.dir-card{display:flex;flex-direction:column;gap:10px;padding:0 0 20px;overflow:hidden;box-shadow:none;border-radius:var(--radius)}.dir-card> :not(.dir-cover):not(.dir-no-photo){margin-inline:16px}.dir-card h3{margin-block:0}.dir-card-main strong{font-family:var(--serif);font-size:23px;font-weight:600}.dir-where{display:block;font-size:14px;margin-top:5px}.dir-where>span{display:none}.dir-cover{width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;flex:none;background:var(--sidebar)}.dir-no-photo{width:100%;height:96px;flex:none;background:var(--sidebar);display:flex;flex-direction:column;justify-content:center;padding:16px;gap:6px;color:var(--ink-2);border-bottom:1px solid var(--line)}.dir-no-photo span:first-child{font-size:13px}.dir-no-photo span:last-child{font-size:16px}.dir-card .dir-actions{margin-top:auto;display:grid;gap:8px;padding-top:8px}.dir-card .dir-hook{font-weight:400;font-size:13px;min-height:32px}.dir-card .dir-badge{margin-top:12px;align-self:flex-start}.dir-card .button{width:100%;padding:0 12px}.dir-strip{margin-bottom:8px}.dir-count{margin-bottom:8px}.dir-photo{aspect-ratio:16/10;max-height:540px}.dir-research{margin:20px 0;padding:20px 0;border-block:1px solid var(--line)}.dir-research h2{margin-bottom:12px}.dir-browse,.dir-map-details{margin-top:32px}.dir-map-details summary{min-height:44px;display:flex;align-items:center;color:var(--rust-ink);font-weight:600}.dir-map{position:static;margin:16px 0}.dir-features{gap:6px}.dir-features a{padding:0 12px;font-size:13px}.dir-filters{gap:12px}.dir-search label.choice{display:flex;margin:0;align-items:center;gap:8px}.dir-search label.choice span{padding:0;border:0;font-size:14px}.dir-search label.choice input{position:static;opacity:1;width:22px;height:22px;clip:auto}.dir-search label.choice:has(input:checked) span{background:none;color:var(--ink)}
@media(min-width:720px){.dir-list{grid-template-columns:repeat(2,minmax(0,1fr))}.dir-search{grid-template-columns:minmax(0,1fr) auto;align-items:end}.dir-search .dir-filters{grid-column:1/-1;grid-row:2}.dir-search button{grid-column:2;grid-row:1}.dir-photo{aspect-ratio:16/9}.dir-head .lead{font-size:18px}}
@media(min-width:1100px){.dir-list{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:719px){.directory-app h1{font-size:32px}.dir-total{font-size:20px}.dir-crumbs{margin-top:8px}.directory-app .topbar-inner{gap:10px}.directory-app .topbar-link{font-size:13px}.dir-head .dir-summary{display:none}.dir-filters{grid-template-columns:1fr 1fr}.dir-features{max-height:102px;overflow:auto}.dir-listing .dir-head{margin-bottom:16px}}

.dir-search label.choice input:checked+span{box-shadow:none}.dir-search button{min-height:44px}

.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius-sm);margin:.5rem 0 1rem}
.table-wrap table{margin:0;width:100%;border-collapse:collapse;font-size:.875rem}
.table-wrap th{text-align:left;font-size:.75rem;font-weight:560;color:var(--ink-2);padding:.625rem .875rem;background:var(--sunk);border-bottom:1px solid var(--line)}
.table-wrap td{padding:.75rem .875rem;border-bottom:1px solid var(--line);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8125rem;overflow-wrap:anywhere}
.table-wrap tr:last-child td{border-bottom:0}
.report{width:100%;border-collapse:collapse;font-size:.875rem;font-variant-numeric:tabular-nums}
.report caption{text-align:left;padding:.65rem .75rem;font-size:.8125rem;font-weight:600;color:var(--ink)}
.report th,.report td{padding:.5rem .75rem;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}
.report thead th{font-size:.75rem;font-weight:560;color:var(--ink-2);background:var(--sunk)}
.report tbody th{font-weight:500}
.report .num{text-align:right}
.report tbody tr:last-child>*{border-bottom:0}
.report tfoot>tr>*{font-weight:620;border-top:1px solid var(--line-strong);border-bottom:0}
.dir-report{max-width:820px}
.dir-report section{margin-top:2rem}
.dir-report h2{margin-bottom:8px}
.dir-report section>p{max-width:42rem;color:var(--ink-2)}
.dir-table caption{caption-side:top;text-align:left;font-size:14px;color:var(--ink-2);padding:12px}
.dir-table td{font-family:inherit;font-variant-numeric:tabular-nums}
.dir-table th[scope=row]{font-size:14px;font-weight:500;color:var(--ink);background:none;border-bottom:1px solid var(--line);padding:12px}
.dir-table tfoot th,.dir-table tfoot td{font-weight:620}
.dir-cite code{display:block;white-space:normal;padding:12px 16px;border:1px solid var(--line);border-radius:10px;background:var(--surface);font-size:14px;user-select:all}
.dir-prices,.dir-gifts,.dir-conditions{margin-top:48px}
.dir-prices h2,.dir-gifts h2,.dir-conditions h2{margin:0 0 12px}
.dir-table{width:100%;border-collapse:collapse;font-size:16px}
.dir-table th,.dir-table td{padding:12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.dir-table thead th{font-size:14px;font-weight:600;color:var(--ink-2)}
.dir-table th[scope=row]{font-size:14px;font-weight:600;width:40%}
.dir-alert{display:grid;gap:24px;padding:24px;border:0;border-radius:16px;background:var(--surface);box-shadow:none;color:var(--ink)}
.dir-alert-intro p{max-width:40ch}
.dir-alert-fields{display:grid;gap:16px;min-width:0}
@media (min-width:720px){.dir-alert{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;padding:32px}}
.dir-alert p{margin:0}
.dir-alert label{margin:0}
.dir-alert fieldset{display:grid;gap:4px;border:0;padding:0;margin:0;min-width:0}
.dir-alert legend{font-size:14px;font-weight:600;margin-bottom:8px}
.dir-alert .dir-alert-choice{display:flex;align-items:center;gap:12px;min-height:44px;font-weight:400;cursor:pointer}
.dir-alert-choice input[type=checkbox]{position:static;appearance:auto;opacity:1;width:20px;height:20px;min-height:20px;flex:0 0 20px;margin:0;accent-color:var(--rust)}
.dir-alert button{justify-self:start}
.dir-conditions{padding:16px;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:var(--card-shadow)}
.dir-conditions h2{margin-top:0}

.choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(7rem,1fr));gap:.5rem;margin-bottom:1rem}
.public-app .choice-grid{align-items:start}
.public-app .choice-grid>label.choice{margin:0}
@media(max-width:760px){.setup-section{grid-template-columns:1fr;gap:1rem}}

.directory-app main,.directory-app .site-footer{padding-inline:1rem}
.directory-app .site-footer strong.wordmark{font-size:1.125rem;font-weight:600;letter-spacing:-.02em}
@media(max-width:760px){.directory-app .topbar-inner{min-height:64px}.directory-app .wordmark{font-size:1.5rem}}

/* Verified-guest reviews (src/guest-reviews.js) and the Google Maps rating (src/google-rating.js) */
.review-list{list-style:none;margin:16px 0;padding:0;display:grid;gap:0}
.review{padding:16px 0;border-top:1px solid var(--line)}
.review:last-child{border-bottom:1px solid var(--line)}
.review-head{margin:0;font-size:.9375rem}
.review-stars,.reviews-score [aria-hidden]{color:var(--ink);letter-spacing:.05em}
.review-text{margin:.5rem 0 0;max-width:62ch}
.review-reply{margin:.75rem 0 0;padding-left:12px;border-left:2px solid var(--line);color:var(--ink-2);font-size:.9375rem;max-width:62ch}
.reviews-score{margin:.5rem 0 0;font-size:1.0625rem}
.reviews-score strong{font-size:1.5rem;font-variant-numeric:tabular-nums}
.guest-reviews{margin:32px 0}
.dir-google{margin:16px 0 0;font-variant-numeric:tabular-nums}
.dir-google a{font-weight:600}
.dir-google-source{font-size:.875rem;color:var(--ink-2)}

/* Industry comparisons share the foundation without changing booking pages. */
.industry-directory{--focus:var(--brand-action);overflow-wrap:anywhere}
.industry-directory .dir-head{max-width:72ch;margin-bottom:2rem}
.industry-directory .dir-head h1{margin-bottom:1rem}
.industry-directory .dir-head p+p{margin-top:.75rem}
.industry-directory h2{font-family:var(--serif);font-size:1.5rem;margin-bottom:1rem}
.industry-directory h3{font-size:1.125rem;line-height:1.4}
.industry-directory p{max-width:72ch}
.industry-directory .notice{padding:1rem;background:var(--sunk);color:var(--ink)}
.industry-directory .notice::before{content:none}
.industry-directory .notice.error{background:var(--red-wash);color:var(--red)}
.industry-directory .dir-crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.875rem;margin-bottom:1.5rem}
.industry-directory .dir-crumbs a{display:inline-flex;align-items:center;min-height:24px}
.industry-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;padding:1.25rem;margin-top:2rem;background:var(--rust-wash);border-radius:var(--radius)}
.industry-filters label{margin:0;min-width:0;font-size:1rem}
.industry-filters label:first-child{grid-column:1/-1}
.industry-filters select,.industry-filters input{min-width:0}
.industry-filter-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:1rem}
.industry-filter-actions a,.industry-owner>a{display:inline-flex;align-items:center;min-height:44px}
.industry-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));list-style:none;padding:0;margin:0;gap:0 2rem}
.industry-list>li{min-width:0;padding:1rem 0 1.25rem;border-top:1px solid var(--line)}
.industry-list h3 a{display:inline-flex;align-items:center;min-height:44px}
.industry-list p+p{margin-top:.375rem}
.industry-links{display:flex;flex-wrap:wrap;gap:.25rem 1.5rem;list-style:none;padding:0;margin:0}
.industry-links a{display:inline-flex;align-items:center;min-height:44px}
.industry-links li{max-width:100%}
.industry-nation{margin-top:2rem;scroll-margin-top:1rem}
.industry-owner{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin:1.5rem 0}
.industry-directory .dir-table caption{padding-inline:0;font-size:1rem}
.industry-directory .dir-table th,.industry-directory .dir-table td{overflow-wrap:anywhere}
.industry-directory .dir-table th[scope=row]{font-size:1rem;width:30%}
.industry-correction{max-width:42rem}
.industry-correction .checks{margin-bottom:1.25rem}
.industry-correction .checks label{align-items:center}
.industry-correction .industry-claim-label{display:none}
.industry-correction:has(input[name=kind][value=claim]:checked) .industry-claim-label{display:inline}
.industry-correction:has(input[name=kind][value=claim]:checked) .industry-contact-label{display:none}
.industry-sources{margin-top:1.5rem}
.industry-sources summary{cursor:pointer}
.industry-sources ul{padding-left:1.25rem}
.industry-booking{margin-top:2rem}
.industry-app .topbar-link{font-size:1rem}
@media(max-width:600px){
  .industry-directory a{display:inline-flex;align-items:center;min-height:44px}
  .industry-directory summary{min-height:44px;box-sizing:border-box;padding-block:.5rem}
  .industry-directory .dir-crumbs a{min-height:44px}
  .industry-directory input:not([type=radio]),.industry-directory select,.industry-directory button,.industry-correction .checks label{min-height:44px}
  .industry-filters,.industry-list{grid-template-columns:minmax(0,1fr)}
  .industry-directory .dir-table tr{display:block;padding-block:.75rem;border-bottom:1px solid var(--line)}
  .industry-directory .dir-table th[scope=row],.industry-directory .dir-table td{display:block;width:100%;padding:.25rem 0;border:0}
  .industry-directory .dir-table td .fine{display:block;margin-top:.375rem}
  .industry-directory .dir-head h1{font-size:2rem;line-height:1.25}
}
