/* Shared action roles. Load after page styles; keep brand artwork unchanged. */
:root {
  --control-radius:12px;
  --control-border:#7c877d;
  --control-hover:#edf3e9;
  --control-selected:#e4efdd;
  --action-bg:#004223;
  --action-text:#fff;
  --action-hover:#155b36;
  --action-pressed:#00351c;
  --focus-ring:#26783c;
  --field-bg:#fff;
  --field-focus:#656a70;
  --error-ink:#ac281e;
  --surface:var(--pale);
}
:root[data-theme=dark] {
  --control-border:#7a897d;
  --control-hover:#2b362d;
  --control-selected:#30422d;
  --action-bg:#26783c;
  --action-text:#fff;
  --action-hover:#308346;
  --action-pressed:#1d6532;
  --focus-ring:#78c051;
  --field-bg:#191f1a;
  --field-focus:#bac0c6;
  --error-ink:#ffb4a9;
}
.hp :is(a,button,summary,input,textarea,select) {
  -webkit-tap-highlight-color:transparent;
  transition:background-color 160ms ease,color 160ms ease,border-color 160ms ease,box-shadow 160ms ease;
}
.hp :is(a,button,summary,input,textarea,select):focus-visible {
  outline:3px solid var(--focus-ring);
  outline-offset:4px;
}
.hp :is(button,summary) { touch-action:manipulation; }
/* Primary: the same material in the hero, header, forms and product sections. */
.hp :is(.hp-button,.showcase-primary,.approved-header-cta),
.hp .hp-product-intro .hp-button,
.hp .hp-more>.hp-wrap>.hp-actions .hp-button {
  display:inline-flex;align-items:center;justify-content:center;gap:12px;
  min-height:48px;padding:13px 22px;border:1px solid transparent;
  border-radius:var(--control-radius);background:var(--action-bg);
  color:var(--action-text)!important;font-weight:600;line-height:1.35;
  text-decoration:none;filter:none;cursor:pointer;
}
.hp .approved-header-cta { min-height:44px;padding:10px 18px; }
.hp .hp-contact-form .hp-button { min-height:52px;font-size:17px; }
.hp :is(.hp-button,.showcase-primary,.approved-header-cta):is(:hover,:focus-visible),
.hp .hp-product-intro .hp-button:hover,
.hp .hp-more>.hp-wrap>.hp-actions .hp-button:hover {
  background:var(--action-hover);color:var(--action-text)!important;filter:none;
}
.hp :is(.hp-button,.showcase-primary,.approved-header-cta):active,
.hp .hp-product-intro .hp-button:active {background:var(--action-pressed);transform:translateY(1px)}
/* Secondary and compact controls share a quiet outlined surface. */
.hp :is(.theme-switch,.approved-search-link,.approved-review-controls button,.team-portrait-controls button,.nekon-dialog-head>button,.mobile-navigation-top button,.nekon-chat-topics button,.ai-catalog-nav button) {
  border:1px solid var(--control-border);border-radius:var(--control-radius);
  background:var(--page-bg);color:var(--ink);min-width:44px;min-height:44px;
  display:inline-flex;align-items:center;justify-content:center;
}
.hp :is(.approved-menu summary,.hp-mobile-menu summary,.nekon-language summary) {min-height:44px;border-radius:var(--control-radius)}
.hp :is(.theme-switch,.approved-search-link,.approved-review-controls button,.team-portrait-controls button,.nekon-dialog-head>button,.mobile-navigation-top button,.nekon-chat-topics button,.ai-catalog-nav button):hover,
.hp :is(.approved-menu summary,.hp-mobile-menu summary,.nekon-language summary):hover {background:var(--control-hover);color:var(--ink);border-color:var(--green)}
.hp :is(.approved-review-controls button,.team-portrait-controls button):active {background:var(--control-selected);transform:translateY(1px)}
.hp .hp-infrastructure .hp-product-intro .hp-link {border-color:var(--control-border);border-radius:var(--control-radius);min-height:48px;display:inline-flex;align-items:center;justify-content:center}
.hp .hp-infrastructure .hp-product-intro .hp-link:hover {background:var(--control-hover)}
/* Text links stay recognisable without turning every click into a button. */
.hp :is(.hp-link,.showcase-secondary,.ai-article-body a,.approved-footer a,.nekon-quick-links a) {text-underline-offset:5px;text-decoration-thickness:1px}
.hp :is(.hp-link,.showcase-secondary,.approved-footer a,.nekon-quick-links a):hover {text-decoration:underline;filter:none}
.hp :is(.approved-mega a,.nekon-language a,.mobile-navigation-main a,.mobile-navigation-services a) {border-radius:6px}
.hp :is(.approved-mega a,.nekon-language a,.mobile-navigation-main a,.mobile-navigation-services a):hover {background:var(--control-hover);color:var(--green)}
.hp :is(.ai-faq-list summary,.hp-product-categories a):hover {color:var(--green)}
.hp .approved-reviews .hp-review-tabs button {border-color:var(--control-border);border-radius:var(--control-radius)}
.hp .approved-reviews .hp-review-tabs button:hover {background:var(--control-hover)}
.hp .approved-reviews .hp-review-tabs button[aria-selected=true],
.hp .ai-catalog-nav button[aria-pressed=true] {background:var(--control-selected);color:var(--ink);border-color:var(--green);box-shadow:inset 0 -3px 0 var(--green)}
.hp [data-theme-choice] {border-radius:6px}
.hp [data-theme-choice]:hover {background:var(--control-hover);color:var(--ink)}
/* Leave room for the fixed assistant so footer theme choices stay clickable. */
.hp .approved-footer-base {padding-bottom:96px}
/* Fields, autofill and validation are themed independently of the browser. */
.hp :is(.hp-contact-form,.ai-tender-form,.ai-search-form,.nekon-dialog) :is(input:not([type=checkbox]):not([type=hidden]):not([type=file]),textarea,select) {
  background:var(--field-bg);color:var(--ink);border:1px solid var(--field-border,var(--control-border));
  border-radius:var(--control-radius);caret-color:var(--green);
}
.hp :is(input,textarea)::placeholder {color:var(--muted);opacity:1}
.hp :is(input,textarea,select) {accent-color:var(--green)}
.hp :is(input,textarea):autofill {box-shadow:0 0 0 1000px var(--field-bg) inset;-webkit-text-fill-color:var(--ink)}
.hp :is(input,textarea)[aria-invalid=true],.hp .ai-file-picker:has([aria-invalid=true]) {border-color:var(--error-ink)}
.hp [aria-invalid=true] {--field-border:var(--error-ink)}
.hp :is(input,textarea,select):focus-visible,
.hp .ai-file-picker:focus-within {
  outline:2px solid var(--field-focus);outline-offset:2px;
}
.hp :is(input,textarea,select):focus {caret-color:var(--ink)}
.hp .ai-file-picker {border-color:var(--control-border);background:var(--field-bg)}
.hp .ai-file-picker:hover {border-color:var(--green);background:var(--control-hover)}
.hp .approved-contact-success button {color:var(--green)}
.hp .showcase-heading-accent {color:var(--green)}
/* OpenStreetMap's embedded cartography has no theme API. Limit this treatment
   to that map frame: product images, photographs and logos keep their colours. */
:root[data-theme=dark] .hp .ai-location iframe[src*="openstreetmap.org"] {filter:invert(.92) hue-rotate(180deg) saturate(.55)}
.hp .nekon-dialog {--overlay-text:var(--ink);--overlay-muted:var(--muted)}
.hp :is(.nekon-chat-launch,#nekon-chat-form button) {background:var(--action-bg);color:var(--action-text);border-radius:var(--control-radius);min-width:48px;min-height:48px}
.hp :is(.nekon-chat-launch,#nekon-chat-form button):hover {background:var(--action-hover)}
.hp .nekon-chat-user {background:var(--control-selected);color:var(--ink)}
.hp #nekon-search-results a:hover {background:var(--control-hover)}
.hp :is(button:disabled,[aria-disabled=true]) {opacity:.5;cursor:not-allowed;filter:none;transform:none;box-shadow:none;pointer-events:none}
@media(prefers-reduced-motion:reduce) {
  .hp :is(a,button,summary,input,textarea,select) {transition:none}
  .hp :is(.hp-button,.showcase-primary,.approved-header-cta):active,
  .hp .hp-product-intro .hp-button:active,
  .hp :is(.approved-review-controls button,.team-portrait-controls button):active {transform:none}
}
@media(forced-colors:active) {
  .hp :is(a,button,summary,input,textarea,select):focus-visible {outline-color:Highlight}
  .hp :is(.hp-button,.showcase-primary,.approved-header-cta) {border-color:ButtonText;color:ButtonText!important}
}

/* Original Verano family: real faces, no browser-generated bold or italics. */
.hp {font-synthesis:none;font-weight:400}
.hp :is(button,input,textarea,select) {font-family:inherit}
.hp h1,.hp .showcase-copy h1,.hp-secondary .hp-heading h1 {font-weight:900}
.hp h2,.hp .hp-heading h2,.hp .team-portraits-heading h2 {font-weight:800}
.hp h3,.hp .approved-directions h3 {font-weight:700}
.hp :is(strong,b) {font-weight:700}
.hp :is(p,blockquote,input,textarea,select) {font-weight:400}
.hp .showcase-copy p,.hp .hp-lead,.hp .ai-lead {font-weight:300;line-height:1.5}
.hp .hp-desktop-nav,.hp .hp-link,.hp .team-portrait h3 {font-weight:500}
.hp :is(.hp-button,.showcase-primary,.approved-header-cta,label,.ai-catalog-nav button) {font-weight:600}
.hp .hp-process-number,.hp .ai-404 {font-weight:200}
.hp :is(.hp-eyebrow,small,.nekon-chat-note,.approved-footer-base) {font-weight:400}
