/* Additions to the reference design's tos.css: pieces the reference has no styles for (blog menu, flash alerts, back-to-top). */
.tos-panel--blog{min-width:280px}
.tos-panel--blog a{display:block}
.tos-panel--blog .tos-all{margin-top:4px;padding-top:12px;border-top:1px solid var(--line);border-radius:0 0 8px 8px;color:var(--brand);font-weight:700}
.tos-panel--blog a small{display:block;margin-top:2px;font-size:12px;font-weight:500;color:var(--muted)}
.tos-alert{padding:12px 16px;border-radius:12px;font-size:14.5px;font-weight:600}
.tos-alert--ok{background:#e8f8f1;color:#0d6b4c;border:1px solid #bfe9d6}
.tos-alert--err{background:#fdecef;color:#a3173b;border:1px solid #f6c3cd}

/* Cart / checkout page: its own ck- styles, plus the container the old layout used to provide. */
.ck-page .container{width:100%;max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter)}

/* Services list: tracks may shrink below their content (no sideways scroll), and rows stay single-column until there is room for two. */
.tos-svcs{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:900px){.tos-svcs{grid-template-columns:minmax(0,1fr)}}
.tos-svc-t{overflow-wrap:anywhere}

/* WCAG 2.2 target size (2.5.8): these links measured 18-20px tall. min-height only, so the layout does not move. */
.tos-top a{min-height:24px}
.tos-crumbs a{display:inline-flex;align-items:center;min-height:24px}

/* Signed-in customer: avatar menu in the header, log-out in the drawer. */
.tos-acct-btn{padding:4px 8px 4px 4px;gap:4px;border-radius:999px}
.tos-avatar{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,#5b2dd4,#7c3dff);color:#fff;font-size:15px;font-weight:700;line-height:1}
.tos-panel--acct{min-width:230px}
.tos-acct-head{display:grid;gap:2px;padding:8px 10px 10px;margin-bottom:4px;border-bottom:1px solid var(--line)}
.tos-acct-head b{color:var(--ink);font-size:14.5px;overflow-wrap:anywhere}
.tos-acct-head small{color:var(--muted);font-size:12.5px}
.tos-panel--acct form{margin:4px 0 0;padding-top:4px;border-top:1px solid var(--line)}
.tos-panel--acct a.is-active{background:#f4f1fb;color:var(--brand)}
.tos-drawer-out{margin:0}
.tos-drawer-out button{display:block;width:100%;padding:13px 4px;border:0;border-bottom:1px solid var(--line);background:none;color:var(--text);font:inherit;font-weight:600;text-align:left;cursor:pointer}
@media (max-width:960px){.tos-acct{display:none}}
/* Floating WhatsApp button and back-to-top are desktop-only. */
@media (max-width:767px){.tos-fab,#back-to-top{display:none!important}}
/* Cookie notice: keep "Accept All" reachable under home bars/browser toolbars and on short or large-text screens. */
.tos-cookie{bottom:calc(16px + env(safe-area-inset-bottom,0px));max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);overflow-y:auto;-webkit-overflow-scrolling:touch;padding:12px 16px;gap:12px;font-size:13px}
.tos-cookie strong{display:block;margin-bottom:2px}
.tos-cookie p{line-height:1.45}
.tos-cookie a{color:var(--deep);text-decoration:underline}
.tos-cookie-btns{display:flex;gap:8px;flex:none}
.tos-cookie-opt{display:flex;align-items:center;gap:8px;margin-top:8px;font-weight:600}
.tos-cookie-opt[hidden]{display:none}
.tos-btn--line{color:var(--deep);background:#fff;border:1.5px solid var(--line)}
.tos-btn--line:hover{background:#f4f0ff}
@media (max-width:960px){.tos-cookie{bottom:calc(24px + env(safe-area-inset-bottom,0px))}}
@media (max-width:600px){.tos-cookie-btns{display:grid;grid-template-columns:1fr 1fr 1fr}.tos-cookie-btns .tos-btn{padding-inline:8px}}
/* Footer column headings are styled text, not H2s, so each page's H2s are only its own sections. */
.tos-footer .tos-foot-h{margin:0 0 18px;color:#fff;font-size:16px;font-weight:700}

/* Top-bar greeting + visitor location (replaces the classic header's greeting pill). */
.tos-greet{display:inline-flex;align-items:center;gap:8px;min-width:0;max-width:100%;padding:2px 12px 2px 8px;border-radius:999px;background:rgba(255,255,255,.1);color:#fff;font-weight:600;line-height:1.3;white-space:nowrap}
.tos-greet-ic{display:inline-flex;flex-shrink:0;color:#ffd166}
.tos-greet-ic [hidden]{display:none}
.tos-greet-ic .i{width:15px;height:15px}
.tos-greet-ic [data-greet-moon]{color:#c9bdf7}
.tos-greet-t{min-width:0;overflow:hidden;text-overflow:ellipsis}
.tos-greet-t b{font-weight:700}
.tos-greet-name,.tos-greet-t [data-greet-suffix]{font-weight:500}
.tos-greet-loc,.tos-greet-ask{display:inline-flex;align-items:center;gap:4px;min-width:0;padding-left:8px;border-left:1px solid rgba(255,255,255,.3);font-weight:500}
.tos-greet-loc[hidden],.tos-greet-ask[hidden]{display:none}
.tos-greet-loc .i,.tos-greet-ask .i{width:12px;height:12px;flex-shrink:0}
.tos-greet-loc [data-loc-text]{overflow:hidden;text-overflow:ellipsis;max-width:220px}
.tos-greet-ask{min-height:24px;margin:0;border-top:0;border-right:0;border-bottom:0;background:none;color:#d9d2f3;font:inherit;font-weight:500;text-decoration:underline;text-underline-offset:2px;cursor:pointer}
.tos-greet-ask:hover{color:#fff}
/* Phones/tablets: the greeting takes its own row under the hours line, location pushed right. */
@media (max-width:767px){
  .tos-top .tos-container{flex-wrap:wrap;row-gap:0}
  .tos-top-links{display:contents}
  .tos-greet{order:3;flex:1 1 100%;margin:0 -16px;max-width:none;width:calc(100% + 32px);padding:6px 16px;border-radius:0;background:rgba(255,255,255,.07);border-top:1px solid rgba(255,255,255,.08);font-size:12px}
  .tos-greet-t{flex:0 1 auto}
  .tos-greet-loc,.tos-greet-ask{margin-left:auto;flex-shrink:1}
  .tos-greet-loc [data-loc-text]{max-width:55vw}
}

/* One logo everywhere: the header uses the footer's roundel + capitals lockup, in dark ink on the white bar. */
.tos-header .tos-logo.tos-brand{color:var(--deep);gap:10px}
.tos-header .tos-logo.tos-brand img{width:42px;height:42px;animation:none}
@media (max-width:960px){.tos-header .tos-logo.tos-brand{font-size:11px}.tos-header .tos-logo.tos-brand img{width:36px;height:36px}}

/* One floating button on phones (WhatsApp); the page gets room at the bottom so nothing sits under it. */
@media (max-width:960px){
  #back-to-top{display:none!important}
  .tos-footer{padding-bottom:84px}
  main{scroll-padding-bottom:96px}
}
/* The floating cart bar must never sit on top of the last rows or the footer. */
body:has(.tos-cartbar:not([hidden])) main{padding-bottom:84px}
