/* =========================================================
   Contact Us — screenshot layout (con-*)
   Brand: ink #363587 · marigold #f5c307
   ========================================================= */

body.contact-page{
  background:#faf9f6;
}

.contact-page .page-banner,
.contact-page .con-hero,
.contact-page .con-board,
.contact-page .con-find,
.contact-page .con-chapter{
  position:relative;
  scroll-margin-top:96px;
}

.con-kicker{
  display:inline-block;
  margin:0 0 12px;
  color:rgb(52, 50, 114);
  font-family:Helvetica, Arial, sans-serif;
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
}

.con-hero{
  padding:48px 0 28px;
  background:#fff;
}
.con-hero-grid{
  display:grid;
  grid-template-columns:minmax(0, 1.05fr) minmax(0, .95fr);
  gap:clamp(28px, 4.5vw, 64px);
  align-items:center;
}
.con-hero-copy,
.con-hero-media,
.con-touch,
.con-form{ min-width:0; }
.con-hero-copy h1{
  margin:0 0 14px;
  color:rgb(52, 50, 114);
  font-family:Helvetica, Arial, sans-serif;
  font-weight:700;
  font-size:clamp(2rem, 4vw, 3.1rem);
  line-height:1.15;
  letter-spacing:-.015em;
}
.con-hero-copy p:not(.con-kicker){
  margin:0;
  color:rgb(33, 37, 41);
  line-height:1.7;
  max-width:46ch;
}
.con-hero-media{ position:relative; }
.con-hero-frame{
  margin:0;
  background:#eceaf5;
  box-shadow:14px 14px 0 var(--marigold);
}
.con-hero-frame img{
  width:100%;
  height:auto;
  object-fit:contain;
  object-position:center center;
  display:block;
}
.con-hero-badge{
  position:absolute;
  right:18px;
  bottom:18px;
  z-index:1;
  margin:0;
  padding:12px 14px;
  background:#fff;
  color:rgb(52, 50, 114);
  font-size:.78rem;
  line-height:1.35;
  box-shadow:0 12px 28px rgba(54,53,135,.16);
}
.con-hero-badge i{
  margin-right:6px;
  color:var(--marigold);
}
.con-hero-badge strong{
  display:inline-block;
  margin-top:2px;
  font-weight:700;
}

.con-board{
  padding:28px 0 48px;
  background:#faf9f6;
}
.con-board-grid{
  display:grid;
  grid-template-columns:minmax(0, 1.05fr) minmax(0, .95fr);
  gap:clamp(28px, 4.5vw, 64px);
  align-items:start;
}
.con-touch h2,
.con-form h2,
.con-find-head h2,
.con-chapter-copy h2{
  margin:0 0 10px;
  color:rgb(52, 50, 114);
  font-family:Helvetica, Arial, sans-serif;
  font-weight:700;
  font-size:clamp(1.7rem, 3vw, 2.2rem);
  line-height:1.2;
  letter-spacing:-.015em;
}
.con-touch > p,
.con-find-head p,
.con-form-lead{
  margin:0 0 22px;
  color:rgb(33, 37, 41);
  line-height:1.7;
}
.con-cards{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
}
.con-cards li{
  display:flex;
  align-items:flex-start;
  gap:14px;
  min-width:0;
  padding:18px 16px;
  background:#fff;
  box-shadow:0 12px 28px -20px rgba(54,53,135,.35);
}
.con-card-ico{
  flex:0 0 auto;
  width:44px;
  height:44px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#eceaf5;
  color:rgb(52, 50, 114);
  font-size:1rem;
}
.con-cards h3{
  margin:0 0 6px;
  color:rgb(52, 50, 114);
  font-size:.92rem;
  font-weight:700;
}
.con-cards p{
  margin:0 0 4px;
  color:rgb(33, 37, 41);
  font-size:.88rem;
  line-height:1.5;
}
.con-cards p:last-child{ margin-bottom:0; }
.con-cards a{
  color:rgb(52, 50, 114);
  font-weight:700;
  text-decoration:none;
}
.con-cards a[href^="mailto:"]{
  white-space:nowrap;
  word-break:normal;
  overflow-wrap:normal;
  display:inline-block;
  max-width:100%;
  font-size:.82rem;
}
.con-cards a:hover{ color:#c9a006; }

.con-jobs{
  position:relative;
  display:flex;
  align-items:flex-start;
  gap:16px;
  margin-top:18px;
  padding:22px 20px;
  overflow:hidden;
  background:#e8eef8;
  border-radius:16px;
}
.con-jobs::after{
  content:"";
  position:absolute;
  right:-18px;
  bottom:-28px;
  width:120px;
  height:120px;
  border-radius:50%;
  background:rgba(54,53,135,.06);
  pointer-events:none;
}
.con-jobs-ico{
  flex:0 0 auto;
  width:52px;
  height:52px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:rgb(52, 50, 114);
  color:#fff;
  font-size:1.05rem;
  z-index:1;
}
.con-jobs-copy{
  min-width:0;
  z-index:1;
}
.con-jobs h3{
  margin:0 0 8px;
  color:rgb(52, 50, 114);
  font-family:Helvetica, Arial, sans-serif;
  font-size:1.05rem;
  font-weight:700;
  line-height:1.3;
}
.con-jobs p{
  margin:0 0 10px;
  color:rgb(33, 37, 41);
  font-size:.9rem;
  line-height:1.55;
}
.con-jobs-mail{
  margin:0 !important;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px 8px;
  color:rgb(52, 50, 114) !important;
  font-size:.88rem !important;
}
.con-jobs-mail i{ color:rgb(52, 50, 114); }
.con-jobs-mail a{
  color:rgb(52, 50, 114);
  font-weight:700;
  text-decoration:none;
  white-space:nowrap;
  word-break:normal;
  overflow-wrap:normal;
}
.con-jobs-mail a:hover{ color:#c9a006; }

.con-form{
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);
  column-gap:14px;
  padding:28px 26px 30px;
  background:#fff;
  box-shadow:0 18px 40px rgba(54,53,135,.1);
  scroll-margin-top:96px;
}
.con-form h2,
.con-form-lead,
.con-consent,
.con-form .enquire-status,
.con-form-submit{ grid-column:1 / -1; }
.con-form h2{ margin-bottom:6px; }
.con-form-lead{ margin-bottom:18px; }
.con-form .adm-honeypot{
  position:absolute;
  left:-9999px;
  width:1px;
  height:1px;
  overflow:hidden;
}
.con-field{
  display:flex;
  flex-direction:column;
  gap:7px;
  margin-bottom:14px;
  min-width:0;
}
.con-field--full{ grid-column:1 / -1; }
.con-field label{
  color:rgb(52, 50, 114);
  font-size:.74rem;
  font-weight:700;
}
.con-field label span{ color:#c0392b; }
.con-field input,
.con-field select,
.con-field textarea{
  width:100%;
  padding:12px 14px;
  border:1.5px solid rgba(54,53,135,.14);
  background:#fff;
  color:var(--ink);
  font:inherit;
  font-size:.88rem;
}
.con-field textarea{ resize:vertical; min-height:42px; height:42px; }
.con-field input:focus,
.con-field select:focus,
.con-field textarea:focus{
  outline:none;
  border-color:var(--ink);
  box-shadow:0 0 0 3px rgba(54,53,135,.1);
}
.con-consent{
  display:flex;
  align-items:flex-start;
  gap:10px;
  margin:2px 0 14px;
  color:rgb(33, 37, 41);
  font-size:.88rem;
  line-height:1.45;
}
.con-consent input{
  margin-top:3px;
  accent-color:var(--ink);
}
.con-form .enquire-status{ margin:0 0 12px; font-size:.92rem; }
.con-form .enquire-status.is-error{ color:#b42318; }
.con-form-submit{
  width:fit-content;
  margin-top:2px;
}

.con-find{
  padding:36px 0 48px;
  background:#fff;
}
.con-find-head{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px 24px;
  margin-bottom:22px;
}
.con-find-copy{ min-width:0; flex:1 1 240px; }
.con-find-copy p{ margin:0; }
.con-branch{
  display:flex;
  flex-direction:column;
  gap:6px;
  flex:0 1 340px;
  min-width:min(100%, 260px);
}
.con-branch label{
  color:rgb(52, 50, 114);
  font-size:.74rem;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.con-branch-select{
  width:100%;
  padding:12px 14px;
  border:1.5px solid rgba(54,53,135,.14);
  background:#fff;
  color:var(--ink);
  font:inherit;
  font-size:.9rem;
  font-weight:700;
}
.con-branch-select:focus{
  outline:none;
  border-color:var(--ink);
  box-shadow:0 0 0 3px rgba(54,53,135,.1);
}
.con-find-grid{
  display:grid;
  grid-template-columns:minmax(0, 1.15fr) minmax(0, 1fr);
  gap:18px;
  align-items:stretch;
}
.con-map-frame{
  position:relative;
  overflow:hidden;
  background:#eceaf5;
  box-shadow:14px 14px 0 var(--marigold);
}
.con-map-pin{
  position:absolute;
  left:12px;
  bottom:12px;
  z-index:2;
  max-width:min(260px, 86%);
  padding:10px 12px;
  background:rgba(255,255,255,.96);
  box-shadow:0 10px 20px -14px rgba(54,53,135,.4);
}
.con-map-pin strong{
  display:block;
  color:rgb(52, 50, 114);
  font-size:.8rem;
  line-height:1.3;
}
.con-map-pin span{
  display:block;
  margin-top:4px;
  color:rgb(33, 37, 41);
  font-size:.72rem;
  line-height:1.4;
}
.con-nearby{
  min-width:0;
  padding:20px 18px;
  background:#f7f4ea;
}
.con-nearby h3{
  margin:0 0 12px;
  color:rgb(52, 50, 114);
  font-family:Helvetica, Arial, sans-serif;
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.con-nearby .campus-list{
  grid-template-columns:repeat(2, minmax(0, 1fr));
}
.con-map-frame iframe{
  width:100%;
  height:100%;
  min-height:360px;
  border:0;
  display:block;
}
.con-find-cards{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
  margin-top:0;
  padding-top:40px;
}
.con-side-card{
  padding:24px 22px;
  background:#f7f4ea;
}
.con-side-card h3{
  margin:0 0 8px;
  color:rgb(52, 50, 114);
  font-family:Helvetica, Arial, sans-serif;
  font-size:1.15rem;
  font-weight:700;
}
.con-side-card p{
  margin:0 0 16px;
  color:rgb(33, 37, 41);
  line-height:1.6;
}
.con-side-card .btn{ width:fit-content; }

.con-chapter{
  padding:48px 0;
  background:#faf9f6;
}
.con-chapter-grid{
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(0, .85fr) minmax(0, 1.35fr);
  gap:clamp(22px, 3.5vw, 40px);
  align-items:center;
}
.con-chapter-copy p:not(.con-kicker){
  margin:0;
  color:rgb(33, 37, 41);
  line-height:1.7;
}
.con-chapter-points{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:16px;
  min-width:0;
}
.con-chapter-points li{
  position:relative;
  padding-left:18px;
  color:rgb(52, 50, 114);
  font-weight:700;
  line-height:1.45;
}
.con-chapter-points li::before{
  content:"";
  position:absolute;
  left:0;
  top:.55em;
  width:8px;
  height:8px;
  background:var(--marigold);
}
.con-chapter-visual{
  position:relative;
  margin:0;
  min-width:0;
  overflow:hidden;
  background:#eceaf5;
}
.con-chapter-visual img{
  width:100%;
  aspect-ratio:16 / 10;
  height:auto;
  object-fit:cover;
  object-position:center 28%;
  display:block;
}
.con-chapter-card{
  position:absolute;
  right:10px;
  bottom:10px;
  z-index:1;
  width:118px;
  margin:0;
  padding:10px 12px;
  background:var(--marigold);
  color:rgb(52, 50, 114);
  text-align:left;
  box-shadow:0 8px 18px rgba(54,53,135,.16);
}
.con-chapter-card p{
  margin:0;
  display:flex;
  flex-direction:column;
  gap:1px;
  font-family:Helvetica, Arial, sans-serif;
  font-size:.92rem;
  font-weight:700;
  line-height:1.2;
  letter-spacing:-.01em;
}

@media (max-width:980px){
  .con-hero-grid,
  .con-board-grid,
  .con-find-grid,
  .con-find-cards{
    grid-template-columns:1fr;
    gap:28px;
  }
  .con-hero-media{ order:2; max-width:560px; }
  .con-hero-copy{ order:1; }
  .con-hero-frame{ box-shadow:10px 10px 0 var(--marigold); }
  .con-map-frame{ box-shadow:10px 10px 0 var(--marigold); }
  .con-map-frame iframe{ min-height:280px; }
  .con-chapter-grid{ grid-template-columns:1fr; }
  .con-chapter-visual img{ aspect-ratio:16 / 10; }
}

@media (max-width:720px){
  .con-hero,
  .con-chapter{ padding:30px 0; }
  .con-chapter-card{
    width:104px;
    padding:8px 10px;
  }
  .con-chapter-card p{ font-size:.82rem; }
  .con-board,
  .con-find{ padding-bottom:30px; }
  .con-cards,
  .con-form{ grid-template-columns:1fr; }
  .con-form{ padding:22px 16px 24px; }
  .con-form-submit,
  .con-side-card .btn{
    width:100%;
    justify-content:center;
  }
  .con-field input,
  .con-field select,
  .con-field textarea{
    font-size:16px;
    min-height:48px;
  }
}
