/* =====================================================================
   contact.css  -  Contact page only (loaded after polish.css)
   ===================================================================== */

/* page title (real H1 for SEO, styled like the other section titles) */
.ct-title{margin:0;font-size:var(--h2)!important;line-height:1.2!important;font-weight:200;letter-spacing:-.6px;color:#0b0b0b;min-height:0!important;text-shadow:none;white-space:normal!important}
.ct-title em{font-style:normal;font-weight:300;color:#FF9900}

/* ---------- quick contact cards ---------- */
.ct-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.ct-card{position:relative;display:flex;flex-direction:column;gap:10px;padding:28px 26px 26px;border:1px solid rgba(0,0,0,.1);border-radius:24px;background:#fff;color:#0b0b0b;
  box-shadow:0 18px 40px -30px rgba(0,0,0,.3);overflow:hidden;isolation:isolate;transition:border-color .35s,transform .45s cubic-bezier(.2,.8,.2,1),box-shadow .45s}
.ct-card::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:#FF9900;transform:scaleX(0);transform-origin:left;transition:transform .55s cubic-bezier(.2,.8,.2,1)}
.ct-card:hover{border-color:rgba(255,153,0,.7);transform:translateY(-6px);box-shadow:0 30px 50px -30px rgba(255,153,0,.45)}
.ct-card:hover::after{transform:scaleX(1)}
.ct-card:focus-visible{outline:2px solid #FF9900;outline-offset:4px}
.ct-card .ic-c{margin-bottom:10px}
.ct-card small{font-size:var(--tiny);font-weight:600;letter-spacing:3px;color:#FF9900}
.ct-card b{font-size:1.06rem;font-weight:600;line-height:1.45}
.ct-card .ct-mail{font-size:.98rem;overflow-wrap:anywhere}
.ct-go{display:inline-flex;align-items:center;gap:8px;margin-top:auto;padding-top:14px;font-size:var(--cap);font-weight:500;letter-spacing:.4px;color:#8a8886;transition:color .3s,gap .3s}
.ct-card:hover .ct-go{color:#c46f00;gap:12px}

/* ---------- enquiry: form + side column ---------- */
.ct-split{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:clamp(28px,3.4vw,48px);align-items:start}
.ct-form{padding:clamp(28px,3.4vw,48px);border:1px solid rgba(0,0,0,.1);border-radius:30px;background:#fff;box-shadow:0 30px 60px -40px rgba(0,0,0,.3)}
.ct-form-head{margin-bottom:32px}
.ct-form-head h2{margin:0}
.ct-form-head p{margin:12px 0 0;font-size:var(--body);font-weight:300;color:#5a5856}
.req{color:#d97800;font-weight:600}
.ct-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 20px}
.fld{display:flex;flex-direction:column;gap:8px;min-width:0}
.fld-full{margin-top:22px}
.fld>span{font-size:var(--cap);font-weight:600;letter-spacing:.4px;color:#3a3836}
.fld input,.fld select,.fld textarea{width:100%;min-height:50px;padding:13px 16px;border:1px solid rgba(0,0,0,.16);border-radius:14px;background:#fbfaf9;color:#0b0b0b;
  font-family:'Montserrat',sans-serif;font-size:var(--body);font-weight:400;line-height:1.4;transition:border-color .25s,box-shadow .25s,background .25s;-webkit-appearance:none;appearance:none}
.fld textarea{min-height:140px;resize:vertical}
.fld select{padding-right:44px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23FF9900' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;cursor:pointer}
.fld input::placeholder,.fld textarea::placeholder{color:#a3a09d}
.fld input:hover,.fld select:hover,.fld textarea:hover{border-color:rgba(0,0,0,.3)}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:none;border-color:#FF9900;background:#fff;box-shadow:0 0 0 4px rgba(255,153,0,.16)}
.fld.bad input,.fld.bad textarea{border-color:#d4462f;box-shadow:0 0 0 4px rgba(212,70,47,.12)}

.ct-needs{margin:24px 0 0;padding:0;border:0;display:flex;flex-wrap:wrap;gap:10px}
.ct-needs legend{width:100%;margin-bottom:12px;padding:0;font-size:var(--cap);font-weight:600;letter-spacing:.4px;color:#3a3836}
.ct-needs label{position:relative;cursor:pointer}
.ct-needs input{position:absolute;opacity:0;width:1px;height:1px}
.ct-needs span{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 16px;border:1px solid rgba(0,0,0,.16);border-radius:999px;font-size:var(--cap);font-weight:500;color:#3a3836;transition:border-color .25s,background .25s,color .25s}
.ct-needs span::before{content:"";width:8px;height:8px;border-radius:50%;border:1.5px solid #c9c5c1;transition:background .25s,border-color .25s}
.ct-needs label:hover span{border-color:rgba(255,153,0,.7)}
.ct-needs input:checked+span{border-color:#FF9900;background:rgba(255,153,0,.1);color:#0b0b0b}
.ct-needs input:checked+span::before{background:#FF9900;border-color:#FF9900}
.ct-needs input:focus-visible+span{outline:2px solid #FF9900;outline-offset:3px}

.ct-actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px 24px;margin-top:30px;padding-top:28px;border-top:1px solid rgba(0,0,0,.1)}
.ct-send{color:#c46f00!important}
.ct-send:hover{color:#0b0b0b!important}
.ct-alt{padding:6px 2px;border:0;background:none;font-family:'Montserrat',sans-serif;font-size:var(--body);font-weight:500;color:#5a5856;text-decoration:underline;text-decoration-color:rgba(255,153,0,.7);text-underline-offset:5px;cursor:pointer}
.ct-alt:hover{color:#0b0b0b}
.ct-alt:focus-visible{outline:2px solid #FF9900;outline-offset:4px;border-radius:4px}
.ct-msg{margin:16px 0 0;font-size:var(--cap);font-weight:500;color:#5a5856}
.ct-msg:empty{display:none}
.ct-msg.err{color:#c23a24}.ct-msg.ok{color:#1d8a4e}

/* side column */
.ct-side{display:flex;flex-direction:column;gap:24px}
.ct-ph{margin:0;aspect-ratio:4/3;border-radius:30px;overflow:hidden;background:#e4e1de;box-shadow:0 30px 60px -40px rgba(0,0,0,.35)}
.ct-ph img{display:block;width:100%;height:100%;object-fit:cover}
.ct-next{padding:34px 32px;border:1px solid rgba(0,0,0,.1);border-radius:30px;background:#fff}
.ct-next h3{margin:0 0 22px;font-size:var(--h5);font-weight:600;color:#0b0b0b}
.ct-next ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.ct-next li{display:flex;gap:18px;padding:18px 0;border-top:1px solid rgba(0,0,0,.1)}
.ct-next li:first-child{padding-top:0;border-top:0}
.ct-next li b{flex:none;width:42px;height:42px;display:flex;align-items:center;justify-content:center;border:1.5px solid #FF9900;border-radius:50%;font-size:var(--cap);font-weight:600;color:#FF9900}
.ct-next strong{display:block;font-size:var(--body);font-weight:600;color:#0b0b0b}
.ct-next li span{display:block;margin-top:4px;font-size:.92rem;line-height:1.6;font-weight:300;color:#5a5856}

/* ---------- map ---------- */
.ct-map{position:relative;height:clamp(380px,46vw,520px);border:1px solid rgba(0,0,0,.1);border-radius:30px;overflow:hidden;background:#e4e1de}
.ct-map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(.35) contrast(1.05)}
.ct-map-card{position:absolute;left:28px;bottom:28px;z-index:2;display:flex;flex-direction:column;gap:8px;max-width:360px;padding:28px 30px;border-radius:24px;background:rgba(11,11,11,.92);color:#fff;
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 30px 60px -30px rgba(0,0,0,.6)}
.ct-map-card small{font-size:var(--tiny);font-weight:600;letter-spacing:3px;color:#FF9900}
.ct-map-card b{font-size:var(--h5);font-weight:600}
.ct-map-card p{margin:0 0 12px;font-size:var(--body);line-height:1.7;font-weight:300;color:rgba(255,255,255,.75)}
.ct-map-card .btn{align-self:flex-start}

/* ---------- responsive ---------- */
@media (max-width:1100px){
  .ct-cards{grid-template-columns:1fr 1fr}
  .ct-split{grid-template-columns:1fr}
  .ct-side{display:grid;grid-template-columns:1fr 1fr;align-items:stretch}
  .ct-ph{aspect-ratio:auto;min-height:280px}
}
@media (max-width:640px){
  .ct-cards{grid-template-columns:1fr;gap:14px}
  .ct-card{padding:22px}
  .ct-grid{grid-template-columns:1fr}
  .ct-form{border-radius:24px}
  .ct-side{grid-template-columns:1fr}
  .ct-ph{aspect-ratio:4/3;min-height:0}
  .ct-next{padding:26px 22px}
  .ct-map{height:auto;display:flex;flex-direction:column}
  .ct-map iframe{position:relative;height:300px}
  .ct-map-card{position:relative;left:auto;bottom:auto;max-width:none;border-radius:0}
  .ct-actions .btn{width:100%}
}

/* ---------- animated location panel (replaces the Google map) ---------- */
.ct-loc{position:relative;height:clamp(420px,42vw,520px);border-radius:28px;overflow:hidden;isolation:isolate;
  background:radial-gradient(700px 420px at 62% 52%,rgba(255,153,0,.16),transparent 60%),radial-gradient(600px 500px at 0% 100%,rgba(64,92,190,.22),transparent 60%),linear-gradient(160deg,#0b0d16,#07080d);
  box-shadow:0 40px 70px -45px rgba(0,0,0,.6)}
.ct-loc-art{position:absolute;inset:0}
.loc-svg{position:absolute;inset:0;width:100%;height:100%}
.loc-coast{fill:none;stroke:rgba(90,170,230,.35);stroke-width:2;stroke-dasharray:4 7}
.loc-roads path{fill:none;stroke:rgba(255,255,255,.14);stroke-width:2.2;stroke-linecap:round}
.loc-traffic path{fill:none;stroke:#FF9900;stroke-width:2.2;stroke-linecap:round;stroke-dasharray:10 60;opacity:.75;animation:locDash 6s linear infinite}
.loc-traffic path:nth-child(2){animation-duration:8s;animation-direction:reverse}
.loc-traffic path:nth-child(3){animation-duration:7s}
.loc-traffic path:nth-child(4){animation-duration:9s;animation-direction:reverse}
.loc-traffic path:nth-child(5){animation-duration:10s}
@keyframes locDash{to{stroke-dashoffset:-700}}
.loc-rings circle{fill:none;stroke:rgba(255,153,0,.22);stroke-width:1;stroke-dasharray:3 6;transform-box:view-box;transform-origin:420px 240px;animation:locSpin 40s linear infinite}
.loc-rings circle:nth-child(2){animation-direction:reverse;animation-duration:60s}
.loc-rings circle:nth-child(3){animation-duration:90s}
@keyframes locSpin{to{transform:rotate(360deg)}}
.loc-sweep{transform-box:view-box;transform-origin:420px 240px;animation:locSpin 6s linear infinite}
.loc-dots circle{fill:#fff;opacity:.5;animation:locTw 3s ease-in-out infinite}
.loc-dots circle:nth-child(2){animation-delay:.8s}.loc-dots circle:nth-child(3){animation-delay:1.6s}.loc-dots circle:nth-child(4){animation-delay:2.4s}
@keyframes locTw{50%{opacity:1;r:6}}
.loc-labels text{font-family:'Montserrat',sans-serif;font-size:13px;font-weight:500;letter-spacing:1px;fill:rgba(255,255,255,.55)}
.loc-pin{position:absolute;left:52.5%;top:52%;width:0;height:0;z-index:2}
.loc-pin span{position:absolute;left:-26px;top:-62px;display:flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:#FF9900;
  box-shadow:0 14px 30px -8px rgba(255,153,0,.7);animation:locBounce 2.4s cubic-bezier(.3,.7,.3,1) infinite}
.loc-pin span svg{transform:rotate(45deg)}
@keyframes locBounce{0%,100%{translate:0 0}45%{translate:0 -10px}}
.loc-pin i{position:absolute;left:-14px;top:-7px;width:28px;height:14px;border:2px solid #FF9900;border-radius:50%;opacity:0;animation:locRip 2.4s ease-out infinite}
.loc-pin i:nth-child(2){animation-delay:.8s}.loc-pin i:nth-child(3){animation-delay:1.6s}
@keyframes locRip{0%{transform:scale(.4);opacity:.9}100%{transform:scale(4.5);opacity:0}}
.loc-pin b{position:absolute;left:34px;top:-48px;white-space:nowrap;padding:7px 12px;border:1px solid rgba(255,153,0,.6);border-radius:999px;background:rgba(11,11,11,.85);color:#fff;font-size:.7rem;font-weight:600;letter-spacing:2px}
.ct-loc .ct-map-card{position:absolute;left:28px;top:50%;bottom:auto;transform:translateY(-50%);z-index:3;max-width:380px;background:rgba(11,11,11,.82);border:1px solid rgba(255,255,255,.1)}
.loc-info{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-direction:column;gap:8px}
.loc-info a{display:flex;align-items:center;gap:10px;font-size:.92rem;color:rgba(255,255,255,.85);text-decoration:none;overflow-wrap:anywhere}
.loc-info a svg{flex:none;color:#FF9900}
.loc-info a:hover{color:#FF9900}
.ct-loc.rx.in .loc-roads path{animation:locDraw 2.2s cubic-bezier(.2,.8,.2,1) both}
@keyframes locDraw{from{stroke-dasharray:1200;stroke-dashoffset:1200}to{stroke-dasharray:1200;stroke-dashoffset:0}}
@media (prefers-reduced-motion:reduce){.ct-loc *{animation:none!important}}
@media (max-width:760px){
  .ct-loc{height:auto;display:flex;flex-direction:column}
  .ct-loc-art{position:relative;height:300px}
  .ct-loc .ct-map-card{position:relative;left:auto;top:auto;transform:none;max-width:none;border-radius:0;border:0;border-top:1px solid rgba(255,255,255,.1)}
  .loc-pin{left:50%}
  .loc-labels{display:none}
}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
