/* ========================================================================
   GENERIC QUARK2 HEADER ACTIONS + FOOTER
   Scope: only styles the custom additions in navigation.html.twig and
   footer.html.twig. All class names and variables are brand/domain agnostic.
   ======================================================================== */

/* ===== CUSTOM ADDITION START: shared design tokens ===== */
:root {
    --site-accent: #f2ad17;
    --site-accent-light: #ffd66b;
    --site-accent-dark: #d78f00;
    --site-accent-ink: #1b0b0e;

    --site-nav-secondary-bg: rgba(20, 11, 14, 0.06);
    --site-nav-secondary-border: rgba(35, 21, 25, 0.18);
    --site-nav-secondary-text: #2c1b20;

    --site-footer-bg: #13090c;
    --site-footer-border: rgba(255, 255, 255, 0.10);
    --site-footer-text: #cfc2c5;
    --site-footer-muted: #998a8e;
    --site-footer-strong: #ffffff;
}

html[data-theme="dark"] {
    --site-nav-secondary-bg: rgba(255, 255, 255, 0.07);
    --site-nav-secondary-border: rgba(255, 255, 255, 0.18);
    --site-nav-secondary-text: #f7f1f3;

    --site-footer-bg: #0d0709;
    --site-footer-border: rgba(255, 255, 255, 0.11);
    --site-footer-text: #d8cdd0;
    --site-footer-muted: #a8999d;
    --site-footer-strong: #ffffff;
}
/* ===== CUSTOM ADDITION END ===== */


/* ========================================================================
   HEADER - ONLY THE TWO APPENDED NAVIGATION ACTIONS
   ======================================================================== */

/* ===== CUSTOM ADDITION START: navigation action buttons ===== */
.navigation > .site-nav-action {
    list-style: none;
    display: flex;
    align-items: center;
    margin: 0;
    padding: 0;
}

.navigation > .site-nav-action--secondary {
    margin-left: 12px;
}

.navigation > .site-nav-action--primary {
    margin-left: 8px;
}

.navigation .site-nav-button {
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 9px 17px;
    border: 1px solid transparent;
    border-radius: 999px;
    white-space: nowrap;
    font-size: 0.82rem;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.01em;
    text-decoration: none !important;
    transition:
        transform 0.18s ease,
        box-shadow 0.18s ease,
        background-color 0.18s ease,
        border-color 0.18s ease,
        color 0.18s ease;
}

.navigation .site-nav-button::before,
.navigation .site-nav-button::after {
    display: none !important;
    content: none !important;
}

.navigation .site-nav-button--secondary {
    color: var(--site-nav-secondary-text) !important;
    background: var(--site-nav-secondary-bg) !important;
    border-color: var(--site-nav-secondary-border) !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

.navigation .site-nav-button--secondary:hover,
.navigation .site-nav-button--secondary:focus-visible {
    color: var(--site-nav-secondary-text) !important;
    background: rgba(242, 173, 23, 0.09) !important;
    border-color: rgba(242, 173, 23, 0.55) !important;
    transform: translateY(-1px);
}

.navigation .site-nav-button--primary {
    color: var(--site-accent-ink) !important;
    background: linear-gradient(135deg, var(--site-accent-light), var(--site-accent)) !important;
    border-color: rgba(215, 143, 0, 0.55) !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.55),
        0 8px 22px rgba(242, 169, 0, 0.25);
}

.navigation .site-nav-button--primary:hover,
.navigation .site-nav-button--primary:focus-visible {
    color: var(--site-accent-ink) !important;
    background: linear-gradient(135deg, #ffe18a, #f5b51f) !important;
    transform: translateY(-2px);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.65),
        0 11px 28px rgba(242, 169, 0, 0.34);
}

.navigation .site-nav-button:focus-visible {
    outline: 3px solid rgba(242, 173, 23, 0.34);
    outline-offset: 3px;
}

@media (max-width: 960px) {
    .navigation > .site-nav-action--secondary,
    .navigation > .site-nav-action--primary {
        width: 100%;
        margin-left: 0;
        margin-top: 8px;
    }

    .navigation > .site-nav-action--primary {
        margin-top: 6px;
    }

    .navigation .site-nav-button {
        width: 100%;
        min-height: 44px;
        padding: 11px 16px;
    }
}
/* ===== CUSTOM ADDITION END ===== */


/* ========================================================================
   FOOTER
   ======================================================================== */

/* ===== CUSTOM ADDITION START: footer shell ===== */
#footer {
    position: relative;
    overflow: hidden;
    margin-top: 48px;
    padding: 52px 0 26px;
    color: var(--site-footer-text);
    background:
        radial-gradient(circle at 10% -20%, rgba(242, 173, 23, 0.12), transparent 32%),
        radial-gradient(circle at 92% 110%, rgba(201, 21, 44, 0.10), transparent 28%),
        var(--site-footer-bg);
    border-top: 1px solid var(--site-footer-border);
}

#footer > .container {
    position: relative;
    z-index: 1;
}

#footer .site-footer__main {
    display: grid;
    grid-template-columns: minmax(280px, 1.1fr) minmax(320px, 0.9fr);
    align-items: start;
    gap: 44px;
    padding-bottom: 34px;
    margin-bottom: 22px;
    border-bottom: 1px solid var(--site-footer-border);
}

#footer .site-footer__brand {
    display: flex;
    align-items: flex-start;
    gap: 15px;
    max-width: 560px;
}

#footer .site-footer__brand-mark {
    flex: 0 0 52px;
    display: grid;
    place-items: center;
    width: 52px;
    height: 52px;
    color: var(--site-accent-ink);
    background: linear-gradient(145deg, #ffe397, var(--site-accent));
    border-radius: 15px;
    font-size: 0.92rem;
    font-weight: 900;
    letter-spacing: -0.03em;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.62),
        0 8px 22px rgba(242, 169, 0, 0.20);
}

#footer .site-footer__brand-copy {
    min-width: 0;
    padding-top: 2px;
}

#footer .site-footer__brand-name {
    display: block;
    margin: 0 0 7px;
    color: var(--site-footer-strong);
    font-size: 1.08rem;
    font-weight: 900;
    line-height: 1.2;
    letter-spacing: 0.08em;
}

#footer .site-footer__brand-copy p {
    margin: 0;
    color: var(--site-footer-muted);
    font-size: 0.88rem;
    line-height: 1.7;
}

#footer .site-footer__nav {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-content: flex-start;
    gap: 10px 22px;
    padding-top: 5px;
}

#footer .site-footer__nav a {
    position: relative;
    color: var(--site-footer-text) !important;
    font-size: 0.84rem;
    font-weight: 750;
    line-height: 1.4;
    text-decoration: none !important;
    transition: color 0.18s ease, transform 0.18s ease;
}

#footer .site-footer__nav a::after {
    content: "";
    position: absolute;
    left: 0;
    right: 100%;
    bottom: -4px;
    height: 1px;
    background: var(--site-accent);
    transition: right 0.18s ease;
}

#footer .site-footer__nav a:hover,
#footer .site-footer__nav a:focus-visible {
    color: var(--site-accent-light) !important;
    transform: translateY(-1px);
}

#footer .site-footer__nav a:hover::after,
#footer .site-footer__nav a:focus-visible::after {
    right: 0;
}

#footer > .container > p:not(.site-footer__notice) {
    margin: 0;
    color: #857579;
    font-size: 0.76rem;
    line-height: 1.6;
}

#footer > .container > p:not(.site-footer__notice) a {
    color: #bcaeb2 !important;
    font-weight: 700;
    text-decoration: none;
}

#footer > .container > p:not(.site-footer__notice) a:hover {
    color: var(--site-accent-light) !important;
}

#footer .site-footer__notice {
    margin: 7px 0 0;
    color: #857579;
    font-size: 0.76rem;
    line-height: 1.65;
}

#footer .site-footer__notice strong {
    color: #e8c15d;
    font-weight: 850;
}

@media (max-width: 820px) {
    #footer {
        margin-top: 38px;
        padding: 42px 0 24px;
    }

    #footer .site-footer__main {
        grid-template-columns: 1fr;
        gap: 28px;
        padding-bottom: 28px;
    }

    #footer .site-footer__nav {
        justify-content: flex-start;
        gap: 12px 20px;
    }
}

@media (max-width: 540px) {
    #footer {
        padding-top: 36px;
    }

    #footer .site-footer__brand {
        gap: 12px;
    }

    #footer .site-footer__brand-mark {
        flex-basis: 46px;
        width: 46px;
        height: 46px;
        border-radius: 13px;
        font-size: 0.82rem;
    }

    #footer .site-footer__brand-name {
        font-size: 0.98rem;
    }

    #footer .site-footer__brand-copy p {
        font-size: 0.82rem;
    }

    #footer .site-footer__nav {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px 18px;
    }
}
/* ===== CUSTOM ADDITION END ===== */
/* =========================================================
   PAGE CONTENT STYLES — Editorial Utility / Field Guide system
   Header, navigation and footer are intentionally untouched.
   ========================================================= */
/* XX4 page-body stylesheet. Class names are intentionally generic for reuse. */
.content-page {
  --content-accent: #bf2038;
  --content-accent-strong: #861426;
  --content-gold: #e3a51d;
  --content-ink: #241c1e;
  --content-muted: #6e6366;
  --content-line: rgba(96, 68, 74, .18);
  --content-surface: #fffdf8;
  --content-soft: #f7f1e8;
  width: min(1180px, calc(100% - 32px));
  margin: 0 auto;
  padding: 34px 0 76px;
  color: var(--content-ink);
  font-size: 16px;
  line-height: 1.72;
}
.content-page *, .content-page *::before, .content-page *::after { box-sizing: border-box; }
.content-page h1, .content-page h2, .content-page h3 { color: var(--content-ink); line-height: 1.12; text-wrap: balance; }
.content-page h1 { font-size: clamp(2.35rem, 6vw, 4.8rem); letter-spacing: -.045em; margin: 0 0 20px; }
.content-page h2 { font-size: clamp(1.7rem, 3.4vw, 2.45rem); letter-spacing: -.025em; margin: 0 0 16px; }
.content-page h3 { font-size: 1.15rem; margin: 0 0 9px; }
.content-page p { margin: 0 0 16px; }
.content-page a { text-underline-offset: 3px; }
.content-hero {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--content-line);
  border-radius: 30px;
  padding: clamp(34px, 7vw, 76px);
  background: linear-gradient(135deg, var(--content-surface), #fff8ed 58%, #efe3d4);
  box-shadow: 0 22px 55px rgba(64, 34, 40, .10);
}
.content-hero::after {
  content: "";
  position: absolute;
  width: 360px;
  height: 360px;
  border-radius: 50%;
  right: -160px;
  bottom: -210px;
  border: 48px solid rgba(227, 165, 29, .10);
}
.content-hero--split { display: grid; grid-template-columns: minmax(0, 1fr) 280px; align-items: center; gap: clamp(28px, 7vw, 82px); }
.hero-copy, .hero-visual { position: relative; z-index: 1; }
.hero-lead, .article-lead { max-width: 760px; color: var(--content-muted); font-size: 1.08rem; }
.hero-kicker, .section-kicker { margin: 0 0 14px !important; color: var(--content-accent); letter-spacing: .14em; text-transform: uppercase; font-weight: 850; font-size: .73rem; }
.hero-actions, .card-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 24px; }
.hero-visual { display: grid; place-items: center; }
.brand-image {
  display: block;
  width: 240px;
  height: 240px;
  object-fit: cover;
  border-radius: 54px;
  border: 5px solid rgba(255,255,255,.9);
  box-shadow: 0 22px 50px rgba(60, 27, 33, .24);
}
.action-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 46px;
  padding: 11px 19px;
  border-radius: 999px;
  background: linear-gradient(135deg, #ffd76a, var(--content-gold));
  color: #241607 !important;
  font-weight: 800;
  text-decoration: none !important;
  box-shadow: 0 10px 24px rgba(190, 133, 10, .20);
  transition: transform .18s ease, box-shadow .18s ease;
}
.action-button:hover { transform: translateY(-2px); box-shadow: 0 14px 28px rgba(190, 133, 10, .28); }
.text-link { color: var(--content-accent) !important; font-weight: 800; text-decoration: none !important; }
.text-link:hover { text-decoration: underline !important; }
.content-section { margin-top: 54px; padding: 0 clamp(2px, 1vw, 10px); }
.content-section > p:not(.section-kicker), .content-section > ul, .content-section > ol { max-width: 860px; }
.directory-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: 22px; }
.directory-card {
  display: grid;
  grid-template-columns: 150px minmax(0,1fr);
  gap: 20px;
  min-height: 186px;
  padding: 18px;
  border: 1px solid var(--content-line);
  border-radius: 22px;
  background: var(--content-surface);
  box-shadow: 0 10px 28px rgba(62, 34, 39, .06);
}
.directory-card-copy { align-self: center; }
.directory-card-copy > p { color: var(--content-muted); font-size: .94rem; }
.card-image {
  display: block;
  width: 150px;
  height: 150px;
  object-fit: cover;
  border-radius: 24px;
}
.directory-card .action-button, .compact-card .action-button { min-height: 38px; padding: 8px 14px; font-size: .82rem; }
.compact-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; margin-top: 22px; }
.compact-card { display: grid; grid-template-columns: 150px minmax(0,1fr); gap: 18px; align-items: center; border: 1px solid var(--content-line); background: var(--content-surface); border-radius: 20px; padding: 16px; }
.compact-card p { color: var(--content-muted); font-size: .92rem; }
.guide-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; margin-top: 28px; }
.guide-card { border-top: 4px solid var(--content-accent); background: var(--content-surface); border-radius: 18px; padding: 24px; box-shadow: 0 10px 28px rgba(62,34,39,.07); }
.guide-number { color: var(--content-gold); font-weight: 900; letter-spacing: .1em; font-size: .78rem; }
.guide-card p { color: var(--content-muted); }
.check-list, .step-list { padding-left: 1.35rem; }
.check-list li, .step-list li { margin: 10px 0; padding-left: 4px; }
.step-list { counter-reset: steps; list-style: none; padding-left: 0; display: grid; gap: 12px; }
.step-list li { position: relative; padding: 16px 18px 16px 58px; margin: 0; background: var(--content-soft); border: 1px solid var(--content-line); border-radius: 16px; }
.step-list li::before { counter-increment: steps; content: counter(steps); position: absolute; left: 14px; top: 14px; display: grid; place-items: center; width: 31px; height: 31px; border-radius: 9px; color: #fff; background: var(--content-accent); font-weight: 900; }
.notice-panel { padding: 24px !important; border: 1px solid rgba(191,32,56,.25); border-left: 5px solid var(--content-accent); border-radius: 18px; background: rgba(191,32,56,.055); }
.article-shell { width: min(100%, 900px); margin: 0 auto; }
.article-header { text-align: center; padding: 24px 0 8px; }
.article-header h1 { font-size: clamp(2.25rem, 5vw, 4rem); }
.article-header .article-lead { margin-left: auto; margin-right: auto; }
.article-header .action-button { margin-top: 10px; }
.article-image-wrap { width: 100%; margin: 22px auto 8px; text-align: center; }
.article-cover {
  display: block;
  object-fit: contain;
  width: calc(100% - 2rem);
  max-width: 520px;
  height: auto;
  margin: 24px auto 0;
  border-radius: 12px;
  box-shadow: 0 12px 30px rgba(55, 30, 35, .16);
}
.article-shell .content-section { max-width: 760px; margin-left: auto; margin-right: auto; }
@media (prefers-color-scheme: dark) {
  .content-page {
    --content-ink: #f5ecee;
    --content-muted: #c8bfc1;
    --content-line: rgba(255,255,255,.13);
    --content-surface: #21191b;
    --content-soft: #2a2022;
  }
  .content-hero { background: linear-gradient(135deg, #21191b, #2b2020 58%, #32281f); box-shadow: 0 22px 55px rgba(0,0,0,.26); }
  .notice-panel { background: rgba(191,32,56,.12); }
}
html[data-theme="dark"] .content-page, body.dark .content-page {
  --content-ink: #f5ecee;
  --content-muted: #c8bfc1;
  --content-line: rgba(255,255,255,.13);
  --content-surface: #21191b;
  --content-soft: #2a2022;
}
html[data-theme="dark"] .content-hero, body.dark .content-hero { background: linear-gradient(135deg, #21191b, #2b2020 58%, #32281f); }
@media (max-width: 900px) {
  .content-hero--split { grid-template-columns: 1fr; text-align: center; }
  .hero-lead { margin-left: auto; margin-right: auto; }
  .hero-actions { justify-content: center; }
  .directory-grid, .compact-grid { grid-template-columns: 1fr; }
  .guide-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 620px) {
  .content-page { width: min(100% - 20px, 1180px); padding-top: 20px; }
  .content-hero { border-radius: 22px; padding: 32px 18px; }
  .brand-image { width: 200px; height: 200px; border-radius: 46px; }
  .directory-card, .compact-card { grid-template-columns: 96px minmax(0,1fr); gap: 14px; min-height: 132px; padding: 13px; }
  .card-image { width: 96px; height: 96px; border-radius: 18px; }
  .directory-card-copy > p, .compact-card p { display: none; }
  .card-actions { margin-top: 10px; }
  .guide-grid { grid-template-columns: 1fr; }
  .article-cover { width: calc(100% - 1rem); max-width: 520px; }
}

/* =========================================================
   Layout correction: hero proportion + responsive image sizes
   Append-only override so the existing page markup stays intact.
   ========================================================= */

/* The previous hero allowed the headline to grow too large inside
   a relatively narrow text column. Keep the two-column composition,
   but give the copy more room and cap the headline at a usable size. */
.content-hero {
  padding: clamp(32px, 4vw, 54px);
}

.content-hero--split {
  grid-template-columns: minmax(0, 1.6fr) 240px;
  gap: clamp(30px, 4vw, 56px);
  align-items: center;
}

.content-hero--split .hero-copy {
  min-width: 0;
}

.content-hero--split .hero-copy h1 {
  max-width: 760px;
  margin-bottom: 18px;
  font-size: clamp(2.55rem, 4vw, 3.75rem);
  line-height: 1.04;
  letter-spacing: -.045em;
  text-wrap: wrap;
  word-break: normal;
  overflow-wrap: normal;
}

.content-hero--split .hero-lead {
  max-width: 680px;
  font-size: 1.04rem;
  line-height: 1.65;
}

.content-hero--split .hero-visual {
  justify-self: end;
  align-self: center;
}

/* Keep the template's intended image dimensions. */
.content-hero--split .brand-image {
  width: 240px;
  height: 240px;
  max-width: 240px;
  flex: 0 0 240px;
}

@media (max-width: 980px) {
  .content-hero--split {
    grid-template-columns: minmax(0, 1fr) 240px;
    gap: 30px;
  }

  .content-hero--split .hero-copy h1 {
    font-size: clamp(2.3rem, 5vw, 3.2rem);
  }
}

@media (max-width: 760px) {
  .content-hero--split {
    grid-template-columns: 1fr;
    gap: 28px;
    text-align: left;
  }

  .content-hero--split .hero-copy h1 {
    max-width: 620px;
    font-size: clamp(2.25rem, 9vw, 3.05rem);
    line-height: 1.06;
  }

  .content-hero--split .hero-lead {
    margin-left: 0;
    margin-right: 0;
  }

  .content-hero--split .hero-actions {
    justify-content: flex-start;
  }

  .content-hero--split .hero-visual {
    justify-self: start;
  }
}

@media (max-width: 620px) {
  .content-page {
    width: min(calc(100% - 24px), 1180px);
  }

  .content-hero {
    padding: 28px 20px;
    border-radius: 20px;
  }

  /* Do not shrink template images on mobile. Change the card layout
     instead, so image display size remains consistent. */
  .brand-image,
  .content-hero--split .brand-image {
    width: 240px;
    height: 240px;
    max-width: min(240px, 100%);
  }

  .directory-card,
  .compact-card {
    grid-template-columns: 1fr;
    gap: 14px;
    min-height: 0;
    padding: 16px;
  }

  .card-image {
    width: 150px;
    height: 150px;
    border-radius: 20px;
  }

  .directory-card-copy > p,
  .compact-card p {
    display: block;
  }

  .card-actions {
    margin-top: 12px;
  }
}
