/* Commercial clarity, added without changing the immersive sequence's geometry. */
.pp-offers-context { max-width: 760px; margin: 24px 0 40px; font-size: 15px; line-height: 1.8; }
.pp-offers-context a { color: inherit; text-decoration: underline; text-underline-offset: .2em; }
.offers .v24-offer-footer { font-size: clamp(20px, 2vw, 28px); font-weight: 500; letter-spacing: -.035em; line-height: 1.4; }
.pp-skip-link { position:fixed;z-index:10000;left:20px;top:12px;padding:14px 20px;background:#c8eaff;color:#091522;transform:translateY(-180%);font-size:14px; }
.pp-skip-link:focus { transform:translateY(0); }
.pp-hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:16px 24px; margin-top:28px; }
.pp-action { display:inline-flex;align-items:center;justify-content:space-between;gap:30px;padding:14px 20px;border:1px solid currentColor;font-size:13px;line-height:1.4;transition:background .2s,color .2s; }
.pp-action-light { background:#c8eaff; color:#071522; border-color:#c8eaff; }
.pp-action-light:hover { background:#eef8ff; }
.pp-action-text { display:inline-flex;align-items:center;gap:12px;font-size:13px;line-height:1.6;padding:8px 0;border-bottom:1px solid #ffffff60;color:#f5f7f8; }
.hero .pp-hero-detail { font-size:11px;line-height:1.6;color:#d0dee7;margin:16px 0 0;letter-spacing:.015em; }
.pp-delivery { position:relative;z-index:2;display:grid;grid-template-columns:1fr 1fr;gap:8vw;padding:clamp(80px,10vw,150px) 7vw;background:#091522;color:#f1f0e9; }
.pp-delivery h2 { font-size:clamp(38px,4.9vw,78px);font-weight:500;line-height:1.08;letter-spacing:-.06em;margin:28px 0; }
.pp-delivery h2 em { font-style:normal;color:#a8cee5; }
.pp-delivery-heading>p { max-width:420px;font-size:16px;line-height:1.8;color:#bfd0db; }
.pp-delivery-list article { display:grid;grid-template-columns:1fr;gap:22px;padding:27px 0;border-top:1px solid #587084; }
.pp-delivery-list article>span { font-family:'DM Mono',monospace;color:#99bdd4;font-size:11px;padding-top:5px; }
.pp-delivery-list h3 { font-size:clamp(21px,2vw,29px);font-weight:500;line-height:1.25;letter-spacing:-.025em;margin:0 0 12px; }
.pp-delivery-list p { font-size:15px;line-height:1.75;color:#bfd0db;margin:0; }
.service-card .pp-fit { font-size:14px;line-height:1.65;max-width:300px;min-height:46px;margin:0 0 25px;color:#4b6070; }
.pp-scope-section { background:#e2ebec; }
.pp-responsibilities { display:grid;grid-template-columns:1fr 1fr;border-block:1px solid #9aadb5; }
.pp-responsibilities article { padding:35px 36px 30px 0; }
.pp-responsibilities article+article { padding-left:40px;border-left:1px solid #9aadb5; }
.pp-responsibilities h3 { font-size:clamp(25px,3vw,38px); }
.pp-responsibilities ul { list-style:none;margin:20px 0 0;padding:0; }
.pp-responsibilities li { position:relative;padding:10px 0 10px 22px;line-height:1.6;font-size:15px;color:#3c5362; }
.pp-responsibilities li::before { content:'';position:absolute;left:2px;top:16px;width:7px;height:7px;border-top:1px solid #3a687f;border-right:1px solid #3a687f; }
.pp-scope-note { max-width:900px;margin-top:28px; }
.pp-preview-notice { padding:15px 17px;background:#e3edf1;border-left:2px solid #5a8399;color:#314b5b;font-size:13px;line-height:1.65;margin:0 0 30px; }
.pp-studio-principle { display:flex;gap:24px;padding:28px 0;border-block:1px solid #a1b4be;margin:35px 0; }
.pp-studio-principle>span { font-size:36px;color:#406a81; }
.pp-studio-principle p { margin:0;font-size:20px;line-height:1.5;letter-spacing:-.025em; }
.faq summary { transition:color .2s; }
.faq summary:hover { color:#30637e; }
.pp-brief-copy { border:1px solid currentColor;background:transparent;color:inherit;padding:11px 17px;cursor:pointer;font:inherit;font-size:13px;margin:14px 0 0; }
.pp-brief-copy:hover { background:#a8d0e450; }
.pp-brief-copy:focus-visible,.pp-action:focus-visible,.pp-action-text:focus-visible { outline:2px solid #6daed2;outline-offset:5px; }
@media(max-width:767px) {
 .pp-hero-actions { gap:10px 19px;margin-top:22px; }
 .pp-action { padding:12px 15px;gap:20px;font-size:12px; }
 .pp-action-text { font-size:12px; }
 .hero .pp-hero-detail { max-width:285px;font-size:10px;margin-top:12px; }
 .pp-delivery { grid-template-columns:1fr;gap:32px;padding:75px 6vw; }
 .pp-delivery h2 { margin:20px 0; }
 .pp-delivery-list article { gap:14px;padding:23px 0; }
 .pp-responsibilities { grid-template-columns:1fr; }
 .pp-responsibilities article { padding:28px 0; }
 .pp-responsibilities article+article { padding:28px 0;border-left:0;border-top:1px solid #9aadb5; }
}
@media(max-height:650px) and (max-width:767px) {
 .pp-hero-actions { margin-top:15px; }
 .hero .pp-hero-detail { display:none; }
 .pp-action-text { display:none; }
}
@media(prefers-reduced-motion:reduce) { .pp-action,.faq summary { transition:none; } html { scroll-behavior:auto!important; } }
.pp-email { text-decoration:underline;text-underline-offset:4px;overflow-wrap:anywhere; }
.pp-brief-copy + .pp-brief-copy { margin-left:10px; }
/* Short screens and large text zoom: the device becomes an ordinary figure.
   This avoids trapping the headline and illustration in a too-small sticky frame. */
@media (max-height:650px) {
 .demo { height:auto!important;min-height:0!important; }
 .demo-sticky { position:relative!important;top:auto!important;display:block!important;height:auto!important;min-height:0!important;overflow:visible!important;padding:100px 7vw 65px; }
 .demo-heading { position:relative!important;inset:auto!important;display:block!important;max-width:850px;margin:0 auto 35px!important; }
 .demo-heading h2 { font-size:clamp(34px,5.5vw,60px)!important;margin:18px 0!important; }
 .demo-heading p { display:block!important;max-width:520px!important;font-size:14px!important;line-height:1.6; }
 .demo .device,.demo .device.is-phone { position:relative!important;inset:auto!important;transform:none!important;width:min(100%,680px)!important;height:clamp(230px,48vw,380px)!important;max-height:none!important;min-height:0!important;margin:0 auto!important;border-radius:14px!important; }
 .demo .device .demo-screen,.demo .device.is-phone .demo-screen { height:calc(100% - 23px)!important; }
 .demo .device .device-bar,.demo .device.is-phone .device-bar { height:23px!important; }
 .demo .device .demo-screen h3,.demo .device.is-phone .demo-screen h3 { top:32%!important;font-size:clamp(32px,6vw,64px)!important; }
 .demo .device .demo-screen small,.demo .device.is-phone .demo-screen small { bottom:8%!important;font-size:9px!important; }
 .demo .device-note { position:relative!important;inset:auto!important;max-width:680px;margin:22px auto 0!important; }
}
@media(max-width:850px) {
 body .pp-main-nav .nav-right.is-open { max-height:calc(100svh - 64px);overflow-y:auto;overscroll-behavior:contain; }
 body .pp-main-nav .nav-right.is-open>a { flex-shrink:0; }
}
.pp-arrow-icon {display:inline-block;vertical-align:baseline;flex-shrink:0;margin-left:.3em;}

/* Keep the complete two-line title inside BOTH miniature device states.
   This selector intentionally wins over historic viewport-based !important rules. */
.demo .device .demo-screen h3,
.demo .device.is-phone .demo-screen h3 {
  top:31%!important;
  bottom:auto!important;
  left:7%!important;
  right:auto!important;
  width:86%!important;
  max-width:86%!important;
  height:auto!important;
  max-height:none!important;
  margin:0!important;
  padding:0!important;
  font-size:var(--demo-title-size,24px)!important;
  line-height:1.04!important;
  letter-spacing:-.045em!important;
  white-space:normal!important;
  overflow:visible!important;
}
.demo .device .demo-screen header,
.demo .device.is-phone .demo-screen header {
  position:absolute!important;
  top:9%!important;
  left:7%!important;
  right:7%!important;
  padding:0!important;
  font-size:clamp(6px,1.9vw,10px)!important;
  line-height:1.3!important;
}
.demo .device .demo-screen small,
.demo .device.is-phone .demo-screen small {
  left:7%!important;
  right:7%!important;
  bottom:7%!important;
  max-width:86%!important;
  font-size:clamp(6px,1.5vw,9px)!important;
  line-height:1.4!important;
}
@media(max-height:650px) {
 .demo .device .demo-screen h3,
 .demo .device.is-phone .demo-screen h3 { font-size:clamp(24px,5vw,42px)!important; }
}

/* One calm, tactile contact language on the dedicated page and home panel. */
.form-card .pp-contact-person { background:transparent;border:0;border-bottom:1px solid #9aa9ad;padding:0 0 22px;margin:0 0 30px; }
.pp-contact-person strong { display:block;color:#526773;font-size:11px;font-weight:500;letter-spacing:.07em;text-transform:uppercase; }
.pp-contact-person br { display:none; }
.pp-contact-person a { display:inline-block;padding-top:7px;font-size:clamp(18px,2vw,24px);letter-spacing:-.035em;text-underline-offset:5px; }
.form-card .pp-contact-title { margin:16px 0 32px;font-size:clamp(26px,3vw,36px);font-weight:500;letter-spacing:-.045em;line-height:1.2; }
form[data-local-brief] { display:grid;gap:26px;color:#091e2b; }
form[data-local-brief] .field { margin:0; }
form[data-local-brief] label,form[data-local-brief] legend { font-size:12px;line-height:1.5;letter-spacing:.015em;font-weight:600; }
form[data-local-brief] label>span:not(.contact-types span) { font-weight:400; }
form[data-local-brief] input:not([type=radio]),form[data-local-brief] select,form[data-local-brief] textarea { box-sizing:border-box;min-height:48px;width:100%;max-width:100%;padding:13px 3px;margin-top:8px;border:0;border-bottom:1px solid #7e949d;border-radius:0;background:transparent;color:#091e2b;font-family:Manrope,sans-serif;font-size:16px;font-weight:400;line-height:1.6; }
form[data-local-brief] textarea { min-height:150px;resize:vertical; }
form[data-local-brief] input::placeholder,form[data-local-brief] textarea::placeholder { color:#586c76;opacity:1; }
form[data-local-brief] input:not([type=radio]):focus-visible,form[data-local-brief] select:focus-visible,form[data-local-brief] textarea:focus-visible { outline:2px solid #507c94;outline-offset:4px;border-bottom-width:1px;background:#c8e5f133; }
form[data-local-brief] input:user-invalid,form[data-local-brief] textarea:user-invalid { border-bottom-color:#a54435; }
form[data-local-brief] .contact-types span { min-height:46px;box-sizing:border-box;display:flex;align-items:center; }
form[data-local-brief] [data-brief-submit] { min-height:52px;justify-self:start;display:inline-flex;align-items:center;justify-content:space-between;gap:35px;padding:16px 23px;cursor:pointer;font-family:Manrope,sans-serif;font-size:13px;line-height:1.4;background:#091e2b;color:#f4f3ed;border:1px solid #091e2b; }
form[data-local-brief] [data-brief-submit]:hover { background:#c8e5f1;color:#091e2b; }
form[data-local-brief] [data-brief-submit]:focus-visible,form[data-local-brief] summary:focus-visible { outline:2px solid #507c94;outline-offset:4px; }
form[data-local-brief] .contact-submit-row { gap:18px; }
form[data-local-brief] .note,form[data-local-brief] .contact-submit-row p { margin:0;font-size:12px;line-height:1.75;color:#455e6c; }
.pp-brief-alternatives { border-top:1px solid #8da4af70;padding-top:4px; }
.pp-brief-alternatives summary { width:fit-content;min-height:44px;box-sizing:border-box;padding:12px 0;cursor:pointer;font-size:12px;line-height:1.6;color:#355569; }
.pp-brief-alternatives [data-brief-alternatives] { display:flex;flex-wrap:wrap;gap:4px 24px;padding-bottom:4px; }
.pp-brief-alternatives .pp-brief-copy { min-height:44px;border:0;border-bottom:1px solid #607e8c;padding:10px 0;margin:0;font-size:12px;line-height:1.5;text-align:left; }
form[data-local-brief] .feedback,form[data-local-brief] .contact-feedback { min-height:0;margin:0;font-size:13px;line-height:1.7; }
form[data-local-brief] .feedback:not([data-state]),form[data-local-brief] .contact-feedback:not([data-state]) { display:none; }
form[data-local-brief] [data-state=success] { padding:16px;border-left:2px solid #507c94;background:#c8e5f140;color:#254b60; }
form[data-local-brief] [data-state=error] { padding:16px;border-left:2px solid #a54435;color:#83372d; }
@media(max-width:650px) {
 form[data-local-brief] .field-row,form[data-local-brief] .contact-fields { grid-template-columns:1fr;gap:26px; }
 form[data-local-brief] [data-brief-submit] { width:100%; }
 form[data-local-brief] .contact-submit-row { width:100%; }
 .form-card .pp-contact-title { max-width:300px; }
}
/* Keep short contact facts legible without squeezing the label column. */
.contact-layout .mini-facts>div { display:grid;grid-template-columns:110px minmax(0,1fr);gap:20px; }
@media(max-width:420px) {
 .contact-layout .mini-facts>div { grid-template-columns:1fr;gap:5px; }
 .contact-layout .mini-facts span { text-align:left; }
}
