/* Shared action design: a quiet rectangular body and a distinct arrow tile. */
.button{
  --action-bg:#3457df;--action-ink:#fff;--action-border:transparent;
  --action-icon-bg:#ffffff20;--action-icon-ink:#fff;
  display:inline-flex;align-items:center;justify-content:space-between;
  min-height:58px;max-width:100%;gap:22px;padding:7px 7px 7px 22px;
  border:1px solid var(--action-border);border-radius:18px;
  background:var(--action-bg);color:var(--action-ink);
  font-size:14px;font-weight:700;line-height:1.4;letter-spacing:-.015em;
  box-shadow:0 2px 3px #14245406;
  transition:transform .25s ease,background .25s ease,box-shadow .25s ease,border-color .25s ease;
}
.button-label{min-width:0}
.button-icon{display:grid;place-items:center;flex:0 0 42px;align-self:center;width:42px;height:42px;border-radius:12px;background:var(--action-icon-bg);color:var(--action-icon-ink);overflow:hidden;transition:background .25s,color .25s}
.button .button-icon svg{width:19px;height:19px;transition:transform .3s cubic-bezier(.22,1,.36,1)}
.button:hover{background:var(--action-bg);color:var(--action-ink);transform:translateY(-2px);box-shadow:0 9px 22px #1028821a}
.button:hover .button-icon svg{transform:translateX(3px)}
.button:active{transform:translateY(0);box-shadow:0 2px 3px #14245406}
.button:focus-visible{outline:3px solid #6078bc;outline-offset:5px}
.button:disabled{opacity:.5;cursor:default;transform:none;box-shadow:none}
.button:not(:has(.button-icon)){padding:16px 22px}
.button.light{--action-bg:#fff;--action-ink:#24334b;--action-icon-bg:#3457df;--action-icon-ink:#fff;background:var(--action-bg);color:var(--action-ink)}
.button.light:hover{background:#fff;color:var(--action-ink)}
.button.light:hover .button-icon{background:#3457df;color:#fff}
.button.outline{--action-bg:#2e4ac2;--action-ink:#fff;--action-border:#819aff70;--action-icon-bg:#ffffff16;background:var(--action-bg);border-color:var(--action-border);color:var(--action-ink)}
.button.outline:hover{background:#2944b3;border-color:#a7c3ffb0}
.button.outline:hover .button-icon{background:#fff;color:#2944b3}
.button.secondary{--action-bg:transparent;--action-ink:#3457df;--action-border:#3457df;--action-icon-bg:#3457df;--action-icon-ink:#fff;background:var(--action-bg);border-color:var(--action-border);color:var(--action-ink)}
.button.secondary:hover{background:#fff}
.button.header-cta{font-size:13px;min-height:48px;justify-content:center;gap:0;padding:0 20px;border-radius:12px}
.flow-bottom .button,.page-hero .actions .button,.form-actions .button{font-size:14px;min-height:58px;gap:22px;padding:7px 7px 7px 22px}
.form-actions .button:not(:has(.button-icon)){padding:16px 22px}
.form-actions .button{max-width:100%}
.form-actions{flex-wrap:wrap}

/* The route itself stays one accessible link; this is its visible action. */
.route-action{min-height:54px;padding:6px 6px 6px 19px;gap:20px;border:1px solid #c5cedf;border-radius:17px;background:#fff;color:#24334b;transition:background .25s,color .25s,border-color .25s,box-shadow .25s}
.route-arrow{width:40px;height:40px;flex:0 0 40px;border:0;border-radius:11px;background:#3457df;color:#fff;transition:background .25s,color .25s}
.route-arrow svg{transition:transform .3s cubic-bezier(.22,1,.36,1)}
.route-choice:is(:hover,:focus-visible) .route-action{background:#3457df;border-color:#3457df;color:#fff;box-shadow:0 7px 18px #3457df1c}
.route-choice:is(:hover,:focus-visible) .route-arrow{transform:none;background:#ffffff20;color:#fff}
.route-choice:is(:hover,:focus-visible) .route-arrow svg{transform:translateX(3px)}

/* Include the normal navigation in the first screen. Content can grow when a
   short viewport or larger text needs more room: nothing is cropped to fit. */
:root{--site-header-height:89px}
.home-hero{
  min-height:calc(100vh - var(--site-header-height));
  min-height:calc(100svh - var(--site-header-height));
  display:flex;flex-direction:column;justify-content:space-between;align-items:stretch;
}
.home-hero .hero-copy{flex:0 0 auto;padding:clamp(28px,4.8svh,64px) 24px 0}
.home-hero .hero-copy h1{font-size:clamp(46px,min(5.6vw,9svh),82px)}
.home-hero .flow-hero-anchor{flex:0 0 auto;height:clamp(160px,29svh,320px)}
.home-hero .flow-bottom{flex:0 0 auto;padding:0 24px 24px}
.home-hero .flow-bottom .button{width:280px;min-width:258px;min-height:60px}
.home-hero .flow-bottom .actions{gap:14px}
.home-hero .hero-note{margin-top:20px}
.hero-discover{display:inline-flex;align-items:center;justify-content:center;gap:10px;margin-top:18px;padding:4px 0;color:#fff;font-size:12px;line-height:1.4}
.hero-discover svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.5;transform:rotate(90deg);transition:transform .25s}
.hero-discover:hover{color:#fff}
.hero-discover:hover svg{transform:rotate(90deg) translateX(3px)}
@media(min-width:821px) and (max-height:740px){
  .home-hero .hero-copy{padding-top:22px}
  .home-hero .hero-copy .eyebrow{font-size:11px;margin-bottom:10px}
  .home-hero .hero-copy h1{font-size:clamp(46px,min(5.6vw,8.5svh),68px)}
  .home-hero .hero-copy>p:last-child{font-size:15px;margin-top:14px}
  .home-hero .flow-hero-anchor{height:clamp(130px,24svh,190px)}
  .home-hero .flow-bottom{padding-bottom:18px}
  .home-hero .flow-bottom .button{min-height:54px;padding:5px 5px 5px 20px}
  .home-hero .hero-note{margin-top:14px}
  .hero-discover{margin-top:10px}
}
@media(max-width:1100px){.button.header-cta{padding-inline:18px}}
@media(max-width:820px){
  :root{--site-header-height:75px}
  .home-hero .hero-copy{padding:clamp(26px,4svh,44px) 20px 0}
  .home-hero .hero-copy h1{font-size:clamp(42px,min(7.5vw,8.5svh),62px)}
  .home-hero .flow-hero-anchor{height:clamp(160px,25svh,260px)}
  .home-hero .flow-bottom{padding:0 20px 22px}
  .home-hero .flow-bottom .button{min-width:235px;font-size:14px}
  .button.header-cta{min-height:44px;padding-inline:16px;font-size:12px;border-radius:11px}
}
@media(max-width:600px){
  .home-hero .flow-bottom .actions{display:grid;grid-template-columns:1fr;gap:10px;max-width:360px;margin-inline:auto}
  .home-hero .flow-bottom .button{min-width:0;width:100%;min-height:54px;padding:5px 5px 5px 19px}
  .home-hero .flow-hero-anchor{height:clamp(140px,23svh,220px)}
  .home-hero .hero-copy h1{font-size:clamp(39px,10.5vw,52px)}
  .home-hero .hero-copy .eyebrow{font-size:10px;margin-bottom:14px}
  .home-hero .hero-copy>p:last-child{font-size:15px;line-height:1.6;margin-top:18px}
  .home-hero .hero-note{font-size:11px;gap:8px 14px;margin-top:16px;justify-content:center}
  .hero-discover{font-size:11px;margin-top:12px}
  .route-action{font-size:13px;min-height:50px;padding:5px 5px 5px 16px;gap:15px}
  .route-arrow{width:38px;height:38px;flex-basis:38px}
}
@media(max-width:600px) and (max-height:740px){
  .home-hero .hero-copy{padding-top:20px}
  .home-hero .hero-copy h1{font-size:clamp(32px,9.2vw,38px)}
  .home-hero .hero-copy .eyebrow{margin-bottom:12px}
  .home-hero .hero-copy>p:last-child{font-size:14px;margin-top:14px}
  .home-hero .flow-hero-anchor{height:clamp(130px,21svh,155px)}
  .home-hero .flow-bottom{padding-bottom:18px}
}
@media(prefers-reduced-motion:reduce){
  .button:hover,.button:active,.button:hover .button-icon svg,.route-choice:is(:hover,:focus-visible) .route-arrow svg{transform:none}
  .hero-discover:hover svg{transform:rotate(90deg)}
}

.closing .button,.page-hero.peach .button,.contact-card:nth-child(2) .button{--action-bg:#fff;--action-ink:#24334b;--action-icon-bg:#3457df;--action-icon-ink:#fff;background:#fff;color:#24334b}
.closing .button:hover,.page-hero.peach .button:hover,.contact-card:nth-child(2) .button:hover{background:#fff;color:#24334b}
.route-choice:is(:hover,:focus-visible) .route-action{background:#3457df;border-color:#3457df}

/* Scroll treatment stays inside the fullscreen hero. Focus and fallback keep
   the primary actions readable regardless of the current scroll position. */
.home-hero .flow-bottom:focus-within{opacity:1!important}
.scene-fallback .home-hero .flow-bottom{opacity:1!important;pointer-events:auto!important}
.scene-fallback .home-hero .scene{visibility:hidden}
@media(prefers-reduced-motion:reduce){.home-hero .flow-bottom{opacity:1!important;pointer-events:auto!important}}
