/* — scrollbar — */

::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: var(--wp--preset--color--dark); }
::-webkit-scrollbar-thumb { background: var(--wp--preset--color--accent); border-radius: 3px; }

/* — selection color — */

::selection {
  background: var(--wp--preset--color--accent);
  color: var(--wp--preset--color--dark);
}

/* — smooth scrolling — */

html {
  scroll-behavior: smooth;
  scroll-padding-top: 72px;
}

/* — print styles — */

@media print {
  .site-header, .mobile-bar, body::after, .wpcf7, .wp-block-search {
    display: none !important;
  }
  body {
    background: var(--wp--preset--color--light) !important;
    color: var(--wp--preset--color--dark) !important;
  }
  section { padding: 24px 0; }
  .wp-block-post-template .wp-block-post {
    border: 1px solid currentColor;
    break-inside: avoid;
    page-break-inside: avoid;
  }
  a { color: inherit; text-decoration: underline; }
  a::after { content: " (" attr(href) ")"; font-size: 0.8em; }
}

/* — mobile cta bar — */

.mobile-bar {
  display: none;
  position: fixed;
  bottom: 0; left: 0; right: 0;
  z-index: 100;
  background: var(--wp--preset--color--dark);
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  padding: 12px 16px;
}
.mobile-bar-inner {
  display: flex;
  gap: 8px;
}
.mobile-bar .btn {
  flex: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 16px;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  text-decoration: none;
  border: none;
  cursor: pointer;
}
.mobile-bar .btn-primary {
  background: var(--wp--preset--color--accent);
  color: var(--wp--preset--color--dark);
}
.mobile-bar .btn-ghost {
  background: transparent;
  color: var(--wp--preset--color--light);
  border: 1px solid rgba(255, 255, 255, 0.2);
}
@media (max-width: 768px) {
  .mobile-bar { display: block; }
  body { padding-bottom: 70px; }
}

/* — sticky header — */

.site-header {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 100;
  background: color-mix(in srgb, var(--wp--preset--color--dark) 85%, transparent);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  transition: background 0.4s, backdrop-filter 0.4s, box-shadow 0.4s;
}
.site-header.has-dark-background-color,
.site-header.has-primary-background-color,
.site-header.has-primary-dark-background-color {
  background: color-mix(in srgb, var(--wp--preset--color--dark) 85%, transparent) !important;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.site-header.scrolled {
  background: color-mix(in srgb, var(--wp--preset--color--dark) 95%, transparent) !important;
  backdrop-filter: blur(16px) saturate(1.2) !important;
  -webkit-backdrop-filter: blur(16px) saturate(1.2) !important;
  box-shadow: 0 4px 16px color-mix(in srgb, var(--wp--preset--color--dark) 40%, transparent) !important;
}

/* — header logo — */

/* Header branding: show logo OR title, not both */
.header-branding { gap: 0.75rem; align-items: center; }
.header-logo { flex-shrink: 0; }
.header-logo img { height: 40px; width: auto; }
/* When site-logo has an image, hide the text title */
.header-logo:has(img) + .header-site-title { display: none; }

/* — hero entrance — */

@keyframes fadeInUp {
  from { opacity: 0.3; transform: translateY(16px); }
  to { opacity: 1; transform: translateY(0); }
}
/* Scoped to hero-section only — prevents unintended animation on other cover blocks */
.hero-section .wp-block-cover__inner-container > * {
  animation: fadeInUp 0.6s ease both;
}
.hero-section .wp-block-cover__inner-container > *:nth-child(2) {
  animation-delay: 0.15s;
}
.hero-section .wp-block-cover__inner-container > *:nth-child(3) {
  animation-delay: 0.3s;
}
.hero-section .wp-block-cover__inner-container > *:nth-child(4) {
  animation-delay: 0.45s;
}

/* — cf7 form — */

/* CF7 Form Styling */
.wpcf7 {
  max-width: 600px;
}
.wpcf7 label {
  display: block;
  font-size: 0.85rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--wp--preset--color--muted);
  margin-bottom: 0.3rem;
}
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="url"],
.wpcf7 input[type="number"],
.wpcf7 input[type="date"],
.wpcf7 textarea,
.wpcf7 select {
  width: 100%;
  padding: 0.75rem 1rem;
  border: 1px solid color-mix(in srgb, var(--wp--preset--color--dark) 15%, transparent);
  border-radius: 6px;
  background: var(--wp--preset--color--surface);
  color: var(--wp--preset--color--dark);
  font-family: var(--wp--preset--font-family--body);
  font-size: 1rem;
  transition: border-color 0.2s ease;
  margin-bottom: 1rem;
  box-sizing: border-box;
}
.wpcf7 input:focus-visible,
.wpcf7 textarea:focus-visible,
.wpcf7 select:focus-visible {
  outline: none;
  border-color: var(--wp--preset--color--primary);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--wp--preset--color--primary) 30%, transparent);
}
.wpcf7 input::placeholder,
.wpcf7 textarea::placeholder {
  color: var(--wp--preset--color--muted);
  opacity: 0.6;
}
.wpcf7 textarea {
  min-height: 120px;
  resize: vertical;
}
.wpcf7 input[type="submit"] {
  display: inline-block;
  padding: 0.85rem 2.5rem;
  background: var(--wp--preset--color--primary);
  color: var(--wp--preset--color--light);
  border: none;
  border-radius: 6px;
  font-weight: 600;
  font-size: 1rem;
  cursor: pointer;
  transition: opacity 0.2s ease, transform 0.1s ease;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.wpcf7 input[type="submit"]:hover {
  opacity: 0.9;
}
.wpcf7 input[type="submit"]:active {
  transform: scale(0.98);
}
.wpcf7-response-output {
  border: 1px solid var(--wp--preset--color--primary) !important;
  background: var(--wp--preset--color--surface) !important;
  color: var(--wp--preset--color--dark) !important;
  padding: 1rem !important;
  border-radius: 6px;
  font-size: 0.9rem;
  margin-top: 1rem !important;
}
.wpcf7-not-valid-tip {
  color: var(--wp--preset--color--error);
  font-size: 0.8rem;
  margin-top: 0.25rem;
}

/* — maps grayscale — */

iframe[src*="google.com/maps"] {
  filter: grayscale(0.4) contrast(1.1);
}

/* — mobile nav overlay — */

/* mobile nav overlay: full-screen dark overlay when hamburger is open.
   Uses 100vh/100vw (not 100%) because the overlay sits inside
   .site-header which has position:fixed — height:100% resolves to
   the header height, not the viewport. */
.wp-block-navigation__responsive-container.is-menu-open {
    position: fixed !important; inset: 0 !important;
    width: 100vw !important; height: 100vh !important;
    box-sizing: border-box !important;
    z-index: 100000 !important;
    background: var(--wp--preset--color--dark) !important;
    padding: 0 !important; margin: 0 !important;
    overflow: hidden !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
    display: flex !important; flex-direction: column !important;
    align-items: center !important; justify-content: center !important;
    width: 100vw !important; height: 100vh !important;
    box-sizing: border-box !important;
    padding: 3rem 2rem !important; gap: 0.5rem !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
    margin: 0.5rem 0;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
    color: var(--wp--preset--color--light) !important;
    font-size: 1.3rem; text-transform: uppercase; letter-spacing: 0.08em;
}
.wp-block-navigation__responsive-container-open {
    color: var(--wp--preset--color--light) !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
    position: absolute !important; top: 1rem !important; right: 1rem !important;
    color: var(--wp--preset--color--light) !important; z-index: 100001 !important;
}

/* — faq accordion — */

/* faq accordion: styled details/summary for FAQ sections */
.wp-block-details {
    border: 1px solid color-mix(in srgb, var(--wp--preset--color--muted) 30%, transparent);
    border-radius: var(--wp--custom--border-radius--medium, 8px);
    padding: 0;
    margin-bottom: 0.75rem;
    transition: border-color var(--wp--custom--transition--fast, 0.2s ease);
    overflow: hidden;
}
.wp-block-details[open] {
    border-color: var(--wp--preset--color--primary);
}
.wp-block-details summary {
    padding: 1.1rem 1.5rem;
    font-weight: 600;
    font-size: 1.05rem;
    cursor: pointer;
    list-style: none;
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: background var(--wp--custom--transition--fast, 0.2s ease);
}
.wp-block-details summary:hover {
    background: color-mix(in srgb, var(--wp--preset--color--primary) 6%, transparent);
}
.wp-block-details summary::-webkit-details-marker,
.wp-block-details summary::marker {
    display: none;
    content: "";
}
.wp-block-details summary::after {
    content: "+";
    font-size: 1.4rem;
    font-weight: 300;
    color: var(--wp--preset--color--primary);
    transition: transform var(--wp--custom--transition--fast, 0.2s ease);
    flex-shrink: 0;
    margin-left: 1rem;
}
.wp-block-details[open] summary::after {
    content: "\2212";
    transform: rotate(0deg);
}
.wp-block-details > :not(summary) {
    padding: 0 1.5rem 1.25rem 1.5rem;
    color: var(--wp--preset--color--muted);
    font-size: 0.95rem;
    line-height: 1.7;
}

/* — image defaults — */

.wp-block-image:not(.is-resized):not(.size-medium):not(.size-thumbnail) img {
  max-height: 600px;
  object-fit: cover;
}
.wp-block-image.alignfull img,
.wp-block-image.alignwide img {
  width: 100%;
  height: auto;
}
.wp-block-cover .wp-block-image img {
  max-height: none;
}
.wp-block-image.is-style-rounded img {
  max-height: 400px;
}

/* — focus indicators — */

/* WCAG 2.4.7 — focus indicator for keyboard navigation */
*:focus-visible {
  outline: 3px solid var(--wp--preset--color--primary);
  outline-offset: 2px;
  box-shadow: 0 0 0 6px color-mix(in srgb, var(--wp--preset--color--primary) 20%, transparent);
}
::-moz-focus-inner { border: 0; }

/* — reduced motion — */

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* — logo cloud — */

.logo-cloud-row .wp-block-column {
  display: flex;
  align-items: center;
  justify-content: center;
}
.logo-cloud-img img {
  filter: grayscale(1) opacity(0.6);
  transition: filter var(--wp--custom--transition--normal, 0.3s ease);
  max-height: 48px;
  width: auto;
  object-fit: contain;
}
.logo-cloud-img:hover img {
  filter: grayscale(0) opacity(1);
}

/* — footer links — */

.site-footer a {
  color: var(--wp--preset--color--muted);
  text-decoration: none;
  transition: color var(--wp--custom--transition--fast, 0.15s ease);
}
.site-footer a:hover {
  color: var(--wp--preset--color--light);
}

/* — card hover — */

.wp-block-group .wp-block-group {
  transition: border-color 0.3s, transform 0.3s;
}
.wp-block-group .wp-block-group:hover {
  border-color: var(--wp--preset--color--accent);
  transform: translateY(-2px);
}

/* — button glow — */

.wp-block-button__link {
  transition: transform var(--wp--custom--transition--fast, 0.15s ease),
              box-shadow var(--wp--custom--transition--fast, 0.15s ease);
}
.wp-block-button__link:hover {
  transform: translateY(-2px);
  box-shadow: var(--wp--custom--shadow--medium, 0 4px 12px rgba(0,0,0,0.10));
}

/* — gallery zoom — */

.wp-block-gallery .wp-block-image {
  overflow: hidden;
  cursor: pointer;
}
.wp-block-gallery .wp-block-image img {
  transition: transform 0.4s ease;
}
.wp-block-gallery .wp-block-image:hover img {
  transform: scale(1.05);
}

/* — nav underline — */

/* WP core uses .wp-block-navigation .content.content {color:inherit} (0,3,0)
   so we must match that specificity to override the inherited primary link color */
.wp-block-navigation .wp-block-navigation-item__content.wp-block-navigation-item__content {
  position: relative;
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--wp--preset--color--light);
  opacity: 0.85;
}
.wp-block-navigation-item__content::after {
  content: '';
  position: absolute;
  bottom: -4px; left: 0; right: 0;
  height: 1px;
  background: var(--wp--preset--color--accent);
  transform: scaleX(0);
  transition: transform 0.3s ease;
}
.wp-block-navigation .wp-block-navigation-item__content:hover { color: var(--wp--preset--color--light); opacity: 1; }
.wp-block-navigation .wp-block-navigation-item__content:hover::after { transform: scaleX(1); }

/* — grain overlay — */

body::after {
  content: '';
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 9999;
  opacity: 0.03;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size: 200px;
}

/* — hours table — */

/* Hours table: clean, professional styling for wp:table blocks in hours sections */
.wp-block-table table { border-collapse: collapse; width: 100%; }
.wp-block-table td { border: none; padding: 0.75rem 0; border-bottom: 1px solid rgba(0,0,0,0.08); font-size: 0.95rem; }
.wp-block-table tr:last-child td { border-bottom: none; }
.wp-block-table td:first-child { font-weight: 600; }
.wp-block-table td:last-child { text-align: right; opacity: 0.8; }
.wp-block-table tr:nth-child(even) td { background: rgba(0,0,0,0.02); }
@media (max-width:600px) { .wp-block-table td { padding: 0.5rem 0; font-size: 0.85rem; } }

/* — menu card — */

.menu-card {
  background: var(--wp--preset--color--dark);
  border: 1px solid rgba(255, 255, 255, 0.05);
  padding: clamp(32px, 5vw, 56px);
  max-width: 700px;
  margin: 40px auto 0;
  position: relative;
}
.menu-card::before, .menu-card::after {
  content: '';
  position: absolute;
  width: 24px; height: 24px;
  border-color: var(--wp--preset--color--accent);
  border-style: solid;
}
.menu-card::before { top: -1px; left: -1px; border-width: 2px 0 0 2px; }
.menu-card::after { bottom: -1px; right: -1px; border-width: 0 2px 2px 0; }
/* The WP menu_card pattern emits one `.spec-row` group per item (a shared BEM
   token — scope under `.menu-card` so process/faq spec-rows are unaffected),
   each containing an <h3> name and a <p> with the <strong> price. Earlier rules
   targeted `.menu-item*` classes the pattern never renders, so dotted-leader
   styling never bound. */
.menu-card .spec-row {
  padding: 16px 0;
  border-bottom: 1px dotted rgba(255, 255, 255, 0.08);
}
.menu-card .spec-row:last-of-type { border-bottom: none; }
.menu-card .spec-row h3 { margin-bottom: 0.2rem; }
.menu-card .spec-row strong {
  font-family: var(--wp--preset--font-family--mono);
  color: var(--wp--preset--color--accent);
  white-space: nowrap;
}

/* — portrait hero — */

/* portrait hero (personal brand — split layout with cutout photo) */
.hero-portrait-col {
    display: flex !important;
    align-items: flex-end !important;
    justify-content: center !important;
    overflow: visible !important;
    min-height: 520px;
}
.hero-portrait {
    margin-bottom: 0 !important;
}
.hero-portrait img {
    object-fit: contain !important;
    height: auto;
    width: 100% !important;
    max-width: 480px;
    margin: 0 auto;
    display: block;
    filter: drop-shadow(0 8px 32px rgba(0, 0, 0, 0.35));
    transform: scale(1.12);
    transform-origin: bottom center;
}
/* bio section (side-by-side portrait + text) */
.o-mne-section .wp-block-columns { align-items: center; }
.o-mne-section .wp-block-column:first-child img {
    border-radius: 12px;
    object-fit: cover;
    width: 100%;
}
/* partner/company logo (small, not dominant) */
.partner-logo { max-width: 120px !important; margin-top: 1.5rem; }
.partner-logo img { max-height: 40px; width: auto; }
@media (max-width: 768px) {
    .hero-portrait-col { min-height: auto; }
    .hero-portrait img { max-width: 300px; transform: scale(1); }
}

/* — portrait bg hero — */

/* portrait background replacement — person cutout over Pexels photo */
.hero-portrait-bg .wp-block-cover__inner-container {
  max-width: var(--wp--style--global--content-size, 1100px);
  margin: 0 auto;
  display: flex;
  align-items: center;
  min-height: 80vh;
}
.hero-portrait-bg .hero-portrait img {
  filter: drop-shadow(0 8px 32px rgba(0,0,0,0.5));
  object-fit: contain !important;
  max-width: 440px;
  width: 100% !important;
  height: auto;
}
@media (max-width: 768px) {
  .hero-portrait-bg .hero-portrait img {
    max-width: 280px;
  }
}

/* — cta shimmer — */

.wp-block-button__link {
  background-size: 200% 100%;
  background-image: linear-gradient(
    110deg,
    var(--wp--preset--color--accent) 0%,
    var(--wp--preset--color--accent) 40%,
    color-mix(in srgb, var(--wp--preset--color--accent) 70%, white) 50%,
    var(--wp--preset--color--accent) 60%,
    var(--wp--preset--color--accent) 100%
  );
  transition: background-position 0.5s ease, transform 0.2s ease, box-shadow 0.2s ease;
}
.wp-block-button__link:hover {
  background-position: -100% 0;
}

/* — tab switcher — */

/* CSS-only tab switcher — works without JavaScript */
.tab-group { position: relative; }
.tab-group input[type="radio"] { position: absolute; opacity: 0; pointer-events: none; }
.tab-group .tab-labels {
  display: inline-flex; gap: 0; margin-bottom: var(--wp--preset--spacing--40);
  border: 1px solid color-mix(in srgb, var(--wp--preset--color--primary) 20%, transparent);
  border-radius: 4px; overflow: hidden;
}
.tab-group .tab-label {
  padding: 10px 24px; font-size: 0.85rem; font-weight: 600;
  letter-spacing: 0.03em; cursor: pointer;
  color: var(--wp--preset--color--muted); background: transparent;
  transition: background 0.25s, color 0.25s; min-height: 44px;
  display: inline-flex; align-items: center;
}
.tab-group .tab-label:hover {
  color: var(--wp--preset--color--light);
  background: color-mix(in srgb, var(--wp--preset--color--primary) 8%, transparent);
}
.tab-group input[type="radio"]:checked + .tab-label {
  background: var(--wp--preset--color--primary);
  color: var(--wp--preset--color--light);
}
.tab-group .tab-panel { display: none; }
.tab-group input#tab1:checked ~ .tab-panels .tab-panel:nth-child(1),
.tab-group input#tab2:checked ~ .tab-panels .tab-panel:nth-child(2),
.tab-group input#tab3:checked ~ .tab-panels .tab-panel:nth-child(3) {
  display: block;
}

/* — Phase H TP-1: mosaic gallery layout + lightbox (direction-agnostic) — */
/* PARTITION (per /ultrareview-local Finding #6): this lightbox handles MOSAIC */
/* variant ONLY (data-lb="wp-mosaic" hooks emitted by                            */
/* patterns/gallery.py::_render_mosaic_tile). Grid / asymmetric / 2-3-4col       */
/* gallery variants flow through block_helpers.gallery() and get the WP 7.0      */
/* core/image lightbox instead. The two systems fire on disjoint markup.         */
.mosaic-chunk{display:grid;gap:.75rem;margin-block:.75rem}
.mosaic-chunk--1{grid-template-columns:1fr}
.mosaic-chunk--2{grid-template-columns:repeat(2,1fr)}
.mosaic-chunk--3{grid-template-columns:2fr 1fr;grid-template-rows:repeat(2,1fr);grid-template-areas:"a b" "a c"}
.mosaic-chunk--3 .mosaic-tile-wrap:nth-child(1){grid-area:a}
.mosaic-chunk--3 .mosaic-tile-wrap:nth-child(2){grid-area:b}
.mosaic-chunk--3 .mosaic-tile-wrap:nth-child(3){grid-area:c}
.mosaic-chunk--4{grid-template-columns:1fr 1fr;grid-template-rows:auto auto}
.mosaic-tile-wrap{position:relative;overflow:hidden;cursor:zoom-in}
.mosaic-tile-wrap img,.mosaic-tile-wrap .wp-block-image img{display:block;width:100%;height:100%;object-fit:cover;aspect-ratio:4/3}
.mosaic-chunk--3 .mosaic-tile-wrap:nth-child(1) img{aspect-ratio:1/1}
@media (max-width:640px){
  .mosaic-chunk,.mosaic-chunk--3,.mosaic-chunk--4{grid-template-columns:1fr;grid-template-areas:none}
  .mosaic-chunk--3 .mosaic-tile-wrap:nth-child(n){grid-area:auto}
}
/* — lightbox — */
.wp-mosaic-lb{max-width:min(92vw,1400px);max-height:92vh;border:0;padding:0;background:#000;color:#fff}
.wp-mosaic-lb::backdrop{background:rgba(0,0,0,.88)}
.wp-mosaic-lb-btn{position:absolute;background:transparent;border:0;color:#fff;cursor:pointer;padding:.5rem;z-index:2}
.wp-mosaic-lb-close{top:.5rem;right:.5rem}
.wp-mosaic-lb-prev{left:.5rem;top:50%;transform:translateY(-50%)}
.wp-mosaic-lb-next{right:.5rem;top:50%;transform:translateY(-50%)}
.wp-mosaic-lb-btn:focus-visible{outline:2px solid #fff;outline-offset:2px}
.wp-mosaic-lb-stage{margin:0;display:flex;flex-direction:column;height:100%}
.wp-mosaic-lb-img{max-width:100%;max-height:80vh;object-fit:contain;margin:auto}
.wp-mosaic-lb-cap{padding:.75rem 1rem;font-size:.9rem;opacity:.85;text-align:center}
.wp-mosaic-lb{opacity:0;transition:opacity .25s ease}
.wp-mosaic-lb--open{opacity:1}
@media (prefers-reduced-motion:reduce){.wp-mosaic-lb{transition:none}}


/* — Phase δ (WP2): dark-mode tokens + toggle button (direction-agnostic) — */
:root {
  --aityy-bg: #ffffff;
  --aityy-fg: #111213;
  --aityy-surface: #f8f9fa;
  --aityy-border: #e5e7eb;
}
@media (prefers-color-scheme: dark) {
  html:not(.light) {
    --aityy-bg: #0f0f11;
    --aityy-fg: #ededee;
    --aityy-surface: #1a1a1d;
    --aityy-border: #2a2a2e;
  }
}
html.dark {
  --aityy-bg: #0f0f11;
  --aityy-fg: #ededee;
  --aityy-surface: #1a1a1d;
  --aityy-border: #2a2a2e;
}
html.dark body { background: var(--aityy-bg); color: var(--aityy-fg); }
html.dark .site-header,
html.dark .wp-block-group { background-color: var(--aityy-surface); border-color: var(--aityy-border); }
[data-theme-toggle] {
  background: transparent; border: 1px solid currentColor; border-radius: 4px;
  padding: 4px 8px; cursor: pointer; font-size: 0.875rem; line-height: 1;
  display: inline-flex; align-items: center; justify-content: center;
}
[data-theme-toggle]::before {
  content: ""; display: inline-block; width: 16px; height: 16px; background: currentColor;
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z'/></svg>") no-repeat center;
          mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z'/></svg>") no-repeat center;
}
html.dark [data-theme-toggle]::before {
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'><circle cx='12' cy='12' r='5'/><line x1='12' y1='1' x2='12' y2='3'/><line x1='12' y1='21' x2='12' y2='23'/><line x1='4.22' y1='4.22' x2='5.64' y2='5.64'/><line x1='18.36' y1='18.36' x2='19.78' y2='19.78'/><line x1='1' y1='12' x2='3' y2='12'/><line x1='21' y1='12' x2='23' y2='12'/><line x1='4.22' y1='19.78' x2='5.64' y2='18.36'/><line x1='18.36' y1='5.64' x2='19.78' y2='4.22'/></svg>") no-repeat center;
          mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'><circle cx='12' cy='12' r='5'/><line x1='12' y1='1' x2='12' y2='3'/><line x1='12' y1='21' x2='12' y2='23'/><line x1='4.22' y1='4.22' x2='5.64' y2='5.64'/><line x1='18.36' y1='18.36' x2='19.78' y2='19.78'/><line x1='1' y1='12' x2='3' y2='12'/><line x1='21' y1='12' x2='23' y2='12'/><line x1='4.22' y1='19.78' x2='5.64' y2='18.36'/><line x1='18.36' y1='5.64' x2='19.78' y2='4.22'/></svg>") no-repeat center;
}


/* — Phase post-sweep C1 (#1): skip-to-content a11y link — */
.aityy-skip-link {
  position: absolute;
  left: -10000px;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
.aityy-skip-link:focus {
  position: static;
  width: auto;
  height: auto;
  padding: 8px 16px;
  background: var(--aityy-bg, #fff);
  color: var(--aityy-fg, #111);
  border: 2px solid currentColor;
  z-index: 99999;
}
