/* Contact — builds on our-story.css (nav, swirls, footer, buttons) */
.c-hero{position:relative;text-align:center;padding:clamp(48px,7vw,104px) var(--pad) clamp(26px,3.4vw,44px);overflow:hidden}
.c-hero > *:not(.os-swirl){position:relative;z-index:1}
.c-hero h1{font-size:clamp(44px,8vw,116px);line-height:.92;letter-spacing:-.04em;margin:0 auto;max-width:16ch}
.c-hero p{margin:18px auto 0;max-width:52ch;font-size:clamp(15px,1.2vw,17.5px);line-height:1.62;color:rgba(8,40,54,.7)}
.c-hero-swirl{left:-16%;bottom:-14%;width:44%;aspect-ratio:3/2;opacity:.3;filter:blur(2px)}
.c-hero-swirl-b{right:-18%;bottom:-20%;width:42%;aspect-ratio:3/2;opacity:.26;filter:blur(2px)}
.c-underline{display:block;width:min(230px,52vw);height:16px;margin:14px auto 0;color:var(--pink)}
.c-underline path{fill:none;stroke:currentColor;stroke-width:5;stroke-linecap:round}
/* trusted-by strip, the reference's logo row */
.c-strip{background:var(--paper);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:clamp(16px,2vw,26px) var(--pad)}
.c-strip-in{max-width:var(--max);margin:0 auto;display:flex;align-items:center;justify-content:center;gap:clamp(22px,4vw,64px);flex-wrap:wrap}
.c-strip img{height:clamp(30px,3.4vw,46px);width:auto;object-fit:contain;opacity:.62;filter:grayscale(1);transition:opacity .25s,filter .25s}
.c-strip img:hover{opacity:1;filter:none}
/* form + newsletter */
.c-main{max-width:var(--max);margin:0 auto;padding:clamp(34px,4.4vw,72px) var(--pad) clamp(16px,2vw,28px);display:grid;grid-template-columns:1.55fr .95fr;gap:clamp(18px,2.4vw,34px);align-items:start}
.c-form-card{background:var(--paper);border-radius:28px;padding:clamp(22px,3vw,40px);box-shadow:0 0 0 5px var(--lime),0 26px 54px -34px rgba(8,40,54,.42)}
.c-form-card h2{font-size:clamp(24px,2.6vw,38px);line-height:1.04}
.c-form-card > p{margin:8px 0 0;font-size:14.5px;line-height:1.6;color:rgba(8,40,54,.66);max-width:46ch}
.c-form{margin-top:clamp(18px,2.2vw,26px);display:grid;gap:12px}
.c-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.c-field{display:flex;flex-direction:column;gap:6px}
.c-field label{font-size:11px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--teal)}
.c-field input,.c-field select,.c-field textarea{font-family:inherit;font-size:15px;color:var(--ink);background:var(--cream);border:1.5px solid var(--rule);border-radius:14px;padding:0 14px;height:48px;transition:border-color .2s,box-shadow .2s}
.c-field textarea{height:auto;min-height:132px;padding:13px 14px;line-height:1.55;resize:vertical}
.c-field input:focus,.c-field select:focus,.c-field textarea:focus{outline:0;border-color:var(--teal);box-shadow:0 0 0 4px rgba(17,76,95,.1)}
.c-form-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:4px}
.c-form-actions small{font-size:12px;color:rgba(8,40,54,.55)}
.c-note{display:none;margin-top:6px;background:rgba(200,225,80,.22);border:1.5px solid rgba(17,76,95,.18);border-radius:14px;padding:13px 15px;font-size:14px;color:var(--teal);font-weight:600}
.c-note.on{display:block}
/* teal side card */
.c-side{background:var(--teal-deep);color:var(--cream);border-radius:28px;padding:clamp(22px,2.8vw,36px);position:relative;overflow:hidden;box-shadow:0 30px 60px -34px rgba(6,40,54,.6)}
.c-side > *:not(.os-swirl){position:relative;z-index:1}
.c-side h3{font-size:clamp(22px,2.3vw,32px);color:var(--cream);line-height:1.05}
.c-side p{margin:10px 0 0;font-size:14.5px;line-height:1.6;color:rgba(251,246,232,.8)}
.c-side-swirl{right:-30%;bottom:-34%;width:90%;aspect-ratio:3/2;opacity:.3;filter:blur(3px)}
.c-side-form{margin-top:18px;display:grid;gap:10px}
.c-side-toggle{display:flex;gap:6px;background:rgba(251,246,232,.1);padding:4px;border-radius:999px}
.c-side-toggle button{flex:1;border:0;background:transparent;color:rgba(251,246,232,.72);font-family:"Bricolage Grotesque",sans-serif;font-weight:800;font-size:13px;padding:9px 10px;border-radius:999px;transition:background .2s,color .2s}
.c-side-toggle button.on{background:var(--cream);color:var(--teal-deep)}
.c-side-form input,.c-side-form select{font-family:inherit;font-size:14.5px;height:46px;padding:0 14px;border-radius:14px;border:1.5px solid rgba(251,246,232,.28);background:rgba(251,246,232,.08);color:var(--cream)}
.c-side-form input::placeholder{color:rgba(251,246,232,.55)}
.c-side-form input:focus,.c-side-form select:focus{outline:0;border-color:var(--lime)}
.c-side-form select option{color:var(--ink)}
.c-side-form small{font-size:11.5px;color:rgba(251,246,232,.6)}
/* three info cards */
.c-cards{max-width:var(--max);margin:0 auto;padding:clamp(14px,2vw,26px) var(--pad) clamp(40px,5vw,80px);display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(12px,1.6vw,22px)}
.c-card{background:var(--paper);border:1.5px solid var(--rule);border-radius:24px;padding:clamp(18px,2.2vw,28px);transition:transform .3s cubic-bezier(.22,1,.28,1),border-color .25s,box-shadow .3s;display:block}
.c-card:hover{transform:translateY(-6px);border-color:var(--teal);box-shadow:0 26px 50px -32px rgba(8,40,54,.45)}
.c-card-top{display:flex;align-items:center;gap:12px}
.c-ico{flex:0 0 auto;width:46px;height:46px;border-radius:14px;background:rgba(200,225,80,.28);display:grid;place-items:center;color:var(--teal)}
.c-ico svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.c-card b{font-family:"Bricolage Grotesque",sans-serif;font-weight:900;font-size:clamp(17px,1.6vw,22px);color:var(--teal);letter-spacing:-.02em;line-height:1.1}
.c-card p{margin:12px 0 0;font-size:14px;line-height:1.58;color:rgba(8,40,54,.66)}
/* cities band */
.c-cities{max-width:var(--max);margin:clamp(20px,2.6vw,34px) auto 0;padding:0 var(--pad) clamp(40px,5vw,80px)}
.c-cities-in{background:var(--teal-deep);color:var(--cream);border-radius:28px;padding:clamp(24px,3vw,44px);position:relative;overflow:hidden;box-shadow:0 30px 60px -34px rgba(6,40,54,.6)}
.c-cities-in > *:not(.os-swirl){position:relative;z-index:1}
.c-cities-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap}
.c-cities h2{font-size:clamp(24px,3vw,44px);color:var(--cream);line-height:1.02}
.c-cities-head p{margin:8px 0 0;font-size:14.5px;line-height:1.6;color:rgba(251,246,232,.78);max-width:44ch}
.c-city-grid{margin-top:clamp(20px,2.4vw,30px);display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(12px,1.6vw,20px)}
.c-city{background:rgba(251,246,232,.07);border:1.5px solid rgba(251,246,232,.2);border-radius:20px;padding:clamp(16px,2vw,24px);display:flex;flex-direction:column;gap:10px;transition:background .25s,border-color .25s,transform .3s}
.c-city:hover{background:rgba(251,246,232,.13);border-color:var(--lime);transform:translateY(-5px)}
.c-city img{height:clamp(60px,7vw,92px);width:auto;object-fit:contain;filter:brightness(0) invert(1);opacity:.9;align-self:flex-start}
.c-city b{font-family:"Bricolage Grotesque",sans-serif;font-weight:900;font-size:clamp(19px,1.9vw,26px);color:var(--lime);letter-spacing:-.02em}
.c-city span{font-size:13.5px;line-height:1.55;color:rgba(251,246,232,.78)}
.c-cities-swirl{left:-16%;bottom:-40%;width:56%;aspect-ratio:3/2;opacity:.28;filter:blur(3px)}
@media (max-width:1040px){
  .c-main{grid-template-columns:1fr}
  .c-cards{grid-template-columns:1fr}
  .c-city-grid{grid-template-columns:1fr}
}
@media (max-width:820px){
  .c-hero{padding:clamp(30px,8vw,52px) 18px clamp(18px,3vw,28px)}
  .c-hero h1{font-size:clamp(38px,13vw,62px)}
  .c-hero p{font-size:14.5px}
  .c-strip-in{gap:18px}
  .c-strip img{height:26px}
  .c-form-card,.c-side,.c-cities-in{border-radius:22px;padding:20px 18px}
  .c-form-card{box-shadow:0 0 0 4px var(--lime),0 18px 40px -30px rgba(8,40,54,.42)}
  .c-row{grid-template-columns:1fr}
  .c-field input,.c-field select{height:46px;font-size:14.5px}
  .c-form-actions .os-btn{width:100%}
  .c-card{border-radius:20px;padding:16px}
  .c-city img{height:56px}
}

.c-form.w3f-sent,.c-side-form.w3f-sent{display:block;padding:0;border:0;background:none}
.c-side-form.w3f-sent .w3f-done{font-size:clamp(17px,1.5vw,21px)}

/* Required-field marker on the enquiry form */
.c-form .c-req{color:#c9426b;font-weight:700;margin-left:1px}

/* Decorative pink swirls.
   These carry positioning offsets (left/right/bottom) but the base rule that
   takes them out of the flow was never exported, so they were rendering as
   full-width blocks and pushing the hero copy down the page. */
.os-swirl{position:absolute;display:block;pointer-events:none;z-index:0}
.os-swirl path{stroke-dasharray:1;stroke-dashoffset:0}
@media (prefers-reduced-motion:no-preference){
  .os-swirl path{animation:cSwirlDraw var(--dur,26s) ease-in-out infinite alternate}
}
@keyframes cSwirlDraw{from{stroke-dashoffset:.12}to{stroke-dashoffset:0}}

/* Grid and flex children default to min-width:auto, so a select with a long
   option ("Portugal · Lisbon") was setting the card's minimum width and
   pushing it wider than a phone screen. */
.c-main > *,.c-form,.c-row,.c-row > *,.c-field{min-width:0}
/* A bare 1fr track keeps an implicit min-content floor, so the track itself
   grew past the screen no matter how narrow the card was told to be. */
@media (max-width:1040px){.c-main{grid-template-columns:minmax(0,1fr)}}
@media (max-width:820px){.c-row{grid-template-columns:minmax(0,1fr)}}
.c-field input,.c-field select,.c-field textarea{width:100%;min-width:0;max-width:100%;box-sizing:border-box}
.c-form-card,.c-side,.c-cities-in{max-width:100%;box-sizing:border-box}
