/* COMPANY: MESSAGE–ACCESS refresh. Preview-only hero/CTA rules remain scoped to .cp-preview. */
.cp-refresh { --cp-ink: #0a284c; --cp-blue: #376ea6; --cp-pale: #edf3f8; --cp-paper: #fbfaf7; }
.cp-preview main { background: var(--cp-paper); }
.cp-preview .breadcrumb { padding-block: 20px; background: #fff; }
.cp-preview .site-header { box-shadow: none; border-bottom: 1px solid #e8edf2; }
.cp-preview .sp-hero { background: #082343; }
.cp-preview .sp-hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, #061e3c 5%, rgb(6 30 60 / 90%) 35%, rgb(6 30 60 / 10%) 84%); }
.cp-preview .sp-hero .hero__art { opacity: .9; background-position: center 60%; }
.cp-preview .sp-hero__content { min-height: 530px; align-items: flex-start; padding-block: 105px 145px; text-align: left; }
.cp-preview .sp-hero .bp-label { position: relative; margin-bottom: 33px; padding-left: 65px; color: #dceaf8; letter-spacing: .28em; }
.cp-preview .sp-hero .bp-label::before { content: ""; position: absolute; top: 50%; left: 0; width: 43px; height: 1px; background: #8ec6eb; }
.cp-preview .sp-hero h1 { max-width: 710px; font-size: clamp(2.6rem, 4.2vw, 4.4rem); font-weight: 600; line-height: 1.55; letter-spacing: .11em; text-shadow: 0 3px 24px rgb(0 15 40 / 28%); }
.cp-refresh .bp-section { padding-block: clamp(95px, 9vw, 140px); }
.cp-refresh .bp-section .bp-label { margin-bottom: 16px; color: var(--cp-blue); font-size: .77rem; letter-spacing: .28em; }
.cp-refresh .bp-section h2 { color: var(--cp-ink); font-size: clamp(2rem, 2.9vw, 3.05rem); font-weight: 700; line-height: 1.45; letter-spacing: 0em; }

/* Message: an editorial opening, with an honest reserved space for the portrait. */
.cp-refresh .cp-message { position: relative; overflow: hidden; background-color: #f8faff; background-image: url("../about-wave-extracted.webp"); background-size: 100% 100%; background-position: center; }
/*.cp-refresh .cp-message::before { content: ""; position: absolute; top: 0; left: 50%; width: min(100% - 64px, 1180px); height: 1px; background: #cad8e5; transform: translateX(-50%); }*/
.cp-refresh .cp-message > .container { display: grid; grid-template-columns: minmax(0, 370px) minmax(0, 1fr); column-gap: clamp(60px, 9vw, 145px); align-items: start; }
.cp-refresh .cp-message .bp-label, .cp-refresh .cp-message h2 { grid-column: 2; text-align: left; }
.cp-refresh .cp-message h2 { margin-bottom: 48px; }
.cp-refresh .cp-message__grid { display: contents; }
.cp-refresh .cp-message__photo { grid-column: 1; grid-row: 1 / span 3; width: 100%; aspect-ratio: 1 / 1; min-height: 0; margin: 0; border: 0; border-radius: 0; background: linear-gradient(145deg, #d9e6f2, #f5f9fc 58%, #d6e3ef); box-shadow: 22px 22px 0 rgb(15 62 109 / 8%); color: #496a89; font-size: .96rem; letter-spacing: .06em; }
.cp-refresh .cp-message__figure { grid-column: 1; grid-row: 1 / span 3; margin: 0; }
.cp-refresh .cp-message__caption { margin-top: 40px; text-align: center; color: #233b56; font-size: .95rem; font-weight: 600; letter-spacing: .12em; }
.cp-refresh .cp-message__photo::before { content: ""; width: 50px; height: 1px; margin-bottom: 14px; background: #91a9bd; }
.cp-refresh .cp-message__photo small { color: #70879d; font-size: .72rem; letter-spacing: .06em; }
.cp-refresh .cp-message__body { grid-column: 2; max-width: 620px; }
.cp-refresh .cp-message__body p { color: #233b56; font-size: clamp(1rem, 1.2vw, 1.12rem); font-weight: 600; line-height: 2.4; letter-spacing: .075em; }

/* Name: an open white chapter and an oversized brand signature. */
.cp-refresh .cp-name { overflow: hidden; background: #fff; }
.cp-refresh .cp-name__grid { gap: clamp(60px, 9vw, 150px); max-width: 1180px; }
.cp-refresh .cp-name__copy { max-width: 640px; }
.cp-refresh .cp-name .bp-label, .cp-refresh .cp-name h2 { text-align: left; }
.cp-refresh .cp-name h2 { margin-bottom: 35px; }
.cp-refresh .cp-name__copy > p:not(.bp-label) { margin-bottom: 18px; color: #29415a; line-height: 2.25; letter-spacing: .035em; }
.cp-refresh .cp-name__logo { position: relative; min-height: 365px; padding: 45px; overflow: hidden; border-radius: 0; }
.cp-refresh .cp-name__logo img { position: relative; z-index: 1; width: min(100%, 360px); }

/* Philosophy: the proposal's navy chapter and soft concentric lines. */
.cp-refresh .cp-philosophy { position: relative; overflow: hidden; background: #0b2b50; color: #fff; }
.cp-refresh .cp-philosophy::before { content: ""; position: absolute; top: -320px; right: -270px; width: 850px; height: 850px; border: 1px solid rgb(141 193 228 / 17%); border-radius: 50%; }
.cp-refresh .cp-philosophy::after { content: ""; position: absolute; top: -230px; right: -190px; width: 660px; height: 660px; border: 1px solid rgb(141 193 228 / 10%); border-radius: 50%; }
.cp-refresh .cp-philosophy .container { position: relative; z-index: 1; }
.cp-refresh .cp-philosophy .bp-label { color: #9dc8e6; }
.cp-refresh .cp-philosophy h2 { color: #fff; }
.cp-refresh .cp-philosophy__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 64px; max-width: 1060px; margin: 62px auto 0; }
.cp-refresh .cp-philosophy__card { min-height: 206px; padding: 24px 0 34px; border: 0; border-top: 1px solid rgb(206 227 244 / 38%); border-radius: 0; background: transparent; box-shadow: none; }
.cp-refresh .cp-philosophy__cat { gap: 20px; margin-bottom: 21px; padding: 0; border: 0; color: #a9d3eb; }
.cp-refresh .cp-philosophy__cat span:first-child { font-size: 2rem; font-weight: 300; }
.cp-refresh .cp-philosophy__cat span:last-child { color: #9dc8e6; font-size: .76rem; letter-spacing: .22em; }
.cp-refresh .cp-philosophy__card h3 { display: inline-block; margin: 0 0 12px; color: #fff; font-size: 1.45rem; }
.cp-refresh .cp-philosophy__card > p:last-child { max-width: 440px; color: #d9e6f1; font-size: .9rem; line-height: 2; }

/* Profile and history use a side heading to break the repeated centered pattern. */
.cp-refresh .cp-profile { background: #fff; }
.cp-refresh .cp-profile > .container, .cp-refresh .cp-history > .container { display: grid; grid-template-columns: minmax(0, 275px) minmax(0, 1fr); grid-template-rows: 36px auto; column-gap: clamp(55px, 8vw, 125px); align-items: start; }
.cp-refresh .cp-profile .bp-label, .cp-refresh .cp-history .bp-label { grid-column: 1; text-align: left; }
.cp-refresh .cp-profile h2, .cp-refresh .cp-history h2 { grid-column: 1; text-align: left; }
.cp-refresh .cp-profile .sp-table, .cp-refresh .cp-history__list { grid-column: 2; grid-row: 1 / span 2; width: 100%; max-width: none; margin: 0; }
.cp-refresh .cp-profile .sp-table { border-top-color: #9fb2c5; }
.cp-refresh .cp-profile .sp-table > div { grid-template-columns: 165px minmax(0, 1fr); border-bottom-color: #e1e8ee; }
.cp-refresh .cp-profile .sp-table dt, .cp-refresh .cp-profile .sp-table dd { padding-block: 20px; }
.cp-refresh .cp-profile .sp-table dt { padding-left: 0; color: #47709a; }
.cp-refresh .cp-profile .sp-table dd { padding-right: 0; color: #233b56; }
.cp-refresh .cp-history { background: #f9f8f5; }
.cp-refresh .cp-history__list { padding: 4px 0 0; }
.cp-refresh .cp-history__list::before { left: 151px; background: #b9cad9; }
.cp-refresh .cp-history__list li { grid-template-columns: 150px minmax(0, 1fr); padding-block: 18px; border-bottom: 1px solid #e2e9ef; }
.cp-refresh .cp-history__list li:first-child { padding-top: 3px; }
.cp-refresh .cp-history__list li::before { top: 29px; left: 145px; width: 13px; height: 13px; border-color: #467eac; background: #f9f8f5; }
.cp-refresh .cp-history__list li:first-child::before { top: 14px; }
.cp-refresh .cp-history__list time { padding-right: 22px; color: #376a98; font-size: .94rem; }
.cp-refresh .cp-history__list p { padding-left: 34px; color: #29415a; font-size: .93rem; }

/* Clients: compact editorial columns instead of boxed cards. */
.cp-refresh .cp-clients { background: #fff; }
.cp-refresh .cp-clients__grid { gap: 0; max-width: 1100px; margin-top: 60px; border-top: 1px solid #b8c9d9; border-bottom: 1px solid #b8c9d9; }
.cp-refresh .cp-clients__card { padding: 36px 44px 38px 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.cp-refresh .cp-clients__card + .cp-clients__card { padding-left: 44px; border-left: 1px solid #d9e2eb; }
.cp-refresh .cp-clients__card h3 { margin-bottom: 16px; padding-bottom: 0; border: 0; color: #376a98; font-size: 1.15rem; }
.cp-refresh .cp-clients__card p { color: #29415a; font-size: .92rem; line-height: 2.2; }

/* Access: reserve a refined map panel until approved map data is supplied. */
.cp-refresh .cp-access { background: #f9f8f5; }
.cp-refresh .cp-access__grid { gap: 65px; max-width: 1100px; margin-top: 60px; align-items: stretch; }
.cp-refresh .cp-access__offices { align-self: center; }
.cp-refresh .cp-access__office { padding-left: 22px; border-left: 2px solid #80a9c9; }
.cp-refresh .cp-access__office + .cp-access__office { margin-top: 40px; padding-top: 0; border-top: 0; }
.cp-refresh .cp-access__office h3 { margin-bottom: 10px; color: #47709a; font-size: .82rem; letter-spacing: .16em; }
.cp-refresh .cp-access__office p { color: #29415a; font-size: 1rem; line-height: 2; }
.cp-refresh .cp-access__map { min-height: 350px; border: 1px solid #d5e2eb; border-radius: 0; background: linear-gradient(135deg, #e3edf5, #f9fbfc 55%, #dce9f3); box-shadow: 16px 16px 0 rgb(9 52 95 / 6%); color: #496a89; letter-spacing: .04em; }
.cp-refresh .cp-access__map small { color: #718aa1; }
.cp-preview .sp-cta { background: #071d37; }
.cp-preview .sp-cta .bp-vision__inner { padding-block: 112px 155px; }
.cp-preview .sp-cta .bp-label { color: #a9cce6; }
.cp-preview .sp-cta h2 { margin-bottom: 30px; }
.cp-preview .sp-cta .button { min-width: min(100%, 345px); }

@media (max-width: 900px) {
  .cp-refresh .cp-message > .container { grid-template-columns: minmax(0, 290px) minmax(0, 1fr); gap: 0 50px; }
  .cp-refresh .cp-profile > .container, .cp-refresh .cp-history > .container { grid-template-columns: minmax(0, 210px) minmax(0, 1fr); column-gap: 45px; }
  .cp-refresh .cp-name__grid { gap: 45px; }
}
@media (max-width: 760px) {
  .cp-preview .sp-hero__content { min-height: 420px; padding-block: 85px 125px; }
  .cp-preview .sp-hero h1 { font-size: clamp(2.2rem, 6vw, 3rem); }
  .cp-refresh .bp-section { padding-block: 78px; }
  .cp-refresh .cp-message > .container { grid-template-columns: minmax(0, 1fr); }
  .cp-refresh .cp-message .bp-label, .cp-refresh .cp-message h2, .cp-refresh .cp-message__figure, .cp-refresh .cp-message__body { grid-column: 1; }
  .cp-refresh .cp-message h2 { margin-bottom: 32px; }
  .cp-refresh .cp-message__figure { grid-row: 3; max-width: 340px; margin: 0 0 42px; }
  .cp-refresh .cp-message__photo { aspect-ratio: 4 / 3.6; }
  .cp-refresh .cp-message__caption { margin-top: 34px; }
  .cp-refresh .cp-message__body { grid-row: 4; }
  .cp-refresh .cp-name__grid { gap: 38px; }
  .cp-refresh .cp-name__logo { min-height: 240px; }
  .cp-refresh .cp-profile > .container, .cp-refresh .cp-history > .container { grid-template-columns: 1fr; grid-template-rows: auto; }
  .cp-refresh .cp-profile .sp-table, .cp-refresh .cp-history__list { grid-column: 1; grid-row: auto; margin-top: 36px; }
  .cp-refresh .cp-history__list::before { left: 5px; }
  .cp-refresh .cp-history__list li { grid-template-columns: 1fr; gap: 4px; padding: 16px 0 16px 32px; }
  .cp-refresh .cp-history__list li::before, .cp-refresh .cp-history__list li:first-child::before { top: 22px; left: 0; }
  .cp-refresh .cp-history__list li:first-child::before { top: 7px; }
  .cp-refresh .cp-history__list p { padding-left: 0; }
  .cp-refresh .cp-access__grid { gap: 45px; }
}
@media (max-width: 560px) {
  .cp-preview .sp-hero__content { min-height: 390px; }
  .cp-preview .sp-hero h1 { font-size: clamp(1.85rem, 8vw, 2.4rem); }
  .cp-refresh .bp-section h2 { font-size: 1.75rem; }
  .cp-refresh .cp-message__figure { width: min(100%, 300px); }
  .cp-refresh .cp-message__body p { font-size: .95rem; line-height: 2.15; }
  .cp-refresh .cp-philosophy__grid { grid-template-columns: 1fr; margin-top: 44px; }
  .cp-refresh .cp-philosophy__card { min-height: 0; padding-block: 25px 30px; }
  .cp-refresh .cp-profile .sp-table > div { grid-template-columns: 1fr; }
  .cp-refresh .cp-profile .sp-table dt { padding: 18px 0 2px; }
  .cp-refresh .cp-profile .sp-table dd { padding: 0 0 18px; }
  .cp-refresh .cp-clients__grid { grid-template-columns: 1fr; }
  .cp-refresh .cp-clients__card { padding: 28px 0; }
  .cp-refresh .cp-clients__card + .cp-clients__card { padding: 28px 0; border-top: 1px solid #d9e2eb; border-left: 0; }
  .cp-refresh .cp-access__map { min-height: 260px; }
}

