/* ==========================================================================
   AdMedia — Contact page (/contact). Uses new-homepage.css tokens.
   Prefix "ct-".
   ========================================================================== */
.ct-page { background: #fff; font-family: var(--am-font-body); color: var(--am-text); }
.ct-page .pp-rel { position: relative; z-index: 1; }
.ct-hero { padding-bottom: clamp(56px, 6.5vw, 96px); }
.ct-hero__copy { max-width: 720px; margin-bottom: clamp(28px, 4vw, 48px); }
.ct-hero__copy h1 { margin-bottom: 16px; }
.ct-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.ct-grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(16px, 2.4vw, 28px); align-items: stretch; }
.ct-side { display: flex; flex-direction: column; gap: clamp(16px, 2.4vw, 28px); }
.ct-side > .ct-card:last-child { flex: 1 1 auto; display: flex; flex-direction: column; }
.ct-card { padding: clamp(22px, 3vw, 36px); border-radius: 24px; background: #fff; border: 1px solid var(--am-line); box-shadow: 0 1px 2px rgba(27, 20, 34, .04), 0 24px 48px -32px rgba(120, 24, 44, .3); }
.ct-card__title { margin: 0 0 14px; font-size: clamp(22px, 2vw, 26px); line-height: 1.25; letter-spacing: -.01em; color: var(--am-ink); }
.ct-card__lead { margin: -4px 0 18px; font-size: 15.5px; line-height: 1.55; color: var(--am-text); }

/* contact type segmented control */
.ct-type { position: relative; display: grid; grid-template-columns: repeat(3, 1fr); margin: 0 0 24px; padding: 5px; border: 0; border-radius: 999px; background: var(--am-peach); }
.ct-type input { position: absolute; opacity: 0; pointer-events: none; }
.ct-type label { position: relative; z-index: 1; display: grid; place-items: center; height: 44px; margin: 0; border-radius: 999px; cursor: pointer; font-family: var(--am-font-head); font-size: 15px; font-weight: 400; color: var(--am-muted); transition: color .3s ease; }
.ct-type__thumb { position: absolute; z-index: 0; top: 5px; bottom: 5px; left: 5px; width: calc((100% - 10px) / 3); border-radius: 999px; background: var(--am-grad); box-shadow: var(--am-shadow-btn); transition: transform .35s cubic-bezier(.2, .7, .2, 1); }
.ct-type input:checked + label { color: #fff; }
#ctTypeAgency:checked ~ .ct-type__thumb { transform: translateX(100%); }
#ctTypePub:checked ~ .ct-type__thumb { transform: translateX(200%); }
.ct-type input:focus-visible + label { outline: 2px solid var(--am-red); outline-offset: 2px; }

/* fields */
.ct-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.ct-field { position: relative; margin-bottom: 14px; }
.ct-field label { display: block; margin-bottom: 7px; font-family: var(--am-font-head); font-size: 14px; font-weight: 500; color: var(--am-ink); }
.ct-field label i { font-style: normal; color: var(--am-red); }
.ct-field input, .ct-field select, .ct-field textarea {
    display: block; width: 100%; height: 42px; padding: 0 14px;
    border: 1px solid var(--am-line); border-radius: 12px; background: var(--am-peach-soft);
    font-family: var(--am-font-body); font-size: 15px; color: var(--am-ink);
    transition: border-color .2s ease, background .2s ease, box-shadow .2s ease;
    -webkit-appearance: none; appearance: none;
}
.ct-field textarea { min-height: 104px; height: 104px; padding: 12px 14px; resize: none; line-height: 1.55; }
.ct-field input::placeholder, .ct-field textarea::placeholder { color: #a99e9f; }
.ct-field select:invalid { color: #a99e9f; }
.ct-field input:focus, .ct-field select:focus, .ct-field textarea:focus { outline: 0; border-color: var(--am-red); background: #fff; box-shadow: 0 0 0 4px rgba(231, 0, 90, .1); }
.ct-field.is-invalid input, .ct-field.is-invalid select, .ct-field.is-invalid textarea { border-color: var(--am-red); background: #fff6f8; }
.ct-select { position: relative; }
.ct-select select { padding-right: 44px; cursor: pointer; }
.ct-select__chev { position: absolute; right: 16px; top: 50%; width: 16px; height: 16px; transform: translateY(-50%); fill: none; stroke: var(--am-muted); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; pointer-events: none; }
.ct-count { display: block; margin-top: 6px; text-align: right; font-size: 13px; color: var(--am-muted); }
.ct-count b { font-weight: 400; }
.ct-submit { margin-top: 0; align-self: flex-start; border: 0; cursor: pointer; }
.ct-legal { margin: 14px 0 0; font-size: 13.5px; color: var(--am-muted); }
.ct-legal a { color: var(--am-red); text-decoration: underline; text-underline-offset: 2px; }
.ct-status { margin: 0 0 16px; padding: 12px 16px; border-radius: 12px; background: var(--am-tint); font-size: 14.5px; color: var(--am-ink); }
.ct-status--error { background: #fff6f8; color: var(--am-red); }

/* email list */
.ct-emails { margin: 0; }
.ct-emails > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 16px; align-items: center; padding: 15px 0; }
.ct-emails > div + div { border-top: 1px solid var(--am-line); }
.ct-emails dt { font-weight: 400; font-size: 15px; line-height: 1.4; color: var(--am-text); }
.ct-emails dd { margin: 0; }
.ct-emails a { font-family: var(--am-font-head); font-size: 14.5px; color: var(--am-red); }
.ct-emails a:hover { text-decoration: underline; text-underline-offset: 3px; }

/* offices */
.ct-offices { flex: 1 1 auto; display: grid; grid-template-columns: minmax(0, 1fr); grid-auto-rows: 1fr; gap: 10px; margin: 0; padding: 0; list-style: none; }
.ct-offices li { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border-radius: 16px; background: var(--am-peach-soft); border: 1px solid var(--am-line); transition: border-color .25s ease, transform .25s ease; }
.ct-offices li:hover { border-color: var(--am-blush); transform: translateY(-2px); }
.ct-pin { display: grid; place-items: center; flex: 0 0 34px; width: 34px; height: 34px; border-radius: 50%; background: var(--am-tint); color: var(--am-red); }
.ct-pin svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.ct-offices strong { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-family: var(--am-font-head); font-weight: 500; font-size: 15px; line-height: 1.3; color: var(--am-ink); }
.ct-offices em { display: inline-block; margin-top: 0; padding: 2px 8px; border-radius: 999px; background: var(--am-grad); color: #fff; font-style: normal; font-size: 11px; font-weight: 500; letter-spacing: .02em; }
.ct-offices span:not(.ct-pin) { display: block; margin-top: 4px; font-size: 13.5px; line-height: 1.45; color: var(--am-text); }

/* Email strip under the form and offices, with four contacts on desktop. */
.ct-emails-card { margin-top: clamp(16px, 2.4vw, 28px); padding-top: clamp(20px, 2.4vw, 28px); padding-bottom: clamp(20px, 2.4vw, 28px); }
.ct-emails-card .ct-emails { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.ct-emails-card .ct-emails > div { display: block; padding: 14px 16px; border: 1px solid #ece6e9; border-radius: 16px; }
.ct-emails-card .ct-emails dt { margin-bottom: 4px; font-size: 14px; }
.ct-emails-card .ct-emails a { word-break: break-word; }

@media (max-width: 991px) {
    .ct-grid { grid-template-columns: minmax(0, 1fr); }
    .ct-offices { grid-auto-rows: auto; }
    .ct-emails-card .ct-emails { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
    .ct-row, .ct-offices { grid-template-columns: minmax(0, 1fr); gap: 0; }
    .ct-offices { gap: 10px; }
    .ct-type label { height: 40px; font-size: 14px; }
    .ct-emails > div { grid-template-columns: minmax(0, 1fr); gap: 2px; }
    .ct-card { border-radius: 20px; }
    .ct-emails-card .ct-emails { grid-template-columns: minmax(0, 1fr); }
}

/* Oct 8 — match inspiration: white inputs, pink pin badges */
.ct-field input, .ct-field select, .ct-field textarea { background: #fff; border-color: #e6e1e4; }
.ct-field input:hover, .ct-field select:hover, .ct-field textarea:hover { border-color: #d6ced3; }
.ct-field input:focus, .ct-field select:focus, .ct-field textarea:focus { background: #fff; }
.ct-type { background: #fff; box-shadow: inset 0 0 0 1px #e6e1e4; }
.ct-offices li { background: #fff; border-color: #ece6e9; }
.ct-pin { flex: 0 0 38px; width: 38px; height: 38px; background: #fde7ee; }
.ct-pin svg { width: 18px; height: 18px; stroke: none; }
.ct-pin .ct-pin__body { fill: var(--am-red); }
.ct-pin .ct-pin__dot { fill: #fff; }
.ct-offices em { background: #fde7ee; color: var(--am-red); }

/* Form card fills the row, with a tighter gap above Submit. */
.ct-form-card { display: flex; flex-direction: column; }
.ct-form { flex: 1 1 auto; display: flex; flex-direction: column; }
.ct-field--msg { margin-bottom: 10px; }
