/* Contact - a distinctive, calm invitation in the existing Rismor visual language. */
.contact-page{--c-ink:#071a36;--c-blue:#2268bc;--c-pale:#eef5fc}
.contact-page .contact-hero{position:relative;isolation:isolate;overflow:hidden;background:#f7fafe;border-bottom:1px solid #dce6f1}
/* New approved sketch-to-digital artwork covers the whole hero, not a separate panel. */
.contact-page .contact-hero::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:linear-gradient(90deg,rgba(255,255,255,.99) 0%,rgba(255,255,255,.98) 21%,rgba(255,255,255,.92) 36%,rgba(255,255,255,.62) 55%,rgba(255,255,255,.16) 79%,rgba(255,255,255,.03) 100%),url('/assets/media/rismor-contact-hero.webp');background-size:cover;background-position:center center;background-repeat:no-repeat}
.contact-page .contact-hero-grid{position:relative;z-index:1;display:block;min-height:clamp(600px,48vw,700px);padding-bottom:clamp(68px,7vw,100px)}
.contact-page .contact-hero-main{width:min(100%,710px)}
.contact-page .contact-overline{font-size:11px;font-weight:800;letter-spacing:.16em;color:#2268bc;margin:0 0 22px}
.contact-page .contact-hero h1{font-size:clamp(42px,5.15vw,76px);letter-spacing:-.06em;line-height:1.09;max-width:920px;margin-bottom:19px}
.contact-page .contact-hero h1 em{font-style:normal;color:var(--c-blue)}
.contact-page .contact-hero-copy{max-width:640px;font-size:clamp(16px,1.37vw,19px);line-height:1.68;color:#364b67;margin-bottom:24px}
/* The contact journey starts in the hero, not three sections below it. */
.contact-page .contact-hero-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(20px,3.5vw,48px);max-width:650px;padding-top:21px;border-top:1px solid #b9cfe6}
.contact-page .contact-hero-action{min-width:0}
.contact-page .contact-hero-action+.contact-hero-action{border-left:1px solid #d4e1ef;padding-left:clamp(16px,2.4vw,34px)}
.contact-page .contact-hero-action-label{margin:0 0 8px;font-size:11px;letter-spacing:.12em;font-weight:800;color:#526b89}
/* Keep the email button and telephone link on the same vertical rhythm.
   Both are genuine 44px touch targets with identical text alignment. */
.contact-page .contact-hero-action>a,.contact-page .contact-hero-action .contact-email-reveal,.contact-page .contact-hero-action .contact-email-result a{display:inline-flex;align-items:center;vertical-align:top;min-height:44px;max-width:100%;font-size:clamp(17px,1.65vw,22px);line-height:1.35;font-weight:800;letter-spacing:-.025em;color:#114b94;text-align:left;text-decoration:underline;text-decoration-color:#84b1e0;text-underline-offset:5px;overflow-wrap:anywhere}
/* Author-level display rules must honour the reveal script's hidden attribute. */
.contact-page .contact-hero-action .contact-email-reveal[hidden]{display:none}
.contact-page .contact-hero-action .contact-email-result{display:block;max-width:100%}
.contact-page .contact-hero-more{display:inline-block;margin-top:20px;padding-block:10px;color:#265c96;font-size:14px;font-weight:750;text-decoration:underline;text-underline-offset:4px}
.contact-page .contact-intro{display:grid;grid-template-columns:minmax(240px,.52fr) minmax(0,1fr);gap:clamp(38px,8vw,130px);padding-block:clamp(72px,8vw,122px);align-items:start}
.contact-page .contact-intro-mark{border-top:2px solid #2669b7;padding-top:21px}
.contact-page .contact-intro-mark .contact-overline{margin-bottom:21px}
.contact-page .contact-intro-mark h2{font-size:clamp(31px,3.5vw,51px);line-height:1.13;max-width:460px}
.contact-page .contact-intro-mark h2 em{font-style:normal;color:#236abc}
.contact-page .contact-intro-copy p{font-size:clamp(16px,1.3vw,20px);line-height:1.75;color:#2f4260;max-width:850px}
.contact-page .contact-intro-copy p:first-child{font-weight:750;color:#0c2549}
.contact-page .contact-thought{display:block;width:fit-content;max-width:100%;font-size:clamp(17px,2vw,27px);font-weight:600;color:#2872be;transform:rotate(-2.2deg);font-family:"Segoe Print","Bradley Hand","Comic Sans MS",cursive;margin-top:25px}
.contact-page .contact-dialogue{background:#071a36;color:#fff;position:relative;overflow:hidden}
.contact-page .contact-dialogue::before{content:"";position:absolute;inset:0;opacity:.20;background-image:linear-gradient(#8fb4e019 1px,transparent 1px),linear-gradient(90deg,#8fb4e019 1px,transparent 1px);background-size:54px 54px;pointer-events:none}
.contact-page .contact-dialogue-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(35px,7vw,100px);align-items:center;position:relative;z-index:1;padding-block:clamp(67px,7vw,105px)}
.contact-page .contact-dialogue .contact-overline{color:#8dc5ff}
.contact-page .contact-dialogue h2{font-size:clamp(31px,3.65vw,55px);line-height:1.16;max-width:650px;margin:0}
.contact-page .contact-dialogue h2 em{font-style:normal;color:#a6d3ff}
.contact-page .contact-dialogue-copy{border-left:1px solid #7192b8;padding-left:clamp(24px,3vw,50px)}
.contact-page .contact-dialogue-copy p{font-size:clamp(15px,1.25vw,18px);line-height:1.75;color:#d8e7fa;margin-bottom:18px}
.contact-page .contact-dialogue-copy p:last-child{margin-bottom:0}
.contact-page .contact-invite{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr);gap:clamp(40px,7vw,105px);padding-block:clamp(75px,8vw,120px);align-items:start}
.contact-page .contact-invite h2{font-size:clamp(38px,4.1vw,63px);line-height:1.14;max-width:650px;margin-bottom:18px}
.contact-page .contact-invite h2 em{font-style:normal;color:var(--c-blue)}
.contact-page .contact-invite-lead{max-width:660px;font-size:17px;line-height:1.75;color:#40516b;margin-bottom:31px}
.contact-page .contact-method{padding:25px 0;border-top:1px solid #d8e1ec}
.contact-page .contact-method:last-child{border-bottom:1px solid #d8e1ec}
.contact-page .contact-method-label{font-size:11px;font-weight:800;letter-spacing:.15em;color:#5b7391;margin:0 0 7px}
.contact-page .contact-method a{font-size:clamp(19px,2.1vw,27px);font-weight:800;color:#114b94;overflow-wrap:anywhere;text-decoration:underline;text-decoration-color:#84b1e0;text-underline-offset:5px}
.contact-page .contact-email-reveal{border:0;background:none;padding:0;text-align:left;font-size:clamp(19px,2.1vw,27px);line-height:1.35;font-weight:800;letter-spacing:-.025em;color:#114b94;cursor:pointer;text-decoration:underline;text-decoration-color:#84b1e0;text-underline-offset:5px}
.contact-page .contact-email-result{display:block;min-height:1px}
.contact-page .contact-email-result a{font-size:clamp(17px,1.7vw,23px)}
.contact-page .contact-method-caption{font-size:13px;line-height:1.65;color:#5b6d84;margin:7px 0 0}
.contact-page .contact-personal{background:#f1f6fc;padding:clamp(27px,3.7vw,56px);border-top:3px solid #2d78ca;position:relative}
.contact-page .contact-personal .contact-overline{margin-bottom:25px}
.contact-page .contact-personal blockquote{margin:0 0 30px;font-size:clamp(25px,2.5vw,36px);line-height:1.35;font-weight:800;letter-spacing:-.045em;color:#0d2a53}
.contact-page .contact-personal p{font-size:15px;line-height:1.72;color:#39516f}
.contact-page .contact-personal p:last-child{margin-bottom:0}
.contact-page .contact-personal strong{color:#0d2a53}
.contact-page .contact-end{background:#eaf2fb;padding-block:47px}
.contact-page .contact-end-inner{display:flex;justify-content:space-between;gap:22px;align-items:center}
.contact-page .contact-end p{margin:0;color:#16375c;font-size:17px;font-weight:750}
.contact-page .contact-end a{color:#1459a9;text-decoration:underline;text-underline-offset:4px;font-size:14px;font-weight:800;white-space:nowrap}
@media(max-width:1000px){.contact-page .contact-hero::before{background-image:linear-gradient(90deg,rgba(255,255,255,.99),rgba(255,255,255,.95) 44%,rgba(255,255,255,.66) 100%),url('/assets/media/rismor-contact-hero.webp')}.contact-page .contact-hero h1{font-size:clamp(41px,5.8vw,60px)}.contact-page .contact-intro{gap:36px}.contact-page .contact-invite{gap:35px}}
@media(max-width:720px){.contact-page .contact-hero-grid{min-height:0;padding-bottom:54px}.contact-page .contact-hero h1{font-size:clamp(35px,8.8vw,48px)}.contact-page .contact-hero-copy{font-size:16px}.contact-page .contact-hero-closer{font-size:17px}.contact-page .contact-intro{grid-template-columns:1fr;padding-block:55px;gap:24px}.contact-page .contact-intro-mark h2{font-size:clamp(30px,8vw,42px)}.contact-page .contact-intro-copy p{font-size:15px}.contact-page .contact-dialogue-grid{grid-template-columns:1fr;gap:23px;padding-block:55px}.contact-page .contact-dialogue h2{font-size:clamp(30px,8vw,42px)}.contact-page .contact-dialogue-copy{padding-left:20px}.contact-page .contact-dialogue-copy p{font-size:15px}.contact-page .contact-invite{grid-template-columns:1fr;padding-block:56px;gap:45px}.contact-page .contact-invite h2{font-size:clamp(36px,8.5vw,50px)}.contact-page .contact-invite-lead{font-size:15px}.contact-page .contact-personal{padding:30px 26px}.contact-page .contact-end-inner{display:block}.contact-page .contact-end p{margin-bottom:12px;font-size:15px}.contact-page .contact-end a{white-space:normal}}
@media(prefers-reduced-motion:reduce){.contact-page .contact-thought{transform:none}}

/* Keep the contact methods legible when copy fills the narrow screen. */
@media(max-width:720px){
 .contact-page .contact-hero::before{background-image:linear-gradient(90deg,rgba(255,255,255,.95),rgba(255,255,255,.89)),url('/assets/media/rismor-contact-hero.webp');background-position:center,72% center}
 .contact-page .contact-hero-main{width:100%}
}

/* Match the What We Do hero label position on every screen size. */
.contact-page .contact-hero-grid{padding-top:var(--rismor-interior-hero-top)}
