/* Obrandy design-system custom CSS. Documented, scoped by .obr- prefixed classes. */
:root{
  --obr-iris:#5B5CE2; --obr-iris-dark:#4849C8; --obr-iris-light:#EFEDFF;
  --obr-ink:#17233C; --obr-body:#46536B; --obr-muted:#758198;
  --obr-canvas:#FFFDF8; --obr-cloud:#F1F5FF; --obr-white:#FFFFFF;
  --obr-mint:#42D6C1; --obr-coral:#FF7864; --obr-yellow:#FFD666;
  --obr-mint-bg:#E9FBF7; --obr-coral-bg:#FFF0ED; --obr-yellow-bg:#FFF7DC;
  --obr-border:#DDE5F0; --obr-success:#24B47E; --obr-error:#E45454;
  --obr-shadow:0 18px 60px rgba(23,35,60,0.08);
}

/* Header logo (SVG mark + live wordmark text so it stays simple + editable) */
.obr-logo{display:flex;align-items:center;gap:10px;text-decoration:none;font-family:'Sora',sans-serif;font-weight:700;font-size:21px;color:var(--obr-ink);line-height:1;}
.obr-logo svg{flex-shrink:0;display:block;}
.obr-logo-text{letter-spacing:-0.02em;}

/* Sticky header: transparent-ish at top, solid warm canvas once scrolled (class toggled by script.js) */
.obr-header{transition:background-color .3s ease, box-shadow .3s ease;}
.obr-header.is-scrolled{background-color:var(--obr-canvas) !important;box-shadow:0 8px 30px rgba(23,35,60,0.08);}

/* Primary CTA micro-interaction */
.obr-btn-primary a,
a.obr-btn-primary,
.obr-btn-primary .elementor-button{transition:transform .18s ease, box-shadow .18s ease;}
.obr-btn-primary a:hover,
.obr-btn-primary .elementor-button:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(91,92,226,.28);}

/* Visible keyboard focus states site-wide */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible, [tabindex]:focus-visible{
  outline:2px solid var(--obr-iris); outline-offset:2px; border-radius:4px;
}

/* Section entrance animation (level 2): fade+rise, staggered via nth-child delay */
.obr-reveal{opacity:0; transform:translateY(22px); transition:opacity .6s ease, transform .6s ease;}
.obr-reveal.is-visible{opacity:1; transform:translateY(0);}

/* Signature animation: business passing through the obrandy 'o' portal (hero) */
.obr-portal{position:relative;}
.obr-portal .obr-portal-before,
.obr-portal .obr-portal-after{transition:opacity .5s ease, transform .5s ease;}
.obr-portal.is-transformed .obr-portal-before{opacity:0; transform:scale(.94);}
.obr-portal.is-transformed .obr-portal-after{opacity:1; transform:scale(1);}
.obr-portal .obr-portal-after{opacity:0; position:absolute; inset:0; transform:scale(1.04);}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important;}
  .obr-reveal{opacity:1 !important; transform:none !important;}
}