.hhp-site,
.hudhud-layout {
    color: var(--hh-ink);
    background: var(--hh-paper);
    font-family: var(--hh-copy);
}

.hhp-site #page, .hudhud-layout .hh { background: var(--hh-paper); }
.hhp-site #page :is(h1,h2,h3,h4,h5,h6,a.button,button,input,select,textarea) {
    font-family: var(--hh-copy);
}
.hhp-site :is(a,button,input,select,summary):focus-visible,
.hudhud-layout :is(a,button,input,select,summary):focus-visible { outline: 2px solid var(--hh-accent); outline-offset: 3px; }
.hhp-whatsapp-float {
    position: fixed;
    right: max(15px, env(safe-area-inset-right));
    bottom: max(15px, env(safe-area-inset-bottom));
    z-index: 1000;
    display: block;
    width: 50px;
    height: 50px;
    border-radius: 12px;
}

.hhp-whatsapp-float img {
    display: block;
    width: 100%;
    height: 100%;
}

.hhp-whatsapp-tooltip {
    position: absolute;
    right: 100%;
    top: 50%;
    transform: translateY(-50%);
    margin-right: 10px;
    padding: 0 16px;
    border-radius: 10px;
    background: #25d366;
    color: #073b1b;
    font-size: 15px;
    line-height: 1.6;
    white-space: nowrap;
    visibility: hidden;
}

@media (hover: hover) {
    .hhp-whatsapp-float:hover .hhp-whatsapp-tooltip { visibility: visible; }
}

.hhp-whatsapp-float:focus-visible .hhp-whatsapp-tooltip { visibility: visible; }

.hhp-topbar { background: var(--hh-deep); }
.hhp-site-header { background: var(--hh-paper); }
.hhp-site-header .hhp-nav-wrap { min-height: 66px; }
.hhp-site-header nav a[aria-current=page] { text-decoration: underline; text-underline-offset: .35em; }
.hhp-site-header nav .hhp-nav-quote { border-radius: 100px; }
.hhp-mobile-nav summary { list-style: none; }
.hhp-mobile-nav summary::-webkit-details-marker { display: none; }
.hhp-mobile-nav summary span { margin-inline-start: .35rem; }
.hhp-site .hhp-site-footer, .hh .hhp-site-footer {
    background: var(--hh-tint);
    color: var(--hh-ink);
    border-top: 1px solid var(--hh-edge);
}
.hhp-site-footer-inner { padding: clamp(1.5rem,4vw,3rem) 0; }
.hhp-site-footer-inner strong { margin-bottom: .2rem; }
.hhp-site-footer-inner img {
    height: auto;
    margin-left: -41px;
    width: 300px;
    max-width: 100%;
    display: block;
}
.hhp-site-footer-inner a:hover { text-decoration: underline; text-underline-offset: .18em; }

.hudhud-layout .hh-wrap { width: min(1220px, calc(100% - 48px)); }
.hudhud-layout .hh-hero { padding: clamp(1.35rem,4vw,3.65rem) 0; gap: clamp(1.4rem,4vw,3.75rem); }
.hudhud-layout .hh .hh-hero h2 {
    font-family: var(--hh-hero-font);
    font-size: clamp(2rem,4vw,2.75rem);
    max-width: none;
    line-height: 1.05;
    letter-spacing: -.03em;
}
.hudhud-layout .hh-hero h2 em { display: block; color: var(--hh-accent); font-style: normal; }
.hh-hero .hh-eyebrow, .hhp-reading-label {
    color: var(--hh-deep);
    letter-spacing: .085em;
    font-size: .75rem;
    font-weight: 750;
    text-transform: uppercase;
}
.hh-hero p { margin-block: .95rem 1.2rem; }
.hh-hero-photos { height: clamp(330px,35vw,470px); gap: .55rem; }
.hh-hero-photos img { border-radius: .7rem; }
.hh .hh-button { border-radius: 100px; }
.hh-jump { background: var(--hh-soft); }
.hh-jump a { padding: .75rem clamp(.55rem,1.8vw,1.1rem); }
.hh-section { padding-block: clamp(1.8rem,4vw,3.6rem); }
.hh-section-head { gap: .8rem; margin-bottom: 1rem; }
.hh-section-head p { margin-top: .45rem; }
.hh h2 { font-size: clamp(1.65rem,3.3vw,2.25rem); }
.hh-card, .hh-form-frame { border-radius: .85rem; }
.hh-card { display: flex; flex-direction: column; }
.hh-card-copy { display: flex; flex-direction: column; flex: 1; }
.hh-card-copy .hh-add { margin-top: auto; }
.hh-photo { aspect-ratio: 1.72; }
.hh-explore { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; padding-block: clamp(1.5rem,4vw,3rem); }
.hh-explore .hh-feature {
    display: block;
    height: 100%;
    border: 1px solid var(--hh-edge);
    border-radius: .85rem;
    background: var(--hh-white);
    padding: clamp(1rem,3vw,1.8rem);
}
.hh-explore .hh-feature p { margin: .55rem 0 .7rem; }
.hh-explore .hh-eyebrow { margin-bottom: .4rem; }
.hh-quote { background: var(--hh-tint); }
.hh-quote-grid { gap: clamp(1rem,4vw,3.25rem); }
.hh-form-frame { background: var(--hh-paper); }
.hh .hhp-site-footer-inner p { margin-top: .65rem; }

.hhp-editorial #content > .ast-container,
.hhp-product-page #content > .ast-container,
.hhp-utility #content > .ast-container {
    width: min(1220px, calc(100% - 48px));
    padding-inline: 0;
}
.hhp-reading { padding: .95rem 0 1.6rem; }
.hhp-reading-crumbs { font-size: .82rem; margin-bottom: .75rem; }
.hhp-reading-hero {
    background: var(--hh-soft);
    border-radius: 1.1rem;
    padding: clamp(1.15rem,3.6vw,3rem);
    gap: clamp(1rem,3.2vw,2.25rem);
}
.hhp-reading-hero h1,
.hhp-product-page .product_title,
.hhp-not-found h1 {
    font-weight: 700;
    letter-spacing: -.025em;
    line-height: 1.08;
    text-wrap: balance;
}
.hhp-reading-hero h1 { font-size: clamp(2rem,4.6vw,4.1rem); }
.hhp-reading-summary { margin-top: .75rem; }
.hhp-reading-hero-photo { aspect-ratio: 1.55; border-radius: .7rem; }
.hhp-reading-section { margin: clamp(1.25rem,3.3vw,2.75rem) 0; }
.hhp-reading-section h2, .hhp-quote-panel h2 {
    font-size: clamp(1.45rem,2.65vw,2.25rem);
    font-weight: 700;
}
.hhp-about-sections {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 1rem;
}
.hhp-about-sections section {
    padding: clamp(1rem,3vw,1.6rem);
    background: var(--hh-white);
    border: 1px solid var(--hh-edge);
    border-radius: .85rem;
}
.hhp-about-sections h2 { margin: 0 0 .65rem; }
.hhp-about-sections p { margin: 0; }

.hhp-reading-prose { font-size: 1rem; }
.hhp-reading-prose :is(p,ul,ol) { margin-bottom: 1rem; }
.hhp-reading-with-nav {
    display: grid;
    grid-template-columns: 13rem minmax(0,1fr);
    align-items: start;
    gap: clamp(1.1rem,4vw,3rem);
}
.hhp-section-index {
    padding: .9rem 1rem;
    border-left: 2px solid var(--hh-input-border);
    background: var(--hh-soft);
}
.hhp-section-index ul { list-style: none; margin: .45rem 0 0; padding: 0; }
.hhp-section-index a { display: block; padding: .3rem 0; font-size: .9rem; line-height: 1.35; text-decoration: underline; text-underline-offset: .18em; }
.hhp-reading-prose h2[id], #uniform-details { scroll-margin-top: 1rem; }
.hhp-reading-grid { grid-template-columns: repeat(auto-fill,minmax(min(100%,245px),1fr)); }
.hhp-reading-card { padding: 0; overflow: hidden; }
.hhp-reading-card > a { display: block; height: 100%; }
.hhp-reading-card > a:focus-visible { outline-offset: -3px; }
.hhp-reading-card img { display: block; border-radius: 0; }
.hhp-reading-card-copy { position: relative; padding: .85rem 2.1rem .95rem .95rem; }
.hhp-reading-card h3 { margin: 0 0 .35rem; }
.hhp-reading-card p { font-size: .9rem; }
.hhp-card-arrow { position: absolute; top: .75rem; right: .75rem; color: var(--hh-accent); }
.hhp-contact-options { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .75rem; }
.hhp-contact-options a {
    display: grid;
    gap: .25rem;
    background: var(--hh-white);
    border: 1px solid var(--hh-edge);
    border-radius: .75rem;
    padding: .85rem 1rem;
    overflow-wrap: anywhere;
}
.hhp-contact-options a span { font-size: .9rem; }
.hhp-contact-options a:hover strong { text-decoration: underline; }
.hhp-project-gallery ul { grid-template-columns: repeat(4,minmax(0,1fr)); }
.hhp-project-gallery li a:focus-visible { outline-offset: -3px; }
.hhp-project-gallery img { display: block; }
.hhp-quote-panel { border-radius: .9rem; background: var(--hh-deep); color: var(--hh-white); }
.hhp-quote-panel h2 { color: var(--hh-white); }
.hhp-action { border: 0; border-radius: 100px; }
.hhp-quote-panel .hhp-action { background: var(--hh-white); color: var(--hh-deep); }
.hhp-quote-panel .hhp-action:hover { background: var(--hh-tint); color: var(--hh-deep); }

.hhp-product-page #primary,
.hhp-utility #primary {
    padding: clamp(.9rem,2.5vw,1.6rem) 0;
    margin: 0;
    border: 0;
}
.hhp-product-page #primary .ast-woocommerce-container { padding: 0; }
.hhp-product-page.woocommerce div.product { display: flow-root; }
.hhp-product-page.woocommerce div.product > :is(.summary,.woocommerce-product-gallery) { margin-bottom: 1.2rem; }
.hhp-product-page.woocommerce div.product > .summary {
    border: 1px solid var(--hh-edge);
    background: var(--hh-white);
    border-radius: .9rem;
    padding: clamp(1rem,3vw,2rem);
}
.hhp-product-page .woocommerce-breadcrumb { margin: 0 0 .85rem; }
.hhp-product-page .product_title { font-size: clamp(1.9rem,4vw,3.45rem); }
.hhp-product-reference { font-size: .85rem; color: var(--hh-muted); margin: .55rem 0; }
.hhp-product-page .hhp-quote-actions { padding: .75rem; margin: .6rem 0; }
.hhp-product-page .hhp-quote-actions a.button { border-radius: 100px; text-transform: none; letter-spacing: 0; }
.hhp-product-jump { font-size: .9rem; margin: .7rem 0 0; }
.hhp-product-copy { background: var(--hh-soft); }
.hhp-product-copy h3 { margin-top: 1.15rem; }
.hhp-product-copy :is(p,ul) { margin-bottom: .75rem; }

.hhp-utility #primary .entry-header { margin-bottom: .8rem; }
.hhp-utility #primary .entry-title { font-weight: 700; font-size: clamp(1.9rem,4.5vw,3.5rem); }
.hhp-utility #primary .ast-article-single { padding: clamp(1rem,3vw,2rem); border-radius: .9rem; }
.hhp-utility .woocommerce form.login { border-color: var(--hh-edge); border-radius: .85rem; padding: clamp(.75rem,2vw,1.25rem); }
.hhp-not-found {
    width: min(710px, 100%);
    margin: clamp(1.5rem,5vw,4rem) auto;
    padding: clamp(1.25rem,5vw,3.5rem);
    background: var(--hh-soft);
    border: 1px solid var(--hh-edge);
    border-radius: 1rem;
}
.hhp-not-found h1 { font-size: clamp(2rem,5vw,4rem); }
.hhp-not-found form { display: flex; flex-wrap: wrap; gap: .6rem; margin: .85rem 0; }
.hhp-not-found input { flex: 1 1 10rem; border-radius: .5rem; }
.hhp-not-found nav { display: flex; flex-wrap: wrap; gap: .75rem; }
.hhp-not-found nav a { color: var(--hh-accent); text-decoration: underline; }

@media (max-width: 780px) {
    .hhp-about-sections { grid-template-columns: 1fr; }
    .hhp-reading-with-nav { grid-template-columns: 1fr; gap: 1rem; }
    .hhp-contact-options { grid-template-columns: 1fr; }
    .hhp-project-gallery ul { grid-template-columns: repeat(2,minmax(0,1fr)); gap: .6rem; }
    .hhp-editorial #content > .ast-container,
    .hhp-product-page #content > .ast-container,
    .hhp-utility #content > .ast-container { width: calc(100% - 32px); }
    .hh-hero-photos { height: clamp(220px,52vw,345px); }
    .hh-explore { grid-template-columns: 1fr; }
}
@media (max-width: 540px) {
    .hudhud-layout .hh-wrap { width: calc(100% - 32px); }
    .hhp-reading-grid { gap: .65rem; }
    .hhp-reading-hero { border-radius: .85rem; }
    .hhp-reading-hero-photo { max-height: 235px; }
    .hhp-product-page.woocommerce div.product > .summary { padding: 1rem; }
}

.hhp-contact-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
    align-items: start;
    gap: clamp(1.25rem, 4vw, 3rem);
}
.hhp-contact-map {
    overflow: hidden;
    border: 1px solid var(--hh-edge);
    border-radius: .9rem;
    background: var(--hh-white);
    scroll-margin-top: 4rem;
}
.hhp-contact-map-copy {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: .85rem;
    padding: .85rem 1rem;
}
.hhp-contact-map-copy h2 {
    margin: 0;
    font-size: clamp(1.15rem, 2vw, 1.55rem);
}
.hhp-contact-map-copy .hhp-action {
    padding: .65rem .9rem;
    font-size: .85rem;
}
.hhp-contact-map iframe {
    display: block;
    width: 100%;
    height: clamp(280px, 31vw, 360px);
    border: 0;
    background: var(--hh-soft);
}

@media (max-width: 780px) {
    .hhp-contact-layout { grid-template-columns: minmax(0, 1fr); }
}

.hhp-contact-quote {
    margin-top: 1.6rem;
    padding: clamp(1rem, 2.6vw, 1.65rem);
    border: 1px solid var(--hh-edge);
    border-radius: .9rem;
    background: var(--hh-white);
    scroll-margin-top: 3rem;
}
.hhp-contact-quote h2 { margin: 0 0 .5rem; }
.hhp-contact-quote > p { margin: 0 0 .95rem; }
.hhp-contact-quote-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
    margin-bottom: .75rem;
}
.hhp-contact-quote label {
    display: block;
    color: var(--hh-ink);
    font-size: .9rem;
    font-weight: 650;
}
.hhp-contact-quote label span, .hhp-contact-field-help {
    color: var(--hh-muted);
    font-size: .82rem;
    font-weight: 400;
}
.hhp-contact-quote form > label { margin-top: .75rem; }
.hhp-contact-quote :is(input, textarea) {
    display: block;
    width: 100%;
    min-width: 0;
    min-height: 44px;
    margin: .35rem 0 0;
    padding: .55rem .65rem;
    border: 1px solid var(--hh-input-border);
    border-radius: .45rem;
    background: var(--hh-paper);
    color: var(--hh-ink);
}
.hhp-contact-field-help { margin: .35rem 0 .9rem; }

.hhp-enquiry-consent {
    margin: .8rem 0 1rem;
    padding: .8rem .95rem;
    border: 1px solid var(--hh-edge);
    border-radius: .625rem;
    background: var(--hh-soft);
}
:is(.hh-quote, .hhp-contact-quote) form .hhp-enquiry-consent label {
    display: grid;
    grid-template-columns: 1.125rem minmax(0, 1fr);
    gap: .625rem;
    margin: 0;
    cursor: pointer;
}
:is(.hh-quote, .hhp-contact-quote) form .hhp-enquiry-consent label span {
    color: var(--hh-ink);
    font-size: .9rem;
    font-weight: 500;
}
:is(.hh-quote, .hhp-contact-quote) form .hhp-enquiry-consent input[type="checkbox"] {
    appearance: auto;
    width: 1.125rem;
    height: 1.125rem;
    min-height: 0;
    margin: .16rem 0 0;
    padding: 0;
    accent-color: var(--hh-accent);
}
:is(.hh-quote, .hhp-contact-quote) .hhp-enquiry-legal {
    margin: .65rem 0 0;
    color: var(--hh-muted);
    font-size: .85rem;
}
.hhp-enquiry-legal a {
    color: var(--hh-deep);
    font-weight: 650;
    text-decoration: underline;
    text-underline-offset: .16em;
}
.hhp-contact-quote .hhp-contact-quote-alt { margin: .8rem 0 0; font-size: .88rem; }
.hhp-contact-quote-alt a { text-decoration: underline; }
.hhp-contact-notice {
    padding: .7rem .85rem;
    border-radius: .4rem;
    font-size: .92rem;
}
.hhp-contact-success { background: #e8f2e7; color: #204839; }
.hhp-contact-error { background: #f9e9e5; color: #732819; }
@media (max-width: 540px) {
    .hhp-contact-quote-fields { grid-template-columns: minmax(0, 1fr); }
}
@media (min-width: 781px) and (min-height: 590px) {
    .hhp-contact-layout .hhp-contact-map {
        position: sticky;
        top: 3.75rem;
    }
}

.cc-window.cc-floating.cc-type-detailedRevDeny,
.cc-revoke.cc-bottom.cc-left {
    bottom: max(1rem, env(safe-area-inset-bottom));
    left: max(1rem, env(safe-area-inset-left));
    right: auto;
    border: 1px solid var(--hh-edge);
    background: var(--hh-white);
    color: var(--hh-ink);
    box-shadow: 0 8px 26px var(--hh-shadow);
    font-family: 'Outfit', system-ui, sans-serif;
}

.cc-window.cc-floating.cc-type-detailedRevDeny {
    width: min(27rem, calc(100% - max(1rem, env(safe-area-inset-left)) - max(1rem, env(safe-area-inset-right))));
    max-width: none;
    max-height: calc(100% - 2rem);
    padding: clamp(.875rem, 3vw, 1.25rem);
    overflow-y: auto;
    overscroll-behavior: contain;
    border-radius: .875rem;
    font-size: .95rem;
    line-height: 1.5;
    transition: opacity .18s ease;
}

.cc-window.cc-type-detailedRevDeny.cc-invisible {
    visibility: hidden;
    pointer-events: none;
}

.cc-window.cc-type-detailedRevDeny .cc-message {
    margin: 0;
}

.cc-window.cc-type-detailedRevDeny .cc-link {
    padding: 0;
    color: var(--hh-deep);
    opacity: 1;
    text-underline-offset: .16em;
}

.cc-window.cc-type-detailedRevDeny .cc-allswitches {
    gap: .25rem;
    margin: .875rem 0;
    padding: .375rem .625rem;
    border: 1px solid var(--hh-edge);
    border-radius: .625rem;
    background: var(--hh-paper);
}

.cc-window.cc-type-detailedRevDeny .cc-switch-element {
    display: flex;
    align-items: center;
    gap: .625rem;
    min-height: 2rem;
    margin: 0;
}

.cc-window.cc-type-detailedRevDeny .cc-switch-label {
    margin: 0;
    font-weight: 550;
}

.cc-window.cc-type-detailedRevDeny .cc-switch {
    flex: 0 0 2.5rem;
    width: 2.5rem;
    height: 1.5rem;
    margin: 0;
}

.cc-window.cc-type-detailedRevDeny .cc-switch .cc-slider {
    border-radius: 1rem;
    /* The banner plugin injects important declarations for its switch palette. */
    background: var(--hh-muted) !important;
    transition: background-color .18s ease;
}

.cc-window.cc-type-detailedRevDeny .cc-switch .cc-slider::before {
    inset: .25rem auto auto .25rem;
    width: 1rem;
    height: 1rem;
    border-radius: 50%;
    background: var(--hh-white) !important;
    transition: transform .18s ease;
}

.cc-window.cc-type-detailedRevDeny .cc-switch input:checked + .cc-slider {
    background: var(--hh-accent) !important;
}

.cc-window.cc-type-detailedRevDeny .cc-switch input:checked + .cc-slider::before {
    transform: translateX(1rem);
}

.cc-window.cc-type-detailedRevDeny .cc-switch input:disabled + .cc-slider {
    background: var(--hh-input-border) !important;
    cursor: default;
}

.cc-window.cc-type-detailedRevDeny .cc-switch input:disabled + .cc-slider::before {
    opacity: 1;
}

.cc-window.cc-type-detailedRevDeny .cc-compliance {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: stretch;
    gap: .5rem;
}

.cc-window.cc-floating.cc-type-detailedRevDeny .cc-compliance .cc-btn {
    display: grid;
    place-items: center;
    min-width: 0;
    min-height: 44px;
    margin: 0;
    padding: .5rem .375rem;
    border: 1px solid var(--hh-input-border);
    border-radius: .5rem;
    background: var(--hh-soft);
    color: var(--hh-deep);
    font-size: .875rem;
    line-height: 1.2;
    text-align: center;
    white-space: normal;
}

.cc-window.cc-floating.cc-type-detailedRevDeny .cc-compliance .cc-btn:hover {
    border-color: var(--hh-accent);
    background: var(--hh-tint);
    text-decoration: none;
}

.cc-window.cc-floating.cc-type-detailedRevDeny .cc-compliance .cc-savesettings {
    border-color: var(--hh-accent);
    background: var(--hh-accent);
    color: var(--hh-white);
}

.cc-window.cc-floating.cc-type-detailedRevDeny .cc-compliance .cc-savesettings:hover {
    background: var(--hh-accent-hover);
}

.hhp-site-footer .hhp-cookie-settings,
.hhp-site-footer .hhp-cookie-settings:hover,
.hhp-site-footer .hhp-cookie-settings:focus {
    width: fit-content;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--hh-accent);
    font: inherit;
    text-align: left;
    text-decoration: underline;
    text-underline-offset: .18em;
    cursor: pointer;
}

/* Keep the plugin's floating control as a fallback for pages without the footer button. */
body:has(.hhp-site-footer .hhp-cookie-settings) .cc-revoke {
    display: none !important;
}

.cc-revoke.cc-bottom.cc-left {
    min-height: 44px;
    padding: .625rem .875rem;
    border-radius: .5rem;
    color: var(--hh-deep);
    font-size: .875rem;
    font-weight: 650;
    transform: none;
}

.cc-window.cc-type-detailedRevDeny :is(.cc-btn, .cc-link, .cc-switch):focus-visible,
.cc-revoke.cc-bottom.cc-left:focus-visible,
.hhp-site-footer .hhp-cookie-settings:focus-visible {
    outline: 2px solid var(--hh-accent);
    outline-offset: 2px;
}

@media (max-width: 22rem) {
    .cc-window.cc-type-detailedRevDeny .cc-compliance {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (prefers-reduced-motion: reduce) {
    .cc-window.cc-floating.cc-type-detailedRevDeny,
    .cc-window.cc-type-detailedRevDeny .cc-switch .cc-slider,
    .cc-window.cc-type-detailedRevDeny .cc-switch .cc-slider::before {
        transition: none;
    }
}
