/* ============================================================
   GILRAVOX — Widget Dashboard Design System
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Red+Hat+Display:wght@500;600;700;800&family=Red+Hat+Text:wght@400;500;600;700&display=swap');

:root{
  --color-bg: #FAF6EF;
  --color-bg-alt: #F2ECE0;
  --color-surface: #FFFFFF;
  --color-surface-tint: #FBF8F3;
  --color-ink: #241F1A;
  --color-ink-soft: #5B564E;
  --color-ink-faint: #868075;

  --color-primary: #23433C;
  --color-primary-light: #33564C;
  --color-primary-dark: #142A25;
  --color-primary-tint: #E7EEE9;

  --color-accent: #DD8544;
  --color-accent-light: #F2B978;
  --color-accent-dark: #B8622A;
  --color-accent-tint: #FBEBDA;

  --color-secondary: #7E9A82;
  --color-secondary-tint: #E9EFE7;

  --color-border: #E7DFD1;
  --color-border-strong: #D8CDB9;

  --shadow-sm: 0 1px 2px rgba(36,31,26,0.06), 0 1px 1px rgba(36,31,26,0.04);
  --shadow-md: 0 8px 20px -6px rgba(36,31,26,0.14), 0 3px 8px -2px rgba(36,31,26,0.08);
  --shadow-lg: 0 24px 48px -12px rgba(36,31,26,0.22), 0 8px 20px -6px rgba(36,31,26,0.12);
  --shadow-inset: inset 0 1px 0 rgba(255,255,255,0.5);

  --radius-sm: 10px;
  --radius-md: 16px;
  --radius-lg: 24px;
  --radius-xl: 32px;
  --radius-pill: 999px;

  --space-3xs: clamp(0.25rem, 0.22rem + 0.15vw, 0.375rem);
  --space-2xs: clamp(0.5rem, 0.42rem + 0.3vw, 0.75rem);
  --space-xs: clamp(0.75rem, 0.62rem + 0.5vw, 1.1rem);
  --space-sm: clamp(1.1rem, 0.9rem + 0.7vw, 1.6rem);
  --space-md: clamp(1.6rem, 1.3rem + 1.1vw, 2.4rem);
  --space-lg: clamp(2.4rem, 1.9rem + 1.8vw, 3.8rem);
  --space-xl: clamp(3.2rem, 2.4rem + 2.8vw, 5.4rem);
  --space-2xl: clamp(4.2rem, 3rem + 4.2vw, 7.5rem);

  --text-sm: clamp(0.86rem, 0.82rem + 0.15vw, 0.95rem);
  --text-base: clamp(1rem, 0.96rem + 0.15vw, 1.075rem);
  --text-lg: clamp(1.15rem, 1.06rem + 0.35vw, 1.35rem);
  --text-xl: clamp(1.4rem, 1.2rem + 0.85vw, 1.85rem);
  --text-2xl: clamp(1.8rem, 1.45rem + 1.5vw, 2.6rem);
  --text-3xl: clamp(2.2rem, 1.6rem + 2.6vw, 3.5rem);
  --text-hero: clamp(2.6rem, 1.7rem + 3.9vw, 4.8rem);

  --container-w: 1240px;
  --transition-fast: 0.2s cubic-bezier(.4,0,.2,1);
  --transition-med: 0.4s cubic-bezier(.4,0,.2,1);
  --transition-slow: 0.6s cubic-bezier(.4,0,.2,1);
}

*, *::before, *::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; overflow-x: hidden; }
body{
  margin:0;
  background: var(--color-bg);
  color: var(--color-ink);
  font-family: 'Red Hat Text', sans-serif;
  font-size: var(--text-base);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img{ max-width:100%; display:block; height:auto; border-radius: var(--radius-md); }
a{ color: inherit; text-decoration: none; }
ul{ margin:0; padding:0; list-style:none; }
button{ font-family: inherit; cursor:pointer; }
h1,h2,h3,h4{
  font-family: 'Red Hat Display', sans-serif;
  color: var(--color-primary-dark);
  line-height: 1.15;
  margin: 0 0 var(--space-sm);
  font-weight: 700;
  letter-spacing: -0.01em;
}
p{ margin: 0 0 var(--space-sm); color: var(--color-ink-soft); }
.content-block{
  width: min(100% - 2.8rem, var(--container-w));
  margin-inline: auto;
}
.section-pad{ padding-block: var(--space-2xl); }
.highlight-text{
  color: var(--color-accent-dark);
  position: relative;
  white-space: nowrap;
}
.eyebrow{
  display:inline-flex;
  align-items:center;
  gap: 0.5em;
  font-family:'Red Hat Display', sans-serif;
  font-weight:700;
  font-size: var(--text-sm);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--color-accent-dark);
  margin-bottom: var(--space-xs);
}
.eyebrow::before{
  content:'';
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--color-accent);
  display:inline-block;
}
.section-heading{ max-width: 46rem; }
.section-heading.center{ margin-inline: auto; text-align:center; }


.primary-action{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap: 0.6em;
  padding: 0.9em 1.7em;
  background: var(--color-accent);
  color: #fff;
  border: none;
  border-radius: var(--radius-pill);
  font-family:'Red Hat Display', sans-serif;
  font-weight: 700;
  font-size: var(--text-base);
  box-shadow: var(--shadow-sm);
  transition: transform var(--transition-fast), box-shadow var(--transition-fast), background var(--transition-fast);
  min-height: 44px;
  white-space: nowrap;
}
.primary-action:hover{
  background: var(--color-accent-dark);
  transform: translateY(-3px);
  box-shadow: var(--shadow-md);
}
.secondary-action{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap: 0.6em;
  padding: 0.85em 1.6em;
  background: transparent;
  color: var(--color-primary-dark);
  border: 1.5px solid var(--color-border-strong);
  border-radius: var(--radius-pill);
  font-family:'Red Hat Display', sans-serif;
  font-weight: 700;
  font-size: var(--text-base);
  transition: all var(--transition-fast);
  min-height: 44px;
}
.secondary-action:hover{
  border-color: var(--color-primary);
  background: var(--color-primary-tint);
  transform: translateY(-3px);
}


.site-header{
  position: fixed;
  inset-inline: 0;
  top:0;
  z-index: 500;
  background: rgba(250,246,239,0.92);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--color-border);
  box-shadow: 0 2px 10px rgba(36,31,26,0.04);
  transition: box-shadow var(--transition-fast);
}
.site-header.is-scrolled{
  box-shadow: 0 10px 30px -8px rgba(36,31,26,0.18);
}
.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: var(--space-md);
  padding-block: 0.9rem;
}
.brand-mark{ display:flex; align-items:center; gap: 0.6rem; }
.brand-logo{ width: 40px; height:40px; border-radius: 0; }
.brand-name{
  font-family:'Red Hat Display', sans-serif;
  font-weight: 800;
  font-size: 1.25rem;
  color: var(--color-primary-dark);
  letter-spacing: -0.01em;
}
.primary-nav{ display:none; }
.nav-list{ display:flex; align-items:center; gap: var(--space-md); }
.nav-link{
  font-family:'Red Hat Display', sans-serif;
  font-weight: 600;
  font-size: 0.98rem;
  color: var(--color-ink-soft);
  position: relative;
  padding-block: 0.3rem;
  transition: color var(--transition-fast);
}
.nav-link::after{
  content:'';
  position:absolute;
  left:0; right:100%;
  bottom:-2px;
  height:2px;
  background: var(--color-accent);
  transition: right var(--transition-med);
}
.nav-link:hover{ color: var(--color-primary-dark); }
.nav-link:hover::after{ right:0; }
.header-actions{ display:flex; align-items:center; gap: var(--space-xs); }
.header-cta{ display:none; }
.search-toggle{
  width:44px; height:44px;
  border-radius:50%;
  border:1px solid var(--color-border);
  background: var(--color-surface);
  color: var(--color-primary-dark);
  display:flex; align-items:center; justify-content:center;
  transition: all var(--transition-fast);
}
.search-toggle:hover{ background: var(--color-primary-tint); transform: rotate(8deg); }

.nav-toggle{
  width:44px; height:44px;
  border-radius: 50%;
  border:1px solid var(--color-border);
  background: var(--color-surface);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:5px;
  transition: background var(--transition-fast);
}
.nav-toggle span{
  width:20px; height:2px; background: var(--color-primary-dark);
  border-radius: 2px;
  transition: all var(--transition-med);
}
.nav-toggle.is-active span:nth-child(1){ transform: translateY(7px) rotate(45deg); }
.nav-toggle.is-active span:nth-child(2){ opacity:0; }
.nav-toggle.is-active span:nth-child(3){ transform: translateY(-7px) rotate(-45deg); }


.search-overlay{
  position: fixed; inset:0; z-index: 800;
  background: rgba(20,42,37,0.96);
  display:flex; align-items:center; justify-content:center;
  opacity:0; visibility:hidden;
  transition: opacity var(--transition-med), visibility var(--transition-med);
}
.search-overlay.is-active{ opacity:1; visibility:visible; }
.search-overlay-inner{ width: min(100% - 3rem, 720px); }
.search-form{
  display:flex; align-items:center; gap: 1rem;
  border-bottom: 2px solid rgba(255,255,255,0.35);
  padding-bottom: 1rem;
}
.search-form i{ color: var(--color-accent-light); font-size:1.3rem; }
.search-form input{
  flex:1; background:transparent; border:none; outline:none;
  color:#fff; font-family:'Red Hat Display', sans-serif;
  font-size: clamp(1.1rem, 1rem + 1vw, 1.8rem);
}
.search-form input::placeholder{ color: rgba(255,255,255,0.5); }
.search-close{
  background:none; border:none; color:#fff; font-size:1.4rem;
  width:44px; height:44px; display:flex; align-items:center; justify-content:center;
  transition: transform var(--transition-fast);
}
.search-close:hover{ transform: rotate(90deg); }


.mobile-panel{
  position: fixed; inset:0; z-index: 700;
  background: var(--color-primary-dark);
  clip-path: polygon(100% 0%, 100% 0%, 100% 0%, 100% 0%);
  transition: clip-path 0.65s cubic-bezier(.65,0,.35,1);
  display:flex; flex-direction:column; justify-content:center;
  padding: 2rem 2.5rem;
}
.mobile-panel.is-open{
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
}
.mobile-nav-list li{
  opacity:0; transform: translateX(24px);
  transition: opacity 0.4s ease, transform 0.4s ease;
}
.mobile-panel.show-links .mobile-nav-list li{ opacity:1; transform: translateX(0); }
.mobile-panel.show-links .mobile-nav-list li:nth-child(1){ transition-delay: 0.05s; }
.mobile-panel.show-links .mobile-nav-list li:nth-child(2){ transition-delay: 0.13s; }
.mobile-panel.show-links .mobile-nav-list li:nth-child(3){ transition-delay: 0.21s; }
.mobile-panel.show-links .mobile-nav-list li:nth-child(4){ transition-delay: 0.29s; }
.mobile-nav-list a{
  font-family:'Red Hat Display', sans-serif;
  font-size: clamp(1.8rem, 6vw, 2.6rem);
  font-weight:700;
  color: #FDF9F2;
  display:block;
  padding-block: 0.4rem;
  border-bottom: 1px solid rgba(255,255,255,0.12);
}
.mobile-panel-footer{
  margin-top: var(--space-lg);
  opacity:0; transition: opacity 0.4s ease 0.35s;
}
.mobile-panel.show-links .mobile-panel-footer{ opacity:1; }


.hero-section{
  position: relative;
  padding-top: clamp(7rem, 5rem + 8vw, 10rem);
  padding-bottom: var(--space-2xl);
  overflow:hidden;
  background: var(--color-bg);
}
.hero-pattern{
  position:absolute; inset:0;
  background-image:
    radial-gradient(circle at 2px 2px, rgba(35,67,60,0.14) 1.6px, transparent 1.6px);
  background-size: 28px 28px;
  mask-image: radial-gradient(ellipse 70% 60% at 50% 20%, black 40%, transparent 85%);
  z-index:0;
}
.hero-inner{ position:relative; z-index:1; text-align:center; max-width: 900px; margin-inline:auto; }
.hero-inner h1{
  font-size: var(--text-hero);
  margin-bottom: var(--space-md);
}
.hero-inner .lede{
  font-size: var(--text-lg);
  max-width: 640px;
  margin-inline:auto;
  margin-bottom: var(--space-lg);
}
.hero-actions{
  display:flex; gap: var(--space-sm); justify-content:center; flex-wrap:wrap;
  margin-bottom: var(--space-xl);
}
.widget-row{
  position:relative; z-index:1;
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: var(--space-sm);
  max-width: 980px;
  margin-inline:auto;
}
.widget-chip{
  background: rgba(255,255,255,0.75);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255,255,255,0.6);
  border-radius: var(--radius-lg);
  padding: var(--space-sm);
  box-shadow: var(--shadow-sm);
  text-align:left;
  display:flex; flex-direction:column; gap:0.6rem;
  transition: transform var(--transition-fast), box-shadow var(--transition-fast);
}
.widget-chip:hover{ transform: translateY(-6px); box-shadow: var(--shadow-md); }
.widget-chip i{
  width:38px; height:38px; border-radius:12px;
  background: var(--color-accent-tint); color: var(--color-accent-dark);
  display:flex; align-items:center; justify-content:center;
  font-size:1rem;
}
.widget-chip strong{ font-family:'Red Hat Display', sans-serif; color: var(--color-primary-dark); font-size: 0.98rem; }
.widget-chip span{ font-size: var(--text-sm); color: var(--color-ink-soft); }


.info-grid{
  display:grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-md);
}
.info-card{
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: var(--space-md);
  box-shadow: var(--shadow-sm);
  transition: transform var(--transition-fast), box-shadow var(--transition-fast), border-color var(--transition-fast);
  display:flex; flex-direction:column;
}
.info-card:hover{
  transform: translateY(-8px);
  box-shadow: var(--shadow-lg);
  border-color: var(--color-accent-light);
}
.info-card .card-icon{
  width:52px; height:52px; border-radius: var(--radius-sm);
  background: var(--color-primary-tint);
  color: var(--color-primary);
  display:flex; align-items:center; justify-content:center;
  font-size:1.3rem;
  margin-bottom: var(--space-sm);
}
.info-card h3{ font-size: var(--text-lg); margin-bottom: 0.5rem; }
.info-card p{ margin-bottom: var(--space-xs); }
.info-card .card-tags{ display:flex; flex-wrap:wrap; gap:0.4rem; margin-top:auto; }
.info-card .card-tags span{
  font-size: 0.78rem; font-weight:600;
  background: var(--color-bg-alt);
  color: var(--color-ink-soft);
  padding: 0.3em 0.8em;
  border-radius: var(--radius-pill);
}
.info-card.accent-card{
  background: linear-gradient(155deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
  color: #fff;
  border: none;
}
.info-card.accent-card h3, .info-card.accent-card p{ color: #F4EFE4; }
.info-card.accent-card .card-icon{ background: rgba(255,255,255,0.15); color: var(--color-accent-light); }


.visual-break{
  display:grid;
  grid-template-columns: 1fr;
  gap: var(--space-lg);
  align-items:center;
}
.visual-break .media-frame{
  position:relative;
  border-radius: var(--radius-xl);
  overflow:hidden;
  box-shadow: var(--shadow-lg);
}
.visual-break .media-frame img{ border-radius:0; width:100%; }
.visual-break.reverse .media-frame{ order:-1; }
.floating-note{
  position:absolute;
  bottom: 1rem; left:1rem;
  background: rgba(255,255,255,0.85);
  backdrop-filter: blur(10px);
  border-radius: var(--radius-md);
  padding: 0.9rem 1.2rem;
  box-shadow: var(--shadow-md);
  display:flex; align-items:center; gap:0.7rem;
  max-width: 260px;
}
.floating-note i{ color: var(--color-accent-dark); font-size:1.3rem; }
.floating-note strong{ display:block; font-size:0.85rem; color: var(--color-primary-dark); }
.floating-note span{ font-size:0.78rem; color: var(--color-ink-soft); }


.feature-list{
  display:grid;
  grid-template-columns: 1fr;
  gap: 0;
}
.feature-item{
  display:flex; gap: var(--space-sm);
  padding-block: var(--space-md);
  border-bottom: 1px solid var(--color-border);
}
.feature-item:last-child{ border-bottom:none; }
.feature-item .feature-icon{
  flex-shrink:0;
  width:52px; height:52px;
  border-radius: 14px;
  background: var(--color-secondary-tint);
  color: var(--color-primary);
  display:flex; align-items:center; justify-content:center;
  font-size:1.2rem;
  transition: transform var(--transition-fast);
}
.feature-item:hover .feature-icon{ transform: scale(1.08) rotate(-4deg); background: var(--color-accent-tint); color: var(--color-accent-dark); }
.feature-item h3{ font-size:1.08rem; margin-bottom:0.35rem; }
.feature-item p{ margin:0; font-size: var(--text-sm); }


.cta-split{
  background: var(--color-primary-dark);
  border-radius: var(--radius-xl);
  padding: var(--space-xl);
  display:grid;
  grid-template-columns: 1fr;
  gap: var(--space-lg);
  position:relative;
  overflow:hidden;
  color:#fff;
}
.cta-split::before{
  content:'';
  position:absolute; inset:0;
  background: radial-gradient(circle at 90% 10%, rgba(221,133,68,0.35), transparent 55%);
}
.cta-split-text, .cta-split-action{ position:relative; z-index:1; }
.cta-split h2{ color:#fff; }
.cta-split p{ color: rgba(244,239,228,0.85); }
.cta-split-action{ display:flex; flex-direction:column; gap: var(--space-xs); align-items:flex-start; }
.cta-split-action small{ color: rgba(244,239,228,0.7); font-size: var(--text-sm); }


.faq-accordion{ display:flex; flex-direction:column; gap: var(--space-xs); }
.faq-item{
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  overflow:hidden;
  transition: box-shadow var(--transition-fast), border-color var(--transition-fast);
}
.faq-item:hover{ box-shadow: var(--shadow-sm); }
.faq-item.is-active{ border-color: var(--color-accent-light); box-shadow: var(--shadow-md); }
.faq-trigger{
  width:100%;
  display:flex; align-items:center; justify-content:space-between;
  gap: var(--space-sm);
  background:none; border:none;
  padding: var(--space-sm) var(--space-md);
  text-align:left;
  font-family:'Red Hat Display', sans-serif;
  font-weight:700;
  font-size: 1.02rem;
  color: var(--color-primary-dark);
}
.faq-trigger .faq-icon{
  flex-shrink:0;
  width:32px; height:32px; border-radius:50%;
  background: var(--color-primary-tint);
  color: var(--color-primary);
  display:flex; align-items:center; justify-content:center;
  transition: transform var(--transition-med), background var(--transition-fast), color var(--transition-fast);
}
.faq-item.is-active .faq-trigger .faq-icon{ transform: rotate(135deg); background: var(--color-accent); color:#fff; }
.faq-panel{
  max-height:0;
  overflow:hidden;
  transition: max-height var(--transition-med), padding var(--transition-med);
  padding: 0 var(--space-md);
}
.faq-item.is-active .faq-panel{ max-height: 400px; padding: 0 var(--space-md) var(--space-md); }
.faq-panel p{ margin:0; font-size: var(--text-sm); }


.site-footer{
  background: var(--color-primary-dark);
  color: #EDE7D9;
  padding-top: var(--space-2xl);
}
.footer-inner{
  display:grid;
  grid-template-columns: 1fr;
  gap: var(--space-xl);
  padding-bottom: var(--space-xl);
}
.footer-brand p{ color: rgba(237,231,217,0.75); max-width: 34rem; }
.footer-brand .brand-name{ color:#fff; }
.footer-links{
  display:grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-lg);
}
.footer-column h3{
  color: var(--color-accent-light);
  font-size: 0.9rem;
  text-transform:uppercase;
  letter-spacing: 0.06em;
  margin-bottom: var(--space-sm);
}
.footer-column ul{ display:flex; flex-direction:column; gap:0.6rem; }
.footer-column a{
  color: rgba(237,231,217,0.8);
  font-size: 0.95rem;
  transition: color var(--transition-fast), padding-left var(--transition-fast);
}
.footer-column a:hover{ color:#fff; padding-left: 4px; }
.footer-column address{ font-style:normal; color: rgba(237,231,217,0.8); font-size:0.95rem; line-height:1.8; }
.footer-bottom{
  border-top: 1px solid rgba(237,231,217,0.15);
  padding-block: var(--space-sm);
  text-align:center;
  font-size: 0.85rem;
  color: rgba(237,231,217,0.6);
}


.scroll-reveal{ opacity:0; transform: translateY(28px); transition: opacity 0.7s ease, transform 0.7s ease; }
.scroll-reveal.is-visible{ opacity:1; transform: translateY(0); }


.gallery-grid{
  display:grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-sm);
}
.gallery-grid figure{ margin:0; border-radius: var(--radius-lg); overflow:hidden; box-shadow: var(--shadow-sm); position:relative; }
.gallery-grid figure img{ border-radius:0; transition: transform var(--transition-slow); width:100%; height:100%; object-fit:cover; }
.gallery-grid figure:hover img{ transform: scale(1.06); }
.gallery-grid figcaption{
  position:absolute; left:0; right:0; bottom:0;
  padding: 0.8rem 1rem;
  background: linear-gradient(to top, rgba(20,42,37,0.85), transparent);
  color:#fff; font-size:0.82rem;
}


.form-block{
  background: var(--color-surface);
  border-radius: var(--radius-xl);
  border: 1px solid var(--color-border);
  padding: var(--space-lg);
  box-shadow: var(--shadow-md);
}
.form-row{ display:grid; grid-template-columns: 1fr; gap: var(--space-sm); margin-bottom: var(--space-sm); }
.form-field{ display:flex; flex-direction:column; gap:0.4rem; }
.form-field label{ font-size:0.88rem; font-weight:600; color: var(--color-primary-dark); }
.form-field input, .form-field select, .form-field textarea{
  border: 1.5px solid var(--color-border);
  border-radius: var(--radius-sm);
  padding: 0.85em 1em;
  font-family:'Red Hat Text', sans-serif;
  font-size: var(--text-base);
  background: var(--color-surface-tint);
  color: var(--color-ink);
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
  min-height: 44px;
}
.form-field textarea{ min-height:140px; resize:vertical; }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus{
  outline:none; border-color: var(--color-accent); box-shadow: 0 0 0 4px var(--color-accent-tint);
}
.checkbox-field{ display:flex; align-items:flex-start; gap:0.7rem; margin-bottom: var(--space-md); }
.checkbox-field input{ width:20px; height:20px; margin-top:2px; accent-color: var(--color-accent); flex-shrink:0; }
.checkbox-field label{ font-size:0.88rem; color: var(--color-ink-soft); }
.checkbox-field a{ color: var(--color-primary); font-weight:600; text-decoration:underline; }
.iti, #phone{ width:100%; }


.legal-layout{
  display:grid;
  grid-template-columns: 1fr;
  gap: var(--space-lg);
  align-items:start;
}
.legal-nav{
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: var(--space-sm);
}
.legal-nav h2{ font-size: 0.95rem; text-transform:uppercase; letter-spacing:0.05em; margin-bottom: var(--space-xs); color: var(--color-ink-faint); }
.legal-nav ul{ display:flex; flex-direction:column; gap:0.3rem; }
.legal-nav a{
  display:block; padding: 0.55rem 0.8rem; border-radius: var(--radius-sm);
  font-size: 0.9rem; font-weight:600; color: var(--color-ink-soft);
  transition: background var(--transition-fast), color var(--transition-fast);
}
.legal-nav a:hover{ background: var(--color-primary-tint); color: var(--color-primary-dark); }
.legal-content{
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: var(--space-lg);
}
.legal-content section{ margin-bottom: var(--space-lg); scroll-margin-top: 6.5rem; }
.legal-content h2{ font-size: var(--text-xl); }
.legal-content h3{ font-size: 1.05rem; color: var(--color-primary); }
.legal-content table{ width:100%; border-collapse:collapse; margin-block: var(--space-sm); }
.legal-content table td, .legal-content table th{
  border: 1px solid var(--color-border); padding: 0.7rem 0.9rem; font-size: 0.92rem; text-align:left; vertical-align:top;
}
.legal-content table th{ background: var(--color-bg-alt); }
.legal-meta{
  display:inline-block; background: var(--color-accent-tint); color: var(--color-accent-dark);
  padding: 0.4rem 1rem; border-radius: var(--radius-pill); font-size:0.85rem; font-weight:700; margin-bottom: var(--space-md);
}
.cookie-block{ border-bottom: 1px dashed var(--color-border); padding-block: var(--space-md); }
.cookie-block:first-of-type{ padding-top:0; }
.cookie-block:last-of-type{ border-bottom:none; }


.thanks-section{
  min-height: 60vh;
  display:flex; align-items:center; justify-content:center; text-align:center;
  padding-block: var(--space-2xl);
}
.thanks-section h1{ font-size: var(--text-3xl); margin-bottom: var(--space-sm); }
.thanks-section p{ font-size: var(--text-lg); margin-bottom: var(--space-lg); }


.map-frame{ border:none; width:100%; height:380px; border-radius: var(--radius-lg); box-shadow: var(--shadow-md); }


.cookie-consent-widget{
  position: fixed;
  bottom: 1.4rem;
  left:50%;
  transform: translateX(-50%);
  z-index: 999;
  background: rgba(255,255,255,0.9);
  backdrop-filter: blur(16px);
  border: 1px solid rgba(255,255,255,0.7);
  border-radius: var(--radius-pill);
  box-shadow: var(--shadow-lg);
  padding: 0.9rem 1.4rem;
  max-width: 92vw;
  width: 560px;
  transition: border-radius 0.5s ease, width 0.5s ease, padding 0.5s ease, max-width 0.5s ease;
}
.cookie-consent-widget.is-expanded{
  border-radius: var(--radius-xl);
  width: min(92vw, 620px);
  padding: var(--space-md);
}
.cookie-pill-compact{ display:flex; align-items:center; gap: var(--space-sm); flex-wrap:wrap; }
.cookie-consent-widget.is-expanded .cookie-pill-compact{ display:none; }
.cookie-pill-compact p{ margin:0; font-size:0.85rem; color: var(--color-ink-soft); flex:1; min-width:180px; }
.cookie-pill-compact a{ color: var(--color-primary); font-weight:700; text-decoration:underline; }
.cookie-pill-actions{ display:flex; gap:0.5rem; flex-shrink:0; }
.cookie-pill-actions button{
  border:none; border-radius: var(--radius-pill); font-weight:700; font-size:0.82rem;
  padding: 0.55em 1.1em; transition: all var(--transition-fast); min-height:38px;
}
.btn-cookie-accept{ background: var(--color-accent); color:#fff; }
.btn-cookie-accept:hover{ background: var(--color-accent-dark); }
.btn-cookie-customize{ background: var(--color-bg-alt); color: var(--color-primary-dark); }
.btn-cookie-customize:hover{ background: var(--color-border); }

.cookie-pill-full{ display:none; }
.cookie-consent-widget.is-expanded .cookie-pill-full{ display:block; }
.cookie-pill-full h3{ font-size:1.1rem; margin-bottom:0.3rem; color: var(--color-primary-dark); }
.cookie-pill-full > p{ font-size:0.85rem; margin-bottom: var(--space-sm); }
.cookie-category{
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  padding: 0.7rem 0; border-bottom:1px solid var(--color-border);
}
.cookie-category:last-of-type{ border-bottom:none; }
.cookie-category-text strong{ display:block; font-size:0.92rem; color: var(--color-primary-dark); }
.cookie-category-text span{ font-size:0.78rem; color: var(--color-ink-faint); }
.switch{ position:relative; width:44px; height:26px; flex-shrink:0; }
.switch input{ opacity:0; width:0; height:0; }
.switch .track{
  position:absolute; inset:0; background: var(--color-border-strong); border-radius: var(--radius-pill);
  transition: background var(--transition-fast); cursor:pointer;
}
.switch .track::before{
  content:''; position:absolute; width:20px; height:20px; left:3px; top:3px;
  background:#fff; border-radius:50%; transition: transform var(--transition-fast); box-shadow: var(--shadow-sm);
}
.switch input:checked + .track{ background: var(--color-primary); }
.switch input:checked + .track::before{ transform: translateX(18px); }
.switch input:disabled + .track{ background: var(--color-secondary); cursor:not-allowed; opacity:0.7; }
.cookie-modal-actions{ display:flex; gap:0.6rem; margin-top: var(--space-sm); flex-wrap:wrap; }
.cookie-modal-actions button{
  border:none; border-radius: var(--radius-pill); font-weight:700; font-size:0.85rem;
  padding: 0.7em 1.3em; transition: all var(--transition-fast); min-height:44px;
}
.btn-cookie-save{ background: var(--color-primary); color:#fff; }
.btn-cookie-save:hover{ background: var(--color-primary-light); }
.btn-cookie-reject{ background: transparent; color: var(--color-ink-soft); border:1.5px solid var(--color-border-strong) !important; }
.btn-cookie-reject:hover{ background: var(--color-bg-alt); }


@media (min-width: 720px){
  .info-grid{ grid-template-columns: repeat(2,1fr); }
  .feature-list{ grid-template-columns: repeat(2,1fr); }
  .feature-item:nth-child(odd){ border-right: 1px solid var(--color-border); padding-right: var(--space-md); }
  .feature-item:nth-child(even){ padding-left: var(--space-md); }
  .gallery-grid{ grid-template-columns: repeat(3,1fr); }
  .cta-split{ grid-template-columns: 1.3fr 1fr; align-items:center; }
  .form-row.two-col{ grid-template-columns: 1fr 1fr; }
  .footer-links{ grid-template-columns: repeat(3,1fr); }
}
@media (min-width: 900px){
  .primary-nav{ display:block; }
  .header-cta{ display:inline-flex; }
  .nav-toggle{ display:none; }
  .visual-break{ grid-template-columns: 1fr 1fr; }
  .visual-break.reverse{ direction: rtl; }
  .visual-break.reverse > *{ direction: ltr; }
  .footer-inner{ grid-template-columns: 1fr 1.4fr; }
  .legal-layout{ grid-template-columns: 260px 1fr; }
  .legal-nav{ position: sticky; top: 6.5rem; }
  .info-grid.grid-four{ grid-template-columns: repeat(4, 1fr); }
  .info-grid .span-2{ grid-column: span 2; }
}
@media (max-width: 899px){
  .mobile-panel{ display:flex; }
}
@media (min-width: 900px){
  .mobile-panel{ display:none !important; }
}

::selection{ background: var(--color-accent-light); color: var(--color-primary-dark); }

.pace .pace-progress{ background: var(--color-accent); height:3px; }
.pace .pace-progress-inner{ box-shadow: 0 0 10px var(--color-accent), 0 0 5px var(--color-accent); }
.pace .pace-activity{ display:none; }