/* ==========================================================================
   WebStirUS page renderer CSS  (page.css)
   Shared by the editor canvas AND the live PHP site. No editor chrome here.
   A page is a positioned grid:  .ws-page > .ws-tile*
   Geometry comes from CSS custom properties set per tile (grid units, 1 unit = --cell):
     --x --y --w --h --z
   Theme comes from --t-* tokens set on .ws-page (see docs/SCHEMA in README.md).
   Live site: add class "ws-live" to .ws-page; tiles also carry --mx --my --mw --mh
   and switch to the mobile layout below 600px.
   ========================================================================== */
.ws-page{
  --cell:20px; --cols:60; --rows:40;
  position:relative; width:calc(var(--cols)*var(--cell)); height:calc(var(--rows)*var(--cell));
  background:var(--t-bg,#fff); color:var(--t-text,#111);
  font-family:var(--t-fbody,system-ui,sans-serif); line-height:1.5; box-sizing:border-box;
}
.ws-page *{box-sizing:border-box}
.ws-tile{position:absolute; left:calc(var(--x)*var(--cell)); top:calc(var(--y)*var(--cell));
  width:calc(var(--w)*var(--cell)); height:calc(var(--h)*var(--cell)); z-index:var(--z,1)}
.ws-body{width:100%;height:100%;display:flex;align-items:flex-start;overflow:hidden;border-radius:inherit;position:relative}
.ws-body[data-valign="middle"]{align-items:center}
.ws-body[data-valign="bottom"]{align-items:flex-end}

/* text + heading */
.ws-rich{width:100%;margin:0;padding:2px 4px;outline:none;word-wrap:break-word;overflow-wrap:anywhere;font-size:16px;line-height:1.55;color:var(--t-text)}
.ws-rich a{color:var(--t-primary);text-decoration:underline}
.ws-heading .ws-rich{font-family:var(--t-fhead);line-height:1.12;letter-spacing:-.025em;font-weight:750;color:var(--t-text)}
.ws-text .ws-rich p{margin:0 0 .6em}
.ws-text .ws-rich ul{margin:0 0 .6em;padding-left:1.3em}

/* button */
.ws-btn{width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-align:center;
  font-family:var(--t-fbody);font-size:15px;font-weight:650;line-height:1.2;text-decoration:none;cursor:pointer;
  border-radius:var(--t-radius,10px);border:1.5px solid transparent;padding:0 12px;white-space:nowrap;overflow:hidden;
  transition:filter .15s,transform .15s}
.ws-btn.v-solid{background:var(--t-primary);color:var(--t-onPrimary)}
.ws-btn.v-outline{background:transparent;color:var(--t-primary);border-color:var(--t-primary)}
.ws-btn.v-ghost{background:transparent;color:var(--t-text)}
.ws-btn[data-gloss].v-solid,.ws-btn[data-gloss].v-outline{background-image:linear-gradient(180deg,rgba(255,255,255,.55),rgba(255,255,255,0) 52%,rgba(0,0,0,.06));box-shadow:inset 0 1px 0 rgba(255,255,255,.7),0 2px 3px rgba(0,0,0,.18)}
.ws-live .ws-btn:hover{filter:brightness(.93);transform:translateY(-1px)}
.ws-label{outline:none;min-width:2ch}

/* image / video / shape / spacer */
.ws-image img{width:100%;height:100%;object-fit:cover;display:block}
.ws-ph{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
  background:repeating-linear-gradient(45deg,#00000008 0 10px,#00000000 10px 20px),var(--t-surface);color:var(--t-muted);
  border:1.5px dashed var(--t-line);font:600 12px var(--t-fbody)}
.ws-video{background:#0b1220}
.ws-video iframe{width:100%;height:100%;border:0;display:block}
.ws-video .ws-thumb{width:100%;height:100%;object-fit:cover;opacity:.85;display:block}
.ws-video .ws-play{position:absolute;inset:0;display:grid;place-items:center}
.ws-video .ws-play i{width:64px;height:44px;border-radius:12px;background:#ff0033;display:block;position:relative;box-shadow:0 4px 14px #0006}
.ws-video .ws-play i::after{content:"";position:absolute;left:26px;top:13px;border-left:16px solid #fff;border-top:9px solid transparent;border-bottom:9px solid transparent}
.ws-shape .ws-fill{width:100%;height:100%;background:var(--t-primary)}
.ws-shape .ws-fill[data-gloss]{background-image:linear-gradient(180deg,rgba(255,255,255,.55),rgba(255,255,255,0) 52%,rgba(0,0,0,.06));box-shadow:inset 0 1px 0 rgba(255,255,255,.7)}
.ws-spacer{display:none}

/* live site: responsive swap to the mobile rects (editor uses its own mobile mode) */
.ws-live{margin:0 auto}
@media (max-width:600px){
  .ws-live{--cols:18 !important;--cell:min(calc(100cqw / 18),24px) !important;width:calc(var(--cols)*var(--cell));height:calc(var(--mrows)*var(--cell));max-width:100%}
  .ws-live .ws-tile{left:calc(var(--mx)*var(--cell));top:calc(var(--my)*var(--cell));width:calc(var(--mw)*var(--cell));height:calc(var(--mh)*var(--cell))}
}

/* ---- navigation tile ---- */
.ws-navbar{display:flex;align-items:center;flex-wrap:wrap;gap:4px 26px;width:100%;height:100%;font-family:var(--t-fbody);color:var(--t-text);font-weight:600}
.ws-navbar a{color:inherit;text-decoration:none;padding:6px 2px;border-bottom:2px solid transparent;white-space:nowrap}
.ws-live .ws-navbar a:hover{border-bottom-color:var(--t-accent)}
.ws-navbar a.cur{border-bottom-color:var(--t-primary);color:var(--t-primary)}
.ws-navbar.mb{display:flex;align-items:center;flex-wrap:nowrap;gap:0}
.ws-navbar .mb-line{flex:1 1 auto;min-width:0;white-space:pre;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none;line-height:1.5}
.ws-navbar .mb-line::-webkit-scrollbar{display:none}
.ws-navbar.mb a.mb-btn{display:inline-block;border-bottom:0;color:var(--t-onPrimary);line-height:1.2}
.ws-navbar.mb a.mb-btn.cur{color:var(--t-onPrimary);box-shadow:0 0 0 2px var(--t-accent)}
.ws-live .ws-navbar.mb a.mb-btn:hover{filter:brightness(1.08);border-bottom-color:transparent}
.ws-navbar .ws-nav-x{opacity:.55;font-weight:500;font-style:italic}
/* ---- playlist tile ---- */
.ws-tile[data-type=playlist]{container-type:size}
.ws-playlist{display:flex;gap:12px;background:var(--t-surface);border:1px solid var(--t-line);border-radius:var(--t-radius);padding:10px;box-sizing:border-box;font-family:var(--t-fbody);color:var(--t-text)}
.ws-playlist .pl-main{flex:1 1 auto;min-width:0;background:#0b1220;border-radius:calc(var(--t-radius) - 2px);overflow:hidden;position:relative;align-self:stretch}
.ws-playlist .pl-main iframe,.ws-playlist .pl-main>img{width:100%;height:100%;border:0;display:block;object-fit:cover}
.ws-playlist .pl-play{position:absolute;inset:0;display:grid;place-items:center}
.ws-playlist .pl-play i{width:56px;height:38px;border-radius:10px;background:#ff0033;display:block;position:relative;box-shadow:0 4px 14px #0006}
.ws-playlist .pl-play i::after{content:"";position:absolute;left:23px;top:11px;border-left:14px solid #fff;border-top:8px solid transparent;border-bottom:8px solid transparent}
.ws-playlist .pl-side{align-self:stretch;flex:0 0 34%;display:flex;flex-direction:column;min-width:0;min-height:0}
.ws-playlist .pl-title{font:700 15px/1.2 var(--t-fhead);padding:2px 4px 8px}
.ws-playlist .pl-items{display:flex;flex-direction:column;gap:6px;overflow:auto;min-height:0}
.ws-playlist .pl-item{display:flex;align-items:center;gap:9px;text-align:left;border:1px solid transparent;background:transparent;border-radius:8px;padding:5px;font:600 13px/1.25 var(--t-fbody);color:inherit;cursor:pointer;flex:none}
.ws-playlist .pl-item img{width:84px;height:47px;object-fit:cover;border-radius:6px;background:#0b1220;flex:none}
.ws-playlist .pl-item:hover{background:color-mix(in srgb,var(--t-primary) 8%,transparent)}
.ws-playlist .pl-item.cur{border-color:var(--t-primary);background:color-mix(in srgb,var(--t-primary) 10%,transparent)}
.ws-playlist.l-below{flex-direction:column}
.ws-playlist.l-below .pl-side{flex:0 0 auto}
.ws-playlist.l-below .pl-items{flex-direction:row}
.ws-playlist.l-below .pl-item{flex-direction:column;align-items:flex-start;width:150px}
.ws-playlist.l-below .pl-item img{width:100%;height:auto;aspect-ratio:16/9}
@container (max-width:520px){.ws-playlist.l-side{flex-direction:column}.ws-playlist.l-side .pl-side{flex:0 0 40%}}
/* ---- free-plan badge ---- */
.ws-badge{position:fixed;right:12px;bottom:12px;z-index:9999;display:flex;align-items:center;gap:6px;background:#fff;color:#1F3B5C;border:1px solid #D3E0EE;border-radius:99px;padding:5px 11px 5px 7px;font:600 12px/1 Inter,system-ui,sans-serif;text-decoration:none;box-shadow:0 4px 14px rgba(31,59,92,.18)}
.ws-badge:hover{border-color:#2B7BC4}

/* ==== v2 general-purpose features: full-width tiles, page background, rotation, shadow, accordion, image row, cookie notice ==== */
.ws-stage,.wse-stage{container-type:inline-size}
.ws-stage{width:100%;overflow-x:clip}
/* a "full width" tile ignores the 1200px column and spans the whole browser window (100cqw = width of .ws-stage / editor stage) */
.ws-tile.full,.ws-pagebg{left:calc((var(--cols)*var(--cell) - max(100cqw,var(--cols)*var(--cell)))/2);width:max(100cqw,calc(var(--cols)*var(--cell)))}
.ws-pagebg{position:absolute;top:0;height:100%;z-index:0;pointer-events:none;background-repeat:no-repeat;background-position:center top;background-size:cover}
.ws-pagebg::after{content:"";position:absolute;inset:0;background:var(--pbc,var(--t-bg));opacity:var(--pbf,0)}
.ws-body[data-shadow="1"]{box-shadow:0 2px 6px rgba(19,36,94,.10),0 6px 14px rgba(19,36,94,.08)}
.ws-body[data-shadow="2"]{box-shadow:0 10px 30px rgba(23,36,62,.26),0 2px 6px rgba(23,36,62,.12)}
.ws-body[data-shadow="3"]{box-shadow:14px 16px 0 rgba(43,69,222,.14)}
.ws-tile[data-grow-shift]{transition:translate .2s}
/* accordion */
.ws-body.ws-accordion{width:100%;height:100%;overflow:auto;display:flex;flex-direction:column;gap:8px;font-family:var(--t-fbody);color:var(--t-text);align-items:stretch;font-size:16px}
.ws-accordion details{flex:none;border:1px solid var(--t-line);border-radius:var(--t-radius);background:var(--t-surface);overflow:hidden}
.ws-accordion summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:12px;padding:13px 18px;font:700 1.12em/1.3 var(--t-fhead);background:var(--acc-bg,transparent);color:var(--acc-ink,inherit)}
.ws-accordion summary::-webkit-details-marker{display:none}
.ws-accordion summary .acc-t{flex:1;min-width:0}
.ws-accordion summary small{font:600 .72em var(--t-fbody);color:var(--t-muted)}
.ws-accordion summary::after{content:"";flex:none;width:8px;height:8px;border:solid currentColor;border-width:0 2px 2px 0;transform:rotate(45deg) translateY(-2px);transition:transform .15s;opacity:.7}
.ws-accordion details[open] summary::after{transform:rotate(-135deg) translateY(-2px)}
.ws-accordion.acc-flat{gap:0}
.ws-accordion.acc-flat details{border:0;border-radius:0;border-bottom:1px solid color-mix(in srgb,var(--t-line) 70%,transparent);background:var(--acc-bg,transparent)}
.ws-accordion.acc-flat summary{flex-direction:row-reverse;justify-content:flex-end;padding:11px 10px;font-size:1em}
.ws-accordion.acc-flat summary .acc-t{flex:1}
.ws-accordion.acc-flat summary::after{content:"";width:0;height:0;border:solid transparent;border-width:5px 0 5px 7px;border-left-color:currentColor;transform:none;opacity:.8}
.ws-accordion.acc-flat details[open] summary::after{transform:rotate(90deg)}
.ws-accordion.acc-flat summary small{display:none}
.ws-accordion .acc-body{padding:4px 18px 12px;font-size:.95em;line-height:1.55}
.ws-accordion .acc-body p{margin:.5em 0}
.ws-accordion .acc-row{display:flex;align-items:center;gap:12px;padding:9px 0;border-top:1px solid var(--t-line)}
.ws-accordion .acc-row:first-child{border-top:0}
.ws-accordion .acc-n{flex:none;min-width:2.1em;height:2.1em;display:grid;place-items:center;border-radius:.6em;background:color-mix(in srgb,var(--t-primary) 10%,transparent);color:var(--t-primary);font-weight:700;font-size:.82em}
.ws-accordion .acc-l{flex:1;min-width:0}
.ws-accordion .acc-go{flex:none;font-weight:700;font-size:.85em;color:var(--t-primary);text-decoration:none;border:1px solid var(--t-line);border-radius:.6em;padding:.35em .9em;background:var(--t-surface)}
.ws-live .ws-accordion .acc-go:hover{border-color:var(--t-primary)}
/* image row */
.ws-imagerow{width:100%;height:100%;display:flex;align-items:center;gap:var(--ir-gap,8px);justify-content:var(--ir-just,flex-start)}
.ws-imagerow>*{min-width:0;height:100%;display:flex;align-items:center}
.ws-imagerow img{height:100%;width:auto;max-width:100%;object-fit:contain;display:block}
/* click-to-play video gate (cookie notice option) */
.ws-gate{position:absolute;inset:0;overflow:auto;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:8px;padding:16px;box-sizing:border-box;background:var(--t-surface,#fff);color:var(--t-text,#17243e);border:1px solid var(--t-line,#e2e7ee);border-radius:inherit;font:400 14px/1.45 var(--t-fbody)}
.ws-gate b{font:700 20px/1.2 var(--t-fhead)}
.ws-gate p{margin:0;max-width:56ch;font-size:13px;opacity:.8}
.ws-gate button{font:700 13px var(--t-fbody);background:var(--t-surface,#fff);color:var(--t-primary,#2b45de);border:1px solid var(--t-line,#d5dffa);border-radius:9px;padding:8px 14px;cursor:pointer}
.ws-gate a{color:var(--t-primary,#2b45de);font-size:12px}
/* cookie notice */
.ws-cookie{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);z-index:9998;width:min(560px,calc(100vw - 24px));background:#fff;color:#17243e;border:1px solid #e2e7ee;border-radius:14px;box-shadow:0 10px 34px rgba(19,36,94,.2);padding:16px 18px;font:14px/1.5 Inter,system-ui,sans-serif}
.ws-cookie[hidden]{display:none}
.ws-cookie b{display:block;font-size:15px;margin-bottom:4px}
.ws-cookie p{margin:0 0 12px;color:#4b5a73;font-size:13px}
.ws-cookie .ck-b{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.ws-cookie button{font:650 13px Inter,system-ui,sans-serif;border:1px solid #d7deea;background:#fff;color:#17243e;border-radius:9px;padding:8px 14px;cursor:pointer}
.ws-cookie button[data-ck=yes]{background:#2b45de;border-color:#2b45de;color:#fff}
.ws-cookie a{font-size:12px;color:#2b45de;margin-left:auto}

/* ---- card tile (picture on top, number, arrow, title, text, small print; the whole card is one link) ---- */
.ws-body.ws-card{position:relative;display:grid;align-items:stretch;grid-template-rows:43% 1fr;overflow:hidden;box-sizing:border-box;background:var(--cd-bg,#fff);color:var(--cd-ink,var(--t-text));border:1px solid var(--t-line);border-radius:17px;font-family:var(--t-fbody);--cd-s:20px}
.ws-card .cd-art{position:relative;min-height:0;overflow:hidden}
.ws-card .cd-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.ws-card .cd-n{position:absolute;left:.7em;top:.55em;font:700 calc(var(--cd-s)*.55)/1 var(--t-fbody);font-style:normal;color:var(--cd-acc,var(--t-primary))}
.ws-card .cd-ar{position:absolute;right:.6em;top:.5em;width:calc(var(--cd-s)*1.05);height:calc(var(--cd-s)*1.05);border-radius:50%;background:#ffffffe6;display:grid;place-items:center;font:700 calc(var(--cd-s)*.75)/1 var(--t-fbody);font-style:normal;color:var(--cd-acc,var(--t-primary))}
.ws-card .cd-copy{position:relative;min-height:0;overflow:hidden;padding:.35em .9em .5em;display:flex;flex-direction:column;gap:.25em}
.ws-card .cd-copy h3{margin:0;font:700 var(--cd-s)/1.15 var(--t-fhead)}
.ws-card .cd-copy p{margin:0;font-size:calc(var(--cd-s)*.55);line-height:1.35;color:inherit;opacity:.72}
.ws-card .cd-meta{margin-top:auto;font-size:calc(var(--cd-s)*.55);font-weight:700}
.ws-card .cd-go{position:absolute;inset:0;z-index:2;border-radius:inherit}
.ws-navbar[data-ul] a{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
.ws-card::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 2px 2px 4px rgba(255,255,255,.65),inset -2px -2px 4px rgba(23,36,62,.24);pointer-events:none;z-index:1}
/* Cookies & Choices form tile (Add > Choices) */
.ws-body.ws-choices{position:relative;box-sizing:border-box;width:100%;height:100%;overflow:auto;background:var(--ch-bg,var(--t-surface,#fff));color:var(--ch-ink,var(--t-text));border:1px solid var(--t-line);border-radius:var(--t-radius,12px);font-family:var(--t-fbody);font-size:var(--ch-s,16px)}
.ws-choices .ch-form{margin:0;padding:1em 1.1em;display:flex;flex-direction:column;gap:.7em}
.ws-choices h3{margin:0;font:700 1.25em/1.2 var(--t-fhead)}
.ws-choices p{margin:0;font-size:.9em;line-height:1.45;opacity:.78}
.ws-choices .ch-opt{display:flex;align-items:flex-start;gap:.6em;cursor:pointer;line-height:1.35}
.ws-choices .ch-opt input{flex:none;width:1.15em;height:1.15em;margin:.1em 0 0;accent-color:var(--ch-acc,var(--t-primary))}
.ws-choices .ch-opt input:disabled+span{opacity:.5}
.ws-choices .ch-act{display:flex;align-items:center;gap:.8em;flex-wrap:wrap;margin-top:.2em}
.ws-choices .ch-save{font:700 .95em var(--t-fbody);background:var(--ch-acc,var(--t-primary));color:var(--t-onPrimary,#fff);border:0;border-radius:.65em;padding:.6em 1.2em;cursor:pointer}
.ws-choices .ch-save:focus-visible,.ws-choices .ch-opt input:focus-visible{outline:3px solid color-mix(in srgb,var(--ch-acc,var(--t-primary)) 45%,transparent);outline-offset:2px}
.ws-choices .ch-msg{font-size:.9em;font-weight:600}
/* Cookie preferences tile (Add > Cookie preferences): the live cookie-settings page as a tile */
.ws-body.ws-cookieprefs{position:relative;box-sizing:border-box;width:100%;height:100%;overflow:auto;background:var(--cp-bg,var(--t-surface,#fff));color:var(--cp-ink,var(--t-text));border:1px solid var(--t-line);border-radius:var(--t-radius,12px);font-family:var(--t-fbody);font-size:var(--cp-s,16px)}
.ws-cookieprefs .cp-form{margin:0;padding:1.1em 1.3em;display:flex;flex-direction:column;gap:.5em}
.ws-cookieprefs h3{margin:0;font:700 1.6em/1.15 var(--t-fhead)}
.ws-cookieprefs p{margin:0}
.ws-cookieprefs .cp-eyebrow{font-size:.78em;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--cp-acc,var(--t-primary))}
.ws-cookieprefs .cp-text{line-height:1.6;opacity:.82}
.ws-cookieprefs .cp-rows{display:flex;flex-direction:column;margin:.4em 0}
.ws-cookieprefs .cp-row{display:flex;justify-content:space-between;align-items:flex-start;gap:1.4em;padding:1em 0;border-bottom:1px solid color-mix(in srgb,var(--cp-ink,var(--t-text)) 18%,transparent);cursor:pointer}
.ws-cookieprefs .cp-row[data-kind=info],.ws-cookieprefs .cp-row[data-kind=locked]{cursor:default}
.ws-cookieprefs .cp-copy{display:flex;flex-direction:column;gap:.25em;min-width:0}
.ws-cookieprefs .cp-label{font-weight:700}
.ws-cookieprefs .cp-desc{font-size:.9em;line-height:1.55;opacity:.78}
.ws-cookieprefs .cp-row input{flex:none;width:1.5em;height:1.5em;margin:0;accent-color:var(--cp-acc,var(--t-primary))}
.ws-cookieprefs .cp-state{flex:none;font-weight:700;color:var(--cp-acc,var(--t-primary))}
.ws-cookieprefs .cp-gpc{font-size:.9em;font-weight:600;color:var(--cp-acc,var(--t-primary))}
.ws-cookieprefs .cp-act{display:flex;flex-wrap:wrap;gap:.9em;margin:.6em 0 .2em}
.ws-cookieprefs .cp-act button{font:700 .95em var(--t-fbody);border:1px solid var(--cp-acc,var(--t-primary));border-radius:.55em;padding:.75em 1.3em;cursor:pointer;background:var(--cp-acc,var(--t-primary));color:var(--cp-on,var(--t-onPrimary,#fff))}
.ws-cookieprefs .cp-act .cp-reject{background:transparent;color:var(--cp-acc,var(--t-primary))}
.ws-cookieprefs button:focus-visible,.ws-cookieprefs input:focus-visible,.ws-cookieprefs .cp-link:focus-visible{outline:3px solid color-mix(in srgb,var(--cp-acc,var(--t-primary)) 45%,transparent);outline-offset:2px}
.ws-cookieprefs .cp-msg{min-height:1.5em;font-weight:600;color:var(--cp-acc,var(--t-primary))}
.ws-cookieprefs .cp-note{font-size:.9em;line-height:1.55;padding:.9em 1em;border-left:3px solid var(--cp-acc,var(--t-primary));background:color-mix(in srgb,var(--cp-acc,var(--t-primary)) 6%,transparent)}
.ws-cookieprefs .cp-link{color:var(--cp-acc,var(--t-primary));font-weight:600;align-self:flex-start}
/* Search tile (Add > Search): the results scroll inside the tile */
.ws-body.ws-search{position:relative;box-sizing:border-box;width:100%;height:100%;overflow:auto;background:var(--sr-bg,var(--t-surface,#fff));color:var(--sr-ink,var(--t-text));border:1px solid var(--t-line);border-radius:var(--t-radius,12px);font-family:var(--t-fbody);font-size:var(--sr-s,16px)}
.ws-search .sr-form{margin:0;padding:.9em 1em;display:flex;flex-direction:column;gap:.55em}
.ws-search .sr-label{margin:0;font-weight:700}
.ws-search .sr-row{display:flex;gap:.5em;flex-wrap:wrap}
.ws-search .sr-q{flex:1 1 10em;min-width:0;font:inherit;color:inherit;background:transparent;border:1px solid color-mix(in srgb,var(--sr-ink,var(--t-text)) 30%,transparent);border-radius:.55em;padding:.6em .8em}
.ws-search .sr-q::placeholder{color:inherit;opacity:.55}
.ws-search .sr-go,.ws-search .sr-clear{font:700 .95em var(--t-fbody);border:1px solid var(--sr-acc,var(--t-primary));border-radius:.55em;padding:.6em 1.1em;cursor:pointer;background:var(--sr-acc,var(--t-primary));color:var(--sr-on,var(--t-onPrimary,#fff))}
.ws-search .sr-clear{background:transparent;color:var(--sr-acc,var(--t-primary))}
.ws-search .sr-q:focus-visible,.ws-search button:focus-visible,.ws-search .sr-hit:focus-visible{outline:3px solid color-mix(in srgb,var(--sr-acc,var(--t-primary)) 45%,transparent);outline-offset:2px}
.ws-search .sr-count{margin:0;font-size:.88em;min-height:1.2em;opacity:.8}
.ws-search .sr-list{display:flex;flex-direction:column;gap:.4em}
.ws-search .sr-hit{display:flex;flex-direction:column;gap:.15em;padding:.65em .8em;border:1px solid color-mix(in srgb,var(--sr-ink,var(--t-text)) 16%,transparent);border-radius:.6em;color:inherit;text-decoration:none}
.ws-search .sr-hit:hover{border-color:var(--sr-acc,var(--t-primary))}
.ws-search .sr-title{color:var(--sr-acc,var(--t-primary))}
.ws-search .sr-path{font-size:.78em;opacity:.6}
.ws-search .sr-what{font-size:.9em;line-height:1.4;opacity:.8}

/* ---- plain Tile with no picture: only the text area ---- */
.ws-body.ws-card.cd-flat{grid-template-rows:1fr}
.ws-card.cd-flat .cd-copy{padding:.7em .9em}

/* ---- site-wide Header and Footer bands (set once in the editor, shown on every page unless the page hides them) ---- */
.ws-sitehead,.ws-sitefoot{box-sizing:border-box;width:100%;background:var(--sb-bg,var(--t-surface,#fff));color:var(--sb-ink,var(--t-text,#111));font-family:var(--t-fbody)}
.ws-sitehead{border-bottom:1px solid var(--t-line,#ddd);position:relative;z-index:200000}
.ws-sitefoot{border-top:1px solid var(--t-line,#ddd)}
.sb-in{box-sizing:border-box;max-width:1200px;margin:0 auto;padding:12px 20px;display:flex;align-items:center;gap:10px 28px;flex-wrap:wrap}
.sh-brand{display:flex;align-items:center;gap:10px;color:inherit;text-decoration:none;font:800 22px/1.1 var(--t-fhead);letter-spacing:-.02em}
.sh-logo{height:36px;width:auto;max-width:160px;object-fit:contain;display:block}
.sh-nav,.sf-nav{display:flex;flex-wrap:wrap;gap:4px 22px;flex:1 1 auto;font-weight:600}
.sh-nav a,.sf-nav a{color:inherit;text-decoration:none;padding:6px 2px;border-bottom:2px solid transparent;white-space:nowrap}
.sh-nav a:hover,.sf-nav a:hover{border-bottom-color:var(--sb-acc,var(--t-accent,#e8a33d))}
.sh-nav a.cur,.sf-nav a.cur{border-bottom-color:var(--sb-acc,var(--t-primary));color:var(--sb-acc,var(--t-primary))}
.sf-text{margin:0;font-size:14px;opacity:.85;flex:1 1 16em}
.sf-nav{flex:0 1 auto;font-size:14px}
.sh-search{position:relative;margin:0 0 0 auto;flex:0 1 380px;min-width:min(100%,220px)}
.sh-search .sr-row{display:flex;gap:6px;align-items:stretch;border:2px solid var(--sb-acc,var(--t-primary));border-radius:999px;background:var(--t-bg,#fff);padding:3px 3px 3px 14px;box-shadow:0 1px 6px rgba(0,0,0,.08)}
.sh-search .sr-q{flex:1 1 auto;min-width:0;border:0;outline:0;background:transparent;color:var(--t-text,#111);font:600 15px var(--t-fbody);padding:6px 4px}
.sh-search .sr-q::placeholder{color:var(--t-muted,#666);opacity:1}
.sh-search .sr-go{border:0;border-radius:999px;background:var(--sb-acc,var(--t-primary));color:var(--t-onPrimary,#fff);font:700 14px var(--t-fbody);padding:7px 16px;cursor:pointer}
.sh-search .sr-q:focus-visible,.sh-search .sr-go:focus-visible{outline:3px solid color-mix(in srgb,var(--sb-acc,var(--t-primary)) 45%,transparent);outline-offset:1px}
.sh-search .sh-drop{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:5;background:var(--t-bg,#fff);color:var(--t-text,#111);border-radius:14px;box-shadow:0 10px 30px rgba(0,0,0,.22);max-height:60vh;overflow:auto}
.sh-search .sh-drop:has(.sr-count:empty):not(:has(.sr-hit)){display:none}
.sh-search .sr-count{margin:0;padding:8px 14px;font-size:13px;opacity:.75}
.sh-search .sr-list{display:flex;flex-direction:column;padding:0 6px 6px}
.sh-search .sr-hit{display:flex;flex-direction:column;gap:2px;padding:9px 10px;border-radius:9px;color:inherit;text-decoration:none}
.sh-search .sr-hit:hover,.sh-search .sr-hit:focus-visible{background:color-mix(in srgb,var(--t-primary) 12%,transparent)}
.sh-search .sr-title{color:var(--sb-acc,var(--t-primary))}
.sh-search .sr-path{font-size:12px;opacity:.6}
.sh-search .sr-what{font-size:13px;opacity:.8}
@media (max-width:640px){.sh-search{flex:1 1 100%;margin:0}.sb-in{padding:10px 14px}}
/* ---- Blog tile (r7.5): compact list (thumbnail, title, date), newest first; one post per address (?post=<id>) ---- */
.ws-body.ws-blog{width:100%;height:100%;overflow:visible;display:flex;flex-direction:column;gap:14px;font-family:var(--t-fbody);color:var(--bl-ink,var(--t-text));font-size:var(--bl-s,17px);line-height:1.55;align-items:stretch;justify-content:flex-start}
.ws-blog .bl-list{display:flex;flex-direction:column;gap:8px}
.ws-blog .bl-item{display:flex;align-items:center;gap:14px;padding:8px;border:1px solid var(--t-line);border-radius:var(--t-radius);background:var(--bl-bg,var(--t-surface));color:inherit;text-decoration:none;min-width:0}
a.bl-item:hover,a.bl-item:focus-visible{border-color:var(--t-primary);box-shadow:0 2px 10px #0001}
.ws-blog .bl-thumb{flex:none;width:76px;height:76px;border-radius:calc(var(--t-radius) * .6);overflow:hidden;background:var(--t-line)}
.ws-blog .bl-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.ws-blog .bl-thumb.empty{background:linear-gradient(135deg,var(--t-line),var(--t-surface))}
.ws-blog .bl-it{display:flex;flex-direction:column;gap:2px;min-width:0}
.ws-blog .bl-item .bl-title{font:700 1.08em/1.3 var(--t-fhead);overflow-wrap:anywhere}
.ws-blog .bl-date{font-size:.85em;font-weight:600;color:var(--t-muted)}
.ws-blog .bl-none{opacity:.75;margin:0}
.ws-blog .bl-full{display:flex;flex-direction:column;gap:10px}
.ws-blog .bl-back{align-self:flex-start;font-weight:700;color:var(--t-primary);text-decoration:none;padding:6px 0}
.ws-blog .bl-back:hover{text-decoration:underline}
.ws-blog .bl-full .bl-title{margin:0;font:800 1.9em/1.2 var(--t-fhead);overflow-wrap:anywhere}
.ws-blog .bl-main{display:flex;flex-direction:column;gap:14px}
.ws-blog .bl-text p{margin:0 0 .8em;overflow-wrap:anywhere}
.ws-blog .bl-photos{display:grid;gap:8px;grid-template-columns:1fr}
.ws-blog .bl-photos img{width:100%;height:auto;border-radius:calc(var(--t-radius) * .6);display:block;background:var(--t-line)}
.ws-blog .bl-l-big .bl-photos img:not(:first-child){max-height:none}
.ws-blog .bl-l-grid .bl-photos.n2{grid-template-columns:1fr 1fr}.ws-blog .bl-l-grid .bl-photos.n3{grid-template-columns:repeat(3,1fr)}
.ws-blog .bl-l-grid .bl-photos img{aspect-ratio:4/3;object-fit:cover}
.ws-blog .bl-l-side .bl-main{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);align-items:start}
@media (max-width:600px){.ws-blog .bl-thumb{width:64px;height:64px}.ws-blog .bl-l-side .bl-main{display:flex}.ws-blog .bl-l-grid .bl-photos.n3{grid-template-columns:1fr 1fr}.ws-blog .bl-full .bl-title{font-size:1.5em}}
/* ---- "Old School Style" theme preset: a tasteful late-90s look (tiled light background, serif headings, beveled gray buttons, blue underlined links, table-style borders, counter badge). Text contrast stays AA. ---- */
.ws-stage[data-preset="oldschool"],.ws-page[data-preset="oldschool"]{background-color:#EFEDE4;background-image:linear-gradient(45deg,#0000000a 25%,transparent 25%,transparent 75%,#0000000a 75%),linear-gradient(45deg,#0000000a 25%,transparent 25%,transparent 75%,#0000000a 75%);background-size:16px 16px;background-position:0 0,8px 8px}
.ws-page[data-preset="oldschool"] .ws-rich a,.ws-page[data-preset="oldschool"] .ws-navbar a,.ws-page[data-preset="oldschool"] .ws-blog a.bl-item .bl-title{color:#0000CC;text-decoration:underline}
.ws-page[data-preset="oldschool"] .ws-rich a:visited{color:#551A8B}
.ws-page[data-preset="oldschool"] .ws-btn{background:#C0C0C0!important;color:#000!important;border:2px outset #E8E8E8;border-radius:0!important;box-shadow:inset -1px -1px #808080,inset 1px 1px #fff;font-family:Verdana,Tahoma,Arial,sans-serif;font-weight:700}
.ws-page[data-preset="oldschool"] .ws-btn:active{border-style:inset}
.ws-page[data-preset="oldschool"] .ws-card,.ws-page[data-preset="oldschool"] .ws-accordion details,.ws-page[data-preset="oldschool"] .bl-item,.ws-page[data-preset="oldschool"] .bl-full,.ws-page[data-preset="oldschool"] .ws-choices,.ws-page[data-preset="oldschool"] .ws-cookieprefs{border:3px ridge #A0A0A0!important;border-radius:0!important;background:#fff}
.ws-page[data-preset="oldschool"] .bl-full{padding:12px}
.ws-page[data-preset="oldschool"] h1,.ws-page[data-preset="oldschool"] h2,.ws-page[data-preset="oldschool"] h3{font-family:"Times New Roman",Times,Georgia,serif}
.ws-page[data-preset="oldschool"] hr{border:0;border-top:2px groove #A0A0A0}
.ws-oldbadge{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;margin:24px auto 18px;padding:8px 14px;width:max-content;max-width:calc(100% - 24px);background:#C0C0C0;border:2px outset #E8E8E8;font:12px/1.2 Verdana,Tahoma,Arial,sans-serif;color:#000}
.ws-oldbadge .odo{display:inline-flex;gap:1px;background:#000;padding:2px;border:2px inset #808080}
.ws-oldbadge .odo b{font:700 14px/1 "Courier New",monospace;color:#7CFC00;background:#111;padding:2px 3px;min-width:.7em;text-align:center}
/* ---- Calendar tile (calendar.js) ---- */
.ws-calwrap{width:100%;height:100%;overflow:auto;display:flex;flex-direction:column;gap:8px;font-family:var(--t-fbody);color:var(--cal-ink,var(--t-text));font-size:var(--cal-s,15px);line-height:1.4;-webkit-overflow-scrolling:touch}
.ws-calwrap .cal-head{margin:0;font-family:var(--t-fhead);font-size:1.5em;line-height:1.2}
.ws-cal{flex:1;display:flex;flex-direction:column;gap:10px;min-height:0;background:var(--cal-bg,var(--t-surface));border:1px solid var(--t-line);border-radius:var(--t-radius);padding:12px;box-sizing:border-box}
.ws-cal .cal-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ws-cal .cal-title{margin:0;flex:1;min-width:8em;text-align:center;font-family:var(--t-fhead);font-size:1.25em}
.ws-cal .cal-nav,.ws-cal .cal-views{display:flex;gap:4px}
.ws-cal .cal-btn{font:inherit;font-size:.95em;font-weight:650;min-height:40px;min-width:40px;padding:6px 12px;border:1px solid var(--t-line);border-radius:calc(var(--t-radius) * .7);background:var(--t-surface);color:var(--t-text);cursor:pointer}
.ws-cal .cal-btn:hover{border-color:var(--t-primary)}
.ws-cal .cal-btn.on{background:var(--t-primary);color:var(--t-onPrimary);border-color:var(--t-primary)}
.ws-cal button:focus-visible,.cal-dlg button:focus-visible{outline:3px solid var(--t-primary);outline-offset:2px}
.ws-cal .cal-month{display:flex;flex-direction:column;flex:1;min-height:0;border:1px solid var(--t-line);border-radius:calc(var(--t-radius) * .6);overflow:hidden}
.ws-cal .cal-wk{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));flex:1}
.ws-cal .cal-hd{flex:none;background:color-mix(in srgb,var(--t-primary) 10%,var(--t-surface))}
.ws-cal .cal-hc{padding:6px 4px;text-align:center;font-weight:700;font-size:.85em}
.ws-cal .cal-day{border-top:1px solid var(--t-line);border-left:1px solid var(--t-line);padding:3px;min-height:4.6em;display:flex;flex-direction:column;gap:2px;min-width:0}
.ws-cal .cal-day:first-child{border-left:0}
.ws-cal .cal-day.out{opacity:.5}
.ws-cal .cal-day.now .cal-dn{background:var(--t-primary);color:var(--t-onPrimary)}
.ws-cal .cal-day.sel{box-shadow:inset 0 0 0 2px var(--t-primary)}
.ws-cal .cal-dn{align-self:flex-start;font:inherit;font-size:.85em;font-weight:700;border:0;background:none;color:inherit;border-radius:99px;min-width:2em;min-height:2em;cursor:pointer;padding:0 4px}
.ws-cal .cal-ev{display:flex;align-items:center;gap:4px;width:100%;font:inherit;font-size:.8em;text-align:left;border:0;border-radius:4px;padding:2px 4px;background:color-mix(in srgb,var(--ev) 14%,transparent);color:inherit;cursor:pointer;min-width:0;box-sizing:border-box}
.ws-cal .cal-ev.ad{background:var(--ev);color:#fff}
.ws-cal .cal-ev.busy{cursor:default;font-style:italic}
.ws-cal .cal-ev .cal-n{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.ws-cal .cal-ev .cal-t{font-weight:700;flex:none}
.ws-cal .cal-dot,.cal-lg .cal-dot{display:inline-block;flex:none;width:.6em;height:.6em;border-radius:99px;background:var(--ev)}
.ws-cal .cal-ev.ad .cal-dot{background:#fff}
.ws-cal .cal-dots{display:flex;gap:3px;flex-wrap:wrap;padding:0 4px}
.ws-cal .cal-more{font:inherit;font-size:.78em;border:0;background:none;color:var(--t-primary);text-align:left;cursor:pointer;padding:2px 4px;font-weight:700}
.ws-cal .cal-daylist,.ws-cal .cal-lday{display:flex;flex-direction:column;gap:6px}
.ws-cal .cal-daylist h4,.ws-cal .cal-lday h4{margin:6px 0 0;font-size:1em;display:flex;gap:8px;align-items:center}
.ws-cal .cal-tag{font-size:.75em;background:var(--t-primary);color:var(--t-onPrimary);border-radius:99px;padding:1px 8px}
.ws-cal .cal-row{display:grid;grid-template-columns:8.5em 1fr;gap:4px 10px;align-items:center;padding:8px;border:1px solid var(--t-line);border-radius:calc(var(--t-radius) * .6)}
.ws-cal .cal-row .cal-ev{font-size:1em;background:none;padding:0}
.ws-cal .cal-row .cal-ev.ad{background:none;color:inherit}.ws-cal .cal-row .cal-ev.ad .cal-dot{background:var(--ev)}
.ws-cal .cal-row .cal-ev .cal-n{white-space:normal;font-weight:650}
.ws-cal .cal-rt{font-size:.9em;color:var(--t-muted);font-weight:650}
.ws-cal .cal-rl{grid-column:2;font-size:.88em;color:var(--t-muted)}
.ws-cal .cal-list{display:flex;flex-direction:column;gap:10px;margin:0;padding:0;list-style:none}
.ws-cal .cal-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;flex:1}
.ws-cal .cal-wcol{border:1px solid var(--t-line);border-radius:calc(var(--t-radius) * .6);padding:6px;display:flex;flex-direction:column;gap:4px;min-height:8em;min-width:0}
.ws-cal .cal-wcol.now{box-shadow:inset 0 0 0 2px var(--t-primary)}
.ws-cal .cal-wh{display:flex;justify-content:space-between;font-size:.9em;border-bottom:1px solid var(--t-line);padding-bottom:4px}
.ws-cal .cal-wcol .cal-ev{flex-wrap:wrap}.ws-cal .cal-wcol .cal-ev .cal-n{white-space:normal}
.ws-cal .cal-empty{color:var(--t-muted);margin:6px 0}
.ws-cal .cal-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:.88em}.cal-lg{display:inline-flex;align-items:center;gap:6px}
.ws-cal .cal-note:empty{display:none}.ws-cal .cal-note{margin:0;color:var(--t-muted);font-size:.9em}
.ws-cal .cal-fallback .cal-list li{padding:6px 0;border-bottom:1px solid var(--t-line)}
.cal-ov{position:fixed;inset:0;background:rgba(10,20,35,.5);display:grid;place-items:center;z-index:1000;padding:16px}
.cal-dlg{background:var(--t-surface,#fff);color:var(--t-text,#111);font-family:var(--t-fbody,system-ui);border-radius:var(--t-radius,12px);max-width:460px;width:100%;max-height:85vh;overflow:auto;padding:20px 22px;box-shadow:0 20px 50px rgba(0,0,0,.3);font-size:16px;line-height:1.5}
.cal-dlg h4{margin:0 0 6px;font-size:1.3em;font-family:var(--t-fhead,inherit);border-left:6px solid var(--ev);padding-left:10px}
.cal-dlg p{margin:6px 0}.cal-dlg .cal-when{font-weight:650}.cal-dlg .cal-from{color:var(--t-muted,#555);font-size:.9em}
.cal-dlg .cal-close{margin-top:12px;font:inherit;font-weight:700;min-height:44px;padding:8px 20px;border:0;border-radius:calc(var(--t-radius,12px) * .7);background:var(--t-primary,#1D5FAF);color:var(--t-onPrimary,#fff);cursor:pointer}
@media (max-width:560px){.ws-cal{padding:8px}.ws-cal .cal-bar{justify-content:space-between}.ws-cal .cal-title{order:-1;flex-basis:100%}.ws-cal .cal-day{min-height:3.2em}.ws-cal .cal-week{grid-template-columns:1fr}.ws-cal .cal-wcol{min-height:0}.ws-cal .cal-row{grid-template-columns:1fr}.ws-cal .cal-rl{grid-column:1}}
.cal-dlg .cal-acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;align-items:center}.cal-dlg .cal-acts .cal-close{margin-top:0}
.cal-dlg .cal-add,.cal-dlg .cal-gcal{font:inherit;font-weight:700;min-height:44px;padding:8px 16px;display:inline-flex;align-items:center;border:1px solid var(--t-line,#D5DEE9);border-radius:calc(var(--t-radius,12px) * .7);background:var(--t-surface,#fff);color:var(--t-text,#17243e);text-decoration:none;cursor:pointer}
.cal-dlg .cal-add:hover,.cal-dlg .cal-gcal:hover{border-color:var(--t-primary,#1D5FAF)}.cal-dlg .cal-add:focus-visible,.cal-dlg .cal-gcal:focus-visible{outline:3px solid var(--t-primary,#1D5FAF);outline-offset:2px}
