/*
Theme Name:   605 Diecast
Theme URI:    https://605diecast.com/
Author:       Site Reboots
Description:  Custom block theme for 605 Diecast, the Hot Wheels and diecast
              specialist inside Booth 202 in Sioux Falls, South Dakota.

              Three things decided this design, all of them theirs. Their
              product is overwhelmingly blue, because that is what a Hot Wheels
              blister card is. Their shelves are covered in hand-written orange
              price tags. And everything in a collector's world is numbered:
              the cars, the booth (202), the shop (605). So: blue blocks on
              white, orange stickers for real prices, and a numbered catalogue
              as the backbone.

              Behaviour lives in assets/mechanics.css; this file is the skin.
Version:      3.0.0
Requires at least: 6.5
Tested up to: 7.1
Requires PHP: 8.1
License:      GPL-2.0-or-later
License URI:  https://www.gnu.org/licenses/gpl-2.0.html
Text Domain:  diecast605
Tags:         one-column, block-patterns, full-site-editing
*/

/* ── What this must not be ────────────────────────────────────────────────
   sitereboots.com is cream, with an orange button carrying a dark label, an
   uppercase letterspaced eyebrow and a white card inside a 2px dark border.
   Those five together are the agency's own look and no client gets handed it.
   Here the ground is white, the structural colour is a bright blue used as
   whole blocks rather than as an accent, the eyebrow is a number, cards have
   a coloured header band and no border, and orange appears only on a price.
   `scripts/distinct.py` enforces this.
   ──────────────────────────────────────────────────────────────────────── */

:root{
  --ink:var(--wp--preset--color--ink);
  --ink-2:var(--wp--preset--color--ink-2);
  --muted:var(--wp--preset--color--muted);
  --paper:var(--wp--preset--color--paper);
  --tint:var(--wp--preset--color--tint);
  --blue:var(--wp--preset--color--blue);
  --blue-2:var(--wp--preset--color--blue-2);
  --price:var(--wp--preset--color--price);
  --line:var(--wp--preset--color--line);
  --display:var(--wp--preset--font-family--display);
  --body:var(--wp--preset--font-family--text);

  /* The contract mechanics.css expects. */
  --dc-focus:var(--blue);
  --dc-nav-bg:var(--paper);
  --dc-burger:var(--ink);
  --dc-header-h:74px;

  --peg:radial-gradient(circle at center, rgba(255,255,255,.14) 1.5px, transparent 1.6px);
}

h1,h2,h3,h4{font-variation-settings:"wdth" 100;color:var(--ink)}
/* Numbers are the motif, so they are set properly everywhere. */
.dc-num,.dc-sticker b,.dc-hours td,.dc-cat__n{font-variant-numeric:tabular-nums}
::selection{background:var(--blue);color:#fff}

/* ------------------------------------------------------------- bands ----- */
.dc-band{padding-block:clamp(2.75rem,6.5vw,5rem);background:var(--paper)}
.dc-band--tight{padding-block:clamp(1.6rem,3.5vw,2.4rem)}
.dc-band--grey{background:var(--tint)}
/* The blue band is a whole block of colour, not a tinted panel. It is the
   thing that makes the site look like the product. */
.dc-band--ink{background:var(--blue);color:#DCE8FB;background-image:var(--peg);background-size:20px 20px}
.dc-band--ink :is(h1,h2,h3,h4,strong){color:#fff}
.dc-band--ink a:not(.dc-btn){color:#fff;text-decoration-color:rgba(255,255,255,.5)}
.dc-band--ink .dc-lede{color:#DCE8FB}

/* The eyebrow is a number, not spaced capitals. */
.dc-eyebrow{
  display:inline-flex;align-items:baseline;gap:.55rem;
  font-family:var(--display);font-size:.95rem;font-weight:700;letter-spacing:0;
  text-transform:none;color:var(--blue);margin:0 0 .85rem;
}
.dc-eyebrow::before{
  content:"—";color:var(--blue);font-weight:700;
}
.dc-band--ink .dc-eyebrow,.dc-band--ink .dc-eyebrow::before{color:#9CC4FF}
.dc-lede{font-size:clamp(1.08rem,1.5vw,1.3rem);line-height:1.6;max-width:58ch;color:var(--ink-2)}
.dc-fine{font-size:.92rem;color:var(--muted);margin:1rem 0 0}

/* --------------------------------------------------------------- hero ---- */
.dc-hero{position:relative;isolation:isolate;overflow:hidden;background:var(--ink)}
.dc-hero__media{position:absolute;inset:0;z-index:-2}
.dc-hero__media img{width:100%;height:100%;object-fit:cover;object-position:center 42%;display:block}
/* Blue-black rather than neutral, so the scrim belongs to the same family as
   the blue blocks further down. */
.dc-hero__scrim{
  position:absolute;inset:0;z-index:-1;
  background:
    linear-gradient(92deg, rgba(10,18,34,.94) 0%, rgba(10,18,34,.74) 44%, rgba(10,18,34,.30) 100%),
    linear-gradient(180deg, rgba(10,18,34,.45) 0%, rgba(10,18,34,0) 40%);
}
.dc-hero__grid{
  position:relative;max-width:var(--wp--style--global--content-size);margin-inline:auto;
  padding-inline:clamp(1rem,4vw,2rem);padding-block:clamp(3rem,8vw,6rem);
}
.dc-hero h1{color:#fff;margin:0 0 1.1rem;max-width:17ch;line-height:1.02}
.dc-hero h1 em{display:block;font-style:normal;color:#8FBCFF}
.dc-hero__lede{color:#CFDDF2;font-size:clamp(1.05rem,1.45vw,1.25rem);line-height:1.6;max-width:44ch;margin:0 0 2rem}
.dc-hero__acts{display:flex;flex-wrap:wrap;gap:.7rem}
.dc-hero__open{
  display:inline-flex;align-items:center;gap:.55rem;margin:0 0 1.4rem;
  background:var(--blue);color:#fff;border-radius:2px;padding:.45rem .85rem;
  font-family:var(--body);font-size:.88rem;font-weight:700;
}
.dc-hero__open i{width:7px;height:7px;border-radius:50%;background:#fff;flex:0 0 auto}
.dc-hero__facts{
  display:flex;flex-wrap:wrap;gap:1.5rem 2.75rem;margin-top:clamp(2rem,4vw,3rem);
  padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.22);
}
.dc-hero__fact b{display:block;font-family:var(--display);font-weight:800;font-size:clamp(1.5rem,3vw,2.1rem);line-height:1;color:#fff;font-variant-numeric:tabular-nums}
.dc-hero__fact span{display:block;margin-top:.35rem;font-size:.92rem;color:#CFDDF2}
@media (max-width:40rem){.dc-hero__acts > *{flex:1 1 100%}}

/* ------------------------------------------------------------ buttons ---- */
.dc-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  min-height:52px;padding:.85rem 1.5rem;border-radius:2px;border:0;
  font-family:var(--body);font-weight:700;font-size:1.0625rem;line-height:1;
  text-decoration:none;cursor:pointer;transition:background-color .13s ease,color .13s ease;
}
.dc-btn--primary{background:var(--blue);color:#fff}
.dc-btn--primary:hover{background:var(--blue-2);color:#fff}
.dc-btn--outline{background:transparent;color:var(--blue);box-shadow:inset 0 0 0 2px var(--blue)}
.dc-btn--outline:hover{background:var(--blue);color:#fff}
.dc-btn--ghost{background:rgba(255,255,255,.1);color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.45)}
.dc-btn--ghost:hover{background:#fff;color:var(--ink)}
.dc-btn--dark{background:#fff;color:var(--blue)}
.dc-btn--dark:hover{background:var(--ink);color:#fff}
.dc-band--ink .dc-btn--primary{background:#fff;color:var(--blue)}
.dc-band--ink .dc-btn--primary:hover{background:var(--ink);color:#fff}

/* ------------------------------------------------------ the catalogue ---- */
/* The backbone of the site, and the equivalent of a hole-by-hole page: what
   is in the shop, numbered, photographed and priced the way a collector would
   expect to read it. */
.dc-cat{display:grid;gap:clamp(1rem,2vw,1.4rem);grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:62rem){.dc-cat{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:40rem){.dc-cat{grid-template-columns:minmax(0,1fr)}}
.dc-cat__item{
  position:relative;display:flex;flex-direction:column;
  background:var(--paper);border-radius:2px;overflow:hidden;
  box-shadow:inset 0 0 0 1px var(--line);
}
a.dc-cat__item{text-decoration:none;color:inherit;transition:box-shadow .14s ease,transform .14s ease}
a.dc-cat__item:hover{box-shadow:inset 0 0 0 2px var(--blue);transform:translateY(-2px)}
/* The header band is what makes it read as a carded item rather than a tile. */
.dc-cat__head{
  display:flex;align-items:center;gap:.6rem;
  background:var(--blue);color:#fff;padding:.5rem .85rem;
}
.dc-cat__n{
  font-family:var(--display);font-weight:800;font-size:.9rem;
  background:rgba(255,255,255,.22);border-radius:2px;padding:.1rem .4rem;
}
.dc-cat__label{font-family:var(--body);font-weight:700;font-size:.92rem}
.dc-cat__item img{width:100%;aspect-ratio:3/2;object-fit:cover;display:block}
.dc-cat__body{padding:1.05rem 1.1rem 1.25rem;display:flex;flex-direction:column;gap:.5rem;flex:1 1 auto}
.dc-cat__body h3{margin:0;font-size:clamp(1.15rem,1.8vw,1.35rem)}
.dc-cat__body p{margin:0;font-size:1rem;color:var(--muted);line-height:1.55}
.dc-cat__price{
  margin-top:auto;padding-top:.5rem;font-family:var(--display);font-weight:800;
  font-size:1.02rem;color:var(--blue);
}

/* -------------------------------------------------------- price sticker -- */
/* Their shelves really are covered in these. It is the only orange on the site
   and it only ever carries a real number. */
.dc-sticker{
  display:inline-flex;flex-direction:column;align-items:center;justify-content:center;
  min-width:5rem;padding:.55rem .85rem;border-radius:2px;
  background:var(--price);color:var(--ink);transform:rotate(-3deg);
  font-family:var(--display);line-height:1;
}
.dc-sticker b{font-size:1.7rem;font-weight:800}
.dc-sticker span{font-family:var(--body);font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin-top:.3rem}
@media (prefers-reduced-motion:reduce){.dc-sticker{transform:none}}

/* -------------------------------------------------------------- cards ---- */
.dc-grid{display:grid;gap:clamp(1rem,2vw,1.5rem)}
.dc-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.dc-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.dc-grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:62rem){.dc-grid--3,.dc-grid--4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:40rem){.dc-grid--2,.dc-grid--3,.dc-grid--4{grid-template-columns:minmax(0,1fr)}}

.dc-card{
  background:var(--paper);border-radius:2px;box-shadow:inset 0 0 0 1px var(--line);
  padding:clamp(1.2rem,2.2vw,1.6rem);display:flex;flex-direction:column;gap:.6rem;
}
.dc-card h3{margin:0;font-size:clamp(1.15rem,1.8vw,1.35rem)}
.dc-card p{font-size:1rem;color:var(--muted);margin:0}
a.dc-card{text-decoration:none;color:inherit;transition:box-shadow .14s ease}
a.dc-card:hover{box-shadow:inset 0 0 0 2px var(--blue)}
.dc-card__more{margin-top:auto;padding-top:.3rem;font-family:var(--display);font-weight:800;color:var(--blue);font-size:.98rem}
.dc-band--ink .dc-card{background:rgba(255,255,255,.1);box-shadow:inset 0 0 0 1px rgba(255,255,255,.3);color:#DCE8FB}
.dc-band--ink .dc-card p{color:#C4D8F7}
.dc-photocard{padding:0;overflow:hidden}
.dc-photocard img{width:100%;aspect-ratio:3/2;object-fit:cover;display:block}
.dc-photocard__body{padding:1.05rem 1.1rem 1.25rem;display:flex;flex-direction:column;gap:.5rem}

.dc-chips{display:flex;flex-wrap:wrap;gap:.45rem;margin:0;padding:0;list-style:none}
.dc-chip{
  display:inline-flex;align-items:center;font-family:var(--body);font-weight:600;font-size:.94rem;
  padding:.38rem .85rem;border-radius:2px;background:var(--tint);color:var(--ink-2);
}
.dc-chip--flame,.dc-chip--blue,.dc-chip--amber{background:var(--blue);color:#fff}

.dc-ticks{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.5rem}
.dc-ticks li{display:flex;align-items:flex-start;gap:.7rem;font-size:1rem;line-height:1.5;color:var(--ink-2)}
.dc-ticks li::before{content:"";flex:0 0 auto;width:7px;height:7px;margin-top:.5em;border-radius:1px;background:var(--blue)}
.dc-band--ink .dc-ticks li{color:#DCE8FB}
.dc-band--ink .dc-ticks li::before{background:#fff}

/* ------------------------------------------------------------- story ----- */
.dc-story{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(1.5rem,4vw,3.25rem);align-items:center;padding-bottom:1.75rem}
.dc-story__photo{position:relative}
.dc-story__photo img{width:100%;display:block;border-radius:2px}
.dc-story__cap{
  position:absolute;left:0;bottom:-1.1rem;background:var(--blue);color:#fff;border-radius:2px;
  padding:.5rem .85rem;font-family:var(--body);font-size:.85rem;font-weight:600;
}
.dc-story blockquote{
  margin:0 0 1.25rem;padding:0;
  font-family:var(--display);font-weight:700;
  font-size:clamp(1.3rem,2.4vw,1.75rem);line-height:1.25;color:var(--ink);
}
.dc-story blockquote::before{content:"“";color:var(--blue);font-size:1.3em;line-height:0;vertical-align:-.25em;margin-right:.1em}
.dc-story blockquote cite{display:block;margin-top:.7rem;font-family:var(--body);font-style:normal;font-size:.88rem;font-weight:600;color:var(--muted)}
@media (max-width:52rem){
  .dc-story{grid-template-columns:minmax(0,1fr);gap:2.25rem}
  .dc-story__cap{position:static;margin-top:.75rem;display:inline-block}
}

/* ------------------------------------------------------------ reviews ---- */
.dc-reviews{display:grid;gap:1rem;grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:62rem){.dc-reviews{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:40rem){.dc-reviews{grid-template-columns:minmax(0,1fr)}}
.dc-review{background:var(--paper);border-radius:2px;box-shadow:inset 0 0 0 1px var(--line);padding:1.3rem;display:flex;flex-direction:column;gap:.75rem}
.dc-band--grey .dc-review{background:var(--paper)}
.dc-review blockquote{margin:0;font-size:1rem;line-height:1.6;color:var(--ink-2)}
.dc-review__who{margin-top:auto;font-family:var(--display);font-weight:800;font-size:.92rem;color:var(--ink)}
.dc-stars{display:block;color:var(--price)}

/* --------------------------------------------------------------- hours --- */
.dc-hours{width:100%;border-collapse:collapse;border-radius:2px;overflow:hidden;background:var(--paper);box-shadow:inset 0 0 0 1px var(--line)}
.dc-hours caption{caption-side:top;text-align:left;padding:.9rem 1.15rem;background:var(--blue);color:#fff;font-family:var(--display);font-weight:800;font-size:1.05rem}
.dc-hours th,.dc-hours td{padding:.72rem 1.15rem;text-align:left;border-bottom:1px solid var(--line);font-size:1rem}
.dc-hours tr:last-child :is(th,td){border-bottom:none}
.dc-hours th{font-family:var(--body);font-weight:600;width:45%;color:var(--ink)}
.dc-hours td{text-align:right;color:var(--ink-2)}
.dc-hours tr[data-closed]{background:var(--tint)}
/* "Closed" is a tag, not orange text. The sticker orange is a FILL colour: as
   type it scores 2.79 on the tint and fails. Dark label on the orange is 5.78
   and matches the price-tag language the rest of the site uses. */
.dc-closed{
  display:inline-block;background:var(--price);color:var(--ink);
  font-family:var(--display);font-weight:800;font-size:.85rem;
  padding:.2rem .55rem;border-radius:2px;
}

/* ------------------------------------------------------------ gallery ---- */
.dc-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}
.dc-gallery figure{margin:0;border-radius:2px;overflow:hidden;background:var(--tint)}
.dc-gallery img{width:100%;height:100%;aspect-ratio:3/2;object-fit:cover;display:block;transition:transform .45s ease}
.dc-gallery figure:hover img{transform:scale(1.04)}
.dc-gallery figure:nth-child(1){grid-column:span 2;grid-row:span 2}
.dc-gallery figure:nth-child(1) img{aspect-ratio:auto;height:100%;min-height:100%}
.dc-gallery figure:nth-child(4){grid-column:span 2}
@media (max-width:52rem){
  .dc-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dc-gallery figure:nth-child(1){grid-column:span 2;grid-row:auto}
  .dc-gallery figure:nth-child(1) img{aspect-ratio:3/2}
  .dc-gallery figure:nth-child(4){grid-column:auto}
}
@media (prefers-reduced-motion:reduce){.dc-gallery img{transition:none}}

/* --------------------------------------------------------- split block --- */
.dc-split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1.5rem,4vw,3rem);align-items:center}
.dc-split__media img{width:100%;display:block;aspect-ratio:3/2;object-fit:cover;border-radius:2px}
.dc-split--flip .dc-split__media{order:2}
@media (max-width:52rem){
  .dc-split{grid-template-columns:minmax(0,1fr);gap:1.5rem}
  .dc-split--flip .dc-split__media{order:0}
}

/* ---------------------------------------------------------- CTA band ----- */
.dc-cta{position:relative;isolation:isolate;overflow:hidden;background:var(--ink)}
.dc-cta__media{position:absolute;inset:0;z-index:-2}
.dc-cta__media img{width:100%;height:100%;object-fit:cover;display:block}
.dc-cta__scrim{position:absolute;inset:0;z-index:-1;background:linear-gradient(100deg,rgba(10,18,34,.95) 34%,rgba(10,18,34,.62) 100%)}
.dc-cta__inner{position:relative;padding-block:clamp(2.75rem,6vw,4.5rem);max-width:var(--wp--style--global--content-size);margin-inline:auto;padding-inline:clamp(1rem,4vw,2rem)}
.dc-cta h2{color:#fff;margin:0 0 .8rem;max-width:22ch}
.dc-cta p{color:#CFDDF2;max-width:52ch;margin:0 0 1.75rem;font-size:clamp(1.02rem,1.4vw,1.16rem)}
.dc-cta .dc-eyebrow,.dc-cta .dc-eyebrow::before{color:#8FBCFF}
.dc-cta__acts{display:flex;flex-wrap:wrap;gap:.7rem}
@media (max-width:40rem){.dc-cta__acts > *{flex:1 1 100%}}

/* ------------------------------------------------------------- header ---- */
/* White bar, blue rule under it, and their stamp logo back in ink. */
.dc-header{background:var(--paper);border-bottom:3px solid var(--blue)}
.dc-header a{text-decoration:none}
.dc-brand{gap:.7rem}
.dc-brand img{height:46px;width:auto;flex:0 0 auto;display:block}
.dc-brand__word b{display:block;font-family:var(--display);font-weight:800;font-size:1.2rem;color:var(--ink);line-height:1}
.dc-brand__word span{display:block;font-family:var(--body);font-size:.78rem;font-weight:600;color:var(--blue);margin-top:.25rem;white-space:nowrap}
.dc-nav__inner{display:flex;align-items:center;gap:1.4rem}
.dc-nav__link{color:var(--ink-2);font-family:var(--body);font-weight:600;font-size:.97rem;line-height:1;position:relative;padding-block:.45rem}
.dc-nav__link:hover{color:var(--blue)}
.dc-nav__link[aria-current="page"]{color:var(--blue)}
.dc-nav__link[aria-current="page"]::after{content:"";position:absolute;left:0;right:0;bottom:-.15rem;height:3px;background:var(--blue)}
.dc-head__tel{display:inline-flex;align-items:center;gap:.45rem;color:var(--ink);font-family:var(--display);font-weight:800;font-size:.95rem;white-space:nowrap}
.dc-head__tel svg{color:var(--blue);flex:0 0 auto}
.dc-head__cta{
  display:inline-flex;align-items:center;min-height:44px;border-radius:2px;
  background:var(--blue);color:#fff;font-family:var(--body);font-weight:700;font-size:.95rem;
  padding:.6rem 1.15rem;line-height:1;white-space:nowrap;transition:background-color .13s ease;
}
.dc-head__cta:hover{background:var(--blue-2)}

/* ------------------------------------------------------------- footer ---- */
.dc-footer{background:var(--ink);color:#A8B3C4;font-size:1rem}
.dc-footer a{color:#DCE4F0;text-decoration:none}
.dc-footer a:hover{color:#8FBCFF}
.dc-footer h2{font-size:.95rem!important;font-family:var(--display)!important;font-weight:800!important;letter-spacing:0;text-transform:none;color:#fff!important;margin:0 0 .9rem}
.dc-footer__brand{display:flex;align-items:center;gap:.7rem;margin-bottom:1rem}
.dc-footer__brand img{height:62px;width:auto;display:block}
.dc-footer__brand b{font-family:var(--display);font-weight:800;font-size:1.2rem;color:#fff;display:block;line-height:1}
.dc-footer__brand span{font-family:var(--body);font-size:.78rem;font-weight:600;color:#8FBCFF}
.dc-footer ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}
.dc-footer__bottom{margin-top:2.25rem;padding-top:1.35rem;border-top:1px solid #2A3545;display:flex;flex-wrap:wrap;gap:.6rem 1.75rem;font-size:.9rem;color:#8795A8}

/* -------------------------------------------------------------- forms ---- */
.dc-form{background:var(--paper);border-radius:2px;box-shadow:inset 0 0 0 1px var(--line);padding:clamp(1.35rem,3vw,2rem);color:var(--ink-2)}
.dc-form h3{margin:0 0 .4rem}
.dc-form__intro{font-size:1rem;margin:0 0 1.4rem;color:var(--muted)}
.dc-field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1rem}
.dc-field label{font-family:var(--body);font-size:.95rem;font-weight:700;color:var(--ink)}
.dc-hint{display:block;font-family:var(--body);font-size:.85rem;font-weight:400;color:var(--muted);margin-top:.1rem}
.dc-field :is(input,select,textarea){font-family:var(--body);font-size:1.0625rem;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:2px;padding:.72rem .8rem;min-height:50px;width:100%}
.dc-field textarea{min-height:7.5rem;resize:vertical;line-height:1.55}
.dc-field :is(input,select,textarea):focus{outline:2px solid var(--blue);outline-offset:1px;border-color:var(--blue)}
.dc-field-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;align-items:end}
@media (max-width:40rem){.dc-field-row{grid-template-columns:minmax(0,1fr);gap:0}}
.dc-submit{width:100%;min-height:56px;margin-top:.35rem;cursor:pointer;border:0;border-radius:2px;background:var(--blue);color:#fff;font-family:var(--body);font-weight:700;font-size:1.1rem;transition:background-color .13s ease}
.dc-submit:hover{background:var(--blue-2)}
.dc-form__fine{font-size:.88rem;color:var(--muted);margin:.95rem 0 0}
.dc-trap{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.dc-note{border-radius:2px;padding:1rem 1.15rem;margin:0 0 1.4rem;font-size:1rem}
.dc-note--ok{background:#E4F3E8;color:#1D5130;box-shadow:inset 0 0 0 1px #9CCBAC}
.dc-note--err{background:#FDEAE0;color:#7A3310;box-shadow:inset 0 0 0 1px #F0B894}
.dc-note a{color:inherit}

/* ------------------------------------------------------- page furniture -- */
.dc-pagehead{background:var(--blue);color:#DCE8FB;background-image:var(--peg);background-size:20px 20px}
.dc-pagehead__inner{max-width:var(--wp--style--global--content-size);margin-inline:auto;padding-inline:clamp(1rem,4vw,2rem);padding-block:clamp(2.25rem,5vw,3.75rem)}
.dc-pagehead h1{color:#fff;margin:0;max-width:20ch}
.dc-pagehead .dc-eyebrow,.dc-pagehead .dc-eyebrow::before{color:#9CC4FF}
.dc-pagehead p{color:#DCE8FB;max-width:56ch;margin:.9rem 0 0;font-size:clamp(1.02rem,1.4vw,1.16rem)}
.dc-prose{max-width:68ch}
.dc-prose h3{margin:1.8rem 0 .55rem}
.dc-prose > :first-child{margin-top:0}
.dc-plain{padding-left:1.15rem;margin:0 0 1.05em;max-width:68ch;color:var(--ink-2)}
.dc-plain li{margin-bottom:.4rem}
.dc-plain li::marker{color:var(--blue)}

.dc-dl{margin:0;padding:0;display:flex;flex-direction:column;gap:1.2rem}
.dc-dl dt{font-family:var(--display);font-size:.92rem;font-weight:800;letter-spacing:0;text-transform:none;color:var(--blue);margin-bottom:.3rem}
.dc-dl dd{margin:0;font-family:var(--display);font-weight:800;font-size:clamp(1.1rem,2vw,1.38rem);color:var(--ink);line-height:1.35}
.dc-dl dd a{color:inherit;text-decoration:none;display:inline-flex;align-items:center;min-height:44px}
.dc-dl dd a:hover{color:var(--blue)}
.dc-dl dd small{display:block;font-family:var(--body);font-size:.93rem;font-weight:400;color:var(--muted);margin-top:.2rem;line-height:1.55}

.dc-contact-grid{display:grid;gap:clamp(1.75rem,4vw,3rem);grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);align-items:start}
@media (min-width:58.0625rem){
  .dc-contact-grid > :first-child{grid-column:2;grid-row:1}
  .dc-contact-grid > :last-child{grid-column:1;grid-row:1}
}
@media (max-width:58rem){.dc-contact-grid{grid-template-columns:minmax(0,1fr)}}
.dc-map{border:1px solid var(--line);border-radius:2px;width:100%;aspect-ratio:16/10;display:block;background:var(--tint)}

.dc-faq{border-top:2px solid var(--blue);max-width:56rem}
.dc-faq details{border-bottom:1px solid var(--line)}
.dc-faq summary{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.15rem .25rem;cursor:pointer;list-style:none;font-family:var(--display);font-weight:800;font-size:clamp(1.04rem,1.7vw,1.2rem);line-height:1.3;color:var(--ink)}
.dc-faq summary::-webkit-details-marker{display:none}
.dc-faq summary:hover{color:var(--blue)}
.dc-faq summary::after{content:"";flex:0 0 auto;width:12px;height:12px;margin-top:.4em;border-right:2px solid var(--blue);border-bottom:2px solid var(--blue);transform:rotate(45deg);transition:transform .18s ease}
.dc-faq details[open] summary::after{transform:rotate(-135deg)}
.dc-faq__a{padding:0 .25rem 1.25rem}
.dc-faq__a p{margin:0 0 .75rem;color:var(--ink-2)}
.dc-faq__a p:last-child{margin-bottom:0}
@media (prefers-reduced-motion:reduce){.dc-faq summary::after,.dc-btn,a.dc-card,a.dc-cat__item{transition:none}}

/* --------------------------------------- skins for the mechanics layer --- */
.dc-ab--call{background:var(--paper);color:var(--ink);box-shadow:inset 0 0 0 2px var(--blue);border-radius:2px;font-family:var(--body);font-weight:700}
.dc-ab--go{background:var(--blue);color:#fff;border-radius:2px;font-family:var(--body);font-weight:700}
.dc-top{background:var(--blue);color:#fff;border-radius:2px}
@media (max-width:52rem){
  .dc-head__cta,.dc-head__tel{display:none}
  .dc-brand img{height:40px}
  .dc-brand__word b{font-size:1.05rem}
  .dc-nav__link{font-family:var(--display);font-weight:800;font-size:1.4rem;color:var(--ink);border-bottom:1px solid var(--line)}
  .dc-nav__link:first-child{border-top:1px solid var(--line)}
  .dc-nav__link[aria-current="page"]{color:var(--blue)}
  .dc-nav__link[aria-current="page"]::after{display:none}
  .dc-nav__cta{display:flex;align-items:center;justify-content:center;min-height:56px;background:var(--blue);color:#fff;border-radius:2px;font-family:var(--body);font-weight:700;font-size:1.05rem}
  .dc-nav__tel{display:flex;align-items:center;justify-content:center;gap:.5rem;min-height:54px;margin-top:.7rem;border-radius:2px;box-shadow:inset 0 0 0 2px var(--blue);color:var(--ink);font-family:var(--body);font-weight:700;font-size:1.05rem}
  .dc-nav__tel svg{color:var(--blue);flex:0 0 auto}
  .dc-nav__note{margin:1.1rem 0 0;text-align:center;color:var(--muted);font-size:.9rem;line-height:1.55}
}
@media (max-width:22rem){.dc-brand__word b{font-size:.95rem}.dc-nav__link{font-size:1.2rem}}
