/* ===== CORE (shared by every company site): reset, a11y, layout helpers, mechanics, forms ===== */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation-duration:.01ms!important;transition-duration:.01ms!important}}
body{margin:0;min-height:100vh;display:flex;flex-direction:column}
main{flex:1 0 auto}
img,svg{max-width:100%;height:auto}
a{color:inherit}
button,input,select,textarea{font:inherit;color:inherit}
.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip-link{position:absolute;left:12px;top:-60px;z-index:200;padding:10px 16px;background:var(--c-dark,#000);color:#fff;border-radius:6px;transition:top .15s}
.skip-link:focus{top:12px}
:focus-visible{outline:3px solid var(--c-focus,#2b8fd1);outline-offset:2px}
.container{width:100%;max-width:var(--container,1200px);margin-inline:auto;padding-inline:var(--gutter,24px)}
.icon{width:1.25em;height:1.25em;flex:none;vertical-align:-0.2em}
/* reveal (only when JS is running, so content never stays hidden) */
.js .reveal{opacity:0;transform:translateY(14px);transition:opacity .6s ease,transform .6s ease}
.js .reveal.in-view{opacity:1;transform:none}
/* header mechanics */
.site-header{position:sticky;top:0;z-index:100}
.nav-toggle{display:none}
.nav-menu{list-style:none;margin:0;padding:0;display:flex;align-items:center}
@media (max-width:980px){
  .nav-toggle{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;cursor:pointer;background:transparent;border:1px solid currentColor;border-radius:8px}
  .nav-toggle .i-close{display:none}
  .site-header.open .nav-toggle .i-open{display:none}
  .site-header.open .nav-toggle .i-close{display:block}
  .nav-panel{display:none}
  .site-header.open .nav-panel{display:block}
}
@media (min-width:981px){.nav-panel{display:flex;align-items:center;gap:24px}}
/* forms */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form-grid .full{grid-column:1/-1}
@media (max-width:640px){.form-grid{grid-template-columns:1fr}}
.field label{display:block;font-size:14px;font-weight:600;margin-bottom:6px}
.field .req{color:var(--c-danger,#b3261e)}
.field input,.field select,.field textarea{width:100%;min-height:48px;padding:12px 14px;background:var(--c-field-bg,#fff);border:1px solid var(--c-field-border,#c2cad6);border-radius:var(--r-field,8px);font-size:16px}
.field textarea{min-height:130px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:3px solid var(--c-focus,#2b8fd1);outline-offset:0;border-color:var(--c-focus,#2b8fd1)}
.field [aria-invalid="true"]{border-color:var(--c-danger,#b3261e)}
.field .err{display:none;color:var(--c-danger,#b3261e);font-size:13px;margin-top:6px}
.field [aria-invalid="true"]~.err{display:block}
.hp{position:absolute;left:-9999px;height:0;overflow:hidden}
.file-pick{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 14px;border:1px dashed var(--c-field-border,#c2cad6);border-radius:var(--r-field,8px)}
.file-pick input{position:absolute;opacity:0;width:1px;height:1px}
.file-pick:focus-within{outline:3px solid var(--c-focus,#2b8fd1)}
.file-pick .file-btn{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:var(--r-btn,8px);background:var(--c-soft,#eef2f6);font-weight:600;cursor:pointer}
.form-foot{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:6px}
.form-status{display:none;padding:12px 14px;border-radius:8px;font-size:15px;line-height:1.45;flex:1 1 260px}
.form-status.show{display:block}
.form-status.success{background:#e8f6ec;color:#17612f}
.form-status.error{background:#fcebea;color:#8f1d16}
button[data-loading="true"]{position:relative;pointer-events:none;opacity:.75}
button[data-loading="true"]::after{content:"";width:16px;height:16px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;margin-left:10px;display:inline-block;animation:spin .7s linear infinite;vertical-align:-3px}
@keyframes spin{to{transform:rotate(360deg)}}
.map-embed{position:relative;width:100%;max-width:100%;height:clamp(260px,40vw,420px);overflow:hidden}
.map-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
@media print{.site-header,.site-footer,.nav-toggle{display:none}}
