/* Contact page: bold hero, chat bubbles, big form stage, subtle phone link. */
.ct-eyebrow{font:700 12px/1.6 Arial,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:#fff;margin:0 0 20px;display:inline-block;background:rgba(0,40,59,.55);padding:9px 16px;border-radius:999px}
.ct-eyebrow.dark{background:#00283b}
/* hero */
.ct-hero{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:3%;align-items:center;padding:60px 6% 110px;min-height:720px;overflow:hidden}
.ct-hero h1,.ct-hero .hero-slogan{font-size:clamp(66px,7.4vw,124px);line-height:.93;color:#fff;letter-spacing:-.03em;animation:cdmrise .9s cubic-bezier(.2,.8,.2,1) .1s both}
.ct-hero h1 i,.ct-hero .hero-slogan i{color:var(--orange)}
.ct-hero-text{color:#fff;font-size:20px;max-width:520px;margin:28px 0 36px;animation:cdmrise .9s .45s cubic-bezier(.2,.8,.2,1) both}
.ct-hero-actions{display:flex;gap:18px;align-items:center;flex-wrap:wrap;animation:cdmrise .9s .65s cubic-bezier(.2,.8,.2,1) both}
.ct-hero-actions .btn-big{border-radius:999px;background:var(--orange);color:var(--ink)}
.ct-ghost{color:#fff;font-weight:800;border-bottom:2px solid var(--orange);padding-bottom:4px}
.ct-hero-art{position:relative;height:600px}
.ct-disc{position:absolute;left:50%;top:50%;width:min(560px,44vw);aspect-ratio:1;translate:-50% -50%;border-radius:50%;background:radial-gradient(circle at 30% 25%,#ffb04d,var(--orange) 50%,#f27a00);animation:cdmfloat 9s ease-in-out infinite}
.ct-disc:after{content:"";position:absolute;inset:-8%;border-radius:50%;border:3px dashed rgba(255,255,255,.45);animation:ctspin 70s linear infinite}
@keyframes ctspin{to{rotate:360deg}}
.ct-logo{position:absolute;left:50%;top:50%;width:min(300px,24vw);translate:-50% -50%;filter:drop-shadow(0 20px 30px rgba(0,60,95,.4));animation:cdmfloat 7s ease-in-out infinite reverse}
.ct-logo img{display:block;width:100%;height:auto}
.ct-bubble{position:absolute;max-width:280px;padding:18px 24px;border-radius:26px;font:700 18px/1.3 Arial,sans-serif;box-shadow:0 22px 40px rgba(0,40,59,.35);animation:ctpop .8s cubic-bezier(.3,1.6,.5,1) both,cdmfloat 6s ease-in-out infinite}
.ct-bubble.b1{left:0;top:6%;background:#fff;color:#00283b;border-bottom-left-radius:6px;animation-delay:.7s,0s}
.ct-bubble.b2{right:0;top:42%;background:#00283b;color:#fff;border-bottom-right-radius:6px;animation-delay:1.3s,-2s}
.ct-bubble.b3{left:8%;bottom:4%;background:#fff;color:#00283b;border-bottom-left-radius:6px;display:flex;gap:12px;align-items:center;animation-delay:1.9s,-4s}
.ct-bubble.b3 i{font-style:normal;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#2fbf71;color:#fff;font-size:16px}
@keyframes ctpop{from{opacity:0;scale:.5}to{opacity:1;scale:1}}
/* steps */
.ct-steps{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:26px;padding:0 6% 120px;margin-top:-30px}
.ct-steps article{background:#fff;border-radius:24px;padding:36px 32px;box-shadow:0 18px 40px rgba(0,60,95,.22);transition:translate .3s,background .3s}
.ct-steps article:hover{translate:0 -10px;background:var(--orange)}
.ct-steps span{font:700 64px/1 'Brand Condensed','Arial Narrow',Arial,sans-serif;color:var(--orange);transition:color .3s}
.ct-steps h3{font-size:36px;color:var(--blue);margin:12px 0 10px;transition:color .3s}
.ct-steps p{margin:0;color:#35505e;transition:color .3s}
.ct-steps article:hover span,.ct-steps article:hover h3,.ct-steps article:hover p{color:#fff}
/* form stage */
.ct-form-stage{position:relative;background:linear-gradient(135deg,#e4163a00,#0000),linear-gradient(135deg,#00405c,#00283b);padding:130px 6% 140px;overflow:hidden}
.ct-form-stage:before{content:"";position:absolute;left:-10%;right:-10%;top:-60px;height:120px;background:var(--blue);border-radius:0 0 50% 50%/0 0 100% 100%}
.ct-form-stage:after{content:"";position:absolute;right:-12%;top:-20%;width:640px;aspect-ratio:1;border-radius:50%;border:48px solid rgba(255,149,26,.16);pointer-events:none}
.ct-form-inner{position:relative;z-index:1;max-width:1260px;margin:auto;display:grid;grid-template-columns:.9fr 1.1fr;gap:70px;align-items:start}
.ct-form-copy h2{font-size:clamp(54px,6vw,100px);line-height:.96;color:#fff;letter-spacing:-.03em;margin-bottom:26px}
.ct-form-copy h2 i{color:var(--orange)}.ct-form-copy h2 .heading-dot{color:var(--orange)}
.ct-eyebrow.light{background:rgba(255,255,255,.14)}
.ct-lead{color:#fff;font-size:20px;margin:0 0 18px}.ct-lead.small{font-size:17px;opacity:.9;margin-top:26px}
.ct-ticks{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.ct-ticks li{position:relative;padding:16px 18px 16px 62px;background:rgba(255,255,255,.09);border-radius:16px;color:#fff;font-size:17px;transition:translate .25s,background .25s}
.ct-ticks li:before{content:"\2713";position:absolute;left:16px;top:50%;translate:0 -50%;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--orange);color:#00283b;font-weight:900}
.ct-ticks li:hover{translate:8px 0;background:rgba(255,255,255,.16)}
.ct-card{background:#fff;border-radius:34px;padding:46px 44px 34px;box-shadow:0 40px 80px rgba(0,0,0,.4)}
.ct-card-eyebrow{font:700 11px/1.4 Arial,sans-serif;letter-spacing:.16em;color:#a74700;margin:0 0 8px}
.ct-card h3{font-size:clamp(40px,4vw,58px);color:var(--blue);line-height:1;margin:0 0 22px}
.ct-card form{display:grid;gap:6px}
.ct-card label{font:700 13px/1.4 Arial,sans-serif;color:#00283b;margin-top:12px}
.ct-card input,.ct-card select,.ct-card textarea{width:100%;font:16px/1.4 Arial,sans-serif;color:#00283b;background:#f3f9fc;border:2px solid transparent;border-radius:14px;padding:15px 16px;transition:border-color .2s,background .2s,box-shadow .2s}
.ct-card textarea{min-height:140px;resize:vertical}
.ct-card input:focus,.ct-card select:focus,.ct-card textarea:focus{outline:none;background:#fff;border-color:var(--orange);box-shadow:0 0 0 5px rgba(255,149,26,.22)}
.ct-card form>p{font-size:13px;color:#46606c;margin:12px 0 0}
.ct-card form>p a{text-decoration:underline;text-underline-offset:3px;color:#00648d}
.ct-card #send-enquiry{margin-top:10px;display:inline-flex;justify-content:center;align-items:center;gap:14px;background:var(--orange);color:#00283b;border:0;border-radius:999px;font:800 18px/1 Arial,sans-serif;padding:20px 34px;cursor:pointer;box-shadow:0 14px 30px rgba(255,149,26,.45);transition:translate .2s,box-shadow .2s,background .2s}
.ct-card #send-enquiry:hover{translate:0 -4px;background:#ffa23a;box-shadow:0 20px 38px rgba(255,149,26,.55)}
.ct-card #send-enquiry:disabled{opacity:.65;cursor:progress}
.ct-card .form-status{min-height:22px;font-size:14px;color:#00648d;font-weight:700;margin:10px 0 0}
/* subtle phone link */
.ct-call{display:inline-flex;align-items:center;gap:12px;margin-top:20px;padding-top:20px;border-top:1px solid #e1ebf0;width:100%;color:#46606c;font-size:14px;transition:color .2s}
.ct-call-ico{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#eaf8fd;flex:none;transition:background .2s}
.ct-call-ico svg{width:17px;height:17px;fill:var(--blue);transition:fill .2s}
.ct-call b{color:#00283b;letter-spacing:.02em}
.ct-call:hover{color:#00283b}.ct-call:hover .ct-call-ico{background:var(--orange)}.ct-call:hover .ct-call-ico svg{fill:#fff}
/* next */
.ct-next{position:relative;background:#fff;padding:120px 6% 130px;display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}
.ct-next:before{content:"";position:absolute;left:-10%;right:-10%;top:-60px;height:120px;background:#fff;border-radius:50% 50% 0 0/100% 100% 0 0}
.ct-next h2{font-size:clamp(52px,6vw,100px);line-height:.96;color:var(--blue);letter-spacing:-.03em}
.ct-next h2 i{color:var(--orange)}.ct-next h2 .heading-dot{color:var(--orange)}
.ct-next-text p{font-size:19px;color:#35505e;max-width:520px}
.ct-btn{display:inline-flex;align-items:center;gap:16px;margin-top:10px;background:var(--orange);color:#00283b;font-weight:800;font-size:17px;padding:19px 32px;border-radius:999px;box-shadow:0 14px 30px rgba(255,149,26,.4);transition:translate .2s,box-shadow .2s}
.ct-btn:hover{translate:0 -4px;box-shadow:0 20px 38px rgba(255,149,26,.5)}
/* reveals */
.js-ct [data-ct]{opacity:0;transition:opacity .9s cubic-bezier(.2,.7,.2,1) var(--d,0ms),transform .9s cubic-bezier(.2,.7,.2,1) var(--d,0ms)}
.js-ct [data-ct=left]{transform:translateX(-70px)}.js-ct [data-ct=right]{transform:translateX(70px)}.js-ct [data-ct=up]{transform:translateY(44px)}
.js-ct [data-ct].in{opacity:1;transform:none}
@media(max-width:1000px){
 .ct-hero{grid-template-columns:1fr;min-height:0;padding:40px 6% 70px}
 .ct-hero-art{height:420px;margin-top:20px}
 .ct-disc{width:min(420px,80vw)}.ct-logo{width:min(220px,44vw)}
 .ct-steps{grid-template-columns:1fr;padding-bottom:90px}
 .ct-form-inner,.ct-next{grid-template-columns:1fr;gap:44px}
 .ct-form-stage{padding:100px 6% 100px}
 .ct-card{padding:34px 24px 26px;border-radius:26px}
}
@media(max-width:600px){.ct-hero h1,.ct-hero .hero-slogan{font-size:18vw}.ct-bubble{font-size:15px;padding:13px 18px;max-width:210px}.ct-hero-actions .btn-big{width:100%;justify-content:center}.ct-btn{width:100%;justify-content:center}.ct-form-copy h2,.ct-next h2{font-size:17vw}}
@media(prefers-reduced-motion:reduce){.ct-disc,.ct-disc:after,.ct-logo,.ct-bubble{animation:none}.ct-bubble{opacity:1;scale:1}.js-ct [data-ct]{opacity:1;transform:none}}
.ct-logo{width:min(400px,31vw);z-index:1}
.ct-logo .kinetic-logo{width:100%;max-width:none;transform:none!important}
.ct-bubble{z-index:3}
.ct-bubble.b2{right:-2%;top:46%}
.ct-bubble.b1{left:-2%}
.ct-hero h1,.ct-hero .hero-slogan{font-size:clamp(60px,6.4vw,108px)}
.ct-card form input,.ct-card form select,.ct-card form textarea{width:100%;background:#f3f9fc!important;border:2px solid transparent!important;border-radius:14px!important;padding:15px 16px!important;color:#00283b!important;box-shadow:none}
.ct-card form input:focus,.ct-card form select:focus,.ct-card form textarea:focus{background:#fff!important;border-color:var(--orange)!important;box-shadow:0 0 0 5px rgba(255,149,26,.22)}
.ct-card form label{margin-top:12px}
@media(max-width:1000px){.ct-logo{width:min(300px,62vw)}}
.ct-disc{background:radial-gradient(circle at 30% 25%,#0a5c82,#00405c 55%,#00283b);box-shadow:0 0 0 14px var(--orange),0 0 0 30px rgba(255,255,255,.14),0 40px 80px rgba(0,40,59,.4)}
/* centre with margins, not translate (the float animation drives translate) */
.ct-disc,.ct-logo{left:0;right:0;top:0;bottom:0;translate:none;margin:auto;height:auto}
.ct-disc{width:min(560px,44vw);height:min(560px,44vw)}
.ct-logo{aspect-ratio:520/480;align-self:center;height:fit-content}
@media(max-width:1000px){.ct-disc{width:min(420px,80vw);height:min(420px,80vw)}}
.ct-next,.ct-steps,.ct-form-stage{overflow-x:clip}main{overflow-x:clip}
/* brand blues only: no dark navy stage */
.ct-form-stage{background:linear-gradient(160deg,#0288c4,#00729f 55%,#00648d)}
.ct-disc{background:radial-gradient(circle at 30% 25%,#1aa9e3,#0288c4 55%,#00648d);box-shadow:0 0 0 14px var(--orange),0 0 0 30px rgba(255,255,255,.18),0 40px 80px rgba(0,60,95,.4)}
.ct-ticks li{background:rgba(255,255,255,.14)}
.ct-ticks li:hover{background:rgba(255,255,255,.24)}
.ct-eyebrow.light{background:rgba(255,255,255,.2)}
/* clickable phone picture (replaces the plain number) */
.ct-phone{display:block;width:210px;margin:40px 0 0 16px;rotate:-5deg;transform-origin:50% 100%;animation:ctshake 3.2s ease-in-out infinite;filter:drop-shadow(0 30px 30px rgba(0,40,59,.45));transition:scale .25s;text-decoration:none!important}
.ct-phone *{text-decoration:none!important}
.ct-phone:hover,.ct-phone:focus-visible{scale:1.07;animation-play-state:paused}
.ct-phone .cp-body{display:block;position:relative;background:#101820;border-radius:38px;padding:11px;box-shadow:inset 0 0 0 2px #2a3944}
.ct-phone .cp-notch{position:absolute;left:50%;top:15px;width:68px;height:18px;margin-left:-34px;background:#101820;border-radius:12px;z-index:2}
.ct-phone .cp-screen{display:flex;flex-direction:column;align-items:center;text-align:center;background:linear-gradient(180deg,#0399d4,#00648d);border-radius:28px;padding:44px 12px 18px;min-height:370px;color:#fff;gap:2px}
.ct-phone .cp-screen small{font:700 10px/1.4 Arial,sans-serif;letter-spacing:.18em;text-transform:uppercase;color:#d8f3ff;margin-bottom:10px}
.ct-phone .cp-avatar{display:grid;place-items:center;width:72px;height:72px;border-radius:50%;background:var(--orange);color:#00283b;font:700 42px/1 'Brand Condensed','Arial Narrow',Arial,sans-serif;margin-bottom:8px;animation:ctring 1.6s ease-out infinite}
.ct-phone .cp-screen b{font:700 25px/1.05 'Brand Condensed','Arial Narrow',Arial,sans-serif;margin-bottom:6px}
.ct-phone .cp-num{font:700 14px/1.4 Arial,sans-serif;letter-spacing:.04em}
.ct-phone .cp-actions{display:flex;gap:30px;margin:24px 0 12px}
.ct-phone .cp-actions i{display:grid;place-items:center;width:50px;height:50px;border-radius:50%}
.ct-phone .cp-no{background:#e5484d}.ct-phone .cp-no:after{content:"";width:20px;height:4px;border-radius:2px;background:#fff}
.ct-phone .cp-yes{background:#2fbf71;animation:ctbounce 1.2s ease-in-out infinite}
.ct-phone .cp-yes svg{width:24px;height:24px;fill:#fff}
.ct-phone .cp-screen em{font:italic 700 13px/1.4 Georgia,serif;color:#ffd9a6}
@keyframes ctshake{0%,62%,100%{rotate:-5deg}66%{rotate:-11deg}70%{rotate:1deg}74%{rotate:-10deg}78%{rotate:0deg}82%{rotate:-8deg}88%{rotate:-5deg}}
@keyframes ctring{0%{box-shadow:0 0 0 0 rgba(255,149,26,.65)}100%{box-shadow:0 0 0 24px rgba(255,149,26,0)}}
@keyframes ctbounce{50%{translate:0 -5px}}
@media(max-width:1000px){.ct-phone{margin:34px auto 0;rotate:0deg;animation:none}}
@media(prefers-reduced-motion:reduce){.ct-phone,.ct-phone .cp-avatar,.ct-phone .cp-yes{animation:none}}
/* round 20: still logo on the phone */
.ct-phone .cp-logo{display:block;width:130px;height:auto;margin:-4px 0 4px}
/* end round 20 */

/* book-a-call-24 */
.ct-book{row-gap:50px;padding-bottom:70px}
.ct-book+.ct-next{padding-top:70px}
.ct-book+.ct-next:before{display:none}
.ct-book-card{grid-column:1/-1;padding:30px 26px 24px;box-shadow:0 30px 70px rgba(0,40,59,.16);border:1px solid #e3eff5}
.ct-book-card .ct-card-eyebrow{margin:0 0 14px 6px}
.ct-book-frame{display:block;width:100%;height:860px;border:0;border-radius:18px;background:#fff}
.ct-book-open{display:inline-block;margin:16px 6px 0;color:#00648d;font-weight:800;font-size:15px;border-bottom:2px solid var(--orange);padding-bottom:3px}
@media(max-width:1000px){.ct-book{gap:34px}.ct-book-frame{height:1300px}}
@media(max-width:600px){.ct-book-card{padding:20px 10px 18px}.ct-book-card .ct-card-eyebrow{margin-left:10px}.ct-book-frame{height:1450px;border-radius:12px}.ct-book-open{margin-left:10px}}
/* /book-a-call-24 */
