/* Public-site conventions; saved appearance overrides still take precedence.
   Navigation, filters, disclosures and editorial links remain distinct. */
.intro,.legal-page{--action-ink:var(--ink)}
.interior-page{--action-ink:var(--canvas-fg)}
.interior-page spa-footer{--action-ink:var(--ink)}
.wpd-actions{--action-ink:var(--wpd-foreground)}
:is(.hero-cta,.intro-action,.whatsapp-button,.footer-contact,.site-footer-contact,.primary-link,.content-page .outline-action,.wpd-actions .wpd-enquiry-link,.interior-page spa-footer .footer-contact,.contact-page .contact-whatsapp .whatsapp-direct){
  display:inline-flex;align-items:center;justify-content:space-between;gap:24px;
  width:auto;height:auto;min-height:48px;max-width:100%;padding:13px 18px;
  border:1px solid currentColor;border-radius:0;background:transparent;
  color:var(--action-ink,var(--paper));font-size:14px;font-weight:400!important;line-height:1.4;letter-spacing:.01em;
  box-shadow:none;filter:none;transform:none;text-decoration:none;
  transition:background-color .2s ease,color .2s ease,border-color .2s ease;
}
:is(.hero-cta,.intro-action,.whatsapp-button,.footer-contact,.site-footer-contact,.primary-link,.content-page .outline-action,.wpd-actions .wpd-enquiry-link,.interior-page spa-footer .footer-contact,.contact-page .contact-whatsapp .whatsapp-direct):is(:hover,:focus-visible){
  background:var(--ink);color:var(--paper);
  border-color:var(--copper);box-shadow:none;filter:none;transform:none;
}
:is(.hero-cta,.intro-action,.whatsapp-button,.footer-contact,.site-footer-contact,.primary-link,.outline-action,.wpd-enquiry-link):focus-visible{outline:2px solid var(--action-ink,var(--paper));outline-offset:4px}
.whatsapp-button .whatsapp-arrow{width:20px;opacity:1;transform:none;font-size:20px;line-height:1;transition:transform .2s ease}
.intro-action-arrow,.primary-link::after,.content-page .outline-action span{font-size:20px;line-height:1}
.intro-action:hover .intro-action-arrow,.primary-link:hover::after,.content-page .outline-action:hover span{transform:translateX(3px)}

/* Readable defaults; only a running sequence opts into the initial state. */
.hero-word,.whatsapp-word{color:var(--paper)}
.hero .eyebrow,.hero .hero-bottom{opacity:1;transform:none;transition:opacity .4s linear,transform .4s ease}
.hero.is-text-animating .hero-word,.whatsapp-cta.is-text-animating .whatsapp-word{color:rgba(var(--paper-rgb),.25);opacity:.25;transition:color .14s ease,opacity .4s linear}
.hero.is-text-animating .hero-word.is-flashing,.whatsapp-cta.is-text-animating .whatsapp-word.is-flashing{color:var(--copper);opacity:1}
.hero.is-text-animating .hero-word.is-lit,.whatsapp-cta.is-text-animating .whatsapp-word.is-lit{color:var(--paper);opacity:1}
.hero.is-text-animating:not(.hero-copy-visible) .eyebrow,.hero.is-text-animating:not(.hero-copy-visible) .hero-bottom{opacity:0;transform:translate3d(0,12px,0)}
.hero.hero-copy-visible .hero-bottom{transition-delay:.2s}
.interior-page .colour-word,.interior-page.interior-light .colour-word{color:var(--canvas-fg);transition:none}
.interior-page .reveal{transform:translate3d(0,12px,0);transition:opacity .4s linear var(--reveal-delay,0ms),transform .4s ease var(--reveal-delay,0ms)}
.interior-page .reveal.is-visible{transform:none}
.home-reveal{opacity:0}
.home-reveal.is-reading-visible{animation:reading-fade .4s linear var(--reading-delay,0ms) both}
.home-reveal:focus-within{opacity:1;animation:none}
.intro.is-intro-visible .intro-statement:not(.home-reveal){animation:none}
.intro.is-intro-visible .intro-statement.home-reveal:not(.is-reading-visible){animation:none}
.intro.is-intro-visible .intro-statement.home-reveal.is-reading-visible{animation:reading-fade .4s linear var(--reading-delay,0ms) both}
@keyframes reading-fade{from{opacity:0}to{opacity:1}}
/* Newly visible items start halfway through the preceding 400ms fade.
   script.js sets a fresh stagger for each group entering the viewport. */
.awards-image,.awards-copy h2,.awards-detail>p,.awards-info,.awards-links a,.awards-eyebrow{--awards-reveal-delay:0s;transition:opacity .4s linear var(--awards-reveal-delay),transform .4s cubic-bezier(.2,0,0,1) var(--awards-reveal-delay),background-color .22s ease,color .22s ease}
.whatsapp-cta .whatsapp-mark,.whatsapp-cta p,.whatsapp-cta .whatsapp-button{opacity:1;transform:none;transition:opacity .4s linear,transform .4s ease,background-color .2s ease,color .2s ease,border-color .2s ease}
.whatsapp-cta.is-text-animating .whatsapp-button{transition:opacity .4s linear,transform .4s ease,background-color .2s ease,color .2s ease,border-color .2s ease}
.whatsapp-cta.is-text-animating:not(.is-mark-visible) .whatsapp-mark,.whatsapp-cta.is-text-animating:not(.is-copy-visible) p,.whatsapp-cta.is-text-animating:not(.is-button-visible) .whatsapp-button{opacity:0;transform:translate3d(0,12px,0)}
.whatsapp-cta.is-button-visible .whatsapp-button{transition-delay:.2s,.2s,0s,0s,0s}
/* Keyboard navigation must never land on an invisible waiting button. */
.hero.is-text-animating .hero-bottom:focus-within,.whatsapp-cta.is-text-animating .whatsapp-button:focus{opacity:1;transform:none;transition:none}
.intro.is-intro-visible .intro-statement.home-reveal:focus-within{opacity:1;animation:none}
@media(min-width:901px) and (max-width:1100px){
  .about-panel{left:auto;right:0}
}
@media(prefers-reduced-motion:reduce){
  .home-reveal,.home-reveal.is-reading-visible,.intro.is-intro-visible .intro-statement.home-reveal{opacity:1;animation:none}
  .hero.is-text-animating .hero-word,.whatsapp-cta.is-text-animating .whatsapp-word{opacity:1;color:var(--paper);transition:none}
  .hero.is-text-animating .eyebrow,.hero.is-text-animating .hero-bottom,.whatsapp-cta.is-text-animating .whatsapp-mark,.whatsapp-cta.is-text-animating p,.whatsapp-cta.is-text-animating .whatsapp-button{opacity:1;transform:none;transition:none}
  .interior-page .reveal{opacity:1;transform:none;transition:none}
  .awards.is-reveal-ready :where(.awards-image,.awards-copy h2,.awards-detail>p,.awards-info,.awards-links a,.awards-eyebrow),.awards-image,.awards-copy h2,.awards-detail>p,.awards-info,.awards-links a,.awards-eyebrow{opacity:1;transform:none;transition:none}
  .contact-stage .contact-intro,.contact-stage .contact-intro>p,.contact-stage .contact-intro>.wpd-actions{opacity:1;transform:none;transition:none}
  .intro-action-arrow,.primary-link::after,.content-page .outline-action span,.whatsapp-button .whatsapp-arrow{transition:none}
}
