/* Project palette adapter. Loaded last, and active only with an explicit theme.
   No dimensions, typography, content, images or layout rules belong here.
   Colour roles are supplied by the shared project-theme resolver. */
html[data-project-theme] {
  --navy: var(--theme-bg-dark);
  --soft: var(--theme-bg-light);
  --green: var(--theme-whatsapp);
  --green-2: var(--theme-whatsapp-hover);
  --text: var(--theme-text-light);
  --muted: var(--theme-muted-light);
  --white: var(--theme-surface-light);
  --line: var(--theme-border-light);
  --shadow: 0 18px 50px rgba(var(--theme-shadow-rgb), .10);
  --shadow-soft: 0 10px 30px rgba(var(--theme-shadow-rgb), .08);
}
html[data-project-theme] body { background: var(--theme-bg-light); color: var(--theme-text-light); }
html[data-project-theme] body[data-adapter="coverage-v1"] a { color: var(--theme-brand-on-light); }
html[data-project-theme] body[data-adapter="coverage-v1"] a:hover { color: var(--theme-brand-hover); }
html[data-project-theme] body[data-adapter="coverage-v1"] .urgent-contact a[href^="https://wa.me/"] { color: var(--theme-whatsapp); }
html[data-project-theme] :focus-visible { outline-color: var(--theme-accent-on-light); }
html[data-project-theme] :is(.section-dark, .hero-premium, .hero-glass, footer) :focus-visible { outline-color: var(--theme-accent-on-dark); }
html[data-project-theme] .section-dark,
html[data-project-theme] .cta-block {
  background: radial-gradient(circle at 8% 0%, rgba(var(--theme-brand-rgb), .12), transparent 30%), linear-gradient(135deg, var(--theme-surface-dark), var(--theme-bg-dark) 42%);
  color: var(--theme-text-dark);
}
html[data-project-theme] .section-dark :is(h2, h3, strong),
html[data-project-theme] .cta-block h2 { color: var(--theme-text-dark); }
html[data-project-theme] .section-dark p,
html[data-project-theme] .section-dark .card :is(p, span),
html[data-project-theme] .cta-block p { color: var(--theme-muted-dark); }
html[data-project-theme] .section-dark .card { background: var(--theme-surface-dark); border-color: var(--theme-border-dark); }
html[data-project-theme] .eyebrow { background: var(--theme-surface-light); color: var(--theme-brand-on-light); border-color: var(--theme-brand-on-light); box-shadow: 0 2px 8px rgba(var(--theme-shadow-rgb), .06); }
html[data-project-theme] .icon-box { color: var(--theme-brand-on-light); background: rgba(var(--theme-brand-rgb), .10); }
html[data-project-theme] .section-dark .icon-box { color: var(--theme-brand-on-dark); background: rgba(var(--theme-brand-rgb), .10); }
html[data-project-theme] .section-dark .card:first-child .icon-box { color: var(--theme-accent-on-dark); background: rgba(var(--theme-accent-rgb), .10); }
html[data-project-theme] .card:hover { border-color: var(--theme-brand-on-light); }
html[data-project-theme] .section-dark .card:hover { border-color: var(--theme-brand-on-dark); }
html[data-project-theme] .hero-section { background: linear-gradient(180deg, var(--theme-surface-light), var(--theme-bg-light)); }
html[data-project-theme] .hero-image-wrap picture { background: var(--theme-surface-light); box-shadow: 0 28px 54px rgba(var(--theme-shadow-rgb), .16); }
html[data-project-theme] :is(.hero-mini-card, .company-highlight, .company-pill) { background: var(--theme-bg-dark); color: var(--theme-text-dark); border-color: var(--theme-border-dark); }
html[data-project-theme] :is(.hero-mini-card, .company-highlight) strong { color: var(--theme-text-dark); }
html[data-project-theme] :is(.hero-mini-card, .company-highlight) span { color: var(--theme-muted-dark); }
html[data-project-theme] .company-pill:hover { border-color: var(--theme-brand-on-dark); }
html[data-project-theme] .service-item { background: var(--theme-surface-dark); border-color: var(--theme-border-dark); color: var(--theme-text-dark); }
html[data-project-theme] .service-item .icon { color: var(--theme-brand-on-dark); }
html[data-project-theme] .testimonial-card blockquote { color: var(--theme-text-dark); }
html[data-project-theme] .testimonial-card cite { color: var(--theme-muted-dark); }
html[data-project-theme] :is(.faq-wrap, .faq-item + .faq-item) { border-color: var(--theme-border-light); }
html[data-project-theme] .faq-wrap { background: var(--theme-surface-light); box-shadow: 0 24px 70px rgba(var(--theme-shadow-rgb), .08); }
html[data-project-theme] .faq-question:hover { background: var(--theme-surface-light-2); }
html[data-project-theme] .faq-plus { background: rgba(var(--theme-brand-rgb), .10); color: var(--theme-brand-on-light); }
html[data-project-theme] .compact-application { background: var(--theme-surface-light); }
html[data-project-theme] .process-list li > span { background: var(--theme-brand); color: var(--theme-on-brand); }
html[data-project-theme] .highlight-strip[data-variant="escura"] { background: var(--theme-bg-dark); color: var(--theme-text-dark); }
html[data-project-theme] .highlight-strip[data-variant="escura"] .section-title p { color: var(--theme-muted-dark); }
html[data-project-theme] :is(.image-mosaic figure, .logo-pending, .company-gallery .image-pending, .gallery .image-pending) { background: var(--theme-surface-light-2); color: var(--theme-muted-light); border-color: var(--theme-border-light); }
html[data-project-theme] .image-pending { background: var(--theme-surface-dark); color: var(--theme-muted-dark); border-color: var(--theme-border-dark); }
html[data-project-theme] :is(.company-gallery, .gallery, .page-commercial-premium .hero-image-wrap) > .image-pending,
html[data-project-theme] :is(.company-gallery, .gallery) .image-pending { background: var(--theme-surface-light-2); color: var(--theme-muted-light); border-color: var(--theme-border-light); }

/* Classic navigation and footer keep their existing light/dark structure. */
html[data-project-theme] :is(.page-home .site-header, .premium-simple-header, .page-home .home-services-menu, .page-home .home-mobile-panel, .page-home .home-menu-toggle, .premium-mobile-contact) { background: var(--theme-surface-light); border-color: var(--theme-border-light); }
html[data-project-theme] .page-home :is(.home-nav a:hover, .home-services-toggle:hover, .home-nav-dropdown.open .home-services-toggle, .home-mobile-nav a:not(.btn-wpp):hover) { color: var(--theme-brand-on-light); }
html[data-project-theme] .page-home .home-services-menu a:hover { background: rgba(var(--theme-brand-rgb), .08); color: var(--theme-brand-on-light); }
html[data-project-theme] .page-home .home-mobile-nav a:not(.btn-wpp) { border-color: var(--theme-border-light); }
html[data-project-theme] footer { background: var(--theme-bg-dark); color: var(--theme-muted-dark); }
html[data-project-theme] .footer-grid { border-color: var(--theme-border-dark); }
html[data-project-theme] :is(.footer-brand strong, .footer-col strong, .page-legal .legal-logo) { color: var(--theme-text-dark); }
html[data-project-theme] :is(.footer-brand p, .footer-col p, .footer-mini-list, .footer-links a, .footer-bottom, .footer-bottom a) { color: var(--theme-muted-dark); }
html[data-project-theme] :is(.footer-links a:hover, .footer-bottom a:hover) { color: var(--theme-brand-on-dark); }

/* Shared local roles. Dark variants override these at the component root;
   family aliases below resolve there rather than changing the whole page. */
html[data-project-theme] :is(.premium-block, .premium-option, .premium-round2, .premium-company-reference, .premium-company-mosaic, .services-premium, .premium-lote04, .premium-lote04-c02, .premium-lote04-c03, .premium-coverage, .premium-faq, .premium-faq-option, .premium-dark-faq, .premium-cta, .premium-footer, .premium-review-option, .premium-dark-reviews, .premium-gallery-option) {
  --project-bg: var(--theme-bg-light);
  --project-surface: var(--theme-surface-light);
  --project-secondary: var(--theme-surface-light-2);
  --project-ink: var(--theme-text-light);
  --project-muted: var(--theme-muted-light);
  --project-border: var(--theme-border-light);
  --project-brand: var(--theme-brand-on-light);
  --project-accent: var(--theme-accent-on-light);
}
html[data-project-theme] :is(.premium-content--benefits, .premium-photo-highlights, .premium-gallery--editorial-grid, .premium-company-reference--right-dark, .services-premium--dark, .premium-lote04--dark, .premium-lote04-c02--dark, .premium-lote04-c03--dark, .premium-coverage--dark, .premium-faq--dark, .premium-faq-option--dark, .premium-dark-faq, .premium-cta--dark, .premium-footer:not(.premium-footer--light), .premium-dark-reviews) {
  --project-bg: var(--theme-bg-dark);
  --project-surface: var(--theme-surface-dark);
  --project-secondary: var(--theme-surface-dark-2);
  --project-ink: var(--theme-text-dark);
  --project-muted: var(--theme-muted-dark);
  --project-border: var(--theme-border-dark);
  --project-brand: var(--theme-brand-on-dark);
  --project-accent: var(--theme-accent-on-dark);
}
html[data-project-theme] .premium-block { --pb-navy: var(--project-ink); --pb-blue: var(--project-brand); --pb-text: var(--project-muted); --pb-icon-cutout: var(--project-secondary); }
html[data-project-theme] .premium-option { --po-ink: var(--project-ink); --po-muted: var(--project-muted); --po-accent: var(--project-brand); --po-border: var(--project-border); --po-surface: var(--project-surface); --po-neutral: var(--project-secondary); }
html[data-project-theme] .premium-block__eyebrow { background: var(--theme-surface-light-2); color: var(--theme-brand-on-light); }
html[data-project-theme] .premium-block__image-pending { background: var(--project-secondary); color: var(--project-muted); }

/* Heroes: photograph scrims remain dark; only presentation colours change. */
html[data-project-theme] :is(.hero-premium, .hero-glass) { --hp-accent: var(--theme-brand-on-dark); --hp-ink: var(--theme-text-dark); background: var(--theme-bg-dark); color: var(--theme-text-dark); }
html[data-project-theme] .hero-premium:after { background: linear-gradient(90deg, rgba(var(--theme-dark-rgb), .92) 0%, rgba(var(--theme-dark-rgb), .60) 32%, rgba(var(--theme-dark-rgb), .07) 69%), linear-gradient(0deg, rgba(var(--theme-dark-rgb), .66), transparent 48%); }
html[data-project-theme] :is(.hero-premium__header, .hero-glass__header) { background: linear-gradient(110deg, var(--theme-bg-dark), var(--theme-surface-dark)); border-color: var(--theme-border-dark); }
html[data-project-theme] .hero-premium--ads .hero-premium__header { background: linear-gradient(180deg, rgba(var(--theme-dark-rgb), .70), transparent); }
html[data-project-theme] .hero-premium--image-card:after { background: linear-gradient(0deg, rgba(var(--theme-dark-rgb), .22), transparent 60%); }
html[data-project-theme] .hero-premium--image-card .hero-premium__content { background: linear-gradient(130deg, rgba(var(--theme-dark-rgb), .97), rgba(var(--theme-surface-dark-rgb), .86) 67%, rgba(var(--theme-dark-rgb), .93)); border-color: var(--theme-border-dark); box-shadow: 0 8px 18px rgba(var(--theme-shadow-rgb), .16); }
html[data-project-theme] :is(.hero-premium__brand, .hero-premium__nav > a, .hero-premium .hero-premium__title, .hero-premium .hero-premium__lead, .hero-premium__benefit-copy > strong, .hero-premium__benefit-copy > span, .hero-premium__coverage-line, .hero-premium__signature, .hero-glass__brand, .hero-glass__nav > a, .hero-glass .hero-glass__title, .hero-glass .hero-glass__lead, .hero-glass__benefit-copy > strong, .hero-glass__benefit-copy > span, .hero-glass__coverage-line, .hero-glass__signature) { color: var(--theme-text-dark); }
html[data-project-theme] :is(.hero-premium__brand strong, .hero-glass__brand strong) { border-color: var(--theme-accent); text-shadow: 1px 1px rgba(var(--theme-dark-rgb), .80); }
html[data-project-theme] :is(.hero-premium__signature, .hero-glass__signature)::after { background: var(--theme-accent); }
html[data-project-theme] :is(.hero-premium__eyebrow, .hero-premium__benefit-icon, .hero-glass__eyebrow, .hero-glass__benefit-icon) { background: var(--theme-brand); color: var(--theme-on-brand); }
html[data-project-theme] .hero-premium__highlight { color: var(--theme-brand-on-dark); }
html[data-project-theme] .hero-premium__nav-first::after { background: var(--theme-brand-on-dark); }
html[data-project-theme] .hero-premium--image-card .hero-premium__eyebrow { border-color: var(--theme-brand-on-dark); background: rgba(var(--theme-dark-rgb), .52); color: var(--theme-brand-on-dark); }
html[data-project-theme] .hero-premium--image-card .hero-premium__benefit-icon { background: var(--theme-surface-dark-2); color: var(--theme-brand-on-dark); }
html[data-project-theme] .hero-premium--image-card .hero-premium__signature { color: var(--theme-text-light); }
html[data-project-theme] :is(.hero-premium--textual .hero-premium__signature, .hero-premium--textual.hero-premium--image-card .hero-premium__signature) { color: var(--theme-text-dark); }
html[data-project-theme] :is(.hero-premium__mobile-nav, .hero-glass__mobile-nav) { background: var(--theme-surface-dark); border-color: var(--theme-border-dark); box-shadow: 0 8px 18px rgba(var(--theme-shadow-rgb), .25); }
html[data-project-theme] :is(.hero-premium__mobile-menu > summary, .hero-glass__mobile-menu > summary, .hero-premium__mobile-nav > a:not(.hero-premium__header-cta), .hero-glass__mobile-nav > a:not(.hero-glass__header-cta)) { color: var(--theme-text-dark); border-color: var(--theme-border-dark); }
html[data-project-theme] :is(.hero-premium__mobile-menu[open] > summary, .hero-glass__mobile-menu[open] > summary) { background: rgba(var(--theme-light-rgb), .08); }
html[data-project-theme] .hero-glass__stage { background: var(--theme-bg-dark); }
html[data-project-theme] .hero-glass__stage:after { background: linear-gradient(90deg, rgba(var(--theme-dark-rgb), .14), transparent 65%), linear-gradient(0deg, rgba(var(--theme-dark-rgb), .32), transparent 34%); }
html[data-project-theme] .hero-glass__card { background: linear-gradient(133deg, rgba(var(--theme-surface-light-rgb), .45), rgba(var(--theme-dark-rgb), .87) 45%, rgba(var(--theme-surface-dark-rgb), .79)); border-color: rgba(var(--theme-light-rgb), .60); box-shadow: 0 12px 26px rgba(var(--theme-shadow-rgb), .21); }
html[data-project-theme] .hero-glass__nav > .hero-glass__nav-first:after { background: var(--theme-brand-on-dark); }
html[data-project-theme] .hero-glass__benefit + .hero-glass__benefit:before { background: var(--theme-border-dark); }
html[data-project-theme] :is(.hero-glass__image-pending, .hero-premium__image-pending) { background: var(--theme-surface-dark); color: var(--theme-muted-dark); }
@media (min-width: 769px) {
  html[data-project-theme] .hero-premium--full-bleed:after { background: linear-gradient(90deg, rgba(var(--theme-dark-rgb), .92) 0%, rgba(var(--theme-dark-rgb), .72) 32%, rgba(var(--theme-dark-rgb), .20) 69%), linear-gradient(0deg, rgba(var(--theme-dark-rgb), .66), transparent 48%); }
}
@media (max-width: 768px) {
  html[data-project-theme] .hero-premium:after { background: linear-gradient(90deg, rgba(var(--theme-dark-rgb), .84), rgba(var(--theme-dark-rgb), .22) 85%), linear-gradient(0deg, rgba(var(--theme-dark-rgb), .99), rgba(var(--theme-dark-rgb), .77) 26%, rgba(var(--theme-dark-rgb), .09) 82%); }
  html[data-project-theme] .hero-premium--image-card:after { background: linear-gradient(0deg, var(--theme-bg-dark), transparent 65%); }
  html[data-project-theme] .hero-premium--image-card .hero-premium__content { background: linear-gradient(145deg, rgba(var(--theme-surface-dark-rgb), .95), rgba(var(--theme-dark-rgb), .98) 60%, var(--theme-bg-dark)); }
  html[data-project-theme] .hero-glass__stage:after { background: linear-gradient(0deg, var(--theme-bg-dark), rgba(var(--theme-dark-rgb), 0) 66%); }
  html[data-project-theme] .hero-glass__card { background: linear-gradient(145deg, rgba(var(--theme-surface-light-rgb), .44), rgba(var(--theme-dark-rgb), .95) 34%, rgba(var(--theme-dark-rgb), .96) 85%); }
}

/* Institutional and process families. */
html[data-project-theme] :is(.premium-content, .premium-process) { background: linear-gradient(110deg, var(--project-bg), var(--project-surface) 57%); }
html[data-project-theme] .premium-content--benefits { background: linear-gradient(110deg, var(--theme-surface-dark), var(--theme-bg-dark) 68%); }
html[data-project-theme] .premium-content--benefits:after { border-color: rgba(var(--theme-brand-rgb), .12); }
html[data-project-theme] :is(.premium-content__benefit-icon, .premium-content__overlay-icon) { background: var(--project-secondary); color: var(--project-brand); }
html[data-project-theme] .premium-content__media { background: var(--project-secondary); }
html[data-project-theme] .premium-content__media > figcaption { background: rgba(var(--theme-dark-rgb), .69); color: var(--theme-text-dark); }
html[data-project-theme] .premium-content__overlay { background: linear-gradient(135deg, var(--project-surface), var(--project-secondary)); border-color: var(--project-border); box-shadow: 0 6px 16px rgba(var(--theme-shadow-rgb), .16); }
html[data-project-theme] :is(.premium-content__signature, .premium-process__signature) { color: var(--project-brand); text-shadow: none; }
html[data-project-theme] .premium-process__signature { color: var(--theme-text-light); }
html[data-project-theme] :is(.premium-content__signature, .premium-process__signature)::after { background: var(--theme-accent); }
html[data-project-theme] .premium-content--benefits .premium-block__eyebrow { background: transparent; color: var(--theme-brand-on-dark); border-color: var(--theme-border-dark); }
html[data-project-theme] .premium-content--benefits .premium-content__benefit-icon { background: none; color: var(--theme-brand-on-dark); }
html[data-project-theme] .premium-content--benefits .premium-content__overlay { color: var(--theme-text-dark); border-color: var(--theme-border-dark); }
html[data-project-theme] .premium-content--benefits .premium-content__overlay p { color: var(--theme-muted-dark); }
html[data-project-theme] :is(.premium-process__step, .premium-process__benefits) { background: var(--project-surface); border-color: var(--project-border); box-shadow: 0 4px 13px rgba(var(--theme-shadow-rgb), .04); }
html[data-project-theme] .premium-process__step-number { background: var(--theme-accent); color: var(--theme-on-accent); }
html[data-project-theme] :is(.premium-process__step > .premium-block__icon, .premium-process__benefit-icon) { color: var(--project-brand); }
html[data-project-theme] .premium-process .premium-block__icon[data-icon="check"] path { stroke: var(--project-surface); }
html[data-project-theme] .premium-company-mosaic { background: var(--project-bg); color: var(--project-ink); }
html[data-project-theme] .premium-company-mosaic__title { color: var(--project-ink); }
html[data-project-theme] .premium-company-mosaic__eyebrow { color: var(--project-brand); }
html[data-project-theme] :is(.premium-company-mosaic__text p, .premium-company-mosaic__facts dd) { color: var(--project-muted); }
html[data-project-theme] .premium-company-mosaic__facts { border-color: var(--project-border); }
html[data-project-theme] :is(.premium-company-mosaic__photo, .premium-company-mosaic__picture.premium-block__image-pending) { background: var(--project-secondary); color: var(--project-muted); }
html[data-project-theme] .premium-company-reference { --pcr-ink: var(--project-ink); --pcr-text: var(--project-muted); --pcr-accent: var(--project-brand); --pcr-line: var(--project-border); background: var(--project-bg); }
html[data-project-theme] .premium-company-reference .pcr__eyebrow { color: var(--project-accent); }
html[data-project-theme] .premium-company-reference :is(figure.pcr__photo, .pcr__picture.premium-block__image-pending) { background: var(--project-secondary); color: var(--project-muted); }

/* Services / applications. Illustration skin, lamps and photographic colours
   are intentionally untouched; currentColor icons use the semantic palette. */
html[data-project-theme] .services-premium { --sp-ink: var(--project-ink); --sp-blue: var(--project-brand); --sp-soft: var(--project-secondary); --sp-muted: var(--project-muted); --sp-icon-cutout: var(--project-secondary); background: linear-gradient(110deg, var(--project-bg), var(--project-surface) 51%, var(--project-bg)); }
html[data-project-theme] .services-premium .services-premium__eyebrow { background: var(--project-secondary); color: var(--project-brand); }
html[data-project-theme] .services-premium .services-premium__service { background: var(--project-surface); border-color: var(--project-border); box-shadow: 0 5px 12px rgba(var(--theme-shadow-rgb), .06); }
html[data-project-theme] .services-premium .services-premium__service-icon { background: var(--project-secondary); }
html[data-project-theme] .services-premium--dark { background: linear-gradient(125deg, transparent 0 12%, rgba(var(--theme-brand-rgb), .05) 12% 17%, transparent 17% 91%, rgba(var(--theme-brand-rgb), .08) 91% 94%, transparent 94%), linear-gradient(110deg, var(--theme-surface-dark), var(--theme-bg-dark)); }
html[data-project-theme] .services-premium--dark .services-premium__eyebrow { background: transparent; color: var(--theme-brand-on-dark); border-color: var(--theme-border-dark); }
html[data-project-theme] .services-premium--dark .services-premium__benefits { background: var(--theme-surface-dark); border-color: var(--theme-border-dark); }
html[data-project-theme] .services-premium--dark .services-premium__benefit + .services-premium__benefit { border-color: var(--theme-border-dark); }
html[data-project-theme] .services-premium--dark .services-premium__service { background: linear-gradient(130deg, var(--theme-surface-dark), var(--theme-surface-dark-2)); border-color: var(--theme-border-dark); box-shadow: none; }
html[data-project-theme] .services-premium--dark .services-premium__service-icon { background: none; --sp-icon-cutout: var(--theme-surface-dark); }
html[data-project-theme] .services-premium--dark .services-premium__service-arrow { color: var(--theme-brand-on-dark); }
html[data-project-theme] .services-premium--dark .services-premium__service-arrow:before { border-color: var(--theme-border-dark); }
html[data-project-theme] .services-premium--dark .services-premium__location { border-color: var(--theme-border-dark); }
html[data-project-theme] .services-premium--dark .services-premium__signature { color: var(--theme-text-dark); }
html[data-project-theme] .services-premium--dark .services-premium__signature:after { background: var(--theme-accent); }
html[data-project-theme] .services-premium--vector .services-premium__service { background: none; box-shadow: none; }
html[data-project-theme] .services-premium--vector .services-premium__location { background: var(--project-secondary); border-color: var(--project-border); box-shadow: 0 5px 10px rgba(var(--theme-shadow-rgb), .07); }

/* Photographic process, strips and galleries retain their masks and captions. */
html[data-project-theme] :is(.premium-photo-process, .premium-photo-strip, .premium-photo-highlights, .premium-gallery) { background: linear-gradient(110deg, var(--project-bg), var(--project-surface)); }
html[data-project-theme] :is(.premium-photo-process__eyebrow, .premium-photo-strip__eyebrow, .premium-photo-highlights__eyebrow) { color: var(--project-brand); }
html[data-project-theme] :is(.premium-photo-process .premium-photo-process__title, .premium-photo-strip .premium-photo-strip__title, .premium-photo-highlights .premium-photo-highlights__title) { color: var(--project-ink); }
html[data-project-theme] :is(.premium-photo-process .premium-photo-process__text, .premium-photo-strip .premium-photo-strip__text, .premium-photo-highlights .premium-photo-highlights__text) { color: var(--project-muted); }
html[data-project-theme] :is(.premium-photo-process__media > figcaption, .premium-photo-highlights__media > figcaption) { background: rgba(var(--theme-dark-rgb), .79); color: var(--theme-text-dark); }
html[data-project-theme] :is(.premium-photo-process__signature, .premium-photo-highlights__signature) { color: var(--theme-text-dark); text-shadow: 0 1px 3px rgba(var(--theme-dark-rgb), .55); }
html[data-project-theme] :is(.premium-photo-process__signature, .premium-photo-highlights__signature)::after { background: var(--theme-accent); }
html[data-project-theme] :is(.premium-photo-process__media, .premium-photo-highlights__media, .premium-photo-strip__item, .premium-gallery__item) { background: var(--project-secondary); }
html[data-project-theme] .premium-photo-process__media:after { background: linear-gradient(90deg, var(--theme-bg-light), rgba(var(--theme-light-rgb), .70) 8%, rgba(var(--theme-light-rgb), 0) 30%); }
html[data-project-theme] .premium-photo-process__step { border-color: var(--project-border); background: var(--project-surface); box-shadow: 0 4px 13px rgba(var(--theme-shadow-rgb), .03); }
html[data-project-theme] .premium-photo-process__number { background: var(--theme-brand); color: var(--theme-on-brand); }
html[data-project-theme] .premium-photo-process__step-icon { background: var(--project-secondary); color: var(--project-brand); --pb-icon-cutout: var(--project-secondary); }
html[data-project-theme] .premium-photo-process__step h3 { color: var(--project-ink); }
html[data-project-theme] .premium-photo-process__step p { color: var(--project-muted); }
html[data-project-theme] .premium-photo-strip__more { border-color: var(--project-border); color: var(--project-brand); background: var(--project-surface); }
html[data-project-theme] .premium-photo-strip__item > figcaption { background: linear-gradient(0deg, rgba(var(--theme-dark-rgb), .97) 8%, rgba(var(--theme-dark-rgb), .77) 68%, rgba(var(--theme-dark-rgb), 0)); color: var(--theme-text-dark); }
html[data-project-theme] .premium-photo-strip__photo-icon { background: var(--theme-surface-dark); color: var(--theme-brand-on-dark); --pb-icon-cutout: var(--theme-surface-dark); }
html[data-project-theme] .premium-photo-strip__photos { scrollbar-color: var(--theme-brand) var(--theme-surface-light-2); }
html[data-project-theme] .premium-photo-highlights__media:after { background: linear-gradient(90deg, var(--theme-bg-dark), rgba(var(--theme-dark-rgb), .93) 12%, rgba(var(--theme-dark-rgb), .54) 42%, rgba(var(--theme-dark-rgb), .06) 82%); }
html[data-project-theme] .premium-photo-highlights__card { border-color: var(--project-border); background: linear-gradient(115deg, var(--project-surface), var(--project-secondary)); }
html[data-project-theme] .premium-photo-highlights__card > .premium-block__icon { color: var(--project-brand); }
html[data-project-theme] .premium-photo-highlights__card h3 { color: var(--project-ink); }
html[data-project-theme] .premium-photo-highlights__card p { color: var(--project-muted); }
html[data-project-theme] .premium-gallery { --pg-accent: var(--project-brand); }
html[data-project-theme] .premium-gallery--editorial-grid { background: linear-gradient(122deg, transparent 0 13%, rgba(var(--theme-brand-rgb), .08) 13% 16%, transparent 16%), linear-gradient(105deg, var(--theme-surface-dark), var(--theme-bg-dark)); color: var(--theme-text-dark); }
html[data-project-theme] .premium-gallery--editorial-grid .premium-gallery__eyebrow { color: var(--theme-accent-on-dark); }
html[data-project-theme] .premium-gallery--editorial-grid .premium-gallery__item { border-color: var(--theme-border-dark); }
html[data-project-theme] .premium-gallery__caption { color: var(--theme-text-dark); background: linear-gradient(0deg, rgba(var(--theme-dark-rgb), .94), rgba(var(--theme-dark-rgb), .61) 56%, transparent); }
html[data-project-theme] .premium-gallery--editorial-grid .premium-gallery__caption { background: linear-gradient(0deg, rgba(var(--theme-dark-rgb), .94), rgba(var(--theme-dark-rgb), .75) 56%, rgba(var(--theme-dark-rgb), .30)); }
html[data-project-theme] .premium-gallery__caption > span { color: var(--theme-muted-dark); }
html[data-project-theme] .premium-gallery--service-cards .premium-gallery__item { background: var(--project-surface); border-color: var(--project-border); box-shadow: 0 6px 13px rgba(var(--theme-shadow-rgb), .04); }
html[data-project-theme] .premium-gallery__caption--card { background: none; color: var(--project-ink); }
html[data-project-theme] .premium-gallery__service-icon { background: var(--project-secondary); color: var(--project-brand); }
html[data-project-theme] .premium-gallery-option { --pgo-ink: var(--project-ink); --pgo-text: var(--project-muted); --pgo-accent: var(--project-brand); background: var(--project-bg); }
html[data-project-theme] .premium-gallery-option__picture { background: var(--project-secondary); }
html[data-project-theme] .premium-gallery-option__picture.premium-block__image-pending { color: var(--project-muted); border-color: var(--project-border); }
html[data-project-theme] .premium-round2.premium-gallery-round2 { --pgr2-ink: var(--project-ink); --pgr2-text: var(--project-muted); background: var(--project-bg); }
html[data-project-theme] .premium-gallery-round2 .pgr2__eyebrow { color: var(--project-brand); }
html[data-project-theme] .premium-gallery-round2 .pgr2__more { background: var(--project-surface); border-color: var(--project-border); color: var(--project-brand); }
html[data-project-theme] .premium-gallery-round2 .pgr2__picture { background: var(--project-secondary); }
html[data-project-theme] .premium-gallery-round2 .pgr2__picture.premium-block__image-pending { color: var(--project-muted); border-color: var(--project-border); }
html[data-project-theme] .premium-gallery-round2 figcaption.pgr2__caption { color: var(--project-muted); }
html[data-project-theme] .premium-gallery-round2.premium-gallery-round2--caption-eight figure.pgr2__item { background: var(--theme-surface-dark); }
html[data-project-theme] .premium-gallery-round2.premium-gallery-round2--caption-eight figcaption.pgr2__caption { color: var(--theme-text-dark); background: linear-gradient(0deg, rgba(var(--theme-dark-rgb), .97) 8%, rgba(var(--theme-dark-rgb), .77) 68%, rgba(var(--theme-dark-rgb), 0)); }
html[data-project-theme] .premium-gallery-round2 .pgr2__photo-icon { --pb-icon-cutout: var(--theme-surface-dark); background: var(--theme-surface-dark); color: var(--theme-brand-on-dark); }
@media (max-width: 768px) {
  html[data-project-theme] .premium-photo-process__media:after { background: linear-gradient(180deg, var(--theme-bg-light), rgba(var(--theme-light-rgb), 0) 22%); }
  html[data-project-theme] .premium-photo-highlights__media:after { background: linear-gradient(180deg, var(--theme-bg-dark), rgba(var(--theme-dark-rgb), 0) 55%); }
}

/* Reviews: rating remains factual; only the star colour is themed. The Google
   wordmark, customer photographs and supplied logo assets retain their colours. */
html[data-project-theme] .premium-review-option { --pro-ink: var(--project-ink); --pro-muted: var(--project-muted); --pro-accent: var(--project-brand); --pro-border: var(--project-border); background: var(--project-bg); }
html[data-project-theme] .premium-review-option.premium-reviews-airy .pro__review { background: var(--project-surface); box-shadow: 0 10px 28px rgba(var(--theme-shadow-rgb), .02); }
html[data-project-theme] .premium-review-option.premium-reviews-editorial .pro__review--featured { background: var(--project-secondary); border-top-color: var(--theme-accent); }
html[data-project-theme] .premium-review-option.premium-reviews-discreet { background: var(--project-bg); }
html[data-project-theme] :is(.premium-review-option .pro__stars, .premium-review-option.premium-reviews-discreet .pro__stars, .premium-reviews__stars) { color: var(--theme-rating-on-light, var(--theme-accent-on-light)); }
html[data-project-theme] .premium-dark-reviews .pdr__stars { color: var(--theme-rating-on-dark, var(--theme-accent-on-dark)); }
html[data-project-theme] .premium-dark-reviews { --pdr-bg: var(--project-bg); --pdr-ink: var(--project-ink); --pdr-muted: var(--project-muted); --pdr-accent: var(--project-brand); --pdr-line: var(--project-border); }
html[data-project-theme] .premium-dark-reviews.premium-reviews-dark-modular .pdr__review--1 { background: var(--theme-surface-dark); }
html[data-project-theme] .premium-dark-reviews.premium-reviews-dark-modular .pdr__review--2 { background: var(--theme-surface-dark-2); }
html[data-project-theme] .premium-dark-reviews.premium-reviews-dark-modular .pdr__review--3 { background: var(--theme-surface-dark); --pdr-ink: var(--theme-text-dark); --pdr-muted: var(--theme-muted-dark); }
html[data-project-theme] .premium-reviews { background: var(--project-bg); }
html[data-project-theme] .premium-reviews--illustrated:before { background: linear-gradient(90deg, var(--theme-bg-light) 0%, var(--theme-bg-light) 59%, rgba(var(--theme-light-rgb), .87) 70%, rgba(var(--theme-light-rgb), 0) 100%); }
html[data-project-theme] :is(.premium-reviews__eyebrow, .premium-reviews__source) { color: var(--theme-brand-on-light); }
html[data-project-theme] :is(.premium-reviews .premium-reviews__title, .premium-reviews .premium-reviews__review h3, .premium-reviews__rating) { color: var(--theme-text-light); }
html[data-project-theme] :is(.premium-reviews__text, .premium-reviews__review blockquote, .premium-reviews__summary-label, .premium-reviews__count) { color: var(--theme-muted-light); }
html[data-project-theme] :is(.premium-reviews__review, .premium-reviews__summary, .premium-reviews__empty) { background: var(--theme-surface-light); border-color: var(--theme-border-light); color: var(--theme-muted-light); }
html[data-project-theme] .premium-reviews__all { border-color: var(--theme-border-light); color: var(--theme-brand-on-light); }
html[data-project-theme] .premium-reviews__signature { color: var(--theme-text-dark); }
html[data-project-theme] .premium-reviews:not(.premium-reviews--illustrated) .premium-reviews__signature { color: var(--theme-brand-on-light); }
html[data-project-theme] .premium-reviews__signature:after { background: var(--theme-accent); }
@media (max-width: 1100px) {
  html[data-project-theme] .premium-reviews--illustrated:before { background: linear-gradient(90deg, var(--theme-bg-light) 0%, var(--theme-bg-light) 60%, rgba(var(--theme-light-rgb), .70) 100%); }
  html[data-project-theme] .premium-reviews__signature { color: var(--theme-brand-on-light); }
}
@media (max-width: 680px) {
  html[data-project-theme] .premium-reviews--illustrated:before { background: linear-gradient(180deg, var(--theme-bg-light), rgba(var(--theme-light-rgb), .87)); }
  html[data-project-theme] .premium-reviews__signature { color: var(--theme-brand-on-light); }
}

/* Three benefit / authority / company collections. */
html[data-project-theme] .premium-lote04 { --p4-bg: var(--project-bg); --p4-surface: var(--project-surface); --p4-heading: var(--project-ink); --p4-text: var(--project-muted); --p4-border: var(--project-border); --p4-accent: var(--project-brand); --p4-tint: var(--project-secondary); --p4-amber: var(--theme-accent); }
html[data-project-theme] .premium-lote04-c02 { --p42-bg: var(--project-bg); --p42-surface: var(--project-surface); --p42-heading: var(--project-ink); --p42-text: var(--project-muted); --p42-accent: var(--project-brand); --p42-border: var(--project-border); --p42-tint: var(--project-secondary); }
html[data-project-theme] .premium-lote04-c03 { --p43-bg: var(--project-bg); --p43-surface: var(--project-surface); --p43-heading: var(--project-ink); --p43-text: var(--project-muted); --p43-accent: var(--project-brand); --p43-border: var(--project-border); --p43-tint: var(--project-secondary); --p43-panel: var(--project-secondary); }
html[data-project-theme] .premium-value-cards__card--featured { --p4-heading: var(--theme-text-dark); --p4-text: var(--theme-muted-dark); --p4-accent: var(--theme-brand-on-dark); --p4-tint: var(--theme-surface-dark-2); --pb-icon-cutout: var(--theme-surface-dark-2); border-color: var(--theme-border-dark); background: linear-gradient(140deg, var(--theme-surface-dark), var(--theme-bg-dark)); }
html[data-project-theme] .premium-value-cards.premium-lote04--dark .premium-value-cards__card--featured { border-color: var(--theme-brand-on-dark); }
html[data-project-theme] .premium-value-cards__label { background: rgba(var(--theme-accent-rgb), .05); border-color: rgba(var(--theme-accent-rgb), .36); color: var(--theme-accent-on-dark); }
html[data-project-theme] .premium-lote04-c02 .premium-benefit-showcase__lead { --p42-heading: var(--project-ink); --p42-text: var(--project-muted); --p42-accent: var(--project-brand); --p42-tint: var(--project-surface); --pb-icon-cutout: var(--project-surface); border-color: var(--project-border); background: var(--project-secondary); }
html[data-project-theme] .premium-lote04-c02 .premium-benefit-showcase__lead .premium-benefit-showcase__ordinal { color: var(--project-brand); }
html[data-project-theme] .premium-lote04-c02 .premium-benefit-showcase__label { border-color: var(--project-border); color: var(--project-brand); }
html[data-project-theme] .premium-lote04-c03 .premium-benefit-path__node { background: var(--project-secondary); color: var(--project-brand); --pb-icon-cutout: var(--project-secondary); }
html[data-project-theme] .premium-lote04-c03 .premium-benefit-path__item--featured .premium-benefit-path__node,
html[data-project-theme] .premium-lote04-c03.premium-lote04-c03--dark .premium-benefit-path__item--featured .premium-benefit-path__node { background: var(--theme-brand); color: var(--theme-on-brand); --pb-icon-cutout: var(--theme-brand); }
html[data-project-theme] .premium-lote04-c03 .premium-benefit-path__item--featured .premium-block__icon[data-icon="check"] path { stroke: var(--theme-brand); }

/* Coverage and FAQ use separate aliases: FAQ and footer both own --pf-* and
   must never receive an unscoped global assignment of that prefix. */
html[data-project-theme] .premium-coverage { --pv-bg: var(--project-bg); --pv-surface: var(--project-surface); --pv-heading: var(--project-ink); --pv-text: var(--project-muted); --pv-accent: var(--project-brand); --pv-border: var(--project-border); --pv-tint: var(--project-secondary); --pv-action: var(--theme-whatsapp); --pv-action-text: var(--theme-on-whatsapp); }
html[data-project-theme] .premium-faq { --pf-bg: var(--project-bg); --pf-surface: var(--project-surface); --pf-heading: var(--project-ink); --pf-text: var(--project-muted); --pf-accent: var(--project-brand); --pf-border: var(--project-border); --pf-tint: var(--project-secondary); --pf-button: var(--theme-action); --pf-button-text: var(--theme-on-action); }
html[data-project-theme] .premium-faq-option { --pfo-bg: var(--project-bg); --pfo-sheet: var(--project-secondary); --pfo-ink: var(--project-ink); --pfo-muted: var(--project-muted); --pfo-accent: var(--project-brand); --pfo-rule: var(--project-border); --pfo-button: var(--theme-action); --pfo-button-text: var(--theme-on-action); }
html[data-project-theme] .premium-dark-faq { --pdfq-bg: var(--project-bg); --pdfq-sheet: var(--project-surface); --pdfq-ink: var(--project-ink); --pdfq-muted: var(--project-muted); --pdfq-accent: var(--project-brand); --pdfq-rule: var(--project-border); --pdfq-button: var(--theme-action); --pdfq-button-ink: var(--theme-on-action); }
html[data-project-theme] .premium-faq.premium-question-cards .premium-faq__item--featured .premium-faq__item-marker { background: var(--theme-brand); color: var(--theme-on-brand); --pb-icon-cutout: var(--theme-brand); }
html[data-project-theme] .premium-faq.premium-help-center .premium-faq__contact { background: var(--theme-bg-dark); border-color: var(--theme-border-dark); color: var(--theme-text-dark); --pf-heading: var(--theme-text-dark); --pf-text: var(--theme-muted-dark); --pf-accent: var(--theme-brand-on-dark); --pf-button: var(--theme-action); --pf-button-text: var(--theme-on-action); --pf-border: var(--theme-border-dark); }
html[data-project-theme] .premium-faq.premium-help-center.premium-faq--dark .premium-faq__contact { background: var(--theme-surface-light); border-color: var(--theme-border-light); color: var(--theme-text-light); --pf-heading: var(--theme-text-light); --pf-text: var(--theme-muted-light); --pf-accent: var(--theme-brand-on-light); --pf-button: var(--theme-action); --pf-button-text: var(--theme-on-action); --pf-border: var(--theme-border-light); }

/* CTA and footer keep independent contact channels. */
html[data-project-theme] .premium-cta { --pc-bg: var(--project-bg); --pc-surface: var(--project-surface); --pc-heading: var(--project-ink); --pc-text: var(--project-muted); --pc-accent: var(--project-brand); --pc-border: var(--project-border); --pc-tint: var(--project-secondary); --pc-whatsapp: var(--theme-whatsapp); --pc-whatsapp-text: var(--theme-on-whatsapp); --pc-phone-bg: var(--theme-phone); --pc-phone-text: var(--theme-on-phone); }
html[data-project-theme] .premium-cta.premium-centered-conversion .premium-cta__panel { background: var(--theme-bg-dark); border-color: var(--theme-border-dark); --pc-bg: var(--theme-bg-dark); --pc-heading: var(--theme-text-dark); --pc-text: var(--theme-muted-dark); --pc-accent: var(--theme-accent-on-dark); --pc-border: var(--theme-border-dark); --pc-tint: var(--theme-surface-dark); --pc-whatsapp: var(--theme-whatsapp); --pc-whatsapp-text: var(--theme-on-whatsapp); --pc-phone-bg: var(--theme-phone); --pc-phone-text: var(--theme-on-phone); }
html[data-project-theme] .premium-cta.premium-centered-conversion.premium-cta--dark .premium-cta__panel { background: var(--theme-surface-dark); --pc-bg: var(--theme-surface-dark); }
html[data-project-theme] .premium-cta.premium-highlighted-dual-contact { background: transparent; }
html[data-project-theme] .premium-highlighted-dual-contact .premium-cta__panel { background: radial-gradient(circle at 8% 0%, rgba(var(--theme-brand-rgb), .12), transparent 30%), linear-gradient(135deg, var(--theme-surface-dark), var(--theme-bg-dark) 42%); border-color: var(--theme-border-dark); box-shadow: 0 28px 80px rgba(var(--theme-shadow-rgb), .18); --pc-heading: var(--theme-text-dark); --pc-text: var(--theme-muted-dark); --pc-accent: var(--theme-accent-on-dark); --pc-whatsapp: var(--theme-whatsapp); --pc-whatsapp-text: var(--theme-on-whatsapp); --pc-phone-bg: var(--theme-phone); --pc-phone-text: var(--theme-on-phone); }
html[data-project-theme] .premium-footer { --pf-bg: var(--project-bg); --pf-surface: var(--project-surface); --pf-heading: var(--project-ink); --pf-text: var(--project-muted); --pf-accent: var(--project-brand); --pf-border: var(--project-border); --pf-action: var(--theme-whatsapp); --pf-action-text: var(--theme-on-whatsapp); }

/* Contact colours are roles, independent of the surrounding family palette.
   These classes are channel-specific, including disabled/editor placeholders. */
html[data-project-theme] :is(.btn-wpp, .float-wpp, .hero-premium__header-cta, :is(.hero-premium__action--whatsapp:where(:not([data-action-emphasis])),.hero-premium__action--primary), .hero-glass__header-cta, :is(.hero-glass__action--whatsapp:where(:not([data-action-emphasis])),.hero-glass__action--primary), .premium-block__action--whatsapp),
html[data-project-theme] .services-premium .services-premium__action--whatsapp,
html[data-project-theme] .premium-gallery .premium-block__action--whatsapp,
html[data-project-theme] .premium-gallery-option .premium-block__action--whatsapp,
html[data-project-theme] .premium-cta .premium-cta__action--whatsapp,
html[data-project-theme] .premium-coverage .premium-coverage__action:not(.premium-coverage__action--phone),
html[data-project-theme] .premium-footer .premium-footer__action:not(.premium-footer__action--phone),
html[data-project-theme] .premium-mobile-contact .btn-wpp {
  background: var(--theme-whatsapp); border-color: var(--theme-whatsapp); color: var(--theme-on-whatsapp);
}
html[data-project-theme] :is(.btn-wpp, .float-wpp, .hero-premium__header-cta, :is(.hero-premium__action--whatsapp:where(:not([data-action-emphasis])),.hero-premium__action--primary), .hero-glass__header-cta, :is(.hero-glass__action--whatsapp:where(:not([data-action-emphasis])),.hero-glass__action--primary), .premium-block__action--whatsapp):hover,
html[data-project-theme] .services-premium .services-premium__action--whatsapp:hover,
html[data-project-theme] .premium-gallery .premium-block__action--whatsapp:hover,
html[data-project-theme] .premium-gallery-option .premium-block__action--whatsapp:hover,
html[data-project-theme] .premium-cta a.premium-cta__action--whatsapp:hover,
html[data-project-theme] .premium-coverage a.premium-coverage__action:not(.premium-coverage__action--phone):hover,
html[data-project-theme] .premium-footer a.premium-footer__action:not(.premium-footer__action--phone):hover { background: var(--theme-whatsapp-hover); color: var(--theme-on-whatsapp); border-color: var(--theme-whatsapp-hover); }
html[data-project-theme] :is(.hero-actions .btn-phone, .cta-actions .btn-phone, :is(.hero-premium__action--phone:where(:not([data-action-emphasis])),.hero-premium__action--secondary), :is(.hero-glass__action--phone:where(:not([data-action-emphasis])),.hero-glass__action--secondary), .premium-block__action--phone),
html[data-project-theme] .premium-mobile-contact .btn-phone,
html[data-project-theme] .services-premium .services-premium__action--phone,
html[data-project-theme] .premium-gallery-option .premium-block__action--phone,
html[data-project-theme] .premium-content--benefits .premium-block__action--phone,
html[data-project-theme] .premium-photo-process .premium-block__action--phone,
html[data-project-theme] .premium-cta .premium-cta__action--phone,
html[data-project-theme] .premium-cta.premium-contact-options .premium-cta__action--phone,
html[data-project-theme] .premium-coverage .premium-coverage__action--phone,
html[data-project-theme] .premium-footer .premium-footer__action--phone,
html[data-project-theme] .premium-faq .premium-faq__phone {
  background: var(--theme-phone); border-color: var(--theme-phone); color: var(--theme-on-phone);
}
html[data-project-theme] :is(.hero-actions .btn-phone, .cta-actions .btn-phone, :is(.hero-premium__action--phone:where(:not([data-action-emphasis])),.hero-premium__action--secondary), :is(.hero-glass__action--phone:where(:not([data-action-emphasis])),.hero-glass__action--secondary), .premium-block__action--phone):hover,
html[data-project-theme] .services-premium .services-premium__action--phone:hover,
html[data-project-theme] .premium-cta a.premium-cta__action--phone:hover,
html[data-project-theme] .premium-coverage a.premium-coverage__action--phone:hover,
html[data-project-theme] .premium-footer a.premium-footer__action--phone:hover,
html[data-project-theme] .premium-faq .premium-faq__phone:hover { background: var(--theme-phone-hover); border-color: var(--theme-phone-hover); color: var(--theme-on-phone); }
html[data-project-theme] :is(.premium-lote04 .premium-lote04__action, .premium-lote04-c02 .premium-lote04-c02__action, .premium-lote04-c03 .premium-lote04-c03__action) { background: var(--theme-action); color: var(--theme-on-brand); border-color: var(--theme-action); }
html[data-project-theme] :is(.premium-lote04 .premium-lote04__action, .premium-lote04-c02 .premium-lote04-c02__action, .premium-lote04-c03 .premium-lote04-c03__action):hover { background: var(--theme-brand-hover); border-color: var(--theme-brand-hover); color: var(--theme-on-brand); }
html[data-project-theme] :is(.premium-faq .premium-faq__action, .premium-faq-option .pfo__action, .premium-dark-faq .pdfq__action):hover { background: var(--theme-action-hover); border-color: var(--theme-action-hover); color: var(--theme-on-action); }
/* Optional generic actions may be configured to a contact destination. */
html[data-project-theme] :is(.premium-lote04 .premium-lote04__action, .premium-lote04-c02 .premium-lote04-c02__action, .premium-lote04-c03 .premium-lote04-c03__action, .premium-faq .premium-faq__action, .premium-faq-option .pfo__action, .premium-dark-faq .pdfq__action)[href^="https://wa.me/"] { background: var(--theme-whatsapp); border-color: var(--theme-whatsapp); color: var(--theme-on-whatsapp); }
html[data-project-theme] :is(.premium-lote04 .premium-lote04__action, .premium-lote04-c02 .premium-lote04-c02__action, .premium-lote04-c03 .premium-lote04-c03__action, .premium-faq .premium-faq__action, .premium-faq-option .pfo__action, .premium-dark-faq .pdfq__action)[href^="https://wa.me/"]:hover { background: var(--theme-whatsapp-hover); border-color: var(--theme-whatsapp-hover); color: var(--theme-on-whatsapp); }
/* Preserve existing shadow sizes while replacing the embedded colour. */
html[data-project-theme] .btn-wpp { box-shadow: 0 14px 32px rgba(var(--theme-whatsapp-rgb), .28); }
html[data-project-theme] .btn-wpp:hover { box-shadow: 0 18px 38px rgba(var(--theme-whatsapp-rgb), .36); }
html[data-project-theme] .cta-block .btn-wpp,
html[data-project-theme] .premium-highlighted-dual-contact .premium-cta__action--whatsapp,
html[data-project-theme] .premium-highlighted-dual-contact a.premium-cta__action--whatsapp:hover { box-shadow: 0 18px 34px rgba(var(--theme-whatsapp-rgb), .26); }
html[data-project-theme] .float-wpp { box-shadow: 0 16px 36px rgba(var(--theme-whatsapp-rgb), .36); }
html[data-project-theme] .page-home .home-header-cta { box-shadow: 0 10px 24px rgba(var(--theme-whatsapp-rgb), .22); }
html[data-project-theme] .services-premium--clean .services-premium__action--whatsapp { box-shadow: 0 4px 12px rgba(var(--theme-whatsapp-rgb), .14); }
html[data-project-theme] .premium-gallery--service-cards .premium-block__action--whatsapp { box-shadow: 0 4px 10px rgba(var(--theme-whatsapp-rgb), .12); }
html[data-project-theme] :is(.hero-glass__action--phone:where(:not([data-action-emphasis])),.hero-glass__action--secondary) { box-shadow: 0 0 10px rgba(var(--theme-brand-rgb), .48); }
html[data-project-theme] :is(.simple-header-actions, .premium-mobile-contact) .btn-wpp { box-shadow: none; }
html[data-project-theme] :is(.premium-lote04, .premium-lote04-c02, .premium-lote04-c03, .premium-coverage, .premium-faq, .premium-faq-option, .premium-dark-faq, .premium-cta, .premium-footer) :is(a, button, summary, [tabindex]):focus-visible { outline-color: var(--project-accent); }
html[data-project-theme] :is(.premium-cta.premium-centered-conversion, .premium-highlighted-dual-contact) .premium-cta__panel :focus-visible { outline-color: var(--theme-accent-on-dark); }
html[data-project-theme] .premium-faq.premium-help-center .premium-faq__contact :focus-visible { outline-color: var(--theme-accent-on-dark); }
html[data-project-theme] .premium-faq.premium-help-center.premium-faq--dark .premium-faq__contact :focus-visible { outline-color: var(--theme-accent-on-light); }

/* Contract 2: project identity -> occurrence context -> component roles.
   Legacy selectors above remain frozen. Only explicit v2 adoption enters here.
   Accent is a small-area role, never a full block mode. */
html[data-project-theme][data-project-theme-version="2"] [data-theme-context="light"] {
  --project-bg: var(--theme-bg-light); --project-surface: var(--theme-surface-light); --project-secondary: var(--theme-surface-light-2);
  --project-ink: var(--theme-text-light); --project-muted: var(--theme-muted-light); --project-brand: var(--theme-brand-on-light); --project-accent: var(--theme-accent-on-light);
  --project-border: var(--theme-border-decorative-light); --project-control-border: var(--theme-border-functional-light); --project-focus: var(--theme-focus-light); --project-hover: var(--theme-state-hover-light); --project-rating: var(--theme-rating-on-light);
}
html[data-project-theme][data-project-theme-version="2"] [data-theme-context="dark"] {
  --project-bg: var(--theme-bg-dark); --project-surface: var(--theme-surface-dark); --project-secondary: var(--theme-surface-dark-2);
  --project-ink: var(--theme-text-dark); --project-muted: var(--theme-muted-dark); --project-brand: var(--theme-brand-on-dark); --project-accent: var(--theme-accent-on-dark);
  --project-border: var(--theme-border-decorative-dark); --project-control-border: var(--theme-border-functional-dark); --project-focus: var(--theme-focus-dark); --project-hover: var(--theme-state-hover-dark); --project-rating: var(--theme-rating-on-dark);
}
html[data-project-theme][data-project-theme-version="2"] [data-theme-context="brand"] {
  --project-bg: var(--theme-bg-brand); --project-surface: var(--theme-surface-brand); --project-secondary: var(--theme-surface-brand-2);
  --project-ink: var(--theme-text-brand); --project-muted: var(--theme-muted-brand); --project-brand: var(--theme-brand-on-brand); --project-accent: var(--theme-accent-on-brand);
  --project-border: var(--theme-border-decorative-brand); --project-control-border: var(--theme-border-functional-brand); --project-focus: var(--theme-focus-brand); --project-hover: var(--theme-state-hover-brand); --project-rating: var(--theme-rating-on-brand);
}
html[data-project-theme][data-project-theme-version="2"] [data-theme-context] {
  --text: var(--project-ink); --muted: var(--project-muted); --soft: var(--project-bg);
  color: var(--project-ink);
}
html[data-project-theme][data-project-theme-version="2"] [data-theme-context] :focus-visible { outline: 3px solid var(--project-focus); outline-offset: 4px; }

/* The photo and its scrim retain the dark context; identity also participates
   in the existing header plane instead of being limited to tiny icons. */
html[data-project-theme][data-project-theme-version="2"] .hero-premium[data-theme-context] .hero-premium__header {
  background: linear-gradient(110deg, var(--project-bg), var(--theme-identity-surface-dark));
  border-color: var(--project-border);
}

/* Classic dark cards must consume the same local roles as Premium families. */
html[data-project-theme][data-project-theme-version="2"] .section-dark[data-theme-context] { background: var(--project-bg); color: var(--project-ink); }
html[data-project-theme][data-project-theme-version="2"] .section-dark[data-theme-context] :is(h2,h3,strong) { color: var(--project-ink); }
html[data-project-theme][data-project-theme-version="2"] .section-dark[data-theme-context] :is(p,.card p,.card span) { color: var(--project-muted); }
html[data-project-theme][data-project-theme-version="2"] .section-dark[data-theme-context] .card { background: linear-gradient(130deg,var(--project-surface),var(--project-secondary)); border-color: var(--project-border); }
html[data-project-theme][data-project-theme-version="2"] .section-dark[data-theme-context] .card:hover { border-color: var(--project-brand); }
html[data-project-theme][data-project-theme-version="2"] .section-dark[data-theme-context] .icon-box { color: var(--project-brand); background: var(--project-bg); }
html[data-project-theme][data-project-theme-version="2"] .section-dark[data-theme-context] .card:first-child .icon-box { color: var(--project-accent); }
html[data-project-theme][data-project-theme-version="2"] [data-theme-context] .eyebrow { background: var(--project-surface); color: var(--project-brand); border-color: var(--project-brand); }

/* Editorial light areas keep their quiet background, with existing facts and
   signatures taking the legible brand role and short markers the accent role. */
html[data-project-theme][data-project-theme-version="2"] .premium-company-reference[data-theme-context] .pcr__facts dt { color: var(--project-brand); }
html[data-project-theme][data-project-theme-version="2"] .premium-company-reference[data-theme-context] .pcr__eyebrow { color: var(--project-accent); }
html[data-project-theme][data-project-theme-version="2"] .premium-gallery--editorial-grid[data-theme-context] {
  background: linear-gradient(122deg,transparent 0 13%,var(--theme-identity-surface-moderate) 13% 16%,transparent 16%),var(--project-bg);
}
html[data-project-theme][data-project-theme-version="2"] .premium-review-option[data-theme-context] .pro__review { border-color: var(--project-border); box-shadow: inset 0 2px var(--project-brand),0 10px 28px rgba(var(--theme-shadow-rgb),.02); }
html[data-project-theme][data-project-theme-version="2"] .premium-review-option[data-theme-context] .pro__signature { color: var(--project-brand); }
html[data-project-theme][data-project-theme-version="2"] .premium-review-option[data-theme-context] .pro__stars { color: var(--project-rating); }

html[data-project-theme][data-project-theme-version="2"] .services-premium[data-theme-context] { background: var(--project-bg); }
html[data-project-theme][data-project-theme-version="2"] .services-premium[data-theme-context] .services-premium__eyebrow { color: var(--project-accent); border-color: var(--project-border); }
html[data-project-theme][data-project-theme-version="2"] .services-premium[data-theme-context] .services-premium__benefits { background: var(--project-surface); border-color: var(--project-border); }
html[data-project-theme][data-project-theme-version="2"] .services-premium[data-theme-context] :is(.services-premium__benefit + .services-premium__benefit,.services-premium__location,.services-premium__service-arrow:before) { border-color: var(--project-border); }
html[data-project-theme][data-project-theme-version="2"] .services-premium[data-theme-context] .services-premium__service { background: linear-gradient(130deg,var(--project-surface),var(--project-secondary)); border-color: var(--project-border); }
html[data-project-theme][data-project-theme-version="2"] .services-premium[data-theme-context] .services-premium__service-icon { --sp-icon-cutout: var(--project-surface); }
html[data-project-theme][data-project-theme-version="2"] .services-premium[data-theme-context] .services-premium__service-arrow { color: var(--project-brand); }
html[data-project-theme][data-project-theme-version="2"] .services-premium[data-theme-context] .services-premium__signature { color: var(--project-ink); }

html[data-project-theme][data-project-theme-version="2"] .premium-process[data-theme-context] .premium-process__step-number { background: var(--theme-accent-surface); color: var(--theme-on-accent); }
html[data-project-theme][data-project-theme-version="2"] [data-theme-context] .faq-wrap { background: var(--project-surface); border-color: var(--project-control-border); }
html[data-project-theme][data-project-theme-version="2"] [data-theme-context] .faq-item + .faq-item { border-color: var(--project-border); }
html[data-project-theme][data-project-theme-version="2"] [data-theme-context] .faq-question { color: var(--project-ink); }
html[data-project-theme][data-project-theme-version="2"] [data-theme-context] .faq-answer { color: var(--project-muted); }
html[data-project-theme][data-project-theme-version="2"] [data-theme-context] .faq-question:is(:hover,[aria-expanded="true"]) { background: var(--project-hover); color: var(--project-brand); }
html[data-project-theme][data-project-theme-version="2"] [data-theme-context] .faq-plus { background: var(--project-secondary); color: var(--project-brand); }

/* Conversion is a brand panel within the page's quiet outer background. Its
   palette is resolved centrally; no client or preset names enter components. */
html[data-project-theme][data-project-theme-version="2"] .premium-highlighted-dual-contact[data-theme-context] .premium-cta__panel {
  --pc-heading: var(--project-ink); --pc-text: var(--project-muted); --pc-accent: var(--project-accent);
  background: linear-gradient(115deg,var(--project-surface),var(--project-bg)); border-color: var(--project-border);
}
html[data-project-theme][data-project-theme-version="2"] .premium-highlighted-dual-contact:is([data-theme-context="dark"],[data-theme-context="brand"]) .premium-cta__panel {
  --pc-heading: var(--theme-text-brand); --pc-text: var(--theme-muted-brand); --pc-accent: var(--theme-accent-on-brand); --pc-tint: var(--theme-surface-brand); --pc-border: var(--theme-border-decorative-brand); --project-focus: var(--theme-focus-brand);
  background: linear-gradient(115deg,var(--theme-brand-panel) 0% 42%,var(--theme-brand-panel-end) 100%);
  border-color: var(--theme-border-decorative-brand);
}
html[data-project-theme][data-project-theme-version="2"] .premium-highlighted-dual-contact[data-theme-context] .premium-cta__action--phone { box-shadow: 0 0 0 1px var(--theme-on-phone); }
html[data-project-theme][data-project-theme-version="2"] .premium-highlighted-dual-contact[data-theme-context] .premium-cta__panel :focus-visible { outline-color: var(--project-focus); }
html[data-project-theme][data-project-theme-version="2"] .premium-footer[data-theme-context="dark"] { --pf-surface: var(--theme-identity-surface-moderate); }
html[data-project-theme][data-project-theme-version="2"] .premium-footer[data-theme-context] { background: var(--project-bg); }
html[data-project-theme][data-project-theme-version="2"] .premium-footer[data-theme-context] .premium-footer__eyebrow { color: var(--project-accent); }

