/* FOSTEN • Refinements layered over the original visual language.
   Keep style.css; this file adds accessibility, responsive layout and polish. */
:root { --accent:#6566AE; --accent-bright:#8B8AD1; }
html { scroll-padding-top:92px; }
body { min-width:320px; }
::selection { background:#7474bd; color:#fff; }
.skip-link { position:fixed; top:-80px; left:20px; z-index:10001; padding:12px 20px; background:#fff; color:#080808; }
.skip-link:focus { top:12px; }
:where(a,button,input,textarea,select):focus-visible { outline:2px solid var(--accent-bright); outline-offset:4px; }
.logo { position:relative; display:flex; align-items:center; min-width:155px; min-height:54px; }
.logo img[hidden] { display:none!important; }
.logo .logo-fallback { font-weight:800; font-size:1.35rem; }
#nav { gap:22px; }
#nav nav { align-items:center; gap:clamp(12px,1.7vw,32px); }
#nav nav a { white-space:nowrap; }
.nav-toggle { display:none; background:transparent; color:var(--white); border:1px solid var(--line); padding:11px; border-radius:3px; width:45px; flex-shrink:0; }
.nav-toggle span { display:block; height:2px; background:currentColor; margin:4px 0; transition:transform .3s ease, opacity .3s ease; }
.nav-toggle[aria-expanded="true"] span:first-child { transform:translateY(6px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2) { opacity:0; }
.nav-toggle[aria-expanded="true"] span:last-child { transform:translateY(-6px) rotate(-45deg); }
#fosten-scroll-progress { position:fixed; inset:0 auto auto 0; height:3px; width:0; z-index:9998; background:linear-gradient(90deg,#6566AE,#aaa9ed); transform-origin:left; box-shadow:0 0 16px #6566ae66; }
#hero .hero-title { overflow:hidden; }
.hero-title span { display:block; will-change:transform; }
.hero .hero-actions .button { position:relative; overflow:hidden; }
.hero .hero-actions .button::after { pointer-events:none; }
.hero-bottom { max-width:90%; gap:16px; }
.manifesto-image { will-change:clip-path; }
.manifesto-copy p,.statement p { max-width:620px; }
.service-pin { overflow-x:auto; scrollbar-width:thin; scroll-snap-type:x proximity; }
html.motion-ready .service-pin { overflow:hidden; scroll-snap-type:none; }
.service-card { isolation:isolate; min-height:560px; padding:35px; }
.service-card h3 { font-size:clamp(2rem,3.3vw,3.5rem); }
.service-card p { margin-top:16px; line-height:1.55; }
.service-card button { padding:10px 0; border-bottom:1px solid rgba(255,255,255,.26); }
.service-card button:hover { border-color:var(--accent-bright); }
.service-meta { position:relative; z-index:2; margin-top:14px; border-top:1px solid rgba(255,255,255,.09); padding-top:14px; color:#aaa8a4; font-size:.69rem; line-height:1.6; }
.service-more { position:relative; z-index:3; margin-top:10px; color:#d7d3f6; font-size:.74rem; letter-spacing:.015em; }
.service-more:hover { text-decoration:underline; text-underline-offset:4px; }
.capabilities { padding:12vw 5vw; background:linear-gradient(145deg,#121214,#080809); position:relative; overflow:hidden; }
.capabilities::before { content:""; pointer-events:none; position:absolute; width:50vw; height:50vw; min-width:440px; min-height:440px; top:-20vw; right:-18vw; border-radius:50%; background:radial-gradient(circle,rgba(101,102,174,.14),transparent 68%); }
.capabilities-head,.capability-grid { position:relative; max-width:var(--max); margin-inline:auto; }
.capabilities h2 { margin-top:22px; font-family:var(--display,'Manrope',sans-serif); font-size:clamp(3rem,7vw,7rem); line-height:1.06; letter-spacing:-.075em; }
.capabilities h2 em { color:#a9a8dc; font-style:normal; }
.capabilities-head p { max-width:620px; margin-top:26px; line-height:1.75; color:#aaa; }
.capability-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); margin-top:70px; border-top:1px solid var(--line); border-left:1px solid var(--line); }
.capability-item { position:relative; min-height:340px; padding:31px 26px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); background:linear-gradient(160deg,#ffffff04,transparent); transition:background .4s ease; }
.capability-item::before { content:""; position:absolute; left:0; top:0; width:0; height:2px; background:var(--accent-bright); transition:width .5s ease; }
.capability-item:hover::before { width:100%; }
.capability-item:hover { background:linear-gradient(160deg,#7777cb18,transparent); }
.capability-item>span { color:#9e9ab3; letter-spacing:.13em; font-size:.62rem; }
.capability-item h3 { margin-top:72px; font-size:clamp(1.25rem,1.8vw,1.8rem); letter-spacing:-.05em; }
.capability-item p { color:#aaa; font-size:.83rem; line-height:1.7; margin-top:15px; }
.capability-item>a { display:inline-block; font-size:.8rem; color:#d2cdfa; margin-top:18px; }
.capability-item>a:hover { text-decoration:underline; text-underline-offset:4px; }
.form-hint { margin:0 0 25px; font-size:.85rem; color:#b8b5b0; }
.bot-field { position:absolute!important; width:1px!important; height:1px!important; opacity:0!important; overflow:hidden!important; left:-9999px!important; }
.rfq select { width:100%; min-width:0; padding:18px 20px; background:#101010; border:1px solid var(--line); border-radius:2px; color:var(--white); font:inherit; cursor:pointer; }
.rfq select:focus-visible { border-color:var(--accent-bright); }
.rfq select option { color:#fff; background:#111; }
.rfq .sea-field[hidden] { display:none!important; }
.rfq .choice-grid input { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.rfq .choice-grid input:focus-visible + span { outline:2px solid #aaa9ea; outline-offset:3px; }
.rfq .privacy-consent { display:flex; gap:13px; align-items:flex-start; margin-top:28px; color:#bdbab8; font-size:.85rem; line-height:1.6; cursor:pointer; max-width:840px; }
.rfq .privacy-consent input { appearance:auto; width:19px; height:19px; flex:0 0 19px; margin-top:3px; accent-color:var(--accent); }
.rfq .privacy-consent a { text-decoration:underline; text-decoration-color:var(--accent-bright); text-underline-offset:3px; color:#ece8ff; }
.rfq .submit-button { min-width:185px; background:#8282ce; color:#101015; box-shadow:0 10px 32px #6765b329; }
.rfq .submit-button:hover { background:#a4a2f1; }
.rfq .submit-button:disabled { cursor:wait; opacity:.67; transform:none; }
#formStatus { min-height:25px; max-width:670px; font-size:.86rem; line-height:1.6; }
#formStatus[data-state="success"] { color:#9fe6be; }
#formStatus[data-state="error"] { color:#ffc7bc; }
#formStatus a { text-decoration:underline; }
.footer-logo small { display:block; letter-spacing:.14em; color:#9997af; font-size:.55rem; margin-top:5px; }
.footer-extras { display:flex; flex-direction:column; gap:6px; }
.footer-extras a:hover,footer a:hover { color:#d4ceff; }
.footer-extras span { opacity:.72; }
.hero-video { background:#111; }
@media (max-width:1130px) { #nav nav { gap:14px; } #nav nav a { font-size:.75rem; } .capability-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:900px) {
  .nav-toggle { display:block; order:3; }
  #nav { justify-content:space-between; }
  #nav nav { display:none; position:absolute; top:100%; left:0; right:0; padding:26px 5vw 32px; flex-direction:column; align-items:stretch; gap:18px; background:#101013ee; backdrop-filter:blur(22px); border-bottom:1px solid var(--line); }
  #nav nav.is-open { display:flex; }
  #nav nav a { padding:9px 0; font-size:.93rem; }
  .nav-button { margin-left:auto; }
  html.motion-ready .service-pin,.service-pin { overflow-x:auto; overscroll-behavior-x:contain; scrollbar-width:thin; scroll-snap-type:x mandatory; }
  .service-track { padding-bottom:22px; }
  .service-card { scroll-snap-align:start; min-height:510px; }
  .capabilities { padding-top:100px; padding-bottom:100px; }
  .capability-item { min-height:305px; }
}
@media (max-width:600px) {
  #nav { gap:8px; }
  #nav .logo { min-width:110px; width:125px; }
  #nav .logo img { max-width:130px!important; width:130px!important; }
  #nav .nav-button { padding:10px 12px; font-size:.66rem; }
  .hero-bottom { bottom:110px; }
  .hero-bottom span { letter-spacing:.08em; }
  .service-card { min-height:500px; }
  .capabilities h2 { font-size:clamp(2.8rem,12vw,4.2rem); }
  .capability-grid { grid-template-columns:1fr; }
  .capability-item { min-height:270px; }
  .capability-item h3 { margin-top:45px; }
  .form-grid { grid-template-columns:1fr; }
  .rfq input,.rfq select,.rfq textarea { padding:15px; font-size:16px; }
  .rfq .choice-grid span { padding:12px 16px; }
}
@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { scroll-behavior:auto!important; animation:none!important; transition-duration:.01ms!important; }
  .hero-video { display:none; }
  .service-pin { scroll-snap-type:none; }
}
