/* Shared responsive and legal UI layer. Loaded after page-specific styles. */
@font-face {
  font-family: "Geologica";
  src: url("/assets/fonts/geologica.woff2") format("woff2");
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
}

@font-face {
  font-family: "Manrope";
  src: url("/assets/fonts/manrope.woff2") format("woff2");
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
}

.menu-toggle {
  display: none;
}

.shov-arrow {
  display: block;
  width: 1em;
  height: 1em;
  flex: 0 0 auto;
  overflow: visible;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

:is(a, button) > :is(i, span):has(> .shov-arrow) {
  overflow: visible;
  line-height: 0;
}

.form-consent {
  display: grid !important;
  grid-template-columns: 20px 1fr;
  gap: 10px;
  align-items: center;
  grid-column: 1 / -1;
  padding: 15px 0 !important;
  border: 0 !important;
  font-size: 12px;
  line-height: 1.4;
}

.form-consent input {
  position: relative;
  width: 20px !important;
  height: 20px !important;
  min-height: 20px !important;
  margin: 0;
  padding: 0 !important;
  border: 1px solid currentColor !important;
  background: transparent !important;
  cursor: pointer;
  appearance: none;
}

.form-consent input:checked {
  border-color: #ce2b20 !important;
  background: #ce2b20 !important;
}

.form-consent input:checked::after {
  position: absolute;
  inset: 3px 5px 5px;
  border-right: 2px solid #fff;
  border-bottom: 2px solid #fff;
  content: "";
  transform: rotate(45deg);
}

.form-consent a {
  text-decoration: underline;
  text-underline-offset: 3px;
}

.cookie-banner {
  position: fixed;
  z-index: 1200;
  right: 16px;
  bottom: 16px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  align-items: center;
  width: min(620px, calc(100vw - 32px));
  padding: 18px;
  color: #f5f4ef;
  border: 1px solid rgba(255,255,255,.18);
  background: rgba(7,7,7,.96);
  box-shadow: 0 20px 60px rgba(0,0,0,.35);
  font-family: "Manrope", Arial, sans-serif;
  transition: opacity .25s ease, transform .25s ease;
}

.cookie-banner[hidden] { display: none; }
.cookie-banner p { margin: 0; font-size: 13px; line-height: 1.45; }
.cookie-banner a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.cookie-banner button {
  min-height: 42px;
  padding: 0 18px;
  border: 0;
  color: #fff;
  background: #ce2b20;
  font: 700 12px/1 "Manrope", Arial, sans-serif;
  cursor: pointer;
}

.privacy-page {
  min-height: 100svh;
  margin: 0;
  color: #f5f4ef;
  background: #070707;
  font-family: "Manrope", Arial, sans-serif;
}
.privacy-header { display:flex; justify-content:space-between; align-items:center; padding:20px clamp(16px,3vw,48px); border-bottom:1px solid rgba(255,255,255,.14); }
.privacy-header a { color:inherit; text-decoration:none; }
.privacy-header__brand { font:700 22px/1 "Geologica", sans-serif; }
.privacy-main { width:min(920px, calc(100% - 32px)); margin:0 auto; padding:clamp(64px,10vw,140px) 0; }
.privacy-main h1 { max-width:850px; margin:0 0 64px; font:500 clamp(42px,8vw,104px)/.92 "Geologica",sans-serif; letter-spacing:-.07em; }
.privacy-main h2 { margin:52px 0 16px; font:550 clamp(24px,3vw,36px)/1.05 "Geologica",sans-serif; letter-spacing:-.04em; }
.privacy-main p,.privacy-main li { color:rgba(245,244,239,.76); font-size:16px; line-height:1.65; }
.privacy-main a { color:#ff6253; }

@media (max-width: 900px) {
  body.is-menu-open { overflow: hidden !important; }

  .site-header { z-index: 1000 !important; grid-template-columns: 1fr auto !important; }
  .site-header .brand { position: relative; z-index: 1002; }
  .site-header .header-cta { display: none !important; }

  .menu-toggle {
    position: relative;
    z-index: 1002;
    display: grid;
    width: 44px;
    height: 44px;
    place-items: center;
    justify-self: end;
    padding: 0;
    border: 1px solid rgba(255,255,255,.28);
    border-radius: 50%;
    color: #f5f4ef;
    background: rgba(7,7,7,.82);
  }
  .menu-toggle span,.menu-toggle::before,.menu-toggle::after { position:absolute; width:18px; height:1px; background:currentColor; content:""; transition:transform .25s ease,opacity .2s ease; }
  .menu-toggle::before { transform:translateY(-6px); }
  .menu-toggle::after { transform:translateY(6px); }
  .site-header.is-menu-open .menu-toggle span { opacity:0; }
  .site-header.is-menu-open .menu-toggle::before { transform:rotate(45deg); }
  .site-header.is-menu-open .menu-toggle::after { transform:rotate(-45deg); }

  .site-header .nav {
    position: fixed;
    z-index: 1001;
    inset: 0;
    display: flex !important;
    flex-direction: column;
    align-items: stretch;
    justify-content: center;
    gap: 0;
    width: 100%;
    min-height: 100svh;
    padding: 92px 16px 32px;
    border: 0;
    border-radius: 0;
    background: #070707;
    transform: translateX(105%);
    visibility: hidden;
    pointer-events: none;
    transition: transform .35s cubic-bezier(.76,0,.24,1), visibility .35s;
  }
  .site-header.is-menu-open .nav { transform:none; visibility:visible; pointer-events:auto; }
  .site-header .nav a { display:flex; justify-content:space-between; width:100%; min-height:68px; padding:0; border-bottom:1px solid rgba(255,255,255,.15); border-radius:0; color:#f5f4ef; background:transparent !important; font:500 clamp(28px,9vw,48px)/1 "Geologica",sans-serif; letter-spacing:-.05em; }

  .reel-layer,.reel-trigger { display:none !important; }
  .hero__footer { grid-template-columns:minmax(0,1fr) !important; }
  .hero__intro { max-width:100% !important; }

  .hero__headline-wrap { overflow:visible !important; }
  .hero__title { max-width:100%; font-size:clamp(34px,10.5vw,54px) !important; line-height:.95 !important; overflow:visible !important; overflow-wrap:anywhere; }
  .title-line,.approach-title-line { overflow:visible !important; white-space:normal !important; }
  .title-line b,.approach-title-line b { margin-left:0 !important; }
  /* .editorial-head h2,.services__intro h2,.price-row h3,.faq-new__head h2 { overflow-wrap:anywhere; word-break:normal; hyphens:auto; } */

  .services__mast { border-bottom:0 !important; }
  .services__stage { border-top:1px solid rgba(7,7,7,.13); }

  .format-compare {
    display:grid !important;
    grid-template-columns:none !important;
    grid-auto-flow:column;
    grid-auto-columns:min(82vw,340px);
    gap:12px !important;
    overflow-x:auto !important;
    overscroll-behavior-inline:contain;
    scroll-snap-type:x mandatory;
    scrollbar-width:none;
    padding-right:16px !important;
    padding-bottom:18px !important;
  }
  .format-compare::-webkit-scrollbar { display:none; }
  .format-compare > * { scroll-snap-align:start; min-width:0; }

  .shov-arrow { width:20px !important; height:20px !important; }
  .cookie-banner { right:10px; bottom:max(10px,env(safe-area-inset-bottom)); grid-template-columns:1fr; width:calc(100vw - 20px); gap:14px; padding:16px; }
  .cookie-banner button { width:100%; }
}


/* Shared legal controls and back-to-top button. */
.cookie-banner { grid-template-columns:minmax(0,1fr) minmax(190px,auto); }
.cookie-banner__actions { display:grid; gap:8px; }
.cookie-banner .cookie-banner__essential { border:1px solid rgba(255,255,255,.35); background:transparent; }
.back-to-top { position:fixed; z-index:1100; left:18px; bottom:18px; display:grid; width:52px; height:52px; place-items:center; padding:0; border:1px solid rgba(255,255,255,.25); border-radius:50%; color:#f5f4ef; background:rgba(7,7,7,.9); box-shadow:0 12px 36px rgba(0,0,0,.28); opacity:0; transform:translateY(12px); visibility:hidden; cursor:pointer; transition:opacity .2s ease,transform .2s ease,visibility .2s; }
.back-to-top.is-visible { opacity:1; transform:none; visibility:visible; }
.back-to-top svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.back-to-top:hover { color:#fff; background:#ce2b20; border-color:#ce2b20; }
.privacy-main h1 { max-width:900px; margin:20px 0 24px; font-size:clamp(38px,7vw,86px); overflow-wrap:anywhere; }
.privacy-main h3 { margin:32px 0 12px; font:550 20px/1.2 "Geologica",sans-serif; }
.legal-meta { margin:0 0 64px; }
.legal-download { display:inline-flex; padding:12px 16px; border:1px solid rgba(255,255,255,.24); color:#f5f4ef !important; text-decoration:none; }
.legal-document ul { padding-left:22px; }
.legal-table-wrap { max-width:100%; margin:24px 0 36px; overflow-x:auto; border:1px solid rgba(255,255,255,.16); }
.legal-document table { width:100%; min-width:680px; border-collapse:collapse; color:rgba(245,244,239,.78); font-size:14px; line-height:1.45; }
.legal-document th,.legal-document td { padding:14px; border-right:1px solid rgba(255,255,255,.12); border-bottom:1px solid rgba(255,255,255,.12); text-align:left; vertical-align:top; }
.legal-document th { color:#f5f4ef; background:rgba(255,255,255,.06); font-weight:650; }
@media (max-width:900px) { .cookie-banner { grid-template-columns:1fr; } .back-to-top { left:12px; bottom:max(12px,env(safe-area-inset-bottom)); width:46px; height:46px; } .privacy-main { padding-top:48px; } .privacy-main h1 { margin-top:18px; font-size:clamp(34px,10vw,52px); letter-spacing:-.05em; } .privacy-header { gap:20px; font-size:13px; } }


.form-honeypot { position:absolute !important; left:-10000px !important; width:1px !important; height:1px !important; overflow:hidden !important; }
.form-status { grid-column:1 / -1; min-height:1.4em; margin:0; color:inherit; font:500 13px/1.4 "Manrope",Arial,sans-serif; }
.form-status.is-success { color:#59c77b; }
.form-status.is-error { color:#ff6253; }
.contact-form-new button[aria-busy="true"] { cursor:wait; opacity:.65; }
