/* ==========================================================================
   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-imglink{display:block;width:100%;height:100%;cursor:pointer}
.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 screen and (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));clip-path:var(--mclip,none)}
  .ws-live .ws-calwrap{--cal-tw:var(--mw);--cal-th:var(--mh)}
}

/* ---- 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)}
.ws-live .ws-accordion .acc-row.acc-cur{background:color-mix(in srgb,var(--t-primary) 12%,transparent);box-shadow:inset 4px 0 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-title,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:0;font-size:calc(var(--cd-s)*.55);font-weight:400}   /* t467u: sits under the description (not pinned to the bottom); normal weight unless the owner turns Bold on */
.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}
/* Emboss bevel: off by default; Advanced Emboss sets data-emboss; --cd-emboss is strength (px) */
.ws-card[data-emboss]::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset var(--cd-emboss,2px) var(--cd-emboss,2px) calc(var(--cd-emboss,2px)*2) rgba(255,255,255,.65),inset calc(var(--cd-emboss,2px)*-1) calc(var(--cd-emboss,2px)*-1) calc(var(--cd-emboss,2px)*2) 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) ---- */
/* Calendar display scales uniformly with the tile: design size = 44×34 cells (default Calendar / cal-connected Basic tile).
   --cal-fit = min(tileW/44, tileH/34) so aspect mismatch letterboxes/pillarboxes (empty space), never stretches or crops the calendar. */
.ws-calwrap{width:100%;height:100%;overflow:hidden;position:relative;display:flex;flex-direction:column;font-family:var(--t-fbody);color:var(--cal-ink,var(--t-text));font-size:var(--cal-s,15px);line-height:1.4;--cal-ref-w:44;--cal-ref-h:34;--cal-tw:var(--w);--cal-th:var(--h);--cal-fit:min(calc(var(--cal-tw) / var(--cal-ref-w)), calc(var(--cal-th) / var(--cal-ref-h)))}
.ws-calwrap > .ws-cal-scale{position:absolute;left:50%;top:50%;width:calc(var(--cal-ref-w) * var(--cell));height:calc(var(--cal-ref-h) * var(--cell));transform:translate(-50%,-50%) scale(var(--cal-fit));transform-origin:center center;display:flex;flex-direction:column;gap:8px;box-sizing:border-box;z-index:0}
.ws-calwrap > .ws-cal-scale .cal-head{margin:0;font-family:var(--t-fhead);font-size:1.5em;line-height:1.2;flex:none}
.ws-calwrap > .ws-cal-scale .ws-cal{flex:1;min-height:0;height:auto}
.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{cursor:pointer}
.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}
/* richer site footer: link columns, copyright, legal links, "powered by" (only footers that use them get .sf-rich; a classic footer is unchanged) */
.ws-sitefoot.sf-acc a{color:var(--sb-acc)}
.sf-rich .sb-in{display:block;padding:24px 20px 18px}
.sf-rich .sf-text{margin:0 0 14px;flex:none}
.sf-rich .sf-nav{margin:0 0 14px}
.sf-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:22px 32px;margin:0 0 18px}
.sf-col ul{list-style:none;margin:0;padding:0}
.sf-ct{margin:0 0 8px;font-size:14px;font-weight:700;letter-spacing:.02em;font-family:var(--t-fhead)}
.sf-col li{margin:0}
.sf-col a{display:inline-block;padding:4px 0;color:inherit;text-decoration:none;font-size:14px;overflow-wrap:anywhere}
.sf-col a:hover{text-decoration:underline}
.sf-col a.cur{font-weight:700}
.sf-base{flex:1 1 100%;width:100%;box-sizing:border-box;border-top:1px solid color-mix(in srgb,currentColor 18%,transparent);padding-top:12px;margin-top:6px}
.sf-min .sb-in{padding:10px 20px}.sf-min .sf-base{border-top:0;padding-top:0;margin-top:0}
.sf-base p{display:block;margin:4px 0;font-size:13px;opacity:.9}
.sf-legal{display:flex;flex-wrap:wrap;gap:2px 10px;align-items:center}
.sf-legal a,.sf-powered a{color:inherit;text-decoration:underline}
.sf-base .sf-powered{text-align:center;margin-top:12px}.sf-min .sf-powered{margin:0}
.sf-base .sf-powered{overflow-wrap:anywhere}.sf-powered .sf-pw-copy,.sf-powered .sf-pw-build,.sf-powered a{white-space:nowrap}
.sf-powered .sf-pw-logo{display:inline-block;vertical-align:middle;text-decoration:none;line-height:0}.sf-powered .sf-pw-logo img{height:22px;width:auto;display:block}
.sf-legal .sf-sep{opacity:.5}
@media (max-width:640px){.sf-rich .sb-in{padding:20px 14px 16px}.sf-cols{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 16px}}
@media (max-width:380px){.sf-cols{grid-template-columns:minmax(0,1fr)}}

/* ==== Keep inside the grid ====
   When it is on, the page (or the editor) gives each tile --clip (phone layout: --mclip): a shape that cuts off whatever sticks out past the grid, turned with the tile.
   A tile that is completely inside gets none, so shadows and the like are untouched. "Full width" tiles and the page background are meant to run past the grid and are never cut. */
.ws-tile{clip-path:var(--clip,none)}
.ws-sitehead.ws-keep,.ws-sitefoot.ws-keep{overflow-x:clip}
.ws-keep .sb-in>*{max-width:100%}
.sh-search{max-width:100%}

/* ==== Printing: the grid is always the printable area ====
   The paper size and margin come from the page set-up (@page is written with the page). The grid is scaled to the paper width (--pz). Anything outside the grid is cut off and a tile completely outside is left out. */
@media print{
  .ws-stage{overflow:visible;width:auto}
  .ws-live{zoom:var(--pz,.6);overflow:clip;margin:0;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .ws-live .ws-tile{clip-path:var(--clip,none);-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .ws-live .ws-tile.full,.ws-live .ws-pagebg{left:0;width:calc(var(--cols)*var(--cell))}
  .ws-live .ws-out{display:none!important}
  .ws-badge,.ws-cookie,.sh-search{display:none!important}
}

/* t699u: plain subject table rows (Tile with props.row): 0.5in picture, video count, title, description */
.ws-subrow{display:flex;align-items:center;gap:14px;height:100%;box-sizing:border-box;padding:6px 10px;border-bottom:1px solid var(--t-line,#e2e7ee);color:var(--t-text,#17243e);text-decoration:none;background:transparent}
a.ws-subrow:hover{background:rgba(0,0,0,.03)}
a.ws-subrow:focus-visible{outline:3px solid var(--t-primary,#2b45de);outline-offset:-3px}
.ws-subrow .sr-thumb{flex:0 0 .5in;width:.5in;height:.5in;border-radius:6px;overflow:hidden;background:var(--sr-bg,#eef1f6)}
.ws-subrow .sr-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.ws-subrow .sr-count{flex:0 0 5.5em;font-size:.9rem;color:var(--t-muted,#637085);white-space:nowrap}
.ws-subrow .sr-count b{color:var(--t-text,#17243e);font-size:1.05rem}
.ws-subrow .sr-copy{flex:1 1 auto;min-width:0;display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}
.ws-subrow .sr-title{font-weight:700;font-size:1.05rem;flex:0 0 9em}
.ws-subrow .sr-desc{font-size:.95rem;color:var(--t-muted,#637085);flex:1 1 12em;min-width:0}
@media (max-width:640px){.ws-subrow{gap:10px}.ws-subrow .sr-count{flex-basis:4.6em;font-size:.85rem}.ws-subrow .sr-copy{flex-direction:column;gap:2px}.ws-subrow .sr-title{flex:none}.ws-subrow .sr-desc{flex:none;font-size:.88rem;line-height:1.3}}

/* t717u: a link that looks like the surrounding text (underline on hover / focus) */
.ws-rich a.ws-quiet{color:inherit;text-decoration:none}.ws-rich a.ws-quiet:hover,.ws-rich a.ws-quiet:focus-visible{text-decoration:underline}
/* t770u: tile shapes (Square/Rectangle is the plain tile) and the Line drawing */
.ws-tile[data-geo]>.ws-body{clip-path:var(--geo-clip)}
.ws-tile[data-geo=line]>.ws-body{visibility:hidden}
.ws-tile>.ws-geoline{position:absolute;top:0;height:100%;overflow:visible;pointer-events:none;display:block}
.ws-tile[data-anim]{cursor:pointer}
.wse .ws-tile[data-anim]{cursor:inherit}.preview .wse .ws-tile[data-anim]{cursor:pointer}
@media (prefers-reduced-motion:reduce){.ws-tile[data-anim]{cursor:auto}}

/* t873u: header/footer that stay on screen while the page scrolls (site setting, on by default). Sticky = keeps its own space, so it never covers the body at rest */
.ws-fix-top{position:sticky;top:0;z-index:40}
.ws-fix-bottom{position:sticky;bottom:0;z-index:40}
.ws-fix-top.ws-unfix,.ws-fix-bottom.ws-unfix{position:relative}
@media (max-height:480px){.ws-fix-top,.ws-fix-bottom{position:relative}}

/* t891u: "Span the width of the window": the header/footer background runs edge to edge; its objects stay on the centered site-width grid (same places, sizes and links) */
.ws-band-span{display:block;width:100%;box-sizing:border-box;background:var(--t-surface,#fff)}
.ws-band-span .ws-page{background:transparent!important}
.ws-band-header.ws-band-span{border-bottom:1px solid var(--t-line,#ddd)}

/* Transfer fitting scales the whole visual, not just its frame: inline rich text, controls and widget spacing remain proportional. */
.ws-tile > .ws-body{width:calc(100% / var(--effective-content-scale,var(--content-scale,1)));height:calc(100% / var(--effective-content-scale,var(--content-scale,1)));scale:var(--effective-content-scale,var(--content-scale,1));transform-origin:top left}

/* Fitted groups retain their relative geometry and content proportions on phones. */
.wse.mobile .ws-tile{--effective-content-scale:var(--mobile-content-scale,var(--content-scale,1))}
@media screen and (max-width:600px){.ws-live .ws-tile{--effective-content-scale:var(--mobile-content-scale,var(--content-scale,1))}}
.ws-geoline[style*="--line-thick"]{--line-scale:calc(var(--effective-content-scale,var(--content-scale,1)) / var(--content-scale,1));left:calc(var(--line-start,0px) * var(--line-scale))!important;width:calc(100% - (var(--line-start,0px) + var(--line-end,0px)) * var(--line-scale))!important}
.ws-geoline[style*="--line-thick"]>line{stroke-width:calc(var(--line-thick,1.8) * var(--line-scale))}
.ws-geoline[style*="--line-thick"]>line[stroke-dasharray]{stroke-dasharray:calc(3 * var(--line-thick,1.8) * var(--line-scale)) calc(2 * var(--line-thick,1.8) * var(--line-scale))}

/* Optional Float up closes only the spare body gap, never changes saved tile coordinates. */
.ws-page[data-float-up]{height:calc((var(--rows) - .48)*var(--cell) + 9.6px)}
@media screen and (max-width:600px){.ws-live[data-float-up]{height:calc((var(--mrows) - .48)*var(--cell) + 9.6px)}}
/* New grid-sized bands use the same96-CSS-pixel inch on phones; legacy band sizing remains untouched. */
@media screen and (max-width:600px){.ws-band-grid-sizing .ws-live{--cell:min(calc(100cqw / 18),20px)!important;height:calc(var(--mrows)*20px)}}
