.ev-page { --ev-blue:#0069b8; --ev-ice:#eef8ff; --ev-burgundy:#3f0827; --ev-line:rgba(0,91,170,.18); overflow:clip; }
.ev-page h1 { max-width:12ch; font-size:clamp(3rem,5.6vw,6.3rem); }
.ev-page h2 { max-width:18ch; }
.ev-page .button-dark { background:var(--ev-blue); }
.ev-page .button-outline { border-color:rgba(0,91,170,.28); color:var(--ev-blue); }
.ev-hero { padding:clamp(4rem,7vw,7rem) 0 clamp(3rem,6vw,6rem); background:linear-gradient(120deg,#fff 0 42%,var(--ev-ice) 100%); }
.ev-hero-grid { display:grid; grid-template-columns:minmax(0,.95fr) minmax(520px,1.05fr); gap:clamp(3rem,7vw,8rem); align-items:center; }
.ev-hero-copy .breadcrumb { margin-bottom:clamp(2rem,4vw,4rem); }
.ev-hero-copy .lead { max-width:59ch; }
.ev-hero-note { max-width:65ch; margin-top:1.25rem; color:#5e6870; font-size:.92rem; }
.ev-hero-products { display:grid; grid-template-columns:1fr 1fr; gap:18px; align-items:stretch; }
.ev-hero-product { display:grid; grid-template-rows:minmax(300px,1fr) auto; min-width:0; margin:0; padding:clamp(20px,2.5vw,34px); border:1px solid var(--ev-line); border-radius:34px; background:rgba(255,255,255,.86); box-shadow:0 26px 70px rgba(0,91,170,.1); }
.ev-hero-product img { width:100%; height:100%; max-height:390px; object-fit:contain; object-position:center; }
.ev-hero-product h2 { margin:.5rem 0 .2rem; color:var(--ev-burgundy); font-size:clamp(1.3rem,1.8vw,1.8rem); }
.ev-hero-product strong,.ev-hero-product span { display:block; }
.ev-hero-product strong { color:var(--ev-blue); font-size:clamp(1.75rem,3vw,3rem); line-height:1; }
.ev-hero-product span { margin-top:.5rem; color:#53626d; font-size:.78rem; font-weight:750; }
.ev-journey { position:sticky; top:104px; z-index:40; border-block:1px solid var(--ev-line); background:rgba(255,255,255,.94); backdrop-filter:blur(14px); }
.ev-journey .container { display:grid; grid-template-columns:repeat(4,1fr); }
.ev-journey a { display:flex; gap:10px; align-items:center; justify-content:center; padding:16px 12px; border-right:1px solid var(--ev-line); color:#384b59; font-size:.83rem; font-weight:750; }
.ev-journey a:first-child { border-left:1px solid var(--ev-line); }
.ev-journey span { color:var(--ev-blue); font-size:.7rem; }
.ev-section-heading { display:grid; grid-template-columns:minmax(0,1fr) minmax(300px,.7fr); gap:2rem 7rem; align-items:end; margin-bottom:clamp(3rem,6vw,6rem); }
.ev-section-heading .eyebrow { grid-column:1/-1; margin-bottom:-1rem; }
.ev-section-heading h2 { margin:0; }
.ev-section-heading > p:last-child { max-width:52ch; margin:0; color:#5d6870; }
.ev-product-compare { display:grid; grid-template-columns:1fr 1fr; border:1px solid var(--ev-line); border-radius:34px; overflow:hidden; background:#fff; box-shadow:0 20px 60px rgba(0,91,170,.08); }
.ev-product-panel { display:grid; grid-template-columns:minmax(180px,.7fr) 1fr; gap:clamp(1.5rem,3vw,3.5rem); padding:clamp(2rem,4vw,4rem); min-width:0; }
.ev-product-panel + .ev-product-panel { border-left:1px solid var(--ev-line); }
.ev-product-panel.is-featured { background:linear-gradient(145deg,#fff,var(--ev-ice)); }
.ev-product-media { display:grid; place-items:center; min-width:0; }
.ev-product-media img { width:100%; height:100%; max-height:390px; object-fit:contain; }
.ev-product-copy { min-width:0; }
.ev-product-number { margin:0 0 1.5rem; color:var(--ev-blue); font-size:.72rem; font-weight:800; letter-spacing:.14em; }
.ev-product-copy h3 { font-size:clamp(2rem,3vw,3.35rem); }
.ev-product-fit { min-height:7.5rem; color:#405260; font-weight:650; }
.ev-product-copy ul,.ev-installation-rails ul { margin:1.5rem 0; padding:0; list-style:none; }
.ev-product-copy li,.ev-installation-rails li { position:relative; padding:.55rem 0 .55rem 1.6rem; color:#3f4b53; }
.ev-product-copy li::before,.ev-installation-rails li::before { content:""; position:absolute; left:0; top:1rem; width:8px; height:8px; border-radius:50%; background:var(--ev-blue); }
.ev-price { margin:2rem 0; padding-top:1.4rem; border-top:1px solid var(--ev-line); }
.ev-price strong,.ev-price span { display:block; }
.ev-price strong { color:var(--ev-blue); font-size:2.2rem; line-height:1; }
.ev-price span { margin-top:.5rem; font-size:.8rem; }
.ev-select-product { display:block; cursor:pointer; }
.ev-select-product input { position:absolute; opacity:0; }
.ev-select-product span { display:flex; justify-content:center; padding:13px 18px; border:1px solid var(--ev-blue); border-radius:999px; color:var(--ev-blue); font-weight:800; }
.ev-select-product input:checked + span { background:var(--ev-blue); color:#fff; }
.ev-comparison-note { max-width:920px; margin:2rem auto 0; padding:18px 22px; border-left:3px solid var(--ev-blue); background:var(--ev-ice); }
.ev-installation { background:linear-gradient(180deg,#fff,var(--ev-ice)); }
.ev-installation-rails { display:grid; grid-template-columns:1.1fr 1fr 1fr; border-block:1px solid var(--ev-line); }
.ev-installation-rails article { position:relative; padding:clamp(2rem,4vw,4.5rem); }
.ev-installation-rails article + article { border-left:1px solid var(--ev-line); }
.ev-rail-icon { display:grid; place-items:center; width:42px; height:42px; margin-bottom:2rem; border:2px solid var(--ev-blue); border-radius:50%; color:var(--ev-blue); font-weight:850; }
.ev-installation-rails h3 { font-size:clamp(1.5rem,2vw,2.1rem); }
.ev-installation-gallery { display:grid; grid-template-columns:.65fr 1.15fr .9fr; gap:18px; margin-top:18px; }
.ev-installation-gallery figure { position:relative; min-height:330px; margin:0; overflow:hidden; border-radius:26px; }
.ev-installation-gallery img { width:100%; height:100%; object-fit:cover; }
.ev-installation-gallery figcaption { position:absolute; inset:auto 14px 14px; padding:10px 12px; border-radius:10px; color:#fff; background:rgba(18,30,39,.82); font-size:.76rem; }
.ev-installation-gallery aside { display:flex; flex-direction:column; justify-content:center; padding:clamp(2rem,4vw,4rem); border-radius:26px; color:#fff; background:var(--ev-burgundy); }
.ev-installation-gallery aside h3 { color:#fff; }
.ev-local { color:#fff; background:#073b61; }
.ev-local-grid { display:grid; grid-template-columns:.7fr 1.3fr; gap:clamp(3rem,7vw,8rem); align-items:center; }
.ev-local h2 { color:#fff; }
.ev-area-checker { padding:clamp(1.5rem,3vw,2.5rem); border:1px solid rgba(255,255,255,.22); border-radius:30px; background:rgba(255,255,255,.08); }
.ev-area-options { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.ev-area-options button { position:relative; display:grid; grid-template-rows:72px auto; place-items:center; min-width:0; min-height:150px; padding:14px 10px 12px; overflow:hidden; border:1px solid rgba(255,255,255,.4); border-radius:20px; color:#fff; background:transparent; font:inherit; font-weight:800; cursor:pointer; transition:transform .25s ease,border-color .25s ease,background .25s ease,color .25s ease; }
.ev-area-options button:hover { transform:translateY(-3px); border-color:#fff; background:rgba(255,255,255,.12); }
.ev-area-options button:focus-visible { outline:3px solid #fff; outline-offset:3px; }
.ev-area-options button[aria-pressed="true"] { border-color:#fff; color:#073b61; background:#fff; box-shadow:0 14px 34px rgba(0,31,55,.18); }
.ev-area-label { display:flex; align-items:baseline; justify-content:center; gap:7px; min-width:0; }
.ev-area-label small { color:#b9e6ff; font-size:.64rem; letter-spacing:.12em; }
.ev-area-label strong { font-size:.92rem; }
.ev-area-options button[aria-pressed="true"] .ev-area-label small { color:#0072bd; }
.ev-area-icon { display:block; width:min(100%,130px); height:72px; color:#dff4ff; }
.ev-area-icon svg { display:block; width:100%; height:100%; overflow:visible; }
.ev-area-icon svg * { vector-effect:non-scaling-stroke; }
.ev-area-icon .area-water,.ev-area-icon .area-sky-line,.ev-area-icon .bridge-deck,.ev-area-icon .bridge-tower,.ev-area-icon .bridge-cable { fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.ev-area-options button[aria-pressed="true"] .ev-area-icon { color:#0072bd; }
.area-water { stroke-dasharray:10 5; animation:area-wave 4s linear infinite; }
.area-water-two,.bergen-wave-two,.oygarden-wave-two { opacity:.55; animation-direction:reverse; animation-duration:5s; }
.bridge-tower { stroke-width:3; }
.bridge-cable { stroke-width:1.5; }
.bridge-light { fill:#fff1a8; filter:drop-shadow(0 0 4px #fff1a8); animation:bridge-light 2.2s ease-in-out infinite; }
.bridge-light-two { animation-delay:1.1s; }
.bergen-mountain { stroke:currentColor; stroke-width:2; stroke-linejoin:round; }
.bergen-mountain-back { fill:rgba(149,211,236,.2); opacity:.72; }
.bergen-mountain-front { fill:rgba(149,211,236,.34); }
.bergen-snow { fill:#fff; opacity:.92; }
.bergen-sun { fill:#ffe7a1; filter:drop-shadow(0 0 5px rgba(255,231,161,.7)); animation:bergen-sun 4s ease-in-out infinite; }
.lighthouse-beam { fill:rgba(255,235,155,.3); transform-origin:81px 25px; animation:lighthouse-sweep 4.8s ease-in-out infinite; }
.lighthouse-rock { fill:currentColor; opacity:.3; }
.lighthouse-body { fill:rgba(255,255,255,.88); stroke:currentColor; stroke-width:2; }
.lighthouse-roof { fill:#ffcc72; stroke:currentColor; stroke-width:2; stroke-linejoin:round; }
.lighthouse-window { fill:#ffe79b; filter:drop-shadow(0 0 5px #ffe79b); animation:lighthouse-glow 2.4s ease-in-out infinite; }
.lighthouse-door { fill:none; stroke:currentColor; stroke-width:2; }
.ev-area-options button[aria-pressed="true"] .lighthouse-body { fill:#fff; }
@keyframes area-wave { to { stroke-dashoffset:-30; } }
@keyframes bridge-light { 0%,100% { opacity:.35; } 50% { opacity:1; } }
@keyframes bergen-sun { 0%,100% { transform:translateY(1px); opacity:.72; } 50% { transform:translateY(-2px); opacity:1; } }
@keyframes lighthouse-sweep { 0%,100% { transform:rotate(-7deg); opacity:.18; } 50% { transform:rotate(7deg); opacity:.58; } }
@keyframes lighthouse-glow { 0%,100% { opacity:.6; } 50% { opacity:1; } }
.ev-area-result { margin:18px 0 8px; padding:16px 18px; border-radius:14px; color:#17364c; background:#fff; }
.ev-area-checker small { color:#d5e8f5; }
.ev-shared { position:relative; background:linear-gradient(145deg,#f7fbfe 0%,#fff 58%,#eef8ff 100%); }
.ev-shared::before { position:absolute; inset:0; pointer-events:none; content:""; background:radial-gradient(circle at 85% 18%,rgba(0,105,184,.09),transparent 28%); }
.ev-shared .container { position:relative; }
.ev-shared-heading { display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(2rem,7vw,7rem); align-items:end; margin-bottom:clamp(2.5rem,5vw,4.5rem); }
.ev-shared-heading h2 { max-width:17ch; margin-bottom:0; color:var(--ev-burgundy); }
.ev-shared-heading > div:last-child { padding-bottom:.35rem; }
.ev-shared-heading > div:last-child p { margin-top:0; color:#52646f; }
.ev-shared-heading .text-link { display:inline-flex; align-items:center; gap:.55rem; color:var(--ev-blue); font-weight:800; }
.ev-shared-heading .text-link span { transition:transform .2s ease; }
.ev-shared-heading .text-link:hover span { transform:translateX(4px); }
.ev-shared-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.ev-shared-card { display:flex; flex-direction:column; min-width:0; padding:clamp(1.5rem,3vw,2.2rem); border:1px solid var(--ev-line); border-radius:28px; background:rgba(255,255,255,.88); box-shadow:0 22px 60px rgba(0,70,125,.08); transition:transform .25s ease,box-shadow .25s ease; }
.ev-shared-card:hover { transform:translateY(-5px); box-shadow:0 28px 70px rgba(0,70,125,.13); }
.ev-shared-card-top { display:flex; align-items:center; justify-content:space-between; margin-bottom:1.5rem; }
.ev-shared-card-top small { color:#7b929f; font-size:.68rem; font-weight:850; letter-spacing:.14em; }
.ev-shared-icon { display:grid; place-items:center; width:54px; height:54px; border-radius:17px; color:#fff; background:linear-gradient(145deg,var(--ev-blue),#044b7d); box-shadow:0 12px 24px rgba(0,105,184,.2); }
.ev-shared-icon .service-icon { width:27px; height:27px; }
.ev-shared-card h3 { margin-bottom:.7rem; color:var(--ev-burgundy); font-size:clamp(1.35rem,2vw,1.75rem); }
.ev-shared-card > p { min-height:4.8em; color:#5b6b75; }
.ev-shared-card > strong { margin:1.35rem 0 .65rem; color:#24485f; font-size:.78rem; letter-spacing:.04em; text-transform:uppercase; }
.ev-shared-card ul { display:grid; gap:.7rem; margin:0; padding:0; list-style:none; }
.ev-shared-card li { position:relative; padding-left:18px; color:#405663; font-size:.9rem; line-height:1.5; }
.ev-shared-card li::before { position:absolute; top:.62em; left:0; width:7px; height:7px; border-radius:50%; content:""; background:var(--ev-blue); box-shadow:0 0 0 4px rgba(0,105,184,.1); }
.ev-shared-next { display:flex; align-items:center; justify-content:space-between; gap:2rem; margin-top:20px; padding:20px 22px; border-radius:22px; color:#fff; background:#073b61; }
.ev-shared-next > div { display:flex; align-items:center; gap:14px; }
.ev-shared-next p { margin:0; }
.ev-shared-pulse { flex:0 0 auto; width:14px; height:14px; border:3px solid #fff; border-radius:50%; box-shadow:0 0 0 0 rgba(255,255,255,.5); animation:shared-pulse 2.4s ease-out infinite; }
@keyframes shared-pulse { 70%,100% { box-shadow:0 0 0 12px rgba(255,255,255,0); } }
.ev-faq { background:#fff; }
.ev-faq .accordion details { border-color:var(--ev-line); }
.ev-faq .accordion summary { color:#24485f; }
.ev-faq .accordion summary { overflow:hidden; }
.ev-faq .accordion summary span { min-width:0; overflow-wrap:anywhere; }
.ev-faq .accordion summary b { flex:0 0 auto; }
.ev-answer-section { padding-top:0; }
.ev-answer-hero { border-radius:30px; background:#073b61; box-shadow:0 24px 70px rgba(0,62,117,.18); }
.ev-order { background:linear-gradient(145deg,#fff 0 55%,var(--ev-ice)); }
.ev-order-grid { display:grid; grid-template-columns:.78fr 1.22fr; gap:clamp(3rem,7vw,8rem); align-items:start; }
.ev-order-copy { position:sticky; top:170px; }
.ev-order-copy ol { margin:3rem 0 0; padding:0; list-style:none; }
.ev-order-copy li { display:grid; grid-template-columns:42px 1fr; gap:16px; padding:1.2rem 0; border-top:1px solid var(--ev-line); }
.ev-order-copy li > span { display:grid; place-items:center; width:36px; height:36px; border-radius:50%; color:#fff; background:var(--ev-blue); font-weight:800; }
.ev-order-copy li p { margin:.25rem 0 0; color:#59666f; font-size:.9rem; }
.ev-order-form { box-shadow:0 28px 80px rgba(0,91,170,.12); }
.ev-form-products { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.ev-form-products label { position:relative; cursor:pointer; }
.ev-form-products input { position:absolute; opacity:0; }
.ev-form-products span { display:grid; grid-template-columns:64px 1fr; grid-template-rows:auto auto; align-items:center; column-gap:14px; min-height:92px; padding:12px; border:1px solid var(--ev-line); border-radius:16px; }
.ev-form-products img { grid-row:1/3; width:58px; height:58px; object-fit:contain; }
.ev-form-products b,.ev-form-products small { display:block; }
.ev-form-products input:checked + span { border-color:var(--ev-blue); box-shadow:inset 0 0 0 2px var(--ev-blue); background:var(--ev-ice); }
.ev-form-footnote { margin:1rem 0 0; color:#66747d; font-size:.8rem; }

@media (max-width:1100px) {
  .ev-hero-grid,.ev-order-grid { grid-template-columns:1fr; }
  .ev-hero-products { max-width:850px; }
  .ev-section-heading { grid-template-columns:1fr; gap:1rem; }
  .ev-section-heading .eyebrow { margin-bottom:0; }
  .ev-product-panel { grid-template-columns:1fr; }
  .ev-product-media { min-height:260px; }
  .ev-product-fit { min-height:0; }
  .ev-local-grid { grid-template-columns:1fr; }
  .ev-shared-heading { grid-template-columns:1fr; gap:1.2rem; }
  .ev-order-copy { position:static; }
}

@media (max-width:760px) {
  .ev-page h1 { font-size:clamp(2.7rem,13vw,4.5rem); overflow-wrap:normal; }
  .ev-hero { padding-top:2.5rem; }
  .ev-hero-grid { gap:2.5rem; }
  .ev-hero-products { grid-template-columns:1fr 1fr; gap:8px; }
  .ev-hero-product { grid-template-rows:160px auto; padding:14px; border-radius:20px; }
  .ev-hero-product strong { font-size:1.45rem; }
  .ev-hero-product span { font-size:.66rem; line-height:1.35; }
  .ev-journey { top:78px; }
  .ev-journey .container { width:100%; }
  .ev-journey a { padding:12px 4px; font-size:.68rem; }
  .ev-journey span { display:none; }
  .ev-section-heading { margin-bottom:2.5rem; }
  .ev-product-compare { grid-template-columns:1fr; border-radius:24px; }
  .ev-product-panel { grid-template-columns:110px minmax(0,1fr); gap:16px; padding:24px 18px; }
  .ev-product-panel + .ev-product-panel { border-left:0; border-top:1px solid var(--ev-line); }
  .ev-product-media { min-height:0; align-items:start; }
  .ev-product-copy h3 { font-size:1.8rem; }
  .ev-product-copy ul { grid-column:1/-1; }
  .ev-price strong { font-size:1.8rem; }
  .ev-installation-rails { grid-template-columns:1fr; }
  .ev-installation-rails article + article { border-left:0; border-top:1px solid var(--ev-line); }
  .ev-installation-gallery { grid-template-columns:1fr; }
  .ev-installation-gallery figure { min-height:260px; }
  .ev-area-options { grid-template-columns:1fr; }
  .ev-area-options button { grid-template-columns:112px minmax(0,1fr); grid-template-rows:1fr; gap:10px; min-height:92px; padding:9px 16px; }
  .ev-area-icon { width:108px; height:64px; }
  .ev-area-label { justify-self:start; }
  .ev-shared-grid { grid-template-columns:1fr; }
  .ev-shared-card > p { min-height:0; }
  .ev-shared-next { align-items:flex-start; flex-direction:column; }
  .ev-shared-next .button { width:100%; text-align:center; }
  .ev-form-products,.ev-order-form .form-grid { grid-template-columns:1fr; }
}

@media (prefers-reduced-motion:reduce) {
  .area-water,.bridge-light,.bergen-sun,.lighthouse-beam,.lighthouse-window,.ev-shared-pulse { animation:none; }
  .ev-area-options button,.ev-shared-card,.ev-shared-heading .text-link span { transition:none; }
}
