/*
Theme Name: Bylaw
Theme URI: https://communitysfdw.com/
Author: Marc-André Fortin
Description: Standalone theme for communitysfdw.com — a municipal-style public-notice desk covering the legal and administrative side of online gambling in Québec (statutes, tax notices, payment bylaws, player protection). Structural idea: "The Bylaw Rail" — a strip of trapezoidal filing tabs (CSS clip-path) that carries the active section forward onto the content panel below, over a stack of perforated notice tickets, each with a dashed tear-off stub holding a mono filing number and a torn-edge notch rule between rows.
Version: 409f84c0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: bylaw
*/

/* ============ tokens ============ */
:root{
  --byl-parchment:#f7f3ea;
  --byl-parchment-deep:#efe7d7;
  --byl-paper:#fffefa;
  --byl-ink:#1c1512;
  --byl-ink-soft:#574a41;
  --byl-maroon-900:#4e1212;
  --byl-maroon-700:#7a1f1f;
  --byl-ember-500:#d9640c;
  --byl-ember-800:#a8480a;
  --byl-ember-200:#f0b183;
  --byl-rule:#cbbca4;
  --byl-rule-soft:#e0d5c0;
  --byl-focus:#1f4bb8;

  --byl-gap-xs:4px;
  --byl-gap-sm:8px;
  --byl-gap-md:14px;
  --byl-gap-lg:20px;
  --byl-gap-xl:28px;
  --byl-gap-2xl:40px;
  --byl-gap-3xl:56px;
  --byl-gap-4xl:80px;

  --byl-corner:3px;
  --byl-width:1140px;
  --byl-column:70ch;

  --byl-face-title:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,"Times New Roman",serif;
  --byl-face-text:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --byl-face-file:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;font-size:17px}
body{
  margin:0;
  background:var(--byl-parchment);
  color:var(--byl-ink);
  font-family:var(--byl-face-text);
  font-size:1rem;
  line-height:1.62;
  min-width:0;
}
img,svg{max-width:100%;height:auto;display:block}
a{color:var(--byl-maroon-700);text-decoration-thickness:1.5px;text-underline-offset:2px}
a:hover{color:var(--byl-ember-800)}
a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--byl-focus);outline-offset:2px}
h1,h2,h3{font-family:var(--byl-face-title);font-weight:700;line-height:1.34;margin:0 0 var(--byl-gap-md);color:var(--byl-maroon-900)}
h1{font-size:clamp(1.95rem,1.55rem + 1.7vw,2.85rem);line-height:1.32}
h2{font-size:1.55rem}
h3{font-size:1.18rem}
p{margin:0 0 var(--byl-gap-md)}
ul,ol{margin:0 0 var(--byl-gap-md);padding-left:1.25em}
.byl-shell{max-width:var(--byl-width);margin:0 auto;padding:0 var(--byl-gap-lg)}
.byl-mono{font-family:var(--byl-face-file);font-variant-numeric:tabular-nums;letter-spacing:.02em}

.byl-skip{
  position:absolute;left:-999px;top:0;z-index:120;background:var(--byl-maroon-900);
  color:var(--byl-parchment);padding:var(--byl-gap-sm) var(--byl-gap-md);
}
.byl-skip:focus{left:0}

/* ============ masthead ============ */
.byl-masthead{background:var(--byl-maroon-900);border-bottom:5px double var(--byl-ember-500);position:relative}
.byl-masthead__inner{display:flex;align-items:center;justify-content:space-between;gap:var(--byl-gap-md);padding:var(--byl-gap-md) 0}
.byl-crest{display:flex;align-items:center;gap:var(--byl-gap-md);min-width:0;flex-wrap:wrap}
.byl-crest__link{display:inline-flex;align-items:center;text-decoration:none}
.byl-crest__mark{height:46px;width:auto}
.byl-crest__name{font-family:var(--byl-face-title);font-size:1.3rem;font-weight:700;color:var(--byl-parchment)}
.byl-crest__office{
  margin:0;font-family:var(--byl-face-file);font-size:.78rem;letter-spacing:.09em;text-transform:uppercase;
  color:var(--byl-ember-200);border-left:1px solid var(--byl-maroon-700);padding-left:var(--byl-gap-md);
}
.byl-nav-zone{display:flex;align-items:center}
.byl-menu-toggle{
  display:none;align-items:center;gap:var(--byl-gap-sm);min-height:48px;min-width:48px;cursor:pointer;
  background:transparent;color:var(--byl-parchment);border:1px solid var(--byl-ember-500);
  border-radius:var(--byl-corner);padding:var(--byl-gap-sm) var(--byl-gap-md);
  font-family:var(--byl-face-file);font-size:.82rem;letter-spacing:.09em;text-transform:uppercase;
}
.byl-menu-toggle__bars{display:inline-block;width:18px;height:12px;position:relative}
.byl-menu-toggle__bars i{position:absolute;left:0;right:0;height:2px;background:var(--byl-ember-500)}
.byl-menu-toggle__bars i:nth-child(1){top:0}
.byl-menu-toggle__bars i:nth-child(2){top:5px}
.byl-menu-toggle__bars i:nth-child(3){bottom:0}
.byl-nav{display:flex;gap:var(--byl-gap-xl)}
.byl-nav__link{
  color:var(--byl-parchment);text-decoration:none;font-size:.97rem;padding:var(--byl-gap-sm) 0;
  border-bottom:2px solid transparent;display:inline-block;
}
.byl-nav__link:hover,.byl-nav__link:focus-visible{color:var(--byl-ember-200);border-bottom-color:var(--byl-ember-500)}
@media (max-width:600px){.byl-crest__office{display:none}}
@media (max-width:840px){
  .byl-menu-toggle{display:inline-flex}
  .byl-nav{
    position:absolute;left:0;right:0;top:100%;z-index:60;flex-direction:column;gap:0;
    background:var(--byl-maroon-900);border-bottom:5px double var(--byl-ember-500);
    max-height:0;overflow:hidden;transition:max-height .22s ease;padding:0 var(--byl-gap-lg);
  }
  .byl-nav--open{max-height:460px;padding:var(--byl-gap-sm) var(--byl-gap-lg) var(--byl-gap-lg)}
  .byl-nav__link{display:block;padding:var(--byl-gap-md) 0;min-height:48px}
}

/* ============ preamble (page opening block) ============ */
.byl-preamble{padding:var(--byl-gap-3xl) 0 var(--byl-gap-xl)}
.byl-preamble__docket{
  margin:0 0 var(--byl-gap-md);font-family:var(--byl-face-file);font-size:.79rem;letter-spacing:.11em;
  text-transform:uppercase;color:var(--byl-ember-800);
}
.byl-preamble__title{max-width:24ch}
.byl-preamble__lede{max-width:var(--byl-column);font-size:1.08rem;color:var(--byl-ink-soft)}
.byl-preamble__lede:last-child{margin-bottom:0}
.byl-intro{max-width:var(--byl-column);color:var(--byl-ink-soft);font-size:1.02rem}
.byl-intro p:last-child{margin-bottom:0}

/* ============ filing-tab strip ============ */
.byl-tabs{
  list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:flex-end;
  gap:var(--byl-gap-xs);position:relative;z-index:2;
}
.byl-tabs__tab{margin:0 0 -1px}
.byl-tabs__link{
  display:flex;flex-direction:column;justify-content:center;gap:2px;min-height:56px;
  padding:var(--byl-gap-sm) var(--byl-gap-lg) var(--byl-gap-sm);text-decoration:none;
  background:var(--byl-parchment-deep);color:var(--byl-maroon-700);
  border-top:2px solid var(--byl-rule);
  clip-path:polygon(11px 0, calc(100% - 11px) 0, 100% 100%, 0 100%);
  transition:background .15s ease,color .15s ease;
}
.byl-tabs__link:hover,.byl-tabs__link:focus-visible{background:var(--byl-paper);color:var(--byl-maroon-900)}
.byl-tabs__tab--forward .byl-tabs__link{
  background:var(--byl-maroon-700);color:var(--byl-parchment);border-top-color:var(--byl-ember-500);
  min-height:64px;font-weight:600;
}
.byl-tabs__tab--forward .byl-tabs__link:hover,.byl-tabs__tab--forward .byl-tabs__link:focus-visible{
  background:var(--byl-maroon-900);color:var(--byl-parchment);
}
.byl-tabs__name{font-size:.97rem;line-height:1.34}
.byl-tabs__tally{font-family:var(--byl-face-file);font-size:.8rem;letter-spacing:.05em;opacity:.92}

/* ============ notice panel + perforated stack ============ */
.byl-panel{
  background:var(--byl-paper);border-top:4px solid var(--byl-maroon-700);
  border-bottom:1px solid var(--byl-rule-soft);padding:var(--byl-gap-xl) var(--byl-gap-lg) var(--byl-gap-2xl);
  margin-bottom:var(--byl-gap-4xl);
}
.byl-panel__caption{margin-bottom:var(--byl-gap-lg)}
.byl-panel__caption h2{margin-bottom:var(--byl-gap-xs)}
.byl-panel__caption p{margin:0;color:var(--byl-ink-soft);font-size:.97rem}
.byl-stack{list-style:none;margin:0;padding:0}
.byl-notice{
  position:relative;display:grid;grid-template-columns:104px minmax(0,1fr) 92px;
  column-gap:var(--byl-gap-lg);align-items:start;padding:var(--byl-gap-lg) 0 var(--byl-gap-xl);
}
.byl-notice + .byl-notice::before{
  content:"";position:absolute;top:0;left:0;right:0;height:9px;pointer-events:none;
  background-image:
    repeating-linear-gradient(90deg, var(--byl-rule) 0 5px, transparent 5px 11px),
    conic-gradient(from -45deg at 50% 0, transparent 0 25%, var(--byl-rule-soft) 0 75%, transparent 0);
  background-size:100% 1px, 13px 9px;
  background-position:0 0, 0 1px;
  background-repeat:repeat-x, repeat-x;
}
.byl-notice__stub{
  border-left:2px dashed var(--byl-rule);padding:2px 0 2px var(--byl-gap-md);
  display:flex;flex-direction:column;gap:2px;
}
.byl-notice__num{font-family:var(--byl-face-file);font-size:.95rem;font-weight:600;color:var(--byl-maroon-700);font-variant-numeric:tabular-nums}
.byl-notice__stamped{font-family:var(--byl-face-file);font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;color:var(--byl-ink-soft)}
.byl-notice__body{min-width:0}
.byl-notice__title{font-size:1.16rem;margin:0 0 var(--byl-gap-xs);line-height:1.32}
.byl-notice__title a{color:var(--byl-maroon-900);text-decoration:none}
.byl-notice__title a:hover,.byl-notice__title a:focus-visible{color:var(--byl-ember-800);text-decoration:underline}
.byl-notice__dek{margin:0 0 var(--byl-gap-sm);color:var(--byl-ink-soft);font-size:.96rem}
.byl-notice__meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--byl-gap-sm);margin:0;font-size:.82rem;color:var(--byl-ink-soft)}
.byl-notice__file{
  display:inline-block;padding:2px 9px;border:1px solid var(--byl-rule);background:var(--byl-parchment);
  color:var(--byl-maroon-700);font-size:.8rem;letter-spacing:.02em;
}
.byl-notice__fact{
  display:inline-block;padding:2px 9px;background:var(--byl-parchment-deep);color:var(--byl-ink-soft);
  font-family:var(--byl-face-file);font-size:.78rem;
}
.byl-notice__plate{margin:0;width:92px;height:92px;overflow:hidden;border:1px solid var(--byl-rule);background:var(--byl-parchment-deep)}
.byl-notice__plate img{width:100%;height:100%;object-fit:cover}
.byl-notice__plate-blank{display:block;width:100%;height:100%}
@media (max-width:760px){
  .byl-notice{grid-template-columns:88px minmax(0,1fr);row-gap:var(--byl-gap-md)}
  .byl-notice__plate{grid-column:1 / -1;width:100%;height:150px}
}
@media (max-width:420px){
  .byl-panel{padding-left:var(--byl-gap-md);padding-right:var(--byl-gap-md)}
  .byl-notice{grid-template-columns:76px minmax(0,1fr)}
  .byl-notice__stub{padding-left:var(--byl-gap-sm)}
}
.byl-vacant{color:var(--byl-ink-soft);padding:var(--byl-gap-xl) 0;margin:0}

.byl-leaf{padding-bottom:var(--byl-gap-4xl)}
.byl-leaf .page-numbers{
  display:inline-flex;align-items:center;justify-content:center;min-width:48px;min-height:48px;
  border:1px solid var(--byl-rule);margin-right:var(--byl-gap-sm);text-decoration:none;padding:var(--byl-gap-sm);
  color:var(--byl-maroon-900);font-family:var(--byl-face-file);background:var(--byl-paper);
}
.byl-leaf .page-numbers.current{background:var(--byl-maroon-700);color:var(--byl-parchment);border-color:var(--byl-maroon-700)}
.byl-leaf .page-numbers:hover{border-color:var(--byl-ember-800);color:var(--byl-ember-800)}

/* ============ single filing ============ */
.byl-filing__grid{display:grid;grid-template-columns:minmax(0,1fr) 268px;gap:var(--byl-gap-2xl);padding:var(--byl-gap-3xl) 0 var(--byl-gap-4xl)}
.byl-filing__main{min-width:0;max-width:840px}
.byl-filing__section{
  display:inline-block;margin-bottom:var(--byl-gap-md);padding-bottom:3px;text-decoration:none;
  font-family:var(--byl-face-file);font-size:.79rem;letter-spacing:.11em;text-transform:uppercase;
  color:var(--byl-ember-800);border-bottom:2px solid var(--byl-ember-500);
}
.byl-filing__title{max-width:none}
.byl-filing__line{color:var(--byl-ink-soft);font-size:.9rem;margin-bottom:var(--byl-gap-lg)}
.byl-filing__image{margin:0 0 var(--byl-gap-lg);border:1px solid var(--byl-rule)}
.byl-filing__text{max-width:var(--byl-column);font-size:1.05rem;line-height:1.7}
.byl-filing__text h2{margin-top:var(--byl-gap-xl)}
.byl-filing__text h3{margin-top:var(--byl-gap-lg)}
.byl-filing__text img{margin:var(--byl-gap-md) 0;border:1px solid var(--byl-rule)}
.byl-filing__text table{width:100%;border-collapse:collapse;display:block;overflow-x:auto;min-width:0}
.byl-filing__text td,.byl-filing__text th{border:1px solid var(--byl-rule);padding:var(--byl-gap-sm) var(--byl-gap-md);min-width:120px}
.byl-filing__text blockquote{margin:var(--byl-gap-lg) 0;padding-left:var(--byl-gap-lg);border-left:3px solid var(--byl-ember-500);color:var(--byl-ink-soft)}

/* ---- "Filed Under" civic stamp ---- */
.byl-stamp{align-self:start;position:sticky;top:var(--byl-gap-lg)}
.byl-stamp__mark{
  transform:rotate(-2.4deg);background:var(--byl-paper);border:2px solid var(--byl-maroon-700);
  outline:1px solid var(--byl-maroon-700);outline-offset:4px;padding:var(--byl-gap-md) var(--byl-gap-lg);
}
.byl-stamp__label{
  margin:0 0 var(--byl-gap-sm);font-family:var(--byl-face-file);font-size:.8rem;letter-spacing:.15em;
  text-transform:uppercase;color:var(--byl-maroon-700);border-bottom:1px solid var(--byl-rule);padding-bottom:var(--byl-gap-sm);
}
.byl-stamp__file{margin:0 0 var(--byl-gap-sm);font-weight:600;color:var(--byl-maroon-900);font-size:1rem;line-height:1.34}
.byl-stamp__file a{color:var(--byl-maroon-900)}
.byl-stamp__note{margin:0;font-size:.88rem;color:var(--byl-ink-soft);line-height:1.5}
@media (max-width:920px){
  .byl-filing__grid{grid-template-columns:1fr;gap:var(--byl-gap-xl)}
  .byl-stamp{position:static;order:-1}
  .byl-stamp__mark{transform:none;outline-offset:3px}
}

/* ============ signature block ============ */
.byl-signature{
  display:flex;align-items:center;gap:var(--byl-gap-md);margin-top:var(--byl-gap-xl);
  padding-top:var(--byl-gap-lg);border-top:2px solid var(--byl-rule-soft);
}
.byl-signature__portrait{width:58px;height:58px;flex:none;object-fit:cover;aspect-ratio:1/1;border:2px solid var(--byl-maroon-700)}
.byl-signature__lines{display:flex;flex-direction:column;gap:2px}
.byl-signature__name{margin:0;font-weight:600}
.byl-signature__name a{color:var(--byl-maroon-900);text-decoration:none}
.byl-signature__name a:hover{text-decoration:underline}
.byl-signature__role{margin:0;font-size:.87rem;color:var(--byl-ink-soft)}

/* ============ static records (pages) ============ */
.byl-record{padding:var(--byl-gap-3xl) 0 var(--byl-gap-4xl)}
.byl-record__inner{background:var(--byl-paper);border:1px solid var(--byl-rule);border-top:4px solid var(--byl-maroon-700);padding:var(--byl-gap-xl) var(--byl-gap-xl) var(--byl-gap-2xl)}
.byl-record__title{max-width:28ch}
.byl-record__seal{display:flex;align-items:center;gap:var(--byl-gap-md);margin-bottom:var(--byl-gap-lg)}
.byl-record__portrait{width:70px;height:70px;object-fit:cover;aspect-ratio:1/1;border:2px solid var(--byl-maroon-700)}
.byl-record__role{margin:0;color:var(--byl-ink-soft);font-family:var(--byl-face-file);font-size:.85rem;letter-spacing:.04em}
.byl-record__text{max-width:var(--byl-column);font-size:1.05rem}
.byl-record__text h2{margin-top:var(--byl-gap-xl)}
.byl-record__text a{color:var(--byl-maroon-700)}
@media (max-width:420px){.byl-record__inner{padding:var(--byl-gap-lg) var(--byl-gap-md) var(--byl-gap-xl)}}

/* ============ lookup (search form) ============ */
.byl-lookup{display:flex;flex-wrap:wrap;gap:var(--byl-gap-sm);max-width:500px;margin-top:var(--byl-gap-md)}
.byl-lookup__label{flex-basis:100%;font-weight:600;margin-bottom:var(--byl-gap-xs)}
.byl-lookup__field{
  flex:1 1 200px;min-height:48px;padding:0 var(--byl-gap-md);border:1px solid var(--byl-rule);
  background:var(--byl-paper);color:var(--byl-ink);font-size:1rem;font-family:inherit;
}
.byl-lookup__submit{
  min-height:48px;padding:0 var(--byl-gap-xl);border:1px solid var(--byl-maroon-900);
  background:var(--byl-maroon-900);color:var(--byl-parchment);font-size:1rem;font-family:inherit;cursor:pointer;
}
.byl-lookup__submit:hover{background:var(--byl-maroon-700);border-color:var(--byl-maroon-700)}

/* ============ colophon (footer) ============ */
.byl-colophon{background:var(--byl-maroon-900);color:var(--byl-parchment);border-top:5px double var(--byl-ember-500);margin-top:var(--byl-gap-2xl)}
.byl-colophon__cols{list-style:none;margin:0;padding:var(--byl-gap-3xl) 0 var(--byl-gap-xl);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--byl-gap-xl)}
.byl-colophon__cols h2{
  font-family:var(--byl-face-file);font-size:.8rem;letter-spacing:.13em;text-transform:uppercase;
  color:var(--byl-ember-200);margin-bottom:var(--byl-gap-md);
}
.byl-colophon__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--byl-gap-sm)}
.byl-colophon__list a{color:var(--byl-parchment);text-decoration:none;font-size:.95rem}
.byl-colophon__list a:hover,.byl-colophon__list a:focus-visible{color:var(--byl-ember-200);text-decoration:underline}
.byl-colophon__cols p{color:var(--byl-parchment);font-size:.92rem;margin:0 0 var(--byl-gap-sm)}
.byl-colophon__cols p a{color:var(--byl-ember-200)}
.byl-colophon__cols strong{color:var(--byl-ember-200)}
.byl-colophon__foot{border-top:1px solid var(--byl-maroon-700);padding:var(--byl-gap-md) 0 var(--byl-gap-2xl);font-size:.84rem}
.byl-colophon__foot p{margin:0;color:var(--byl-parchment)}
.byl-colophon__age{
  display:inline-flex;align-items:center;justify-content:center;min-width:2.3em;padding:2px 7px;
  margin-right:var(--byl-gap-sm);border:2px solid var(--byl-ember-500);color:var(--byl-ember-200);
  font-family:var(--byl-face-file);font-weight:700;font-size:.82rem;
}
@media (max-width:900px){.byl-colophon__cols{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.byl-colophon__cols{grid-template-columns:1fr;padding-bottom:var(--byl-gap-md)}}

@media (prefers-reduced-motion:reduce){
  .byl-nav,.byl-tabs__link{transition:none}
}
