@font-face{font-family:"Manrope";font-style:normal;font-weight:200 800;font-display:swap;src:url(fonts/manrope-latin-wght-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2212}
@font-face{font-family:"Manrope";font-style:normal;font-weight:200 800;font-display:swap;src:url(fonts/manrope-greek-wght-normal.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}

:root{
  --navy:#0A2036;--navy-hover:#16385A;--navy-deep:#061625;
  --silver:#A9B3BF;--silver-soft:#D5DAE0;--silver-wash:#E8EAED;
  --off:#F6F5F2;--paper:#FFFFFF;
  --ink:#0A2036;--muted:#485568;--star:#6F7B89;
  --on-navy:#F4F5F7;--on-navy-soft:#B4CBE2;--focus:#0D5E87;
  --sans:"Manrope","Helvetica Neue",Arial,sans-serif;
  --ease:cubic-bezier(.16,1,.3,1);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:24px;-webkit-text-size-adjust:100%;scrollbar-color:var(--navy) var(--silver-wash)}
body{margin:0;background:var(--off);color:var(--ink);font-family:var(--sans);font-size:1.0625rem;line-height:1.6;-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums}
h1,h2,p{margin:0}
a{color:inherit}
button{font:inherit;color:inherit}
::selection{background:var(--navy);color:var(--off)}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.hero :focus-visible,.close :focus-visible,.foot :focus-visible{outline-color:var(--silver-soft)}
.skip{position:absolute;left:24px;top:-80px;z-index:10;padding:12px 18px;border-radius:999px;background:#fff;color:var(--ink);font-weight:700}
.skip:focus{top:12px}

/* pill buttons */
.pill{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 28px;border:0;border-radius:999px;background:var(--off);color:var(--navy);font-family:var(--sans);font-size:1rem;font-weight:700;line-height:1;text-decoration:none;cursor:pointer;transition:transform .2s var(--ease),background-color .2s ease,color .2s ease}
.pill:hover{background:var(--silver-soft)}
.pill:active{transform:translateY(2px) scale(.985)}
.pill.dark{background:var(--navy);color:var(--off)}
.pill.dark:hover{background:var(--navy-hover)}

/* hero */
.hero{background:var(--navy);color:var(--on-navy);min-height:100svh;display:flex;flex-direction:column;overflow:hidden}
.bar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:24px;padding-left:clamp(16px,3vw,48px);padding-right:clamp(16px,3vw,48px)}
.logo{display:inline-flex;align-items:center;font-size:1.5rem;font-weight:800;line-height:1;letter-spacing:-.03em;text-decoration:none;color:#fff}
.logo img{display:block;width:auto;height:34px}
@media (max-width:899px){.logo img{height:27px}}
.hero-top{display:grid;grid-template-columns:minmax(0,1fr);gap:32px clamp(32px,6vw,96px);align-items:end;margin-top:clamp(36px,8vh,96px);padding-left:clamp(16px,3vw,48px);padding-right:clamp(16px,3vw,48px)}
.hero h1{max-width:18ch;font-weight:800;font-size:clamp(2.5rem,1rem + 4.2vw,4.75rem);line-height:1.04;letter-spacing:-.035em;color:#fff;text-wrap:balance}
.hero .lead{max-width:44ch;margin-top:clamp(16px,2.2vw,28px);font-size:clamp(1.0625rem,1rem + .35vw,1.25rem);font-weight:500;line-height:1.5;color:var(--on-navy-soft)}
.lines .line{display:block;overflow:hidden;padding-bottom:.12em;margin-bottom:-.12em}
.lines [data-line]{display:block}

/* directory index with leader dots */
.index{list-style:none;margin:0;padding:0}
.index a{display:flex;align-items:baseline;gap:14px;padding:12px 0;text-decoration:none;font-size:clamp(1.0625rem,1rem + .45vw,1.3125rem);font-weight:700;line-height:1.2;transition:color .2s ease,transform .3s var(--ease)}
.index a:hover{color:var(--silver-soft);transform:translateX(6px)}
.index .dots{flex:1;min-width:20px;height:.4em;background:radial-gradient(circle,var(--silver) 1.1px,transparent 1.6px) 0 100%/9px 5px repeat-x;opacity:.6}
.index .n{font-weight:500;color:var(--on-navy-soft)}

/* the wall: two rows of Google reviews moving in opposite directions */
.marquee{margin-top:auto;padding-top:clamp(36px,6vh,72px);padding-bottom:clamp(24px,4vh,44px);display:grid;gap:16px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent);mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent)}
.mrow{overflow:hidden}
.mtrack{display:flex;width:max-content;animation:slide var(--dur,220s) linear infinite;will-change:transform}
.mrow.rev .mtrack{animation-direction:reverse}
.marquee:hover .mtrack{animation-play-state:paused}
.half{display:flex;gap:16px;padding-right:16px}
@keyframes slide{to{transform:translateX(-50%)}}
.mcard{flex:0 0 clamp(270px,24vw,350px);width:clamp(270px,24vw,350px);display:flex;flex-direction:column;gap:12px;padding:20px 22px;border-radius:18px;background:var(--off);color:var(--navy)}
.mcard .stars{display:flex;gap:3px}
.mcard .stars svg{width:15px;height:15px;fill:var(--star)}
.mcard p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;overflow:hidden;font-size:.9375rem;font-weight:500;line-height:1.5}
.mcard .by{margin-top:auto;font-size:.8125rem;font-weight:700;color:var(--muted)}

/* platform sections */
.plat{padding-top:clamp(80px,9vw,140px);padding-bottom:clamp(64px,7vw,104px);padding-left:clamp(16px,3vw,48px);padding-right:clamp(16px,3vw,48px);overflow:hidden}
.plat.on-grey{background:var(--silver-wash)}
.ph{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:24px 40px;margin-bottom:clamp(28px,3.4vw,48px)}
.ph h2{font-weight:800;font-size:clamp(2rem,1.2rem + 2.6vw,3.5rem);line-height:1.05;letter-spacing:-.03em;color:var(--navy);text-wrap:balance}
.stat{margin-top:14px;max-width:54ch;font-size:1.0625rem;font-weight:500;line-height:1.55;color:var(--muted)}
.ctl{display:flex;align-items:center;gap:12px}
.pos{margin-right:8px;font-size:.875rem;font-weight:700;line-height:1}
.arrow{display:grid;place-items:center;width:52px;height:52px;border:0;border-radius:50%;background:var(--navy);color:var(--off);cursor:pointer;transition:transform .2s var(--ease),background-color .2s ease,opacity .2s ease}
.arrow:hover{background:var(--navy-hover)}
.arrow:active{transform:scale(.93)}
.arrow:disabled{opacity:.25;cursor:default}
.arrow svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.filters[hidden]{display:none}
.filters{list-style:none;margin:0 0 clamp(24px,3vw,36px);padding:0;display:flex;flex-wrap:wrap;gap:8px}
.filters button{display:inline-flex;align-items:baseline;gap:10px;min-height:44px;padding:10px 18px;border:0;border-radius:999px;background:var(--silver-wash);cursor:pointer;font-size:.9375rem;font-weight:600;line-height:1.2;transition:background-color .2s ease,color .2s ease,transform .2s var(--ease)}
.filters button small{font-size:.875rem;font-weight:700;color:var(--muted)}
.filters button:hover{background:var(--silver-soft)}
.filters button:active{transform:translateY(2px)}
.filters button[aria-pressed="true"]{background:var(--navy);color:var(--off)}
.filters button[aria-pressed="true"] small{color:var(--on-navy-soft)}

.track{display:flex;gap:20px;margin-right:calc(clamp(16px,3vw,48px)*-1);padding-right:clamp(16px,3vw,48px);overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;align-items:stretch}
.track::-webkit-scrollbar{display:none}
.track:focus-visible{outline-offset:6px;border-radius:20px}

/* entry card: structure taken from the supplied card */
.card{flex:0 0 clamp(290px,27vw,400px);scroll-snap-align:start;display:flex;flex-direction:column;padding:clamp(24px,2.2vw,32px);border:1px solid var(--silver-soft);border-radius:20px;background:var(--paper)}
.on-grey .card{background:var(--off);border-color:transparent}
.card[hidden]{display:none}
.c-top{display:flex;align-items:center;gap:12px;margin-bottom:clamp(24px,2.6vw,36px);font-size:1rem;font-weight:700;line-height:1}
.ico{display:grid;place-items:center;flex:none;width:36px;height:36px;border-radius:50%;background:var(--navy);color:var(--off)}
.ico svg{width:17px;height:17px}
.c-body{margin-bottom:28px}
.c-body p{margin:0 0 .7em;font-size:1.0625rem;font-weight:400;line-height:1.65}
.c-body p:last-child{margin-bottom:0}
.xs .c-body p{font-size:clamp(1.375rem,1.1rem + .8vw,1.75rem);font-weight:600;line-height:1.25;letter-spacing:-.015em}
.c-body.clamped{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:7;overflow:hidden}
.c-more{align-self:flex-start;margin:-14px 0 22px;padding:8px 0;border:0;background:none;cursor:pointer;color:var(--navy);font-size:.875rem;font-weight:700;line-height:1;text-decoration:underline;text-underline-offset:4px}
.c-more[hidden]{display:none}
.c-foot{margin-top:auto;display:flex;align-items:center;gap:14px;padding-top:20px;border-top:1px solid var(--silver-soft)}
.av{display:grid;place-items:center;flex:none;width:40px;height:40px;border-radius:50%;background:var(--silver-wash);font-size:1rem;font-weight:800;color:var(--navy)}
.who{display:flex;flex-direction:column;gap:3px;font-size:.875rem;font-weight:700;line-height:1.35}
.who i{font-style:normal;font-weight:500;color:var(--muted)}
.more-link{margin-top:28px;font-size:1rem;font-weight:600;line-height:1.4}
.more-link a{color:var(--navy);text-underline-offset:5px}

/* close */
.close{background:var(--navy);color:var(--on-navy);min-height:88svh;padding-top:clamp(72px,9vw,128px);padding-bottom:clamp(40px,5vw,64px);padding-left:clamp(16px,3vw,48px);padding-right:clamp(16px,3vw,48px);display:grid;grid-template-rows:auto 1fr auto}
.close h2{max-width:15ch;font-weight:800;font-size:clamp(2.625rem,1rem + 5.6vw,6rem);line-height:1.02;letter-spacing:-.035em;color:#fff;text-wrap:balance}
.close .base{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:32px 48px}
.close p{max-width:46ch;font-size:clamp(1.125rem,1rem + .45vw,1.375rem);font-weight:500;line-height:1.5;color:var(--on-navy-soft)}
.close .pill{justify-self:start;align-self:center;margin-top:48px;margin-bottom:48px;min-height:60px;padding:0 36px;font-size:1.0625rem}
.close .tel{justify-self:end;font-size:1.0625rem;font-weight:700;line-height:1.2;text-underline-offset:5px}

/* foot */
.foot{background:var(--navy-deep);color:var(--on-navy-soft);padding-top:clamp(56px,6vw,88px);padding-bottom:28px;padding-left:clamp(16px,3vw,48px);padding-right:clamp(16px,3vw,48px);display:grid;gap:56px}
.cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 24px;font-size:.9375rem;line-height:1.6}
.cols strong{display:block;margin-bottom:6px;color:#fff;font-weight:700}
.cols a{text-underline-offset:4px}
.legal{font-size:.875rem;line-height:1.5;color:#8fa0b1}

/* quote request dialog */
html:has(dialog[open]){overflow:hidden}
.offer{position:fixed;width:min(520px,calc(100vw - 24px));max-height:calc(100svh - 24px);margin:auto;padding:0;border:0;border-radius:24px;background:var(--off);color:var(--ink);overflow:auto}
.offer::backdrop{background:rgba(6,22,37,.74)}
.offer-in{position:relative;padding:clamp(24px,4vw,40px)}
.offer h2{padding-right:52px;font-weight:800;font-size:clamp(1.75rem,1.3rem + 1.4vw,2.25rem);line-height:1.1;letter-spacing:-.03em;color:var(--navy)}
.offer .sub{margin-top:10px;font-size:1rem;line-height:1.55;color:var(--muted)}
.offer-x{position:absolute;top:16px;right:16px;display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:50%;background:var(--silver-wash);color:var(--navy);cursor:pointer;transition:background-color .2s ease,transform .2s var(--ease)}
.offer-x:hover{background:var(--silver-soft)}
.offer-x:active{transform:scale(.92)}
.offer-x svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}
.fld{margin-top:20px}
.fld label{display:block;margin-bottom:8px;font-size:.875rem;font-weight:700;line-height:1.2}
.offer input[type=text],.offer input[type=email],.offer input[type=tel]{width:100%;min-height:52px;padding:0 16px;border:1px solid var(--silver);border-radius:14px;background:#fff;color:var(--ink);font-family:var(--sans);font-size:1rem;transition:border-color .2s ease}
.offer input:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-color:var(--navy)}
.offer input[aria-invalid="true"]{border-color:#B3261E}
.err{min-height:1.25em;margin-top:6px;font-size:.875rem;font-weight:600;line-height:1.3;color:#B3261E}
.consent{display:flex;align-items:flex-start;gap:12px;margin-top:20px;font-size:.875rem;line-height:1.5;color:var(--muted);cursor:pointer}
.consent input{flex:none;width:22px;height:22px;margin:1px 0 0;accent-color:var(--navy);cursor:pointer}
.consent a{color:var(--navy);font-weight:700;text-underline-offset:3px}
.offer .pill{width:100%;margin-top:20px;min-height:56px}
.offer .pill[disabled]{opacity:.6;cursor:progress}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
#offer-done .pill{margin-top:28px}
@media (prefers-reduced-motion:no-preference){
  .offer[open]{animation:offer-in 420ms var(--ease)}
  .offer[open]::backdrop{animation:fade-bd 300ms ease}
  @keyframes offer-in{from{opacity:0;transform:translateY(18px) scale(.98)}}
  @keyframes fade-bd{from{opacity:0}}
}

/* ── Cookie consent ─────────────────────────────────────────────────────── */
.cc{position:fixed;left:0;right:0;bottom:0;z-index:60;background:var(--paper);border-top:1px solid var(--silver-wash);box-shadow:0 -10px 30px rgba(10,32,54,.12)}
.cc[hidden]{display:none}
.cc-in{display:flex;align-items:center;gap:clamp(16px,3vw,40px);max-width:1200px;margin:0 auto;padding:18px clamp(16px,3vw,48px)}
.cc-txt h2{margin:0 0 4px;font-size:1rem;font-weight:800;letter-spacing:-.01em;color:var(--navy)}
.cc-txt p{margin:0;font-size:.9375rem;line-height:1.5;color:var(--muted)}
.cc-txt a{color:var(--focus);text-underline-offset:3px}
.cc-act{display:flex;gap:10px;flex:0 0 auto}
.cc .pill{min-height:44px;padding:0 22px;font-size:.9375rem}
.cc-no{background:var(--silver-wash);color:var(--navy)}
.cc-no:hover{background:var(--silver-soft)}
@media (prefers-reduced-motion:no-preference){
  .cc{animation:cc-up .5s var(--ease) both}
  @keyframes cc-up{from{transform:translateY(100%)}to{transform:none}}
}
@media (max-width:899px){
  .cc-in{flex-direction:column;align-items:stretch;gap:14px;padding:16px}
  .cc-act{display:grid;grid-template-columns:1fr 1fr}
  .cc .pill{width:100%}
}

@media (max-width:899px){
  .hero{min-height:auto}
  .hero-top{grid-template-columns:1fr;margin-top:44px;gap:28px}
  .index{order:3}
  .mcard{flex-basis:78vw;width:78vw}
  .card{flex-basis:84vw}
  .ph{align-items:flex-start}
  .arrow{width:48px;height:48px}
  .cols{grid-template-columns:1fr}
  .close{min-height:auto}
  .close .base{grid-template-columns:1fr}
  .close .tel{justify-self:start}
  .close .pill{justify-self:stretch;margin-top:40px;margin-bottom:40px}
  .bar .pill{min-height:46px;padding:0 20px}
}

/* motion: transform and opacity only; content stays visible without script */
@media (prefers-reduced-motion:no-preference){
  .js .lines [data-line]{transform:translateY(106%);animation:line-up 1000ms var(--ease) forwards;animation-delay:calc(var(--i)*120ms + 120ms)}
  @keyframes line-up{to{transform:none}}
  .js [data-load]{opacity:0;transform:translateY(16px);animation:rise 800ms var(--ease) forwards;animation-delay:calc(var(--d,0)*100ms + 500ms)}
  @keyframes rise{to{opacity:1;transform:none}}
  .js .mrow{opacity:0;animation:fade 1200ms ease forwards;animation-delay:calc(var(--d,0)*200ms + 900ms)}
  @keyframes fade{to{opacity:1}}
  .js [data-reveal]{opacity:0;transform:translateY(22px);transition:opacity 700ms var(--ease),transform 900ms var(--ease)}
  .js [data-reveal].is-in{opacity:1;transform:none}
  .js .track .card{opacity:0;transform:translateX(28px);transition:opacity 700ms var(--ease),transform 900ms var(--ease);transition-delay:calc(var(--i)*70ms)}
  .js .track.is-in .card{opacity:1;transform:none}
  .js .close h2 .line [data-line]{animation:none;transform:translateY(106%);transition:transform 1000ms var(--ease) calc(var(--i)*120ms)}
  .js .close.is-in h2 [data-line]{transform:none}
  .card.fresh{animation:rise 600ms var(--ease) both;animation-delay:calc(var(--i)*60ms)}
}
@media (prefers-reduced-motion:reduce){
  .mtrack{animation:none}
  .mrow{overflow-x:auto}
  .half[aria-hidden="true"]{display:none}
}
