/* Contact reference layout. Shared footer and its blue project band stay unchanged. */
.contact-page { --content-width: 1320px; --page-gutter: clamp(1.25rem, 7vw, 7rem); color: #102e45; }
.contact-page .eyebrow { font-size: .75rem; font-weight: 400; letter-spacing: .095em; margin: 0 0 .55rem; color: #49617b; text-transform: uppercase; }
.contact-page h2 { font-size: clamp(1.9rem, 2.9vw, 2.8rem); line-height: 1.15; letter-spacing: -.035em; }
.contact-top { position: relative; isolation: isolate; }
.contact-hero-photo { position: absolute; z-index: -2; right: 0; top: 0; width: 65%; height: 450px; object-fit: cover; object-position: center 40%; }
.contact-hero-fade { position: absolute; z-index: -1; top: 0; left: 0; width: 100%; height: 452px; background: linear-gradient(0deg, white, transparent 68%), linear-gradient(90deg, white 31%, rgb(255 255 255 / 88%) 48%, rgb(255 255 255 / 10%) 83%); }
.contact-hero-note { position: absolute; right: 4%; top: 105px; color: #fff; font-family: "Segoe Print", "Bradley Hand", cursive; font-style: italic; font-size: clamp(18px, 1.6vw, 25px); line-height: 1.25; transform: rotate(-11deg); text-shadow: 0 1px 7px #233b5070; }
.contact-hero-note::after { content: ''; display: block; width: 85%; height: 2px; margin-top: .5rem; background: #fff; }
.contact-intro { padding-top: 1.5rem; padding-bottom: 2.9rem; }
.contact-intro .breadcrumbs { padding-block: 0; margin-bottom: 2.3rem; font-size: .8rem; }
.contact-intro h1 { font-size: clamp(2.1rem, 3.6vw, 3.55rem); line-height: 1.13; letter-spacing: -.035em; }
.contact-intro > p:last-child { margin-top: 1rem; font-size: 1rem; line-height: 1.65; color: #60748c; }
.contact-page .contact-grid { grid-template-columns: minmax(0, .84fr) minmax(0, 1.16fr); gap: 2.5rem; padding-bottom: 2.5rem; align-items: stretch; }
.contact-aside { display: flex; flex-direction: column; padding: .45rem 0; }
.contact-page .contact-aside > p:not(.eyebrow) { margin-top: .55rem; font-size: 1.03rem; color: #60748c; }
.contact-page .contact-details { margin-top: 1.6rem; gap: 1.35rem; }
.contact-detail { position: relative; display: grid; grid-template-columns: 2.2rem minmax(0, 1fr); column-gap: 1.2rem; align-items: start; }
.contact-detail > svg { width: 30px; height: 30px; margin-top: .2rem; }
.contact-page .contact-detail span { color: #60748c; font-size: .86rem; margin-bottom: .2rem; }
.contact-detail:has(a) > svg { visibility: hidden; }
.contact-detail div > a > .contact-icon { position: absolute; left: 0; top: .2rem; width: 30px; height: 30px; }
.contact-detail div > .contact-direct-whatsapp > .contact-icon { position: static; width: 16px; height: 16px; margin-right: .2rem; }
.contact-page .contact-detail a, .contact-page .contact-detail strong, .contact-page .contact-detail address { font-size: 1rem; line-height: 1.5; }
.contact-page .contact-detail address { max-width: 25rem; font-size: .92rem; }
.contact-page .contact-email { display: inline-flex; margin: 0; padding: 0; border: 0; }
.contact-page .contact-email > span { font-size: 1rem; color: #102e45; margin: 0; overflow-wrap: anywhere; }
.contact-page .contact-direct-whatsapp { display: inline-flex; margin-left: .75rem; font-size: .75rem !important; color: #436853; text-decoration: underline; }
.contact-services { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; margin: 2.2rem 0 2rem; }
.contact-services > div + div { border-left: 1px solid #e1e8ed; padding-left: 1.3rem; }
.contact-services i { display: grid; place-items: center; width: 66px; height: 66px; border: 2px solid #e6b454; border-radius: 50%; margin-bottom: .6rem; }
.contact-services svg { width: 37px; height: 37px; }
.contact-services h3 { font-size: .91rem; line-height: 1.3; font-weight: 600; }
.contact-services p { font-size: .76rem; line-height: 1.6; color: #60748c; margin-top: .75rem; }
.contact-office { margin-top: auto; }
.contact-office img { width: 100%; height: auto; border-radius: 12px; }
.contact-page .inquiry-form { padding: 1.5rem 2rem 1.35rem; border-radius: 16px; background: rgb(255 255 255 / 97%); box-shadow: 0 6px 30px rgb(32 61 88 / 7%); }
.contact-page .inquiry-whatsapp { margin: 0 0 1.1rem; padding: 0; border: 0; border-radius: 0; background: none; }
.contact-page .inquiry-whatsapp-label { margin-bottom: .45rem; font-weight: 400; font-size: .75rem; letter-spacing: .1em; }
.contact-page .inquiry-whatsapp h3 { font-size: clamp(1.5rem, 2.2vw, 2rem); line-height: 1.15; letter-spacing: -.025em; }
.contact-page .inquiry-whatsapp-description { margin-top: .35rem; font-size: .9rem; color: #60748c; }
.contact-page .inquiry-whatsapp-actions { flex-wrap: nowrap; gap: .8rem; margin-top: .8rem; }
.contact-person { display: flex; align-items: center; gap: .8rem; margin-right: auto; }
.contact-person-photo { width: 64px; height: 64px; object-fit: cover; border-radius: 50%; }
.contact-page .inquiry-whatsapp-details { display: block; min-width: 88px; font-size: .92rem; line-height: 1.4; }
.contact-page .inquiry-whatsapp-details > span { color: #102e45; font-weight: 600; }
.contact-page .inquiry-whatsapp-details small { display: block; font-size: .82rem; color: #60748c; white-space: nowrap; }
.contact-page .inquiry-whatsapp-details > .visually-hidden { border: 0; padding: 0; }
.contact-page .inquiry-whatsapp-button { min-height: 46px; padding: .6rem .8rem; gap: .5rem; border-radius: 15px; font-size: .85rem; font-weight: 400; }
.contact-page .inquiry-whatsapp-button .contact-icon { width: 25px; height: 25px; }
.contact-chat-button { display: inline-flex; flex: none; justify-content: center; align-items: center; gap: .55rem; min-height: 46px; background: #18354c; color: #fff; padding: .6rem 1rem; border-radius: 30px; font-size: .85rem; box-shadow: 0 4px 9px #16324b20; }
.contact-chat-button svg { width: 22px; height: 22px; }
.contact-page .form-grid { gap: .9rem 1.5rem; }
.contact-page .form-grid label { font-size: .82rem; }
.contact-page .form-grid input:not([type=checkbox]), .contact-page .form-grid select, .contact-page .form-grid textarea { margin-top: .35rem; min-height: 41px; padding: .5rem .8rem; background: #fff; border-color: #cbd7e1; border-radius: 7px; font-size: .9rem; }
.contact-page .form-grid input::placeholder, .contact-page .form-grid textarea::placeholder { color: #90a0b5; }
.contact-page .form-grid textarea { min-height: 120px; }
.contact-page .consent { margin-top: .35rem; gap: .55rem; }
.contact-page .consent span { font-size: .73rem; line-height: 1.6; }
.contact-page .consent a { color: #23639e; }
.contact-page .consent input { margin-top: .1rem; }
.contact-page .form-actions { gap: 1.5rem; margin-top: 1.1rem; flex-wrap: nowrap; }
.contact-page .form-actions .button { min-height: 46px; padding: .6rem 1.65rem; gap: 2rem; font-size: .9rem; border-radius: 6px; }
.contact-attachment { position: relative; display: inline-flex; align-items: center; gap: .75rem; font-size: .84rem; cursor: pointer; min-height: 44px; }
.contact-attachment svg { flex: none; width: 20px; height: 20px; }
.contact-attachment input { position: absolute; inset: 0; width: 100%; opacity: 0; cursor: pointer; }
.contact-attachment:focus-within { outline: 2px solid #23639e; outline-offset: 3px; }
.contact-form-extras { display: flex; justify-content: space-between; flex-wrap: wrap; gap: .3rem .6rem; margin-top: .5rem; color: #60748c; font-size: .63rem; }
.contact-form-extras .text-link { min-height: 28px; font-size: .65rem; }
.contact-file-selection { font-size: .75rem; color: #60748c; overflow-wrap: anywhere; }
.contact-page #form-status:empty, .contact-file-selection:empty { display: none; }
.contact-page .cf-turnstile { margin-top: .7rem; }
.contact-faq { display: grid; grid-template-columns: .95fr 1.85fr; gap: 2.2rem; border-top: 1px solid #ccd6df; padding-block: 1.4rem 2.2rem; }
.contact-faq-intro > p:not(.eyebrow) { margin: .7rem 0 1.25rem; color: #60748c; font-size: .88rem; }
.contact-outline { display: inline-flex; align-items: center; justify-content: space-between; gap: 1.5rem; min-height: 42px; border: 1px solid #284963; border-radius: 30px; padding: .4rem 1.3rem; font-size: .82rem; background: #ffffff70; }
.contact-faq-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; align-items: start; }
.contact-faq-columns > div { padding: .4rem 1.2rem; border-radius: 8px; box-shadow: 0 2px 3px #153b6114; }
.contact-faq details + details { border-top: 1px solid #d9e2e9; }
.contact-faq summary { display: flex; justify-content: space-between; align-items: center; gap: .5rem; min-height: 40px; font-size: .86rem; cursor: pointer; list-style: none; }
.contact-faq summary::-webkit-details-marker { display: none; }
.contact-faq details[open] summary span { transform: rotate(180deg); }
.contact-faq details > p { color: #60748c; font-size: .82rem; line-height: 1.6; padding-bottom: .85rem; }
.contact-location { position: relative; isolation: isolate; overflow: hidden; display: flex; align-items: center; min-height: 214px; margin-bottom: 1.5rem; border-radius: 20px; background: #f1f6fa; border: 1px solid #e9f0f5; }
.contact-world { width: 22%; height: auto; padding: 1.2rem; opacity: .5; }
.contact-location-copy { position: relative; z-index: 1; padding: 1.5rem 0; min-width: 300px; }
.contact-location-copy h2 { font-size: 1.2rem; letter-spacing: -.02em; }
.contact-location-copy > p { font-size: 1rem; margin-top: .5rem; }
.contact-location-copy > p + p { font-size: .8rem; color: #60748c; line-height: 1.6; }
.contact-location-copy .contact-outline { margin-top: .75rem; }
.contact-map { position: absolute; z-index: -1; right: 0; top: 0; height: 100%; width: 60%; }
.contact-map::after { position: absolute; content: ''; inset: 0; background: linear-gradient(90deg, #f1f6fa, transparent 48%); }
.contact-map > svg { height: 100%; width: 100%; }
.contact-map-pin { position: absolute; z-index: 1; top: 12%; left: 58%; display: flex; flex-direction: column; padding: .7rem 1.2rem; background: #fff; border-radius: 5px; font-size: .85rem; box-shadow: 0 4px 16px #1937490b; }
.contact-map-pin svg { position: absolute; top: calc(100% + 5px); left: calc(50% - 15px); color: #eb4245; fill: #fff; }
.contact-map > small { position: absolute; right: .75rem; bottom: .45rem; z-index: 1; font-size: .58rem; color: #64758a; }
.contact-page #privacy:not(:target) { display: none; }
.contact-page #privacy:target { display: block; }
@media (max-width: 1250px) {
  .contact-hero-note { display: none; }
  .contact-page .contact-grid { gap: 1.8rem; }
  .contact-page .inquiry-form { padding: 1.5rem; }
  .contact-page .inquiry-whatsapp-actions { flex-wrap: wrap; }
  .contact-person { width: 100%; }
  .contact-page .inquiry-whatsapp-button, .contact-chat-button { flex: 1; }
  .contact-services { gap: .65rem; }
  .contact-services > div + div { padding-left: .65rem; }
  .contact-page .form-actions { flex-wrap: wrap; gap: .5rem 1rem; }
}
@media (max-width: 850px) {
  .contact-page .contact-grid { grid-template-columns: 1fr; }
  .contact-hero-photo { width: 83%; height: 330px; opacity: .6; }
  .contact-hero-fade { height: 332px; }
  .contact-intro > p:last-child { max-width: 36rem; }
  .contact-intro > p:last-child br { display: none; }
  .contact-office img { max-height: 300px; object-fit: cover; }
  .contact-services { margin-block: 1.5rem; }
  .contact-page .inquiry-whatsapp-actions { flex-wrap: nowrap; }
  .contact-person { width: auto; }
  .contact-faq { grid-template-columns: 1fr; gap: 1rem; }
  .contact-world { display: none; }
  .contact-location-copy { padding-left: 1.5rem; }
  .contact-map { width: 70%; }
}
@media (max-width: 600px) {
  .contact-intro { padding-top: 1rem; padding-bottom: 2rem; }
  .contact-intro .breadcrumbs { margin-bottom: 1.8rem; }
  .contact-intro h1 { font-size: 2rem; }
  .contact-intro > p:last-child { font-size: .9rem; }
  .contact-page .contact-grid { gap: 1.5rem; }
  .contact-page .inquiry-form { padding: 1.25rem; }
  .contact-page .form-grid { grid-template-columns: 1fr; gap: .9rem; }
  .contact-page .form-grid input:not([type=checkbox]), .contact-page .form-grid select, .contact-page .form-grid textarea { font-size: 16px; min-height: 44px; }
  .contact-page .inquiry-whatsapp-actions { flex-wrap: wrap; gap: .65rem; }
  .contact-person { width: 100%; }
  .contact-page .inquiry-whatsapp-button, .contact-chat-button { width: auto; flex: 1 1 100%; }
  .contact-services i { width: 54px; height: 54px; }
  .contact-services h3 { font-size: .8rem; }
  .contact-services p { font-size: .68rem; }
  .contact-detail { column-gap: .65rem; }
  .contact-page .contact-direct-whatsapp { margin-left: .4rem; }
  .contact-faq-columns { grid-template-columns: 1fr; gap: .8rem; }
  .contact-faq summary { min-height: 44px; }
  .contact-location { min-height: 410px; align-items: flex-start; }
  .contact-location-copy { padding: 1.5rem; min-width: 0; }
  .contact-map { top: auto; bottom: 0; width: 100%; height: 190px; }
  .contact-map::after { background: linear-gradient(#f1f6fa, transparent 38%); }
  .contact-map-pin { left: 44%; top: 25%; }
}
