/* Canonical components. Change a token or one class here to update every page
   and Gutenberg preview. Layout selectors remain in the lower ptb-layout layer. */
@layer ptb-layout, ptb-components;
@layer ptb-components {
  :root {
    --ptb-orange: #ff6600;
    --ptb-orange-hover: #e95200;
    --ptb-pink: #ec0868;
    --ptb-pink-hover: #ca0054;
    --ptb-green: #00bd73;
    --ptb-green-strong: #00804c;
    --ptb-lime: #b9e900;
    --ptb-yellow: #ffd400;
    --ptb-sky: #00bde3;
    --ptb-acid-green-surface: #eef7a8;
    --ptb-acid-green-border: #8aad14;
    --ptb-ink: #16324b;
    --ptb-muted: #405c70;
    --ptb-paper: #fff;
    --ptb-border: #c6d3db;
    --ptb-radius: 24px;
    --ptb-radius-small: 12px;
    --ptb-radius-pill: 999px;
    --ptb-card-border: var(--ptb-green);
    --ptb-card-shadow: 0 6px 0 rgb(0 189 115 / 16%);
    --ptb-button-shadow: 0 4px 0 #ca4600;
    --ptb-focus: 3px solid var(--ptb-ink);
    --ptb-hero-background: var(--ptb-hero-default-gradient);
    /* Compatibility names for structural/decorative theme rules. */
    --orange: var(--ptb-orange);
    --orange-bright-hover: var(--ptb-orange-hover);
    --orange-ink: #fff;
    --orange-dark: #a83800;
    --orange-hover: #802b00;
    --orange-soft: var(--ptb-yellow);
    --pink: var(--ptb-pink);
    --pink-hover: var(--ptb-pink-hover);
    --yellow: var(--ptb-yellow);
    --mint: var(--ptb-green);
    --blue: var(--ptb-sky);
    --cream: var(--ptb-paper);
    --navy: var(--ptb-ink);
    --radius: var(--ptb-radius);
  }

  .ptb-hero { background: var(--ptb-hero-background); }
  .ptb-hero :is(.lead, .news-single-meta, .news-single-byline) { color: var(--ptb-ink); }

  /* Identical actions in navigation, page modules, forms, maps and articles. */
  :is(.ptb-button, .wp-block-button__link) {
    --ptb-button-fill: var(--ptb-orange);
    --ptb-button-hover: var(--ptb-orange-hover);
    --ptb-button-mobile-hover: #c94700;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 48px;
    max-width: 100%;
    padding: 12px 22px;
    border: 2px solid var(--ptb-button-fill);
    border-radius: var(--ptb-radius-pill);
    background: var(--ptb-button-fill);
    color: #fff;
    font: 750 1rem/1.35 var(--body-font);
    text-decoration: none;
    text-align: center;
    white-space: normal;
    box-shadow: var(--ptb-button-shadow);
    cursor: pointer;
    transition: background .16s, border-color .16s, box-shadow .16s;
  }
  .ptb-button--secondary {
    --ptb-button-fill: var(--ptb-pink);
    --ptb-button-hover: var(--ptb-pink-hover);
    --ptb-button-mobile-hover: var(--ptb-pink-hover);
    --ptb-button-shadow: 0 4px 0 #ac0045;
  }
  :is(.ptb-button, .wp-block-button__link):hover {
    border-color: var(--ptb-button-hover);
    background: var(--ptb-button-hover);
    color: #fff;
    box-shadow: var(--ptb-button-shadow);
    transform: none;
  }
  :is(.ptb-button, .wp-block-button__link):active { box-shadow: none; }
  :is(.ptb-button, .wp-block-button__link):disabled, :is(.ptb-button, .wp-block-button__link)[aria-disabled="true"] { cursor: not-allowed; opacity: .65; }

  /* All textual labels use the same orange capsule and white lettering. */
  .ptb-tag {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    max-width: 100%;
    padding: 7px 14px;
    border: 1px solid var(--ptb-orange);
    border-radius: var(--ptb-radius-pill);
    background: var(--ptb-orange);
    color: #fff;
    font: 750 .75rem/1.3 var(--body-font);
    letter-spacing: .035em;
    text-decoration: none;
    text-transform: none;
    vertical-align: middle;
  }
  a.ptb-tag:hover { background: var(--ptb-orange-hover); border-color: var(--ptb-orange-hover); color: #fff; }

  /* Surface families: the modifier changes the palette, never the geometry. */
  .ptb-card {
    border: 2px solid var(--ptb-card-border);
    border-radius: var(--ptb-radius);
    background: var(--ptb-paper);
    color: var(--ptb-ink);
    box-shadow: var(--ptb-card-shadow);
  }
  .ptb-card:hover { box-shadow: var(--ptb-card-shadow); }
  .ptb-panel {
    --ptb-panel-fill: var(--ptb-paper);
    --ptb-panel-border: var(--ptb-green);
    --ptb-panel-ink: var(--ptb-ink);
    padding: var(--ptb-panel-padding, clamp(20px, 3vw, 32px));
    border: 2px solid var(--ptb-panel-border);
    border-radius: var(--ptb-radius);
    background: var(--ptb-panel-fill);
    color: var(--ptb-panel-ink);
    box-shadow: none;
  }
  .ptb-panel--media { --ptb-panel-padding: 0; }
  .ptb-panel--plain { --ptb-panel-padding: 0; border: 0; border-radius: 0; }
  .ptb-panel--highlight {
    --ptb-panel-fill: var(--ptb-yellow);
    --ptb-panel-border: var(--ptb-yellow);
  }
  .ptb-panel--action {
    --ptb-panel-fill: var(--ptb-pink);
    --ptb-panel-border: var(--ptb-pink);
    --ptb-panel-ink: #fff;
  }
  .ptb-panel--action :is(p, h2, h3, blockquote, strong, small) { color: inherit; }
  .ptb-panel--action .ptb-text-link { color: #fff; }
  .ptb-panel--highlight :is(p, h2, h3, small) { color: var(--ptb-ink); }

  .ptb-text-link { color: var(--orange-dark); font-weight: 750; text-underline-offset: 4px; }
  a.ptb-text-link:hover { color: var(--orange-hover); }
  .ptb-icon {
    border-radius: var(--ptb-radius-small);
    background: var(--ptb-icon-fill, var(--ptb-lime));
    color: var(--ptb-icon-ink, var(--ptb-ink));
    box-shadow: none;
  }
  /* Three reusable icon palettes, also used by the repeating solution cards. */
  .ptb-icon--pink, .solution-cards > .card:nth-child(3n + 1) {
    --ptb-icon-fill: linear-gradient(190deg, #ed1697, #ff245f);
    --ptb-icon-ink: #fff;
  }
  .ptb-icon--orange, .solution-cards > .card:nth-child(3n + 2) {
    --ptb-icon-fill: var(--ptb-orange);
    --ptb-icon-ink: #fff;
  }
  .ptb-icon--green, .solution-cards > .card:nth-child(3n) {
    --ptb-icon-fill: linear-gradient(310deg, #79c900, #00ae60);
    --ptb-icon-ink: #fff;
  }
  .ptb-media { border-color: var(--ptb-green); border-radius: var(--ptb-radius); background: var(--ptb-paper); }
  .hero-visual.ptb-media,
  .page-hero-visual.ptb-media { border-width: 2px; }
  /* The frame clips the photo at its inner radius; a second radius leaves white corners. */
  .ptb-media > img.ptb-media,
  .ptb-media > .ptb-editor-image > img.ptb-media { border-radius: 0; background: transparent; }
  .page-qui-sommes-nous .page-hero-visual img {
    object-fit: contain;
    object-position: center;
    padding: clamp(18px, 3vw, 32px);
  }

  .ptb-field {
    min-height: 46px;
    padding: 10px 12px;
    border: 2px solid var(--ptb-muted);
    border-radius: var(--ptb-radius-small);
    background: var(--ptb-paper);
    color: var(--ptb-ink);
    font: 400 1rem/1.4 var(--body-font);
    box-shadow: none;
  }
  .ptb-field:hover { border-color: var(--ptb-green); }
  .ptb-field:focus { border-color: var(--ptb-ink); }
  .ptb-field[aria-invalid="true"] { border-color: #b60038; }

  .ptb-chip {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding: 8px 16px;
    border: 2px solid var(--ptb-green);
    border-radius: var(--ptb-radius-pill);
    background: var(--ptb-paper);
    color: var(--ptb-ink);
    font: 750 .875rem/1.4 var(--body-font);
    text-decoration: none;
    box-shadow: none;
  }
  .ptb-chip:hover { background: var(--ptb-lime); border-color: var(--ptb-lime); color: var(--ptb-ink); }
  .ptb-chip:is(.is-active, [aria-current="page"]) { background: var(--ptb-pink); border-color: var(--ptb-pink); color: #fff; }
  .ptb-icon-button {
    min-width: 44px;
    min-height: 44px;
    border: 2px solid var(--ptb-orange);
    border-radius: var(--ptb-radius-pill);
    background: var(--ptb-paper);
    color: var(--ptb-ink);
    font: 750 .875rem/1 var(--body-font);
    text-decoration: none;
    box-shadow: none;
  }
  .ptb-icon-button:hover { border-color: var(--ptb-orange); background: var(--ptb-yellow); color: var(--ptb-ink); transform: none; }
  .ptb-carousel-control:hover { border-color: var(--ptb-orange); background: var(--ptb-orange); color: #fff; }
  .ptb-icon-button:is(.current, .is-active, [aria-current="true"], [aria-current="page"]) { background: var(--ptb-orange); color: #fff; }
  .ptb-icon-button:is(:disabled, [aria-disabled="true"]) { border-color: var(--ptb-border); background: #f2f4f5; color: #667885; cursor: not-allowed; }
  .ptb-icon-button--plain, .ptb-icon-button--plain:hover { border: 0; background: transparent; }
  [hidden] { display: none !important; }
  @media (min-width: 768px) {
    .ptb-icon-button--compact { min-width: 30px; min-height: 30px; }
    .menu-group > .menu-parent { padding-right: 36px; }
  }
  /* The timing dots remain compact indicators, rather than navigation buttons. */
  .hero-slider-dot { background: var(--ptb-paper); border: 2px solid var(--ptb-orange); }
  .hero-slider-dot.is-active { background: var(--ptb-orange); }
  .hero-slider-dot.is-active::after { background: #ff9ec4; }
  .ptb-pagination { border: 0; background: var(--ptb-paper); box-shadow: 0 6px 20px rgb(22 50 75 / 12%); }
  :is(:is(.ptb-button, .wp-block-button__link), .ptb-chip, .ptb-icon-button, .ptb-field, a.ptb-tag):focus-visible { outline: var(--ptb-focus); outline-offset: 4px; box-shadow: 0 0 0 6px #fff; }

  /* The shared shell and section backgrounds use saturated accents or white. */
  .site-header { background: var(--ptb-paper); border-bottom-color: var(--ptb-green); }
  .site-header::before { background: var(--ptb-orange); }
  /* The registration action keeps its pink identity in the shared navigation
     and wherever it is offered on the home page. */
  .site-header .menu > .ptb-button[href$="/pre-inscription/"],
  .home .ptb-button[href$="/pre-inscription/"] {
    /* White labels at 16px reach 4.62:1 on this close palette variant. */
    --ptb-button-fill: #e50864;
    --ptb-button-hover: var(--ptb-pink-hover);
    --ptb-button-mobile-hover: var(--ptb-pink-hover);
    --ptb-button-shadow: 0 4px 0 #ac0045;
  }
  /* The primary hero action stays orange on every slide and interaction. */
  .home .hero-actions > .ptb-button:not(.ptb-button--secondary) {
    --ptb-button-fill: var(--ptb-orange);
    --ptb-button-hover: var(--ptb-orange-hover);
    --ptb-button-mobile-hover: #c94700;
    --ptb-button-shadow: 0 4px 0 #ca4600;
  }
  .site-header .menu a:not(:is(.ptb-button, .wp-block-button__link)):is(:hover, .is-active, [aria-current="page"]) { color: var(--ptb-orange); }
  .site-header .menu > :is(a, .menu-group).is-active:not(:is(.ptb-button, .wp-block-button__link)),
  .site-header .menu > a[aria-current="page"]:not(:is(.ptb-button, .wp-block-button__link)),
  .site-header .menu .submenu a:not(:is(.ptb-button, .wp-block-button__link)):is(.is-active, [aria-current="page"]) {
    border-color: transparent;
    background: transparent;
    color: var(--ptb-orange);
  }
  .site-header .menu > .menu-group.is-active > .menu-parent,
  .site-header .menu .submenu a:not(:is(.ptb-button, .wp-block-button__link)):is(.is-active, [aria-current="page"]) small { color: inherit; }
  .site-header .menu .submenu a:not(:is(.ptb-button, .wp-block-button__link)):not([aria-current="page"]) { color: var(--ptb-ink); }
  .site-header .menu .submenu a:not(:is(.ptb-button, .wp-block-button__link)):hover {
    background: transparent;
    color: var(--ptb-ink);
    text-decoration: none;
  }
  .site-header .menu .submenu a:not(:is(.ptb-button, .wp-block-button__link)):hover > span {
    text-decoration: underline;
    text-decoration-color: var(--ptb-orange);
    text-decoration-thickness: 2px;
    text-underline-offset: 5px;
  }
  .site-header .menu .submenu a:not(:is(.ptb-button, .wp-block-button__link))[aria-current="page"] { color: var(--ptb-orange); }
  .site-header .menu .submenu a:not(:is(.ptb-button, .wp-block-button__link))[aria-current="page"] small { color: inherit; }
  .menu-toggle { border-color: var(--ptb-orange); background: var(--ptb-orange); color: #fff; }
  .opening-announcement, .home-news, .news-archive-section, .news-related, .nursery-location-strip, .footer-venues { background: var(--ptb-paper); }
  .opening-announcement-logo { box-shadow: 0 0 0 4px var(--ptb-orange); }
  .locations {
    background: radial-gradient(ellipse at 15% 10%, rgb(0 189 115 / 28%), transparent 60%),
      linear-gradient(120deg, #006f4a, var(--ptb-green-strong) 55%, #007b63);
    color: #fff;
  }
  .locations .section-head, .locations .section-head :is(h2, .lead) { color: inherit; }
  .footer-venues { border-top: 8px solid var(--ptb-lime); }
  .footer-card-arrow { background: var(--ptb-lime); color: var(--ptb-ink); }
  .site-footer { border-top: 8px solid var(--ptb-orange); }
  .footer-social-links {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    width: 100%;
    max-width: 200px;
  }
  .site-footer .footer-social {
    width: 100%;
    justify-content: flex-start;
    border: 2px solid var(--ptb-lime);
    background: transparent;
    color: #fff;
  }
  .site-footer .footer-social:hover { border-color: var(--ptb-lime); background: var(--ptb-lime); color: var(--ptb-ink); }
  .page-toc { border-left: 0; }
  .page-toc a { border-radius: var(--ptb-radius-small); background: var(--ptb-paper); }
  .page-toc a.is-current { border-left-color: var(--ptb-pink); background: var(--ptb-pink); color: #fff; }
  .news-archive-mark { background: var(--ptb-pink); border-radius: var(--ptb-radius); box-shadow: 7px 7px 0 var(--ptb-orange); }
  .news-archive-mark > span { color: #fff; }
  .news-single-category { text-transform: none; }
  .nursery-profile { --nursery-accent: var(--ptb-green); --nursery-soft: var(--ptb-yellow); }
  .contact-location { --contact-accent: var(--ptb-green); --contact-soft: var(--ptb-yellow); }
  .nursery-detail-facts > div { background: var(--ptb-paper); border-color: var(--ptb-green); }

  /* Contact and opening announcement reuse the nursery facts' acid green surface. */
  :is(.page-contact .contact-intro, .opening-announcement-card, .nurseries-intro) {
    --ptb-panel-fill: var(--ptb-acid-green-surface);
    --ptb-panel-border: var(--ptb-acid-green-border);
    width: 100%;
    max-width: none;
    margin-inline: auto;
    border-bottom: 4px solid var(--ptb-green-strong);
    background: var(--ptb-panel-fill);
    color: var(--ptb-ink);
    box-shadow: 0 14px 34px rgb(22 50 75 / 8%);
  }
  :is(.page-contact .contact-intro, .nurseries-intro) p { color: #304e64; }

  /* Editorial introductions reuse the acid green nursery card language. */
  .editorial-lead {
    --ptb-panel-fill: var(--ptb-acid-green-surface);
    --ptb-panel-border: var(--ptb-acid-green-border);
    display: grid;
    gap: 12px;
    margin-bottom: 60px;
    padding: clamp(28px, 4vw, 42px);
    border: 1px solid var(--ptb-panel-border);
    border-bottom: 4px solid var(--ptb-green-strong);
    border-radius: var(--ptb-radius);
    background: var(--ptb-panel-fill);
    color: var(--ptb-ink);
    box-shadow: 0 14px 34px rgb(22 50 75 / 8%);
  }
  .editorial-lead .editorial-kicker {
    justify-self: start;
    margin: 0 0 4px;
  }
  .prose .editorial-lead-title {
    max-width: 25ch;
    margin: 0;
    padding: 0;
    color: var(--ptb-ink);
    font-family: "Gochi Hand", "Comic Sans MS", cursive;
    font-size: clamp(1.9rem, 3.3vw, 2.65rem);
    font-weight: 400;
    line-height: 1.12;
  }
  .editorial-lead .editorial-lead-copy {
    max-width: 68ch;
    margin: 0;
    color: #304e64;
    font-size: 1.05rem;
    font-weight: 550;
    line-height: 1.65;
  }

  /* Club Vacances uses the same acid green surface as nursery fact cards. */
  .club-vacances-feature {
    --ptb-panel-fill: var(--ptb-acid-green-surface);
    --ptb-panel-border: var(--ptb-acid-green-border);
    border-color: var(--ptb-panel-border);
    background: var(--ptb-panel-fill);
    color: var(--ptb-ink);
    box-shadow: 0 14px 34px rgb(22 50 75 / 8%);
  }
  .club-vacances-feature > div { background: var(--ptb-panel-fill); }
  .club-vacances-feature :is(p, li, small) { color: #304e64; }

  /* Shared nursery introduction and PSU information panels. */
  :is(.nursery-detail-intro, .psu-simulator) {
    border: 1px solid #e7cf43;
    background: linear-gradient(135deg, #fff7b8 0%, #fff9dd 58%, #fff2e9 100%);
    color: var(--ptb-ink);
    box-shadow: 0 14px 34px rgb(22 50 75 / 8%);
  }
  .nursery-detail-intro .nursery-motto {
    max-width: 22ch;
    color: var(--ptb-ink);
    text-shadow: none;
  }
  .nursery-detail-intro .nursery-intro-description {
    max-width: 72ch;
    color: #304e64;
    font-weight: 500;
  }
  .nursery-detail-intro .nursery-detail-facts > div {
    border: 1px solid var(--ptb-acid-green-border);
    border-bottom: 4px solid var(--ptb-green-strong);
    background: var(--ptb-acid-green-surface);
    box-shadow: none;
  }
  .nursery-detail-intro .nursery-detail-facts dt { color: #a90049; }
  .nursery-detail-intro .nursery-detail-facts dd,
  .nursery-detail-intro .nursery-detail-facts a { color: var(--ptb-ink); }
  .nursery-detail-intro .nursery-detail-facts a {
    text-decoration-color: var(--ptb-orange);
    text-decoration-thickness: 2px;
    text-underline-offset: 3px;
  }

  /* Green is reserved for the external tariff calculator action. */
  .psu-simulator .psu-simulator-copy,
  .psu-simulator .psu-simulator-note { color: #304e64; }
  .psu-simulator .psu-simulator-button.ptb-button {
    --ptb-button-fill: var(--ptb-green-strong);
    --ptb-button-hover: #00683e;
    --ptb-button-mobile-hover: #00683e;
    --ptb-button-shadow: 0 4px 0 #005432;
  }

  /* Orange consistently identifies pre-registration calls to action. */
  .aside-cta {
    --ptb-panel-fill: #c94700;
    --ptb-panel-border: #ff8a38;
    --ptb-panel-ink: #fff;
    min-height: 146px;
    gap: 9px;
    padding: 24px;
    border: 2px solid var(--ptb-panel-border);
    border-radius: var(--ptb-radius);
    background: var(--ptb-panel-fill);
    color: var(--ptb-panel-ink);
    box-shadow: 0 5px 0 #8e3000, 0 14px 28px rgb(22 50 75 / 12%);
    transition: background .16s, border-color .16s, box-shadow .16s, transform .16s;
  }
  .aside-cta span {
    color: #fff;
    font-size: 1rem;
    font-weight: 650;
    line-height: 1.4;
  }
  .aside-cta strong {
    display: block;
    width: 12ch;
    max-width: 100%;
    margin-top: 4px;
    color: #fff;
    font-size: 1.2rem;
    font-weight: 850;
    line-height: 1.25;
    letter-spacing: 0;
    white-space: normal;
  }
  a.aside-cta:hover {
    --ptb-panel-fill: #a93600;
    --ptb-panel-border: #ff9b59;
    color: #fff;
    box-shadow: 0 5px 0 #722600, 0 16px 30px rgb(22 50 75 / 16%);
    transform: translateY(-2px);
  }
  a.aside-cta:active {
    box-shadow: 0 2px 0 #722600;
    transform: translateY(2px);
  }

  /* Article links reuse the vivid home orange and pink brand accents. */
  .news-entry-link-establishment {
    --entry-color: var(--ptb-orange);
    --entry-end: #ff8500;
    --entry-rim: #ca4600;
  }
  .news-entry-link-team {
    --entry-color: var(--ptb-pink);
    --entry-end: #ff1979;
    --entry-rim: #ac0045;
  }

  /* Establishment profile actions share one accessible aqua treatment. */
  .nursery-profile-actions .ptb-button {
    --ptb-button-fill: #007a9b;
    --ptb-button-hover: #00637f;
    --ptb-button-mobile-hover: #00637f;
    --ptb-button-shadow: 0 4px 0 #7cecf2;
    color: #fff;
  }

  /* The establishment shortcut in article sidebars uses the shared aqua action. */
  .news-single-cta .ptb-button {
    --ptb-button-fill: #007a9b;
    --ptb-button-hover: #00637f;
    --ptb-button-mobile-hover: #00637f;
    --ptb-button-shadow: 0 4px 0 #7cecf2;
    color: #fff;
  }

  /* Acid blue quotes use soft white text on a darker accessible field. */
  .classic-quote {
    --ptb-panel-fill: linear-gradient(135deg, #006f8f, #005477);
    --ptb-panel-border: #7cecf2;
    --ptb-panel-ink: #f4f7f8;
    background: var(--ptb-panel-fill);
    border-color: var(--ptb-panel-border);
    color: var(--ptb-panel-ink);
    box-shadow: 0 6px 0 #7cecf2;
  }
  .classic-quote cite {
    color: #dce9ed;
    font-weight: 850;
  }
  .adaptation-steps li > div, .timeline li { background: var(--ptb-paper); border: 2px solid var(--ptb-green); border-radius: var(--ptb-radius); }
  .contact-form-section { background: var(--ptb-paper); }
  .home-registration-panel {
    border: 3px solid #ff4a9b;
    background: linear-gradient(135deg, #a9004d 0%, #c80062 100%);
    box-shadow: 0 7px 0 #ff4a9b, 0 24px 64px rgb(126 0 54 / 22%);
  }
  .home-registration-steps li {
    border: 2px solid #ff4a9b;
    border-radius: var(--ptb-radius-small);
    background: #fff7fb;
    color: var(--ptb-ink);
  }
  .home-registration-steps li :is(strong, p) { color: var(--ptb-ink); }
  .home-registration-steps li > span { background: var(--ptb-lime); color: var(--ptb-ink); }
  .home-registration-actions .ptb-text-link {
    padding: 8px 10px;
    border-radius: var(--ptb-radius-pill);
    color: #fff;
    transition: background .16s, color .16s;
  }
  .home-registration-actions a.ptb-text-link:hover {
    background: rgb(255 255 255 / 14%);
    color: #fff;
    text-decoration: underline;
    text-decoration-thickness: 2px;
  }
  .form-notice.success { border: 2px solid var(--ptb-green); background: #fff; color: #005c38; }
  .form-notice.error, .news-load-error { border: 2px solid #b60038; background: #fff; color: #83002b; }

  @media (max-width: 767px) {
    /* Touch browsers can retain :hover after a tap. Keep every retained state
       readable without changing the desktop palette. */
    :is(.ptb-button, .wp-block-button__link):hover {
      border-color: var(--ptb-button-mobile-hover);
      background: var(--ptb-button-mobile-hover);
      color: #fff;
    }
    a.ptb-tag:hover,
    .news-card-hitarea:hover .ptb-tag {
      border-color: #c94700;
      background: #c94700;
      color: #fff;
    }
    .ptb-chip:is(.is-active, [aria-current="page"]):hover {
      border-color: var(--ptb-pink-hover);
      background: var(--ptb-pink-hover);
      color: #fff;
    }
    .ptb-carousel-control:hover,
    .ptb-icon-button:is(.current, .is-active, [aria-current="true"], [aria-current="page"]):hover {
      border-color: #c94700;
      background: #c94700;
      color: #fff;
    }
    .hero-slider-dot:hover { border-color: #c94700; }
    .hero-slider-dot.is-active:hover { background: #c94700; }
    .site-header .menu { background: #fff; border-color: var(--ptb-green); box-shadow: 0 5px 0 var(--ptb-lime), 0 18px 36px rgb(22 50 75 / 16%); }
    .site-header .menu > a:not(:is(.ptb-button, .wp-block-button__link)), .site-header .menu-group { background: #fff; border-color: var(--ptb-green); color: var(--ptb-ink); }
    .site-header .menu > a:not(:is(.ptb-button, .wp-block-button__link)):hover, .site-header .menu > .menu-group:hover { background: transparent; border-color: transparent; color: var(--orange-dark); }
    .site-header .menu > .menu-group:hover > .menu-parent { color: var(--orange-dark); }
    .site-header .menu > a:not(:is(.ptb-button, .wp-block-button__link)):is(.is-active, [aria-current="page"]) { background: transparent; border-color: transparent; color: var(--ptb-orange); }
    .site-header .menu > .menu-group.is-active { background: transparent; border-color: transparent; color: var(--ptb-orange); }
    .site-header .menu > .menu-group.is-active > .menu-parent { color: inherit; }
    .site-header .menu > a:not(:is(.ptb-button, .wp-block-button__link))::after {
      background-color: var(--ptb-sky);
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%23fff' stroke-width='2.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 10h12m-5-5 5 5-5 5'/%3E%3C/svg%3E");
    }
    .site-header .menu > a:not(:is(.ptb-button, .wp-block-button__link)):is(:hover, .is-active, [aria-current="page"])::after { background-color: #c94700; }
    .site-header .menu > a:is(.ptb-button, .wp-block-button__link)::after { background-color: #fff; }
    .site-header .submenu-toggle { background: radial-gradient(circle, var(--ptb-lime) 12px, transparent 12.5px); }
    .site-header .menu .submenu { border-color: var(--ptb-green); }
    .site-header .menu-toggle[aria-expanded="true"] { background: var(--ptb-orange); border-color: var(--ptb-orange); color: #fff; box-shadow: none; }
    .site-header .menu-toggle[aria-expanded="true"]:hover { background: #c94700; border-color: #c94700; color: #fff; }
  }
}
/* Core WordPress button styles are unlayered. Let the shared component rules
   determine their paint and sizing too, including inserted core/button blocks. */
body :is(.ptb-button, .wp-block-button__link) {
  background: revert-layer;
  color: revert-layer;
  border: revert-layer;
  border-radius: revert-layer;
  box-shadow: revert-layer;
  font: revert-layer;
  padding: revert-layer;
  min-height: revert-layer;
  text-decoration: revert-layer;
}
