/* =========================================================
   CONTACT — info cards, enquiry form, office map
   ========================================================= */
.ct-main{padding:40px 0 130px}
.ct-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:6vw;align-items:start}
.ct-info{position:sticky;top:110px}
.page-contact main .ct-info h2{margin:0 0 18px !important}
.page-contact main .ct-lead{color:#111111;margin:0 0 34px !important;max-width:460px}
.ct-cards{display:grid;gap:14px}
.ct-card{position:relative;display:grid;grid-template-columns:52px 1fr;column-gap:18px;row-gap:4px;padding:24px 24px;border:1px solid rgba(31,42,68,.14);background:#fbf8f3;color:inherit;transition:border-color .35s,box-shadow .45s var(--ease)}
a.ct-card:hover{border-color:var(--blue);box-shadow:0 18px 40px rgba(31,42,68,.1)}
.ct-ic{grid-row:1/4;width:52px;height:52px;border-radius:50%;background:#f7f2ea;color:var(--blue);display:grid;place-items:center;transition:background .35s,color .35s}
.ct-ic svg{width:22px;height:22px}
a.ct-card:hover .ct-ic{background:var(--blue);color:#fff}
.ct-label{font-size:var(--t-label);font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:#c6a75e}
.ct-card strong{font-size:18px;font-weight:600;color:var(--blue);word-break:break-word}
.ct-card small{font-size:var(--t-small);color:#111111;line-height:1.55}
.ct-offices{grid-column:2;display:grid;gap:10px;margin-top:10px}
.ct-offices a{display:block;font-size:var(--t-small);line-height:1.55;color:#111111;padding:12px 14px;background:#f7f2ea;border-left:2px solid var(--blue);transition:background .3s}
.ct-offices a:hover{background:#e8dcc8}
.ct-offices b{display:block;color:var(--blue);font-weight:600;margin-bottom:2px}
.ct-wa{display:inline-flex;gap:10px;align-items:center;margin-top:24px;font-size:var(--t-small);font-weight:600;color:#1f2a44;border-bottom:1px solid currentColor;padding-bottom:4px}
.ct-wa b{font-weight:400;transition:transform .3s var(--ease)}
.ct-wa:hover b{transform:translate(3px,-3px)}

.ct-form-wrap{background:var(--blue);padding:52px 48px;position:relative;overflow:hidden}
.ct-form-wrap::before{content:"";position:absolute;width:420px;height:420px;border:1px solid rgba(255,255,255,.1);border-radius:50%;right:-160px;top:-160px}
.ct-form{position:relative;display:grid;gap:18px}
.page-contact .ct-form .eyebrow{color:rgba(255,255,255,.62) !important;opacity:1;margin:0 !important}
.page-contact main .ct-form h3{font-size:clamp(26px,2.3vw,36px) !important;color:#fff;margin:0}
.page-contact main .ct-form-lead{color:rgba(255,255,255,.72) !important;margin:0 0 6px !important;font-size:var(--t-small) !important}
.ct-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.ct-field{display:grid;gap:8px}
.ct-field span{font-size:var(--t-label);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.7)}
.ct-field input,.ct-field select,.ct-field textarea{font:inherit;font-size:15px;color:#fff;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.2);border-radius:0;padding:14px 16px;outline:none;transition:border-color .3s,background .3s;width:100%}
.ct-field textarea{resize:vertical;min-height:130px}
.ct-field input::placeholder,.ct-field textarea::placeholder{color:rgba(255,255,255,.4)}
.ct-field select{appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,#fff 50%),linear-gradient(135deg,#fff 50%,transparent 50%);background-position:calc(100% - 22px) 52%,calc(100% - 16px) 52%;background-size:6px 6px;background-repeat:no-repeat}
.ct-field select option{color:#161e31}
.ct-field input:focus,.ct-field select:focus,.ct-field textarea:focus{border-color:#c6a75e;background:rgba(255,255,255,.1)}
.ct-field.is-error input,.ct-field.is-error textarea{border-color:#c6a75e}
.ct-file{position:relative;display:flex;align-items:center;gap:16px;padding:20px;border:1px dashed rgba(255,255,255,.35);cursor:pointer;transition:border-color .3s,background .3s}
.ct-file:hover,.ct-file.is-drag{border-color:#c6a75e;background:rgba(255,255,255,.05)}
.ct-file input{position:absolute;inset:0;opacity:0;cursor:pointer}
.ct-file-ic{width:46px;height:46px;flex:none;border-radius:50%;background:rgba(255,255,255,.1);color:#fff;display:grid;place-items:center}
.ct-file-ic svg{width:20px;height:20px}
.ct-file-text b{display:block;color:#fff;font-size:14px;font-weight:600}
.ct-file-text small{color:rgba(255,255,255,.6);font-size:12px}
.page-contact main .ct-file-list{margin:-8px 0 0 !important;font-size:12px !important;color:#c6a75e}
.ct-submit{justify-self:start;display:inline-flex;gap:18px;align-items:center;font:inherit;font-size:var(--t-label);font-weight:700;letter-spacing:.18em;padding:19px 30px;border:0;background:#fbf8f3;color:var(--blue);cursor:pointer;transition:background .3s,color .3s}
.ct-submit:hover{background:#c6a75e;color:#fff}
.page-contact main .ct-note{font-size:12px !important;color:rgba(255,255,255,.55);margin:0 !important}
.page-contact main .ct-status{font-size:var(--t-small) !important;color:#fff;margin:0 !important;font-weight:500 !important}

/* map */
.ct-map{padding:0 0 130px}
.ct-map-head{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:30px}
.page-contact main .ct-map-head h2{margin:0 !important}
.ct-map-tabs{display:flex;gap:10px}
.ct-map-tab{font:inherit;font-size:13px;font-weight:600;padding:12px 20px;border-radius:999px;border:1px solid rgba(31,42,68,.25);background:#fbf8f3;color:var(--blue);cursor:pointer;transition:background .3s,color .3s}
.ct-map-tab.is-on{background:var(--blue);color:#fff;border-color:var(--blue)}
.ct-map-frame{height:460px;background:#e8dcc8;overflow:hidden}
.ct-map-frame iframe{width:100%;height:100%;border:0;filter:grayscale(.35)}

@media (max-width:1000px){
  .ct-grid{grid-template-columns:1fr;gap:50px}
  .ct-info{position:static}
}
@media (max-width:760px){
  .ct-main{padding:10px 0 80px}
  .ct-form-wrap{padding:36px 22px;margin:0 -20px}
  .ct-row{grid-template-columns:1fr}
  .ct-card{grid-template-columns:44px 1fr;padding:20px 18px;column-gap:14px}
  .ct-ic{width:44px;height:44px}
  .ct-card strong{font-size:16px}
  .ct-map{padding-bottom:80px}
  .ct-map-head{flex-direction:column;align-items:flex-start}
  .ct-map-frame{height:340px}
}

/* V129: open the selected office in Google Maps */
.ct-map-open{margin:22px 0 0 !important;text-align:center}
