/* Contact Us: a dotted world map with routes out of Ankleshwar, cards, the enquiry form */
.ct-hero { position: relative; min-height: 88svh; display: grid; align-items: end; padding: 120px 0 clamp(50px, 8vh, 90px); background: radial-gradient(70% 60% at 65% 40%, #16264d, #0a1022 70%); color: #fff; overflow: hidden; }
.ct-map { position: absolute; inset: 70px 0 0; width: 100%; height: calc(100% - 70px); }
.ct-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(10, 16, 34, .85) 0%, rgba(10, 16, 34, .3) 50%, transparent 75%); pointer-events: none; }
.ct-hero__copy { position: relative; z-index: 2; display: grid; gap: 20px; }
.ct-hero__copy .crumbs { color: rgba(255, 255, 255, .65); }
.ct-grad { background: linear-gradient(90deg, #6aa0ff, #4fd1a5); -webkit-background-clip: text; background-clip: text; color: transparent; }
.ct-hero__lede { max-width: 42ch; font-size: clamp(16px, 1.4vw, 19px); color: rgba(255, 255, 255, .8); }
.ct-pin { position: absolute; z-index: 2; left: var(--px, 70%); top: var(--py, 50%); display: flex; align-items: center; gap: 10px; transform: translate(-7px, -50%); font-size: 12.5px; font-weight: 500; letter-spacing: .04em; color: #fff; white-space: nowrap; opacity: 0; transition: opacity .6s .8s; pointer-events: none; }
.ct-pin.is-on { opacity: 1; }
.ct-pin i { width: 14px; height: 14px; border-radius: 50%; background: #4fd1a5; box-shadow: 0 0 0 0 rgba(79, 209, 165, .7); animation: ct-ping 2s infinite; }
@keyframes ct-ping { 70% { box-shadow: 0 0 0 16px rgba(79, 209, 165, 0); } 100% { box-shadow: 0 0 0 0 rgba(79, 209, 165, 0); } }

.ct-cards { position: relative; z-index: 3; margin-top: -50px; }
.ct-cards__grid { display: grid; grid-template-columns: 1.4fr 1fr 1.2fr; gap: 14px; }
.ccard { display: grid; gap: 12px; align-content: start; padding: 26px 28px; border-radius: 24px; background: #fff; border: 1px solid var(--line); box-shadow: var(--shadow); text-decoration: none; color: var(--ink); transition: transform .4s var(--ease), box-shadow .4s; }
a.ccard:hover { transform: translateY(-4px); box-shadow: 0 30px 60px -30px rgba(13, 20, 36, .4); }
.ccard__k { font-size: 12px; letter-spacing: .2em; text-transform: uppercase; color: var(--muted); }
.ccard address { font-style: normal; font-size: 16.5px; line-height: 1.55; }
.ccard b { font-weight: 500; font-size: clamp(19px, 1.7vw, 24px); line-height: 1.3; overflow-wrap: anywhere; }
.ccard__go { font-size: 14px; font-weight: 500; color: var(--blue); text-decoration: none; }
.ccard--tel { background: linear-gradient(140deg, #26409a, #18258f); color: #fff; border: 0; }
.ccard--mail { background: linear-gradient(140deg, #13a06a, #07764b); color: #fff; border: 0; }
.ccard--tel .ccard__k, .ccard--mail .ccard__k { color: rgba(255, 255, 255, .7); }
.ccard--tel .ccard__go, .ccard--mail .ccard__go { color: #fff; }

.ct-form__grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: clamp(30px, 5vw, 80px); align-items: start; }
.ct-form__side { position: sticky; top: 110px; display: grid; gap: 22px; }
.ct-photo { margin: 6px 0 0; border-radius: 20px; overflow: hidden; }
.ct-photo img { width: 100%; height: auto; }
.ct-photo figcaption { padding: 10px 2px 0; font-size: 13px; color: var(--muted); }
.ct-also { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.ct-also a { display: block; padding: 14px 18px; border-radius: 14px; background: var(--bg-soft); text-decoration: none; color: var(--muted); font-size: 14.5px; }
.ct-also b { color: var(--ink); font-weight: 500; }
.ct-also a:hover b { color: var(--blue); }

@media (max-width: 1000px) {
  .ct-cards__grid, .ct-form__grid { grid-template-columns: 1fr; }
  .ct-form__side { position: static; }
  .ct-hero::after { background: linear-gradient(180deg, transparent 20%, rgba(10, 16, 34, .9) 75%); }
}
@media (prefers-reduced-motion: reduce) { .ct-pin i { animation: none; } }
