/* ---------- Reset & base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif;
  color:#0c3d63;
  background:#fafcfd;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img,svg{max-width:100%;display:block}
a{color:#1a8aa3;text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3{font-weight:800;line-height:1.15;color:#0c3d63;margin:0 0 .5em}
h1{font-size:clamp(2rem,4vw,3.4rem);letter-spacing:-.02em}
h2{font-size:clamp(1.6rem,2.6vw,2.2rem);letter-spacing:-.01em;margin-bottom:.8em}
h3{font-size:1.15rem}
p{margin:0 0 1em}

.container{max-width:1140px;margin:0 auto;padding:0 1.25rem}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:.55rem;
  padding:.95rem 1.4rem;border-radius:999px;
  font-weight:700;font-size:1rem;
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
  text-decoration:none;border:0;cursor:pointer;
}
.btn-primary{background:#0c3d63;color:#fff;box-shadow:0 6px 18px rgba(12,61,99,.25)}
.btn-primary:hover{background:#0a3354;transform:translateY(-1px);text-decoration:none}
.btn-call{background:#f5b800;color:#0c3d63}
.btn-call:hover{background:#f0ad00;transform:translateY(-1px);text-decoration:none}
.btn-outline{background:transparent;color:#0c3d63;border:2px solid #0c3d63}
.btn-outline:hover{background:#0c3d63;color:#fff;text-decoration:none}

/* ---------- Header ---------- */
.site-header{
  position:sticky;top:0;z-index:50;
  background:#ffffff;
  border-bottom:1px solid #e7eef3;
  box-shadow:0 1px 0 rgba(12,61,99,.04);
}
.header-inner{display:flex;align-items:center;justify-content:space-between;padding:.85rem 1.25rem;max-width:1140px;margin:0 auto;gap:1rem}
.logo-link{display:flex;align-items:center;gap:.65rem;text-decoration:none}
.logo-link:hover{text-decoration:none}
.logo-icon{height:48px;width:auto;display:block;flex-shrink:0}
.logo-text{
  font-family:'Inter',sans-serif;font-weight:800;font-size:1.4rem;
  color:#0c3d63;letter-spacing:-.01em;line-height:1;
  white-space:nowrap;
}
.logo-text small{
  display:block;font-size:.65rem;font-weight:700;color:#1a8aa3;
  letter-spacing:.18em;text-transform:uppercase;margin-top:.25rem;
}
@media (max-width:520px){
  .logo-icon{height:40px}
  .logo-text{font-size:1.15rem}
  .logo-text small{font-size:.58rem;letter-spacing:.14em}
}
.nav{display:flex;align-items:center;gap:1.5rem}
.nav a{color:#0c3d63;font-weight:600;font-size:.95rem}
.nav a:hover{color:#1a8aa3;text-decoration:none}
.lang{margin-left:.5rem;font-size:.85rem;color:#6c7d8a;font-weight:600}
.lang a{color:#6c7d8a}
.lang a.active{color:#0c3d63}
.header-cta{display:flex;gap:.6rem}
.header-cta .btn{padding:.6rem 1rem;font-size:.92rem}

@media (max-width:820px){
  .nav{display:none}
  .header-cta .btn span{display:none}
}

/* ---------- Hero ---------- */
.hero{
  position:relative;
  padding:5rem 0 4rem;
  background:linear-gradient(180deg,#fafcfd 0%,#e8f1f5 100%);
  overflow:hidden;
}
.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:3rem;align-items:center}
.hero-eyebrow{
  display:inline-block;background:#fff;border:1px solid #d6e6ed;
  color:#1a8aa3;font-weight:700;font-size:.8rem;letter-spacing:.08em;
  text-transform:uppercase;padding:.4rem .85rem;border-radius:999px;margin-bottom:1.2rem;
}
.hero p.lead{font-size:1.15rem;color:#3a5468;max-width:560px;margin-bottom:1.8rem}
.hero-actions{display:flex;flex-wrap:wrap;gap:.8rem}
.hero-trust{display:flex;gap:1.5rem;margin-top:2.2rem;flex-wrap:wrap}
.hero-trust div{display:flex;align-items:center;gap:.5rem;font-weight:600;color:#0c3d63;font-size:.95rem}
.hero-trust svg{width:20px;height:20px;color:#1a8aa3}
.hero-card{
  background:#fff;border-radius:24px;padding:2rem;
  box-shadow:0 30px 60px -20px rgba(12,61,99,.25), 0 10px 25px -10px rgba(12,61,99,.15);
  border:1px solid #e7eef3;
}
.hero-card h3{font-size:1.3rem;margin-bottom:1.2rem}
.hero-card .row{display:flex;align-items:center;gap:.8rem;padding:.7rem 0;border-bottom:1px solid #f0f5f8}
.hero-card .row:last-child{border-bottom:0}
.hero-card .row svg{width:22px;height:22px;color:#1a8aa3;flex-shrink:0}
.hero-card .row strong{display:block;color:#0c3d63}
.hero-card .row span{color:#6c7d8a;font-size:.9rem}

@media (max-width:900px){
  .hero{padding:3rem 0 2.5rem}
  .hero-grid{grid-template-columns:1fr;gap:2rem}
}

/* ---------- Sections ---------- */
section{padding:5rem 0}
section.alt{background:#fff;border-top:1px solid #eef4f7;border-bottom:1px solid #eef4f7}
.section-head{text-align:center;max-width:680px;margin:0 auto 3rem}
.section-head p{color:#3a5468;font-size:1.05rem}

/* ---------- Services ---------- */
.services{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem}
.service{
  background:#fff;border:1px solid #e7eef3;border-radius:18px;padding:1.8rem 1.5rem;
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.service:hover{transform:translateY(-4px);box-shadow:0 20px 40px -20px rgba(12,61,99,.25);border-color:#cfe1e9}
.service .icon{
  width:54px;height:54px;border-radius:14px;
  background:linear-gradient(135deg,#0c3d63,#1a8aa3);
  display:flex;align-items:center;justify-content:center;color:#fff;margin-bottom:1.2rem;
}
.service .icon svg{width:28px;height:28px}
.service h3{margin-bottom:.5rem}
.service p{color:#3a5468;font-size:.95rem;margin:0}

@media (max-width:900px){.services{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.services{grid-template-columns:1fr}}

/* ---------- Services (6-card grid) ---------- */
.services{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
@media (max-width:900px){.services{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.services{grid-template-columns:1fr}}

/* ---------- Area (zone cards grid) ---------- */
.area-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;align-items:stretch}
@media (max-width:960px){.area-grid{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.area-grid{grid-template-columns:1fr}}

.zone-card{
  background:#fff;border:1px solid #e7eef3;border-radius:20px;
  padding:1.8rem;display:flex;flex-direction:column;
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.zone-card:hover{transform:translateY(-4px);box-shadow:0 24px 48px -24px rgba(12,61,99,.22);border-color:#cfe1e9}
.zone-head{display:flex;align-items:center;gap:1rem;margin-bottom:1.2rem;padding-bottom:1.2rem;border-bottom:1px solid #eef4f7}
.zone-badge{
  width:54px;height:54px;border-radius:16px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#0c3d63,#1a8aa3);color:#fff;
  font-weight:800;font-size:1.4rem;letter-spacing:-.02em;
  box-shadow:0 8px 16px -8px rgba(12,61,99,.45);
}
.zone-card.zone-2 .zone-badge{background:linear-gradient(135deg,#1a8aa3,#2bb5c4)}
.zone-card.zone-3 .zone-badge{background:linear-gradient(135deg,#2bb5c4,#5fd1dc)}
.zone-meta{flex:1;min-width:0}
.zone-meta h3{margin:0 0 .2rem;font-size:1.15rem;line-height:1.25}
.zone-meta .zone-dist{color:#1a8aa3;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.zone-chips{display:flex;flex-wrap:wrap;gap:.4rem;align-content:flex-start}
.chip{
  display:inline-block;padding:.45rem .85rem;border-radius:999px;
  background:#eef6f9;color:#0c3d63;font-size:.88rem;font-weight:600;
  border:1px solid #d6e6ed;line-height:1.2;
}

/* ---------- Price calculator (standalone section variant) ---------- */
.price-calc-wrap{
  max-width:720px;margin:0 auto;
}
.price-calc-wrap .price-calc{padding:2.5rem}
@media (max-width:560px){.price-calc-wrap .price-calc{padding:1.8rem}}

/* ---------- Price calculator card ---------- */
.price-calc{
  background:linear-gradient(140deg,#0c3d63 0%,#1a8aa3 100%);
  color:#fff;border-radius:20px;padding:1.8rem;
  box-shadow:0 20px 40px -20px rgba(12,61,99,.4);
}
.price-calc h3{color:#fff;margin-bottom:.4rem;font-size:1.2rem}
.price-calc .pc-intro{color:#cfe1e9;font-size:.92rem;margin-bottom:1.2rem}
.price-calc label{display:block;font-size:.8rem;font-weight:700;color:#cfe1e9;
  text-transform:uppercase;letter-spacing:.06em;margin-bottom:.45rem}
/* Autocomplete search */
.pc-search{position:relative}
.pc-input{
  width:100%;padding:.95rem 1rem .95rem 2.85rem;border-radius:12px;
  border:1px solid rgba(255,255,255,.25);
  background:rgba(255,255,255,.1);color:#fff;
  font-size:1rem;font-family:inherit;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><circle cx='11' cy='11' r='8'/><line x1='21' y1='21' x2='16.65' y2='16.65'/></svg>");
  background-repeat:no-repeat;background-position:1rem center;
}
.pc-input::placeholder{color:rgba(255,255,255,.6)}
.pc-input:focus{outline:none;border-color:#f5b800;background-color:rgba(255,255,255,.16)}
.pc-suggestions{
  position:absolute;left:0;right:0;top:calc(100% + 6px);
  background:#fff;border-radius:12px;
  box-shadow:0 20px 40px -10px rgba(12,61,99,.4);
  max-height:260px;overflow-y:auto;z-index:10;
  border:1px solid #cfe1e9;
}
.pc-suggestions[hidden]{display:none}
.pc-sugg-group{
  padding:.5rem 1rem .3rem;font-size:.7rem;font-weight:800;color:#1a8aa3;
  text-transform:uppercase;letter-spacing:.08em;background:#f5f9fb;
  border-bottom:1px solid #eef4f7;
}
.pc-sugg-item{
  display:flex;justify-content:space-between;align-items:center;gap:.8rem;
  padding:.7rem 1rem;cursor:pointer;color:#0c3d63;font-size:.95rem;
  border-bottom:1px solid #f0f5f8;
}
.pc-sugg-item:last-child{border-bottom:0}
.pc-sugg-item:hover,.pc-sugg-item.active{background:#eef6f9}
.pc-sugg-item .km{color:#6c7d8a;font-size:.85rem;font-weight:600;flex-shrink:0}
.pc-sugg-item mark{background:transparent;color:#1a8aa3;font-weight:700}
.pc-sugg-empty{padding:1rem;color:#6c7d8a;font-size:.9rem;text-align:center}
.pc-result{
  margin-top:1.2rem;padding:1.2rem;border-radius:14px;
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);
}
.pc-result-row{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap}
.pc-result-row span:first-child{color:#cfe1e9;font-size:.85rem;text-transform:uppercase;letter-spacing:.06em;font-weight:600}
.pc-dist{color:#fff;font-weight:700;font-size:1rem}
.pc-price{color:#f5b800;font-weight:800;font-size:1.6rem;letter-spacing:-.01em}
.pc-note{display:block;margin-top:.8rem;font-size:.8rem;color:#cfe1e9;line-height:1.5}
.pc-cta{margin-top:1rem;display:flex;gap:.6rem;flex-wrap:wrap}
.pc-cta .btn{font-size:.9rem;padding:.7rem 1.1rem}

/* ---------- Booking form ---------- */
.book{
  background:linear-gradient(135deg,#0c3d63 0%,#0e4a7a 60%,#1a8aa3 100%);
  color:#fff;border-radius:28px;padding:3rem;
  display:grid;grid-template-columns:1fr 1.2fr;gap:3rem;align-items:center;
}
.book h2{color:#fff}
.book p{color:#cfe1e9}
.book form{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}
.book label{font-size:.85rem;font-weight:600;color:#cfe1e9;margin-bottom:.3rem;display:block}
.book input,.book textarea,.book select{
  width:100%;padding:.85rem 1rem;border-radius:12px;border:1px solid rgba(255,255,255,.2);
  background:rgba(255,255,255,.08);color:#fff;font-size:.95rem;font-family:inherit;
  transition:border-color .15s ease, background .15s ease;
}
.book input::placeholder,.book textarea::placeholder{color:rgba(255,255,255,.55)}
.book input:focus,.book textarea:focus,.book select:focus{
  outline:none;border-color:#f5b800;background:rgba(255,255,255,.14);
}
.book .full{grid-column:1 / -1}
.book button{margin-top:.4rem}

/* ---------- Booking options (Cal.com) ---------- */
.booking-options{
  display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-top:1.5rem;
}
.booking-option{
  border-radius:18px;padding:2rem 2rem;
  display:flex;flex-direction:column;
}
.booking-option h3{margin:0 0 .6rem;font-size:1.2rem;font-weight:700}
.booking-option > p{margin:0 0 1.2rem;font-size:.95rem;line-height:1.5}
.booking-option .btn{align-self:flex-start;margin-top:auto}
.booking-option-call{
  background:linear-gradient(135deg,#0c3d63 0%,#1a8aa3 100%);color:#fff;
}
.booking-option-call h3{color:#fff}
.booking-option-call p{color:#cfe1e9}
.booking-option-online{
  background:#f4f6f8;color:#1a2a36;border:1px solid #e3e8ed;
}
.booking-option-online .booking-note{
  font-size:.85rem;color:#5a6b78;font-style:italic;margin:0;
}
@media (max-width:700px){
  .booking-options{grid-template-columns:1fr;gap:1.2rem}
  .booking-option{padding:1.6rem 1.4rem}
}

@media (max-width:900px){
  .book{grid-template-columns:1fr;padding:2rem;border-radius:20px}
  .book form{grid-template-columns:1fr}
}

/* ---------- Contact ---------- */
.contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}
.contact-card{
  background:#fff;border:1px solid #e7eef3;border-radius:18px;padding:2rem;text-align:center;
  transition:transform .2s ease, box-shadow .2s ease;
}
.contact-card:hover{transform:translateY(-4px);box-shadow:0 20px 40px -20px rgba(12,61,99,.2)}
.contact-card .icon{
  width:64px;height:64px;border-radius:50%;
  background:linear-gradient(135deg,#0c3d63,#1a8aa3);
  display:flex;align-items:center;justify-content:center;color:#fff;margin:0 auto 1.2rem;
}
.contact-card .icon svg{width:30px;height:30px}
.contact-card h3{margin-bottom:.4rem}
.contact-card a{font-size:1.15rem;font-weight:700;color:#0c3d63}

@media (max-width:820px){.contact-grid{grid-template-columns:1fr}}

/* ---------- Footer ---------- */
.footer{
  background:#0c3d63;color:#cfe1e9;padding:3rem 0 1.5rem;margin-top:0;
}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:2.5rem;margin-bottom:2rem}
.footer h4{color:#fff;font-size:.95rem;margin:0 0 1rem;text-transform:uppercase;letter-spacing:.08em}
.footer a{color:#cfe1e9;display:block;padding:.2rem 0}
.footer a:hover{color:#f5b800;text-decoration:none}
.footer .logo-icon{height:56px}
.footer .logo-text{color:#fff}
.footer .logo-text small{color:#2bb5c4}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.12);padding-top:1.2rem;
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;
  font-size:.85rem;color:#8fa7b6;
}
@media (max-width:820px){.footer-grid{grid-template-columns:1fr}}

/* ---------- Legal pages ---------- */
.legal{padding:4rem 0;max-width:780px;margin:0 auto}
.legal h2{margin-top:2rem;font-size:1.4rem}
.legal h3{margin-top:1.5rem;font-size:1.1rem;color:#1a8aa3}
.legal p,.legal li{color:#3a5468}
.legal ul{padding-left:1.2rem}

/* ---------- Floating call button (mobile) ---------- */
.fab-call{
  position:fixed;bottom:1.2rem;right:1.2rem;
  background:#f5b800;color:#0c3d63;
  width:60px;height:60px;border-radius:50%;
  display:none;align-items:center;justify-content:center;
  box-shadow:0 10px 25px rgba(12,61,99,.35);z-index:60;
}
.fab-call svg{width:28px;height:28px}
@media (max-width:820px){.fab-call{display:flex}}
