/* gelolisboa.pt — estilos */
:root{
  --navy:#13294b;--navy-2:#1c3a66;--blue:#1f5fa8;--tram:#f4b400;--tram-d:#d99e00;
  --paper:#f7f5f0;--ice:#e7f0f7;--ink:#1a1f2b;--muted:#5b6475;--line:#d9dee6;--white:#fff;
  --ok:#1e7a4c;--err:#b3261e;
  --serif:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,serif;
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --r:14px;--wrap:1120px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.6 var(--sans)}
img,svg{max-width:100%;height:auto}
a{color:var(--blue)}
a:hover{color:var(--navy)}
h1,h2,h3{font-family:var(--serif);color:var(--navy);line-height:1.2;margin:0 0 .5em}
h1{font-size:clamp(2rem,4.6vw,3.2rem);letter-spacing:-.01em}
h2{font-size:clamp(1.5rem,3vw,2.1rem);margin-top:1.6em}
h3{font-size:1.25rem}
p{margin:0 0 1em}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 20px}
.skip{position:absolute;left:-999px}.skip:focus{left:12px;top:12px;background:#fff;padding:8px 12px;z-index:99}

/* header */
.top{background:var(--navy);color:#fff;position:sticky;top:0;z-index:50;border-bottom:4px solid var(--tram)}
.top .wrap{display:flex;align-items:center;gap:18px;min-height:66px}
.logo{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-family:var(--serif);font-size:1.35rem;font-weight:700;white-space:nowrap}
.logo:hover{color:#fff}
.logo svg{width:34px;height:34px;flex:0 0 34px}
.logo b{color:var(--tram);font-weight:700}
.nav{margin-left:auto;display:flex;align-items:center;gap:4px}
.nav a{color:#dfe7f3;text-decoration:none;padding:8px 10px;border-radius:8px;font-size:.95rem}
.nav a:hover,.nav a[aria-current=page]{color:#fff;background:rgba(255,255,255,.1)}
.lang{border:1px solid rgba(255,255,255,.35);font-weight:600}
.btn{display:inline-block;background:var(--tram);color:var(--navy);font-weight:700;text-decoration:none;padding:12px 20px;border-radius:999px;border:0;cursor:pointer;font-size:1rem;font-family:var(--sans)}
.btn:hover{background:var(--tram-d);color:var(--navy)}
.btn.ghost{background:transparent;color:inherit;border:2px solid currentColor}
.btn.wa{background:#1f9d57;color:#fff}.btn.wa:hover{background:#177c44;color:#fff}
.nav .btn{padding:9px 16px;margin-left:6px}
.burger{display:none;margin-left:auto;background:none;border:1px solid rgba(255,255,255,.4);color:#fff;border-radius:8px;padding:8px 12px;font-size:1rem}
@media(max-width:1240px){
  .burger{display:block}
  .nav{display:none;position:absolute;left:0;right:0;top:70px;background:var(--navy);flex-direction:column;align-items:stretch;padding:10px 20px 20px;gap:2px}
  .nav.open{display:flex}
  .nav a{padding:12px}
  .nav .btn{margin:8px 0 0;text-align:center}
}

/* breadcrumbs */
.crumbs{font-size:.88rem;color:var(--muted);padding-top:16px}
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.crumbs li+li:before{content:"›";margin-right:6px;color:#9aa3b2}
.crumbs a{color:var(--muted)}

/* hero */
.hero{background:linear-gradient(160deg,var(--navy) 0%,var(--navy-2) 60%,var(--blue) 130%);color:#fff;position:relative;overflow:hidden}
.hero .wrap{padding-top:64px;padding-bottom:72px;position:relative;z-index:1}
.hero h1{color:#fff;max-width:22ch}
.hero p.lead{font-size:1.2rem;max-width:56ch;color:#e3ebf6}
.hero .cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}
.hero .ticks{display:flex;flex-wrap:wrap;gap:8px 20px;margin:26px 0 0;padding:0;list-style:none;color:#cfe0f2;font-size:.95rem}
.hero .ticks li:before{content:"✓ ";color:var(--tram);font-weight:700}
.hero .tiles{position:absolute;right:-40px;top:-20px;width:420px;opacity:.16;z-index:0}
@media(max-width:760px){.hero .tiles{width:260px;right:-80px}}
.page-head{padding-top:18px;padding-bottom:8px}
.page-head p.lead{font-size:1.15rem;color:var(--muted);max-width:62ch}

/* sections */
section.band{padding:56px 0}
section.band.alt{background:#fff}
section.band.ice{background:var(--ice)}
.grid{display:grid;gap:20px}
.g2{grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr))}
.g3{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:22px}
.band.alt .card{background:var(--paper)}
.card h3{margin-top:0}
.card .ico{width:64px;height:64px;margin-bottom:10px}
.card a.more{font-weight:600;text-decoration:none}
.spec{font-size:.92rem;color:var(--muted);margin:.3em 0 .8em}
.pill{display:inline-block;background:var(--ice);color:var(--navy);border-radius:999px;padding:2px 10px;font-size:.82rem;font-weight:600;margin:0 6px 6px 0}
.steps{counter-reset:s;list-style:none;padding:0;margin:0;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.steps li{background:#fff;border-radius:var(--r);padding:20px 20px 20px 64px;position:relative;border:1px solid var(--line)}
.steps li:before{counter-increment:s;content:counter(s);position:absolute;left:18px;top:18px;width:32px;height:32px;border-radius:50%;background:var(--tram);color:var(--navy);font-weight:800;display:grid;place-items:center}
.note{background:#fff8e1;border-left:4px solid var(--tram);padding:14px 18px;border-radius:8px;margin:1em 0}
.prose{max-width:760px}
.prose ul{padding-left:1.2em}
.prose li{margin:.3em 0}
table.cmp{width:100%;border-collapse:collapse;background:#fff;border-radius:var(--r);overflow:hidden;font-size:.95rem}
.cmp th,.cmp td{padding:12px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.cmp th{background:var(--navy);color:#fff;font-weight:600}
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.zones{display:flex;flex-wrap:wrap;gap:8px;padding:0;list-style:none}
.zones li{background:#fff;border:1px solid var(--line);border-radius:999px;padding:6px 14px}
.zones li.on{background:var(--navy);color:#fff;border-color:var(--navy)}
.zones li.on a{color:#fff}

/* faq */
.faq details{background:#fff;border:1px solid var(--line);border-radius:12px;margin:0 0 10px;padding:0 18px}
.faq summary{cursor:pointer;font-weight:600;padding:16px 0;list-style:none;position:relative;padding-right:28px}
.faq summary::-webkit-details-marker{display:none}
.faq summary:after{content:"+";position:absolute;right:0;top:12px;font-size:1.4rem;color:var(--blue)}
.faq details[open] summary:after{content:"–"}
.faq details>div{padding:0 0 16px;color:#333}

/* form */
.form-wrap{background:var(--navy);color:#fff;border-radius:20px;padding:32px}
.form-wrap h2{color:#fff;margin-top:0}
.form-wrap p{color:#d5e0ee}
form.lead{display:grid;gap:14px;grid-template-columns:1fr 1fr}
form.lead .full{grid-column:1/-1}
@media(max-width:640px){form.lead{grid-template-columns:1fr}}
form.lead label{display:block;font-size:.9rem;margin-bottom:4px;color:#e8eef7}
form.lead input,form.lead select,form.lead textarea{width:100%;padding:12px 14px;border-radius:10px;border:1px solid #3b5680;background:#0f2240;color:#fff;font:inherit}
form.lead input:focus,form.lead select:focus,form.lead textarea:focus{outline:2px solid var(--tram);border-color:transparent}
form.lead textarea{min-height:110px;resize:vertical}
form.lead .check{display:flex;gap:10px;align-items:flex-start;font-size:.9rem}
form.lead .check input{width:auto;margin-top:4px}
form.lead .hp{position:absolute;left:-9999px}
.form-msg{padding:12px 14px;border-radius:10px;display:none}
.form-msg.ok{display:block;background:#e6f4ec;color:var(--ok)}
.form-msg.err{display:block;background:#fdecea;color:var(--err)}

/* calculator */
.calc{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:24px;display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));align-items:end}
.calc label{font-size:.9rem;color:var(--muted);display:block;margin-bottom:4px}
.calc input,.calc select{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;font:inherit}
.calc output{grid-column:1/-1;font-size:1.25rem;font-family:var(--serif);color:var(--navy);background:var(--ice);border-radius:10px;padding:14px 16px}

/* cta band */
.cta-band{background:var(--tram);color:var(--navy)}
.cta-band .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px;padding:34px 20px}
.cta-band h2{margin:0;font-size:1.6rem}
.cta-band .btn{background:var(--navy);color:#fff}
.cta-band .btn.wa{background:#1f9d57}

/* footer */
.foot{background:#0d1d36;color:#b8c5d8;font-size:.92rem;padding:48px 0 90px}
.foot a{color:#dbe5f2}
.foot .cols{display:grid;gap:28px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.foot h3{color:#fff;font-family:var(--sans);font-size:1rem;margin:0 0 10px}
.foot ul{list-style:none;padding:0;margin:0}
.foot li{margin:6px 0}
.foot .legal{border-top:1px solid #243a5c;margin-top:30px;padding-top:18px;display:flex;flex-wrap:wrap;gap:12px 24px;align-items:center}
.lr{display:inline-flex;align-items:center;gap:8px;background:#fff;color:#0d1d36!important;border-radius:8px;padding:6px 12px;text-decoration:none;font-weight:700}

/* mobile call bar */
.mbar{position:fixed;left:0;right:0;bottom:0;display:none;z-index:60;box-shadow:0 -4px 16px rgba(0,0,0,.15)}
.mbar a{flex:1;text-align:center;padding:14px 8px;font-weight:700;text-decoration:none}
.mbar .c{background:var(--navy);color:#fff}.mbar .w{background:#1f9d57;color:#fff}
@media(max-width:760px){.mbar{display:flex}}

/* cookie */
.cookie{position:fixed;left:16px;right:16px;bottom:16px;max-width:460px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;box-shadow:0 8px 30px rgba(0,0,0,.18);z-index:70;display:none;font-size:.92rem}
.cookie.show{display:block}
.cookie .row{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}
.cookie .btn{padding:7px 14px;font-size:.88rem}
@media(max-width:760px){.cookie{bottom:70px}}
.prose .table-scroll{margin-bottom:1em}

/* WhatsApp (INSTRUKCIYA §12) */
.btn svg{vertical-align:-4px;margin-right:4px}
.nav .btn.wa{margin-left:6px}
.wa-float{position:fixed;right:18px;bottom:18px;z-index:65;display:flex;align-items:center;gap:8px;background:#1f9d57;color:#fff;text-decoration:none;font-weight:700;padding:12px 18px 12px 14px;border-radius:999px;box-shadow:0 6px 20px rgba(0,0,0,.25)}
.wa-float:hover{background:#177c44;color:#fff}
.wa-float svg{width:26px;height:26px}
.call-float{display:none;position:fixed;left:16px;bottom:18px;z-index:65;width:52px;height:52px;border-radius:50%;background:var(--navy);color:#fff;text-decoration:none;font-size:1.5rem;align-items:center;justify-content:center;box-shadow:0 6px 20px rgba(0,0,0,.25)}
@media(max-width:760px){.wa-float span{display:none}.wa-float{padding:13px}.call-float{display:flex}.cookie{bottom:84px}}
.nav a{white-space:nowrap}
.wa-top{display:none;margin-left:auto;background:#1f9d57;color:#fff;border-radius:8px;padding:7px 10px;text-decoration:none;font-weight:700}
.wa-top svg{vertical-align:-4px}
@media(max-width:1240px){.wa-top{display:inline-block}.burger{margin-left:8px}}

/* ===== Lisboa: azulejo, ponte, eléctrico ===== */
.top{background:#13294b url(/assets/azulejo-navy.svg) 0 0/56px 56px}
.hero{padding-bottom:0}
.hero .wrap{padding-bottom:150px}
.hero-art{position:absolute;right:0;top:0;bottom:0;width:min(46%,560px);z-index:0;pointer-events:none}
.az-panel{position:absolute;inset:0;background:url(/assets/azulejo.svg) 0 0/80px 80px;opacity:.95;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 38%);mask-image:linear-gradient(90deg,transparent 0,#000 38%)}
.hero-art .glass{position:absolute;right:8%;top:50%;transform:translateY(-58%);width:min(78%,360px);filter:drop-shadow(0 18px 30px rgba(10,25,50,.45))}
.hero h1,.hero p.lead{position:relative;z-index:1}
.bridge{position:absolute;left:0;right:0;bottom:0;width:100%;height:150px;z-index:1;display:block}
@media(max-width:900px){.hero-art{width:100%;opacity:.28}.hero-art .glass{display:none}.bridge{height:100px}.hero .wrap{padding-bottom:110px}}
/* azulejo strip as section divider */
section.band.alt,section.band.ice{background-image:url(/assets/azulejo.svg);background-size:28px 28px;background-repeat:repeat-x;background-position:0 0;padding-top:72px}
section.band.alt{background-color:#fff}
section.band.ice{background-color:var(--ice)}
/* azulejo frame on cards */
.card{position:relative;overflow:hidden;padding-top:30px}
.card:before{content:"";position:absolute;left:0;right:0;top:0;height:12px;background:url(/assets/azulejo.svg) 0 0/12px 12px repeat-x;opacity:.9}
.card .ico{width:76px;height:76px}
/* tram */
.deliver-head{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.deliver-head h2{margin:0}
.tram{width:120px;height:auto;flex:0 0 auto}
.page-head+section .deliver-head,.prose .deliver-head{margin-top:1.2em;margin-bottom:.6em}
.hero .ticks{max-width:58%}@media(max-width:900px){.hero .ticks{max-width:none}}
.prose ul.zones{padding-left:0}

/* ===== Unified button style (azulejo cobalt), no yellow/green ===== */
:root{--cobalt:#1f4e9c;--cobalt-d:#163b78}
.btn,.btn.wa,.nav .btn,.cta-band .btn,.cta-band .btn.wa,.cookie .btn{
  background:var(--cobalt);color:#fff;border:0;border-radius:10px;
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.35),0 2px 0 var(--cobalt-d);
  font-weight:700;letter-spacing:.01em}
.btn:hover,.btn.wa:hover,.nav .btn:hover,.cta-band .btn:hover,.cookie .btn:hover{background:var(--cobalt-d);color:#fff}
.btn svg{color:#fff}
/* secondary: outlined (on dark = white outline, on light = cobalt outline) */
.btn.wa{background:transparent;box-shadow:inset 0 0 0 2px currentColor}
.hero .btn.wa,.nav .btn.wa,.form-wrap .btn.wa{color:#fff}
.hero .btn.wa:hover,.nav .btn.wa:hover,.form-wrap .btn.wa:hover{background:rgba(255,255,255,.12);color:#fff}
.btn.ghost{background:transparent;color:var(--cobalt);box-shadow:inset 0 0 0 2px var(--cobalt)}
.btn.ghost:hover{background:var(--ice);color:var(--cobalt-d)}
/* CTA band: white with azulejo strip instead of yellow */
.cta-band{background:#fff url(/assets/azulejo.svg) 0 0/28px 28px repeat-x;color:var(--navy);border-bottom:1px solid var(--line)}
.cta-band .wrap{padding-top:58px}
.cta-band .btn.wa{color:var(--cobalt);background:transparent;box-shadow:inset 0 0 0 2px var(--cobalt)}
.cta-band .btn.wa:hover{background:var(--ice);color:var(--cobalt-d)}
/* floating & top WhatsApp in cobalt */
.wa-float,.wa-top{background:var(--cobalt);box-shadow:inset 0 0 0 2px rgba(255,255,255,.35),0 6px 20px rgba(0,0,0,.25);border-radius:14px}
.wa-float:hover,.wa-top:hover{background:var(--cobalt-d)}
.call-float{border-radius:14px}
@media(max-width:760px){.wa-float{border-radius:50%}.call-float{border-radius:50%}}
/* header accent line: azulejo cobalt instead of yellow */
.top{border-bottom:4px solid var(--cobalt)}
.steps li:before{background:var(--cobalt);color:#fff}
.note{background:#eef3fb;border-left-color:var(--cobalt)}
a.more{color:var(--cobalt)}
/* primary on dark backgrounds: white tile button */
.hero .btn:not(.wa),.nav .btn:not(.wa),.form-wrap .btn:not(.wa){background:#fff;color:var(--cobalt);box-shadow:inset 0 0 0 2px #fff,0 2px 0 rgba(0,0,0,.25)}
.hero .btn:not(.wa):hover,.nav .btn:not(.wa):hover,.form-wrap .btn:not(.wa):hover{background:var(--ice);color:var(--cobalt-d)}
.form-wrap .check a{color:#fff!important}
.hero .ticks li:before{color:#9cc3e6}
@media(max-width:1240px){.nav .btn:not(.wa){background:#fff}}

/* ===== photos (Midjourney, own for gelolisboa) ===== */
.hero-art{display:none}
.hero-photo{position:absolute;inset:0;z-index:0}
.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:75% center;display:block}
.hero-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#13294b 0%,rgba(19,41,75,.94) 34%,rgba(19,41,75,.55) 58%,rgba(19,41,75,.1) 80%)}
@media(max-width:900px){.hero-photo:after{background:linear-gradient(180deg,rgba(19,41,75,.82),rgba(19,41,75,.92))}}
figure.photo{margin:1.4em 0;border-radius:14px;overflow:hidden;box-shadow:0 8px 24px rgba(19,41,75,.15);position:relative}
figure.photo:after{content:"";position:absolute;left:0;right:0;bottom:0;height:10px;background:url(/assets/azulejo.svg) 0 0/10px 10px repeat-x}
figure.photo img{display:block;width:100%;height:auto}
.wrap>figure.photo{max-width:980px}
@media(min-width:901px){
 .hero-photo{left:44%}
 .hero-photo img{object-position:70% center}
 .hero-photo:after{background:linear-gradient(90deg,#182f58 0%,rgba(24,47,88,.6) 22%,rgba(19,41,75,0) 45%)}
}
/* ===== language selector (globe) ===== */
.langsel{position:relative}
.langsel .lang{display:flex;align-items:center;gap:6px;background:none;color:#fff;border:1px solid rgba(255,255,255,.35);border-radius:8px;padding:7px 10px;font:600 .95rem var(--sans);cursor:pointer}
.langsel .lang:hover{background:rgba(255,255,255,.1)}
.langsel ul{display:none;position:absolute;right:0;top:calc(100% + 6px);background:#fff;border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.25);list-style:none;margin:0;padding:6px;min-width:160px;z-index:80}
.langsel.open ul,.langsel:focus-within ul{display:block}
.langsel ul a{display:block;color:var(--navy)!important;padding:9px 12px;border-radius:8px;background:none!important}
.langsel ul a:hover{background:var(--ice)!important}
.langsel ul a[aria-current]{font-weight:700;color:var(--cobalt)!important}
@media(max-width:1240px){.langsel ul{position:static;display:flex;box-shadow:none;background:none;padding:6px 0;gap:6px}.langsel .lang{display:none}.langsel ul a{color:#fff!important;border:1px solid rgba(255,255,255,.3)}.langsel ul a[aria-current]{background:#fff!important;color:var(--navy)!important}}
.langsel .lang svg{width:18px;height:18px;flex:0 0 18px;max-width:none;display:block}
@media(min-width:1241px){.nav .nav-wa span{display:none}.nav .nav-wa{padding:9px 11px}.nav .nav-wa svg{margin:0}}
.top .wrap{max-width:1200px}
/* card photos */
.card-img{display:block;width:calc(100% + 44px);max-width:none;height:190px;object-fit:cover;margin:-18px -22px 16px;border-bottom:1px solid var(--line)}
.card:has(.card-img){padding-top:30px}
.g2 .card-img{height:240px}
