/* Carlo Global v2 additions: hero film, enquiry form, luminous footer */
:root{--cg-ease:cubic-bezier(.22,1,.36,1)}

/* ---------- hero: new navy candy film needs a lighter tint ---------- */
.hero-tint{opacity:.34}
.hero-tint:after{opacity:.08}
.hero-video::before{content:"";position:absolute;inset:0 0 auto;height:180px;z-index:1;pointer-events:none;background:linear-gradient(180deg,rgba(16,29,56,.6),rgba(16,29,56,0))}
.hero-video .hero-content{position:relative;z-index:2}
img.cg-vfb{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.hero-video img.cg-vfb{z-index:0}
video::-webkit-media-controls-start-playback-button{display:none!important;-webkit-appearance:none}

/* ---------- enquiry form ---------- */
.cell:has(> .cgf){padding:0;border:0;background:none;box-shadow:none}
.cgf{position:relative;display:grid;gap:22px;padding:clamp(24px,3.4vw,44px);background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 40px 80px -60px rgba(20,38,74,.45)}
.cgf-seg{position:relative;display:grid;grid-template-columns:1fr 1fr;padding:5px;border-radius:999px;background:var(--paper);border:1px solid var(--line)}
.cgf-seg input{position:absolute;opacity:0;pointer-events:none}
.cgf-seg label{position:relative;z-index:1;text-align:center;padding:13px 10px;border-radius:999px;font:600 15px/1.2 var(--sans);color:var(--blue);cursor:pointer;transition:color .4s}
.cgf-pill{position:absolute;top:5px;bottom:5px;inset-inline-start:5px;width:calc(50% - 5px);border-radius:999px;background:var(--navy);transition:transform .55s var(--cg-ease)}
.cgf-seg input:nth-of-type(2):checked ~ .cgf-pill{transform:translateX(100%)}
[dir=rtl] .cgf-seg input:nth-of-type(2):checked ~ .cgf-pill{transform:translateX(-100%)}
.cgf-seg input:checked + label{color:var(--paper-light)}
.cgf-seg input:focus-visible + label{outline:2px solid var(--navy);outline-offset:2px}
.cgf-row{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.cgf-fld{position:relative;display:grid}
.cgf-fld input,.cgf-fld textarea{width:100%;font:400 16px/1.45 var(--sans);color:var(--navy-deep);background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:26px 0 10px;outline:none;transition:border-color .4s;-webkit-appearance:none;appearance:none}
.cgf-fld textarea{min-height:120px;resize:vertical}
.cgf-fld label{position:absolute;inset-inline-start:0;top:25px;font:400 16px/1.2 var(--sans);color:var(--blue);pointer-events:none;transform-origin:left top;transition:transform .45s var(--cg-ease),color .3s}
[dir=rtl] .cgf-fld label{transform-origin:right top}
.cgf-fld input:focus+label,.cgf-fld input:not(:placeholder-shown)+label,.cgf-fld textarea:focus+label,.cgf-fld textarea:not(:placeholder-shown)+label{transform:translateY(-21px) scale(.8);color:var(--navy)}
.cgf-fld::after{content:"";position:absolute;inset-inline:0;bottom:0;height:1.5px;background:var(--navy);transform:scaleX(0);transform-origin:left;transition:transform .6s var(--cg-ease)}
[dir=rtl] .cgf-fld::after{transform-origin:right}
.cgf-fld:focus-within::after{transform:scaleX(1)}
.cgf-fld input[aria-invalid=true],.cgf-fld textarea[aria-invalid=true]{border-color:#B3261E}
.cgf-area{margin-top:-4px}
.cgf-hint{margin:-12px 0 0;font-size:14px;line-height:1.5;color:var(--blue);transition:opacity .3s}
.cgf-hint.swap{opacity:0}
.cgf-honey{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);opacity:0;pointer-events:none}
.cgf-turnstile:empty{display:none}
.cgf-turnstile{min-height:65px}
.cgf-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px}
.cgf-foot small{font-size:14px;color:var(--blue)}
.cgf-btn{position:relative;display:inline-flex;align-items:center;gap:12px;padding:16px 28px;border-radius:999px;border:0;background:var(--navy-deep);color:var(--paper-light);font:600 16px/1 var(--sans);cursor:pointer;overflow:hidden;isolation:isolate;transition:transform .5s var(--cg-ease)}
.cgf-btn::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--navy);transform:translateY(101%);transition:transform .55s var(--cg-ease);border-radius:inherit}
.cgf-btn:hover::before{transform:none}
.cgf-arr{transition:transform .5s var(--cg-ease)}
.cgf-btn:hover .cgf-arr{transform:translateX(4px)}
[dir=rtl] .cgf-arr{transform:scaleX(-1)}
[dir=rtl] .cgf-btn:hover .cgf-arr{transform:scaleX(-1) translateX(4px)}
.cgf-btn:disabled{opacity:.6;cursor:default}
.cgf-btn:focus-visible{outline:2px solid var(--navy);outline-offset:3px}
.cgf-status{margin:0;font-size:15px;color:var(--navy)}
.cgf-status:empty{display:none}
.cgf.is-sent .cgf-status{padding:14px 16px;border-radius:12px;background:var(--sugar)}
@media (max-width:640px){.cgf-row{grid-template-columns:1fr}.cgf-seg label{font-size:14px;padding:12px 6px}}

@media (prefers-reduced-motion:reduce){
 .cgf-pill,.cgf-fld label,.cgf-fld::after{transition:none}
}

/* animated image stand-ins for icon videos (power-saving phones) */
img.cg-vfb-in{display:block;object-fit:contain;mix-blend-mode:multiply}
.why-visual img.cg-vfb-in{width:100%;height:auto}

/* ---------- brand film ---------- */
.cg-film{position:relative;max-width:1080px;margin:0 auto;aspect-ratio:16/9;background:var(--navy-deep);overflow:hidden;box-shadow:0 50px 90px -60px rgba(20,38,74,.55)}
.cg-film video.cg-teaser,.cg-film img.cg-vfb-in{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.02);transition:transform 1.4s var(--cg-ease),filter .8s}
.cg-film::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at center,rgba(16,29,56,.42) 0%,rgba(16,29,56,.3) 45%,rgba(16,29,56,.6) 100%)}
.cg-film-play{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;width:100%;border:0;background:none;color:var(--paper-light);cursor:pointer;font:inherit}
.cg-film-btn{position:relative;display:grid;place-items:center;width:92px;height:92px;border-radius:50%;background:rgba(248,247,243,.94);color:var(--navy-deep);transition:transform .6s var(--cg-ease),background .3s}
.cg-film-btn svg{width:30px;height:30px;margin-inline-start:4px}
[dir=rtl] .cg-film-btn svg{margin-inline-start:0;margin-left:4px}
.cg-film-btn::before{content:"";position:absolute;inset:-10px;border-radius:50%;border:1px solid rgba(248,247,243,.55);animation:cgRing 2.6s var(--cg-ease) infinite}
@keyframes cgRing{0%{transform:scale(.9);opacity:.9}100%{transform:scale(1.35);opacity:0}}
.cg-film-txt{display:flex;align-items:baseline;gap:12px;font-family:var(--sans);text-shadow:0 1px 14px rgba(10,20,40,.6)}
.cg-film-txt b{font-weight:600;font-size:17px;letter-spacing:.02em}
.cg-film-txt span{font-size:14px;opacity:.8;font-variant-numeric:tabular-nums}
.cg-film-play:hover .cg-film-btn{transform:scale(1.08)}
.cg-film:hover video.cg-teaser,.cg-film:hover img.cg-vfb-in{transform:scale(1.06)}
.cg-film-play:focus-visible{outline:none}
.cg-film-play:focus-visible .cg-film-btn{outline:2px solid var(--paper-light);outline-offset:6px}
@media (max-width:640px){.cg-film-btn{width:72px;height:72px}.cg-film-btn svg{width:24px;height:24px}.cg-film{margin-inline:calc(var(--gutter,24px) * -1);aspect-ratio:4/3}}

.cg-hero-film{display:inline-flex;align-items:center;gap:10px;margin-top:26px;padding:6px 4px;border:0;background:none;color:var(--paper-light);font:600 15px/1 var(--sans);letter-spacing:.02em;cursor:pointer;opacity:.92;transition:opacity .3s}
.cg-hero-film:hover{opacity:1}
.cg-hero-film-i{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;border:1px solid rgba(248,247,243,.6);transition:background .3s,color .3s}
.cg-hero-film-i svg{width:13px;height:13px;margin-inline-start:2px}
[dir=rtl] .cg-hero-film-i svg{margin-inline-start:0;margin-left:2px}
.cg-hero-film:hover .cg-hero-film-i{background:var(--paper-light);color:var(--navy-deep)}
.cg-hero-film-d{font-weight:400;opacity:.7}
.cg-hero-film:focus-visible{outline:2px solid var(--paper-light);outline-offset:4px}

.cg-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:max(16px,env(safe-area-inset-top)) 16px max(16px,env(safe-area-inset-bottom))}
.cg-modal[hidden]{display:none}
.cg-modal-bg{position:absolute;inset:0;background:rgba(10,18,36,.88);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);opacity:0;transition:opacity .45s var(--cg-ease)}
.cg-modal-box{position:relative;width:min(1200px,100%,calc((100vh - 120px) * 16 / 9));opacity:0;transform:translateY(18px) scale(.97);transition:opacity .5s var(--cg-ease),transform .6s var(--cg-ease)}
.cg-modal.open .cg-modal-bg{opacity:1}
.cg-modal.open .cg-modal-box{opacity:1;transform:none}
.cg-modal-v{display:block;width:100%;aspect-ratio:16/9;background:#000;box-shadow:0 40px 120px rgba(0,0,0,.5)}
.cg-modal-v::-webkit-media-controls{display:flex!important}
.cg-modal-v::-webkit-media-controls-panel{display:flex!important}
.cg-modal-x{position:absolute;top:-52px;inset-inline-end:0;width:42px;height:42px;border-radius:50%;border:1px solid rgba(248,247,243,.45);background:none;color:var(--paper-light);font:300 28px/1 var(--sans);cursor:pointer;transition:background .3s,color .3s}
.cg-modal-x:hover,.cg-modal-x:focus-visible{background:var(--paper-light);color:var(--navy-deep);outline:none}
html.cg-noscroll{overflow:hidden}
@media (prefers-reduced-motion:reduce){.cg-film-btn::before{animation:none}.cg-modal-bg,.cg-modal-box{transition:none}}

/* ---------- contact: details + one enquiry card ---------- */
.cge-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(40px,7vw,110px);align-items:start;max-width:1120px;margin:0 auto}
.cge-text h2{margin-top:6px;max-width:16ch;text-wrap:balance}
.cge-lead{margin-top:18px;max-width:46ch}
.cge-blocks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin-top:40px;padding-top:28px;border-top:1px solid var(--line)}
.cge-block h3{font-family:var(--sans);font-weight:600;font-size:15px;line-height:20px;color:var(--navy-deep);margin:0 0 10px}
.cge-block p{margin:0 0 8px;font-size:15px;line-height:1.75;color:var(--blue)}
.cge-block a{color:var(--navy-deep)}
.cge-block a:hover{text-decoration:underline;text-underline-offset:3px}
.cge-card{background:#fff;border:1px solid var(--line);padding:clamp(28px,3.4vw,44px);box-shadow:0 40px 80px -60px rgba(20,38,74,.45)}
.cge-card h3{font-family:var(--serif);font-weight:600;font-size:28px;line-height:1.15;color:var(--navy-deep);margin:0}
.cge-card p{margin:14px 0 28px;color:var(--blue)}
.cge-start{display:block;width:100%;padding:17px 24px;border:1px solid var(--navy);background:var(--navy);color:var(--paper-light);font:600 16px/1 var(--sans);letter-spacing:.01em;cursor:pointer;transition:background .25s,border-color .25s,transform .25s}
.cge-start:hover{background:var(--navy-deep);border-color:var(--navy-deep)}
.cge-start:focus-visible{outline:2px solid var(--navy);outline-offset:3px}
@media (max-width:900px){.cge-grid{grid-template-columns:minmax(0,1fr)}.cge-text h2{max-width:none}}
@media (max-width:520px){.cge-blocks{grid-template-columns:minmax(0,1fr);gap:20px}}

/* ---------- enquiry modal ---------- */
.cge-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:max(16px,env(safe-area-inset-top)) 16px max(16px,env(safe-area-inset-bottom))}
.cge-modal[hidden]{display:none}
.cge-bg{position:absolute;inset:0;background:rgba(20,38,74,.45);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);opacity:0;transition:opacity .35s var(--cg-ease)}
.cge-panel{position:relative;width:min(680px,100%);max-height:calc(100dvh - 32px);overflow:auto;background:#fff;border-radius:6px;box-shadow:0 40px 120px rgba(10,20,40,.35);opacity:0;transform:translateY(16px) scale(.98);transition:opacity .4s var(--cg-ease),transform .5s var(--cg-ease)}
.cge-modal.open .cge-bg{opacity:1}
.cge-modal.open .cge-panel{opacity:1;transform:none}
.cge-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:30px 36px 22px;border-bottom:1px solid var(--line)}
.cge-head h2{margin:0;font-family:var(--serif);font-weight:600;font-size:28px;line-height:1.1;color:var(--navy-deep)}
.cge-stepl{margin:6px 0 0;font-size:14px;color:var(--blue)}
.cge-x{flex:none;width:40px;height:40px;border:0;border-radius:50%;background:none;color:var(--navy-deep);font:300 30px/1 var(--sans);cursor:pointer;transition:background .2s}
.cge-x:hover,.cge-x:focus-visible{background:var(--paper);outline:none}
.cge-prog{display:flex;align-items:center;padding:24px 36px 4px}
.cge-prog:empty{display:none}
.cge-dot{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--paper);color:var(--blue);font:600 14px/1 var(--sans);transition:background .3s,color .3s,box-shadow .3s}
.cge-dot svg{width:16px;height:16px}
.cge-dot.cur{background:var(--navy);color:var(--paper-light);box-shadow:0 0 0 5px var(--sugar)}
.cge-dot.ok{background:var(--navy);color:var(--paper-light)}
.cge-prog i{flex:1;height:2px;margin:0 8px;background:var(--line);transition:background .4s}
.cge-prog i.ok{background:var(--navy)}
.cge-body{padding:20px 36px 4px;display:grid;gap:16px}
.cge-group{margin:0;padding:20px 22px;border:1px solid var(--line);border-radius:6px;background:var(--paper-light);min-width:0}
.cge-group legend{float:left;width:100%;margin:0 0 14px;padding:0;font:600 16px/1.35 var(--sans);color:var(--navy-deep)}
.cge-group legend span{font-weight:400;font-size:14px;color:var(--blue)}
.cge-group legend + *{clear:both}
.cge-chips{display:flex;flex-wrap:wrap;gap:10px}
.cge-chip{padding:11px 18px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--navy-deep);font:400 15px/1.2 var(--sans);cursor:pointer;transition:border-color .2s,background .2s,color .2s}
.cge-chip:hover{border-color:var(--navy)}
.cge-chip.on{background:var(--navy);border-color:var(--navy);color:var(--paper-light)}
.cge-chip:focus-visible,.cge-role:focus-visible{outline:2px solid var(--navy);outline-offset:2px}
.cge-roles{display:grid;gap:12px}
.cge-role{display:grid;gap:4px;text-align:start;padding:18px 20px;border:1px solid var(--line);border-radius:6px;background:#fff;cursor:pointer;transition:border-color .2s,background .2s,box-shadow .2s}
.cge-role b{font:600 17px/1.3 var(--sans);color:var(--navy-deep)}
.cge-role span{font-size:14px;color:var(--blue)}
.cge-role:hover{border-color:var(--navy)}
.cge-role.on{border-color:var(--navy);box-shadow:inset 0 0 0 1px var(--navy);background:var(--sugar)}
.cge-select{width:100%;padding:14px 44px 14px 16px;border:1px solid var(--line);border-radius:6px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%231F3A68' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 16px center;color:var(--navy-deep);font:400 16px/1.3 var(--sans);-webkit-appearance:none;appearance:none}
[dir=rtl] .cge-select{background-position:left 16px center;padding:14px 16px 14px 44px}
.cge-select:focus{outline:none;border-color:var(--navy)}
.cge-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
.cge-fld{position:relative;display:grid}
.cge-fld input,.cge-fld textarea{width:100%;padding:24px 14px 8px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--navy-deep);font:400 16px/1.4 var(--sans);outline:none;-webkit-appearance:none;appearance:none;transition:border-color .2s}
.cge-fld textarea{resize:vertical;min-height:84px}
.cge-fld input:focus,.cge-fld textarea:focus{border-color:var(--navy)}
.cge-fld label{position:absolute;inset-inline-start:15px;top:16px;font-size:15px;color:var(--blue);pointer-events:none;transform-origin:left top;transition:transform .25s var(--cg-ease)}
[dir=rtl] .cge-fld label{transform-origin:right top}
.cge-fld input:focus+label,.cge-fld input:not(:placeholder-shown)+label,.cge-fld textarea:focus+label,.cge-fld textarea:not(:placeholder-shown)+label{transform:translateY(-9px) scale(.78)}
.cge-turnstile{padding:4px 36px 0}
.cge-turnstile[hidden],.cge-turnstile:empty{display:none}
.cge-err{margin:0;padding:10px 36px 0;font-size:14px;color:#B3261E}
.cge-err:empty{display:none}
.cge-foot{display:flex;align-items:center;gap:16px;padding:22px 36px 32px}
.cge-back{padding:16px 6px;border:0;background:none;color:var(--navy-deep);font:500 16px/1 var(--sans);cursor:pointer}
.cge-back[hidden]{display:none}
.cge-back:hover{text-decoration:underline;text-underline-offset:4px}
.cge-next{flex:1;padding:18px 24px;border:0;border-radius:6px;background:var(--navy);color:var(--paper-light);font:600 16px/1 var(--sans);cursor:pointer;transition:background .25s,opacity .25s}
.cge-next:hover{background:var(--navy-deep)}
.cge-next.dim{opacity:.45}
.cge-next:disabled{opacity:.6;cursor:default}
.cge-next:focus-visible,.cge-back:focus-visible{outline:2px solid var(--navy);outline-offset:3px}
.cge-done{display:grid;justify-items:center;text-align:center;gap:10px;padding:34px 10px 10px}
.cge-tick{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--navy);color:var(--paper-light)}
.cge-tick svg{width:30px;height:30px}
.cge-done h3{margin:8px 0 0;font-family:var(--serif);font-weight:600;font-size:30px;color:var(--navy-deep)}
.cge-done p{margin:0;max-width:40ch;color:var(--blue)}
@media (max-width:600px){
 .cge-head,.cge-body,.cge-foot,.cge-prog,.cge-err,.cge-turnstile{padding-inline:20px}
 .cge-head{padding-top:22px}
 .cge-row{grid-template-columns:1fr}
 .cge-group{padding:16px}
 .cge-chip{padding:10px 14px;font-size:14px}
}
@media (prefers-reduced-motion:reduce){.cge-bg,.cge-panel{transition:none}}
.cge-fld label{inset-inline-end:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cge-fld textarea{padding-top:28px}
