:root{--contact-accent:#B11226}
body.case-dark{--contact-accent:#FEC422}
.contact-hero{position:relative;z-index:1;display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:44px;min-height:600px;padding:132px var(--gutter) 62px;overflow:hidden}
.contact-hero-copy{position:relative;z-index:2}
.contact-hero h1{font:600 clamp(2.8rem,4.6vw,4.2rem)/1.04 var(--display);letter-spacing:-.035em;max-width:660px}
.contact-hero h1 span{display:block;color:var(--contact-accent)}
.contact-hero p{max-width:540px;font:400 1.05rem/1.75 var(--sans);color:var(--ink-3);margin-top:28px}
.contact-hero-image{position:relative;align-self:stretch;min-height:430px;margin:0 -28px 0 -22px;overflow:hidden}
.contact-hero-image img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:32% 43%;filter:grayscale(1);opacity:.9;transform:scale(1.1)}
.contact-hero-image::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,var(--bg),transparent 24%,transparent 77%,var(--bg)),linear-gradient(180deg,var(--bg),transparent 18%,transparent 79%,var(--bg));pointer-events:none}
.contact-hero-actions{display:flex;align-items:center;gap:26px;flex-wrap:wrap;margin-top:30px}
.contact-page .btn-primary{background:var(--contact-accent);border-color:var(--contact-accent);color:#fff;font-family:var(--display);font-weight:600}
.case-dark.contact-page .btn-primary{color:#141414}
.contact-page .btn-primary:hover{filter:brightness(.92)}
.contact-text-link{color:var(--ink-2);text-decoration:none;font:600 .95rem var(--display);display:inline-flex;gap:14px;align-items:center}
.contact-text-link:hover{color:var(--contact-accent)}
.contact-enquiry{position:relative;z-index:1;max-width:calc(1320px + 2 * var(--gutter));margin:auto;padding:32px var(--gutter) 84px;display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(48px,7vw,110px);scroll-margin-top:110px}
.contact-page h2{font:500 clamp(2rem,3vw,2.8rem)/1.12 var(--display);letter-spacing:-.03em}
.contact-intro>p{font:400 1rem/1.8 var(--sans);color:var(--ink-3);margin:22px 0 34px;max-width:390px}
.contact-details{display:grid;gap:25px}
.contact-details dt{font:500 .86rem var(--display);color:var(--ink-3);margin-bottom:7px}
.contact-details dd{margin:0;font:500 clamp(1.15rem,1.7vw,1.5rem) var(--display);letter-spacing:-.02em}
.contact-details a{color:var(--ink);text-decoration:none;overflow-wrap:anywhere}
.contact-details a:hover{color:var(--contact-accent)}
.contact-booking{border-top:1px solid var(--line);margin-top:32px;padding-top:24px}
.contact-booking p{font:400 .9rem/1.7 var(--sans);color:var(--ink-3);margin-bottom:12px}
.contact-form{display:grid;grid-template-columns:1fr 1fr;gap:23px 22px;align-content:start;min-width:0}
.contact-field{display:flex;flex-direction:column;gap:10px;min-width:0}
.contact-field.full,.contact-form-end{grid-column:1/-1}
.contact-field label{font:500 .9rem var(--display);color:var(--ink-2)}
.contact-field label span{color:var(--ink-3);font-weight:400;font-size:.8rem}
.contact-field input,.contact-field textarea{width:100%;min-width:0;background:var(--bg-soft);color:var(--ink);border:1px solid var(--line-strong);border-radius:5px;padding:14px 15px;font:400 1rem/1.5 var(--sans);transition:border-color .2s}
.contact-field input{height:50px}
.contact-field textarea{min-height:140px;resize:vertical}
.contact-field input::placeholder,.contact-field textarea::placeholder{color:var(--ink-3);opacity:.85}
.contact-field input:focus,.contact-field textarea:focus{outline:2px solid var(--contact-accent);outline-offset:3px;border-color:var(--contact-accent)}
.contact-form-help{font:400 .8rem/1.7 var(--sans);color:var(--ink-3);margin-bottom:20px;max-width:510px}
.contact-form-help a{color:var(--ink-2);text-underline-offset:3px}
.contact-form-actions{display:flex;gap:20px;align-items:center;flex-wrap:wrap}
.contact-copy{border:0;background:none;padding:10px 0;color:var(--ink-2);font:500 .87rem var(--display);cursor:pointer;text-decoration:underline;text-underline-offset:4px}
.contact-draft-note{font:400 .8rem/1.65 var(--sans);color:var(--ink-3);margin-top:14px}
.contact-status{font:400 .88rem/1.6 var(--sans);color:var(--ink-2);margin-top:12px}
.contact-status:empty{display:none}
.contact-offices{position:relative;z-index:1;background:var(--bg-soft);padding:66px var(--gutter) 74px;border-top:1px solid var(--line)}
.contact-offices-head{display:flex;justify-content:space-between;align-items:start;gap:36px;max-width:1320px;margin:auto}
.contact-offices-head p{max-width:410px;color:var(--ink-3);font:400 .98rem/1.75 var(--sans)}
.office-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px;max-width:1320px;margin:40px auto 0}
.office-card{padding-top:24px;border-top:1px solid var(--line-strong);display:flex;flex-direction:column;align-items:start}
.office-card h3{font:500 1.65rem/1.2 var(--display);letter-spacing:-.025em;margin-bottom:8px}
.office-card .office-city{font:500 .9rem var(--display);color:var(--contact-accent);margin-bottom:20px}
.office-card address{font:400 .93rem/1.85 var(--sans);color:var(--ink-3);margin-bottom:24px}
.office-card .contact-text-link{margin-top:auto;font-size:.87rem}
.contact-page footer{border-top:1px solid var(--line)}
.contact-page :focus-visible{outline:2px solid var(--contact-accent);outline-offset:4px}
@media(max-width:1000px) and (min-width:721px){.contact-hero{gap:24px;min-height:550px}.contact-hero h1{font-size:clamp(2.5rem,4.6vw,3rem)}.contact-hero-image{min-height:390px}.contact-enquiry{gap:40px;grid-template-columns:.8fr 1.2fr}.office-grid{gap:24px}}
@media(max-width:720px){
 .contact-hero{grid-template-columns:minmax(0,1fr);align-items:end;isolation:isolate;gap:0;min-height:620px;padding:225px var(--gutter) 44px}
 .contact-hero h1{font-size:clamp(2.1rem,8.8vw,2.75rem);line-height:1.07;text-wrap:balance}
 .contact-hero p{font-size:.98rem;line-height:1.7;margin-top:22px;color:var(--ink-2)}
 .contact-hero-image{position:absolute;inset:76px 0 0;z-index:0;margin:0;min-height:0;pointer-events:none}
 .contact-hero-image img{object-position:32% 32%;transform:scale(1.12);transform-origin:32% 30%}
 .contact-hero-image::after{background:linear-gradient(180deg,color-mix(in srgb,var(--bg) 10%,transparent),color-mix(in srgb,var(--bg) 40%,transparent) 26%,color-mix(in srgb,var(--bg) 94%,transparent) 59%,var(--bg) 90%),linear-gradient(90deg,color-mix(in srgb,var(--bg) 25%,transparent),transparent 80%)}
 .contact-hero-actions{gap:23px;margin-top:24px}.contact-hero-actions .btn-primary{padding:13px 16px;font-size:.9rem}.contact-hero-actions .contact-text-link{font-size:.87rem}
 .contact-enquiry{grid-template-columns:1fr;gap:36px;padding-top:30px;padding-bottom:48px;scroll-margin-top:100px}.contact-intro>p{margin:18px 0 26px}.contact-details{grid-template-columns:1fr 1fr;gap:20px}.contact-details dd{font-size:1rem}.contact-booking{margin-top:26px;padding-top:20px}
 .contact-form{gap:20px 16px}.contact-form-help{margin-bottom:17px}.contact-offices{padding-top:44px;padding-bottom:48px}.contact-offices-head{display:block}.contact-offices-head p{margin-top:18px}.office-grid{grid-template-columns:1fr;gap:30px;margin-top:30px}.office-card address{margin-bottom:18px}.office-card h3{font-size:1.5rem}
}
@media(max-width:380px){.contact-form{grid-template-columns:1fr}.contact-details{grid-template-columns:1fr}.contact-hero-actions{gap:18px}}
@media(prefers-reduced-motion:reduce){.contact-page *{scroll-behavior:auto!important;transition:none!important}}

/* Group office addresses by country. */
.office-grid.office-countries{grid-template-columns:2fr 1fr}
.office-country>h3{font:500 1.85rem/1.2 var(--display);letter-spacing:-.025em;margin-bottom:22px}
.india-office-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px}
.office-card h4{font:500 1.35rem/1.2 var(--display);letter-spacing:-.025em;margin-bottom:8px}
.office-country{min-width:0}
@media(max-width:1000px){.india-office-grid{gap:24px}}
@media(max-width:720px){.office-grid.office-countries{grid-template-columns:1fr;gap:38px}.india-office-grid{grid-template-columns:1fr;gap:26px}.office-country>h3{font-size:1.65rem;margin-bottom:18px}}

.office-card .office-phone{margin:0 0 16px}.office-card .office-phone .contact-text-link{margin-top:0}
.contact-field select{width:100%;min-width:0;height:50px;background:var(--bg-soft);color:var(--ink);border:1px solid var(--line-strong);border-radius:5px;padding:0 42px 0 15px;font:400 1rem/1.5 var(--sans);appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--ink-3) 50%),linear-gradient(135deg,var(--ink-3) 50%,transparent 50%);background-position:calc(100% - 20px) 22px,calc(100% - 15px) 22px;background-size:5px 5px;background-repeat:no-repeat;transition:border-color .2s}
.contact-field select:focus{outline:2px solid var(--contact-accent);outline-offset:3px;border-color:var(--contact-accent)}

/* Phones: a short hero so the form starts near the top of the first screen. */
@media(max-width:720px){.contact-hero{min-height:0;padding:132px var(--gutter) 20px}.contact-hero-image{inset:76px 0 auto;height:260px}.contact-hero-actions{display:none}.contact-enquiry{padding-top:12px}}
@media(max-width:720px){.contact-enquiry{gap:0}.contact-intro{display:contents}.contact-form{order:1;margin-top:24px}.contact-details{order:2;margin-top:36px}}

/* Contact details as one compact card beside the form */
html body .contact-card{display:block;margin-top:36px;max-width:420px;padding:4px 22px;border:1px solid var(--line-strong);border-radius:10px;background:var(--bg-soft)}
html body .contact-card>div{display:grid;grid-template-columns:96px minmax(0,1fr);align-items:center;gap:12px;padding:16px 0;border-top:1px solid var(--line)}
html body .contact-card>div:first-child{border-top:0}
html body .contact-card dt{display:flex;align-items:center;gap:10px;margin:0;font:500 .86rem var(--display);color:var(--ink-3)}
html body .contact-card dt svg{width:18px;height:18px;flex:none;fill:none;stroke:#FEC422;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
html body .contact-card dd{margin:0;font:600 1.02rem/1.3 var(--display);letter-spacing:-.01em}
html body .contact-card a{padding-block:10px;margin-block:-10px;color:var(--ink);text-decoration:none;overflow-wrap:anywhere}
html body .contact-card a:hover{color:#FEC422}
@media(max-width:720px){html body .contact-card{max-width:none;margin-top:32px;padding:2px 18px}html body .contact-card>div{grid-template-columns:84px minmax(0,1fr)}}
.offices-intro{max-width:410px}
.contact-offices-head .offices-email{margin-top:8px;color:var(--ink-3)}
.offices-email a{color:var(--ink);font-weight:600}
.offices-email a:hover{color:#FEC422}
