/* Contact page exceptions. Reusable layer (fonts.css, tokens.css, squareshift-menu.css, squareshift-footer.css) is loaded unmodified before this file. */

/* manifest: contact-header | decision: page_specific_exception | owner: Grace | approved: 2026-10-02 "fully newly designed page" */
.contact-header {
  padding: var(--section-padding-y) 0 72px;
  background: var(--paper);
  color: var(--ink);
}

.contact-header__in,
.contact-block__in {
  width: var(--shell);
  margin: 0 auto;
}

.contact-header__in {
  width: var(--shell);
}

.contact-header__kicker,
.contact-block__label {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 20px;
  color: var(--deep);
  font-family: var(--body);
  font-size: var(--fs-content-kicker);
  font-weight: 700;
  letter-spacing: .18em;
  line-height: 1;
  text-transform: uppercase;
}

.contact-header__kicker::before,
.contact-block__label::before {
  content: "";
  flex: none;
  width: 8px;
  height: 8px;
  background: var(--gold);
}

.contact-header__title {
  max-width: var(--title-description-width);
  margin: 0;
  color: var(--deep);
  font-family: var(--display);
  font-size: 32px;
  font-weight: var(--display-weight);
  letter-spacing: 0;
  line-height: var(--lh-tight);
  text-wrap: balance;
}

.contact-header__sub {
  max-width: 60ch;
  margin: 20px 0 0;
  color: var(--grey-mid);
  font-size: var(--fs-standard-lede);
  line-height: 1.45;
  text-wrap: pretty;
}

/* manifest: contact-block | decision: page_specific_exception | owner: Grace | approved: 2026-10-02 | light styling: type, hairlines, palette; no images, no form */
.contact-block {
  padding-block: var(--section-padding-y);
  background: var(--paper);
  border-top: 1px solid var(--rule);
  color: var(--ink);
}

.contact-block__in {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  gap: 56px;
  align-items: start;
}

.contact-block__email {
  display: inline-block;
  max-width: 100%;
  color: var(--deep);
  font-family: var(--display);
  font-size: clamp(36px, 5.4vw, 72px);
  font-weight: var(--display-weight);
  letter-spacing: 0;
  line-height: var(--lh-tight);
  overflow-wrap: anywhere;
  text-decoration: underline;
  text-decoration-color: var(--gold);
  text-decoration-thickness: 2px;
  text-underline-offset: .16em;
  transition: text-decoration-color .2s var(--ease);
}

.contact-block__email:hover {
  text-decoration-color: var(--bronze);
}

.contact-block__row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 20px 28px;
  margin-top: 48px;
  padding-top: 28px;
  border-top: 1px solid var(--rule);
}

.contact-block__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 0 32px;
  background: var(--gold);
  border: 1px solid var(--gold);
  color: var(--cta-ink);
  font-family: var(--display);
  font-size: 16px;
  font-weight: 400;
  letter-spacing: .06em;
  line-height: 1;
  text-transform: uppercase;
  transition: background-color .2s var(--ease), border-color .2s var(--ease);
}

.contact-block__button:hover {
  background: var(--bronze);
  border-color: var(--bronze);
}

.contact-block__copy {
  padding: 0 0 3px;
  border-bottom: 1px solid var(--gold);
  color: var(--deep);
  font-family: var(--body);
  font-size: var(--fs-small);
  font-weight: 700;
  letter-spacing: .1em;
  line-height: 1.15;
  text-transform: uppercase;
}

.contact-block__copy:hover {
  border-bottom-color: var(--bronze);
}

.contact-block__promise {
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin: 0 0 0 auto;
  color: var(--ink);
  font-size: var(--fs-body);
  line-height: 1.4;
}

.contact-block__promise-key {
  color: var(--grey-mid);
  font-size: var(--fs-content-kicker);
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
}

.contact-block__button:focus-visible,
.contact-block__copy:focus-visible,
.contact-block__email:focus-visible {
  outline: 2px solid var(--bronze);
  outline-offset: 4px;
}

.contact-block__network {
  padding-left: 56px;
  border-left: 1px solid var(--rule);
}

.contact-block__network-lead {
  margin: 0;
  color: var(--deep);
  font-family: var(--display);
  font-size: var(--fs-card);
  font-weight: var(--display-weight);
  line-height: var(--lh-tight);
}

.contact-block__network-body {
  max-width: 52ch;
  margin: 16px 0 0;
  color: var(--ink);
  font-size: var(--fs-body);
  line-height: 1.55;
  text-wrap: pretty;
}

@media (max-width: 900px) {
  .contact-header__title {
    max-width: 100%;
  }

  .contact-block__in {
    grid-template-columns: minmax(0, 1fr);
    gap: 48px;
  }

  .contact-block__network {
    padding: 48px 0 0;
    border-left: 0;
    border-top: 1px solid var(--rule);
  }

  .contact-block__promise {
    margin-left: 0;
    flex-basis: 100%;
  }
}

@media (max-width: 600px) {
  .contact-header {
    padding: 80px 0 56px;
  }

  .contact-block {
    padding-block: 80px;
  }

  .contact-block__button {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .contact-block__email,
  .contact-block__button {
    transition: none;
  }
}

/* Contact office groups and phone response layout. */
address.contact-block__network-body {
  font-style: normal;
}
@media (max-width: 600px) {
  .contact-block__promise {
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
  }
}

/* Contact page redesign from Claude Design v2. */
.contact-v2__inner{width:var(--shell);margin:0 auto}
.contact-v2__eyebrow{color:var(--bronze);font:700 14px/1.25 var(--body);letter-spacing:.2em;text-transform:uppercase}
.contact-v2__eyebrow--light{color:var(--gold)}
.contact-v2__section-head{display:grid;gap:16px;max-width:760px}
.contact-v2__section-head h2{color:var(--deep);font:400 clamp(36px,4vw,44px)/1.2 var(--display);text-transform:uppercase}
.contact-v2__section-head>p:last-child{color:var(--grey-mid);font-size:19px;line-height:1.55;text-wrap:pretty}
.contact-v2__button{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:54px;padding:14px 24px;border:2px solid transparent;font:400 16px/1.2 var(--display);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;text-decoration:none;white-space:nowrap}
.contact-v2__button--outline{border-color:var(--deep);background:var(--paper);color:var(--deep)}
.contact-v2__button--outline:hover{border-color:var(--bronze);color:var(--bronze)}
.contact-v2__button--gold{border-color:var(--gold);background:var(--gold);color:var(--black)}
.contact-v2__button--gold:hover{background:var(--gold-pure);border-color:var(--gold-pure)}
.contact-v2__button--dark{border-color:var(--deep);background:var(--deep);color:var(--paper)}
.contact-v2__button--dark:hover{background:var(--sage);border-color:var(--sage)}
.contact-v2__button:disabled{opacity:.6;cursor:wait}

.contact-v2-hero{position:relative;overflow:hidden;background:var(--deep);color:var(--paper)}
.contact-v2-hero__art{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.contact-v2-hero__inner{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);column-gap:72px;width:var(--shell);margin:0 auto}
.contact-v2-hero__lead{padding:108px 0 64px;display:grid;align-content:start;gap:24px}
.contact-v2-hero__lead h1{font:400 clamp(52px,6.2vw,86px)/1.15 var(--display);text-transform:uppercase;text-wrap:balance}
.contact-v2-hero__lead h1 span{display:block;color:var(--gold)}
.contact-v2-hero__lead>p:last-child{max-width:540px;color:var(--on-sage);font-size:20px;line-height:1.55}
.contact-v2-hero__locations{align-self:end;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:2px solid var(--gold);background:rgba(255,255,255,.08)}
.contact-v2-hero__locations div{display:grid;gap:8px;min-width:0;padding:22px 14px}
.contact-v2-hero__locations strong{color:var(--paper);font:400 clamp(18px,2vw,26px)/1.2 var(--display);text-transform:uppercase}
.contact-v2-hero__locations span{color:var(--on-sage);font-size:13px;line-height:1.3}
.contact-v2-hero__jump{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:56px;border-top:1px solid var(--on-sage-line)}
.contact-v2-hero__jump a{display:flex;align-items:center;gap:12px;min-width:0;padding:26px 0;color:var(--paper);font:400 18px/1.2 var(--display);letter-spacing:.06em;text-transform:uppercase}
.contact-v2-hero__jump a+a{padding-left:24px}
.contact-v2-hero__jump a span{color:var(--gold)}
.contact-v2-hero__jump a b{margin-left:auto;font:400 22px/1.2 var(--body)}
.contact-v2-hero__jump a:hover{color:var(--gold)}

.contact-v2-email,.contact-v2-offices{padding:96px 0;background:var(--paper)}
.contact-v2-email__primary{display:flex;align-items:center;justify-content:space-between;gap:32px;flex-wrap:wrap;margin-top:64px;padding:34px 0;border-top:2px solid var(--deep);border-bottom:1px solid var(--rule)}
.contact-v2-email__address{min-width:0;color:var(--black);font:400 clamp(42px,7.2vw,104px)/1.18 var(--display);overflow-wrap:anywhere;letter-spacing:-.02em}
.contact-v2-email__address span{color:var(--gold)}
.contact-v2-email__address:hover{color:var(--deep)}
.contact-v2-email__actions{display:flex;flex-wrap:wrap;gap:16px}
.contact-v2-email__cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:64px}
.contact-v2-email__card{display:flex;flex-direction:column;min-width:0;min-height:250px;padding:28px;border:1px solid var(--rule);border-top:2px solid var(--rule);background:var(--paper)}
.contact-v2-email__card:hover{border-top-color:var(--gold)}
.contact-v2-email__card-mark{color:var(--bronze);font:700 12px/1.2 var(--body);letter-spacing:.16em}
.contact-v2-email__card h3{margin-top:24px;color:var(--deep);font:400 22px/1.2 var(--display);text-transform:uppercase}
.contact-v2-email__card>p{margin-top:10px;color:var(--grey-mid);font-size:16px;line-height:1.5}
.contact-v2-email__card-base{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;padding-top:18px;border-top:1px solid var(--rule)}
.contact-v2-email__card-base a{min-width:0;color:var(--deep);font-weight:700;overflow-wrap:anywhere}
.contact-v2-email__card-base a:hover{text-decoration:underline}
.contact-v2-email__card-base button{flex:none;padding:8px;border:1px solid var(--rule);color:var(--grey-mid);font-size:13px;cursor:pointer}
.contact-v2-email__card-base button:hover{border-color:var(--gold);color:var(--deep)}

.contact-v2-note{padding:96px 0;background:var(--sage-04);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.contact-v2-note__grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:64px;align-items:start}
.contact-v2-note__intro{display:grid;gap:48px}
.contact-v2-note__steps-title{padding-bottom:16px;border-bottom:2px solid var(--sage);color:var(--sage);font:400 15px/1.3 var(--display);letter-spacing:.12em;text-transform:uppercase}
.contact-v2-note__steps ol{list-style:none;margin:0;padding:0}
.contact-v2-note__steps li{display:grid;grid-template-columns:48px 1fr;gap:16px;padding:21px 0;border-bottom:1px solid var(--rule)}
.contact-v2-note__steps li>span{color:var(--bronze);font:400 28px/1.2 var(--display)}
.contact-v2-note__steps strong{color:var(--black);font:400 20px/1.2 var(--display)}
.contact-v2-note__steps li p{margin-top:4px;color:var(--grey-mid);font-size:16px;line-height:1.5}
.contact-v2-note__panel{min-width:0;min-height:530px;padding:42px;border:1px solid var(--rule);border-top:4px solid var(--deep);background:var(--paper)}
.contact-v2-form{display:grid;gap:30px}
.contact-v2-form[hidden]{display:none}
.contact-v2-form__fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 30px}
.contact-v2-form label{display:grid;gap:10px;min-width:0}
.contact-v2-form label.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.contact-v2-form label>span{color:var(--deep);font:700 13px/1.25 var(--body);letter-spacing:.12em;text-transform:uppercase}
.contact-v2-form label em{color:var(--bronze);font-style:normal}
.contact-v2-form input,.contact-v2-form textarea{width:100%;padding:9px 0 12px;border:0;border-bottom:1px solid var(--sage);background:transparent;color:var(--black);font:400 20px/1.35 var(--body);outline:none}
.contact-v2-form input::placeholder,.contact-v2-form textarea::placeholder{color:var(--grey-mid);opacity:.6}
.contact-v2-form input:focus,.contact-v2-form textarea:focus{border-bottom:2px solid var(--deep)}
.contact-v2-form__message>span{display:flex;align-items:center;justify-content:space-between;gap:12px}
.contact-v2-form__message small{font:700 12px/1.25 var(--body);letter-spacing:.08em}
.contact-v2-form textarea{min-height:142px;resize:vertical}
.contact-v2-form__actions{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.contact-v2-form__actions p{max-width:260px;color:var(--grey-mid);font-size:14px;line-height:1.5}
.contact-v2-form__status{min-height:1.4em;color:var(--deep);font-size:15px;line-height:1.4}
.contact-v2-form__status[data-state="error"]{color:#8A2B12}
.contact-v2-form__success{display:grid;align-content:center;gap:20px;min-height:440px}
.contact-v2-form__success[hidden]{display:none}
.contact-v2-form__success-mark{color:var(--bronze);font-size:48px;line-height:1.2}
.contact-v2-form__success h3{color:var(--deep);font:400 44px/1.2 var(--display);text-transform:uppercase}
.contact-v2-form__success p{max-width:440px;color:var(--grey-mid);font-size:19px;line-height:1.5}
.contact-v2-form__success button{justify-self:start;padding:0 0 4px;border-bottom:1px solid var(--bronze);color:var(--deep);font-size:16px;cursor:pointer}

.contact-v2-offices__stage{position:relative;margin-top:48px;overflow:hidden;border:1px solid var(--rule);background:var(--wash)}
.contact-v2-offices__map-link,.contact-v2-offices__map-link picture,.contact-v2-offices__map-link img{display:block;width:100%}
.contact-v2-offices__map-link{cursor:pointer}
.contact-v2-offices__map-link img{height:auto;aspect-ratio:1200/430;object-fit:contain}
.contact-v2-offices__map-link:focus-visible{outline:4px solid var(--gold);outline-offset:-4px}
.contact-v2-offices__credit{display:block;padding:10px 16px;color:var(--grey-mid);font-size:13px;line-height:1.35;text-align:right}
.contact-v2-offices__focus{position:absolute;left:32px;top:96px;display:grid;gap:8px;max-width:400px;padding:24px 28px;border-top:4px solid var(--gold);background:var(--paper)}
.contact-v2-offices__focus>span{color:var(--grey-mid);font:700 12px/1.25 var(--body);letter-spacing:.15em;text-transform:uppercase}
.contact-v2-offices__focus strong{color:var(--deep);font:400 32px/1.2 var(--display);text-transform:uppercase}
.contact-v2-offices__focus p{font-size:15px;line-height:1.45}
.contact-v2-offices__focus a{color:var(--deep);font-size:16px;font-weight:700}
.contact-v2-offices__focus a:hover{text-decoration:underline}
.contact-v2-offices__cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:32px}
.contact-v2-offices__card{display:flex;flex-direction:column;align-items:flex-start;gap:12px;min-width:0;min-height:345px;padding:28px;border:1px solid var(--rule);border-top:4px solid var(--rule);background:var(--paper);text-align:left;cursor:pointer}
.contact-v2-offices__card:hover,.contact-v2-offices__card.is-active{border-top-color:var(--gold);background:var(--sage-04)}
.contact-v2-offices__card-top{display:flex;justify-content:space-between;gap:10px;width:100%;color:var(--grey-mid);font-size:13px;line-height:1.25}
.contact-v2-offices__card-top small{color:var(--bronze);font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.contact-v2-offices__card>strong{margin-top:12px;color:var(--deep);font:400 36px/1.2 var(--display);text-transform:uppercase}
.contact-v2-offices__card>em{color:var(--sage);font-style:normal;font-weight:700;line-height:1.3}
.contact-v2-offices__card-address{width:100%;margin-top:8px;padding-top:18px;border-top:1px solid var(--rule);font-size:16px;line-height:1.45}
.contact-v2-offices__card-action{margin-top:auto;color:var(--deep);font-size:15px;font-weight:700}

@media (max-width:1100px){
  .contact-v2-hero__inner{column-gap:40px}
  .contact-v2-hero__locations{grid-template-columns:1fr}
  .contact-v2-hero__locations div{display:flex;justify-content:space-between;gap:16px;padding:12px 18px}
  .contact-v2-email__address{font-size:clamp(42px,7vw,78px)}
  .contact-v2-note__grid{gap:36px}
}
@media (max-width:900px){
  .contact-v2-hero__inner{grid-template-columns:1fr}
  .contact-v2-hero__lead{padding:84px 0 42px}
  .contact-v2-hero__locations{grid-template-columns:repeat(3,minmax(0,1fr))}
  .contact-v2-hero__locations div{display:grid;padding:18px 12px}
  .contact-v2-hero__jump{margin-top:36px}
  .contact-v2-note__grid{grid-template-columns:1fr}
  .contact-v2-note__intro{gap:32px}
  .contact-v2-offices__cards{grid-template-columns:1fr 1fr}
  .contact-v2-offices__focus{position:relative;left:auto;top:auto;bottom:auto;max-width:none;margin:0;border-top:1px solid var(--rule)}
}
@media (max-width:600px){
  .contact-v2-email,.contact-v2-note,.contact-v2-offices{padding:72px 0}
  .contact-v2__section-head h2{font-size:36px}
  .contact-v2__section-head>p:last-child{font-size:17px}
  .contact-v2-hero__lead{padding:72px 0 36px}
  .contact-v2-hero__lead h1{font-size:clamp(47px,12vw,64px)}
  .contact-v2-hero__lead>p:last-child{font-size:18px}
  .contact-v2-hero__locations{grid-template-columns:1fr}
  .contact-v2-hero__locations div{display:flex;justify-content:space-between;padding:11px 16px}
  .contact-v2-hero__locations strong{font-size:18px}
  .contact-v2-hero__jump{grid-template-columns:1fr;gap:0;margin-top:28px}
  .contact-v2-hero__jump a{padding:14px 0;border-bottom:1px solid var(--on-sage-line);font-size:16px}
  .contact-v2-hero__jump a+a{padding-left:0}
  .contact-v2-email__primary{margin-top:42px;padding:26px 0}
  .contact-v2-email__address{font-size:clamp(37px,10vw,52px)}
  .contact-v2-email__actions{width:100%}
  .contact-v2__button{font-size:14px;min-height:48px;padding:12px 16px}
  .contact-v2-email__cards{grid-template-columns:1fr;gap:16px;margin-top:40px}
  .contact-v2-email__card{min-height:220px}
  .contact-v2-note__panel{padding:26px;min-height:0}
  .contact-v2-form__fields{grid-template-columns:1fr;gap:20px}
  .contact-v2-form__actions .contact-v2__button{width:100%}
  .contact-v2-offices__stage{min-height:0}
  .contact-v2-offices__map-link img{aspect-ratio:720/520}
  .contact-v2-offices__focus{padding:18px 20px}
  .contact-v2-offices__focus strong{font-size:26px}
  .contact-v2-offices__cards{grid-template-columns:1fr;gap:16px}
  .contact-v2-offices__card{min-height:285px}
}
