/* Content-sized layouts: do not conceal overflow at the body level. */
.site-page :where(.hero__grid, .slide, .pricing-matrix, .pricing-rows article,
 .story-grid, .project-grid, .contact-grid, .contact-cards, .form, .footer,
 .solutions, .integrations, .values, .company-services, .process,
 .co-form, .co-fields, .co-options, .p360-cards) > * { min-width: 0; }
.site-page :where(h1,h2,h3,p,.btn,.nav-cta,.checkbox,.co-checkbox) { overflow-wrap: anywhere; }
.site-page :where(input,select,textarea) { min-width: 0; max-width: 100%; }
.site-page :where(.direct-contact a,.project-team a,.contact-cards h2,.footer a) { overflow-wrap: anywhere; }
.site-page .btn { max-width: 100%; text-align: center; }
.site-page .utilitybar { gap: 12px; }
.site-page .utilitybar > div { min-width: 0; flex-wrap: wrap; gap: 8px 20px; }
.site-page .utility-actions { min-width: 0; }
.site-page .utility-actions a { overflow-wrap: anywhere; }

/* Every slide contributes to the stage height, including the longest title. */
.site-page .custom-slider { min-height: 0; }
.site-page .slider-stage { display: grid; min-height: 0; padding-block: 40px 60px; }
.site-page .slide {
 position: relative; grid-area: 1 / 1; top: auto; left: auto; width: 100%;
 grid-template-columns: minmax(0,1.04fr) minmax(0,.96fr);
 min-width: 0; transform: none; opacity: 0; visibility: hidden;
 animation-name: responsive-slide-cycle;
}
.site-page .slide img { height: auto; }
.site-page .slider-count { bottom: 24px; }
@keyframes responsive-slide-cycle {
 0%,29% { opacity: 1; visibility: visible; transform: translateX(0); }
 33.333%,100% { opacity: 0; visibility: hidden; transform: translateX(-16px); }
}

.site-page .pricing-matrix { grid-template-columns: minmax(0,.72fr) minmax(0,1.28fr); }
.site-page .pricing-rows article { grid-template-columns: minmax(0,1fr) minmax(75px,.55fr) minmax(0,1.15fr); gap: 18px; padding-inline: 22px; }
.site-page .plan-price em { white-space: normal; line-height: 1.55; overflow-wrap: anywhere; }
.site-page .plan-hours { font-size: clamp(38px,4vw,52px); }
.site-page .plan-price strong { overflow-wrap: normal; }
.site-page .contact-cards { grid-template-columns: repeat(2,minmax(0,1fr)); }
.site-page .co-option-amount { white-space: normal; }
.site-page .co-summary dl > div { flex-wrap: wrap; }
.site-page .co-summary dd { white-space: normal; overflow-wrap: anywhere; }
.site-page .p360-amount { flex-wrap: wrap; }

/* Custom development has its own identity; product pages retain their red. */
.theme-custom { --red: #0057b8; --dark: #002b49; --ink: #17334f; --soft: #eef4fc; --line: #d5e2f3; }
.theme-custom .brand b { color: #d9081b; }
.service-identity { display: block; margin-top: 5px; color: #0057b8; font-size: 10px; font-weight: 800; letter-spacing: .14em; }
.theme-custom .custom-slider,
.theme-custom .subhero:not(.subhero--dark) { background: linear-gradient(120deg,#fff 0 62%,#edf4ff 62%); }
.theme-custom .utilitybar { background: #002b49; }
.theme-custom .utilitybar > div a:first-child { background: #113e6a; border-color: #416e9e; }
.theme-custom .utilitybar > div a:first-child:before { color: #99caff; }
.theme-custom .sarman360-link { background: #d9081b; border-color: #d9081b; }
.theme-product .utility-actions .sarman360-link { background: #0057b8; border-color: #0057b8; }
.theme-custom :where(.dark-section,.included-services,.subhero--dark,.footer) .eyebrow,
.theme-custom .included-services li:before,
.theme-custom .values b,
.theme-custom .company-services b { color: #99caff; }
.theme-custom .integrations article { background: #10395c; border-color: #345b80; }
.theme-custom .pricing-row--featured { background: #edf4ff !important; }
.theme-custom .pricing-matrix { box-shadow: 10px 10px 0 #0057b812; }
.theme-custom .btn:hover { box-shadow: 0 10px 24px #0057b826; }
.theme-custom :where(a,button,input,select,textarea,summary):focus-visible { outline: 3px solid #0057b8; outline-offset: 4px; }

/* Entry page: same custom-development colour, equal-width mobile choices. */
.gateway .choice--dark { background: #002b49; }
.gateway .choice--dark .choice__action { background: #0057b8; border-color: #80b6ff; color: #fff; }
.gateway .choice--dark .choice__action:hover { background: #00438e; }
.gateway > *, .gateway .choice__content { min-width: 0; }
.gateway .choice h2 { font-size: clamp(1.65rem,3.7vw,4.5rem); }
.gateway .campaign__text { white-space: normal; }

@media (max-width: 1100px) {
 .site-page .desktop-nav { display: none !important; }
 .site-page .mobile-nav { display: block; position: relative; }
 .site-page:has(.service-switch) .utilitybar { display: none; }
 .site-page .mobile-nav > div { max-height: calc(100dvh - 180px - env(safe-area-inset-bottom)); overflow-y: auto; overscroll-behavior: contain; }
 .theme-custom .mobile-nav .mobile-support-link { margin-top: 6px; border-top: 1px solid #cbd9ec; background: #eef4fc; color: #0057b8; }
 .theme-product .mobile-nav .mobile-support-link { margin-top: 6px; border-top: 1px solid #f0cbd0; background: #fff0f2; color: #d9081b; }
 .site-page .pricing-matrix { grid-template-columns: minmax(0,1fr); }
 .site-page .pricing-rows article { grid-template-columns: minmax(0,1fr) 110px minmax(0,1fr); }
 .site-page .contact-strip .wrap,.site-page .callout { gap: 24px; flex-wrap: wrap; }
}
@media (max-width: 800px) {
 .site-page .utilitybar { display: grid; grid-template-columns: minmax(0,1fr); padding: 6px 14px; }
 .site-page .utility-actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); width: 100%; min-height: 38px; }
 .site-page .utility-actions a { justify-content: center; padding: 8px; text-align: center; }
 .site-page .contact-cards { grid-template-columns: minmax(0,1fr); }
 .site-page .story-grid { gap: 32px; }
}
@media (max-width: 700px) {
 .site-page .slider-stage { padding-block: 32px 56px; }
 .site-page .slide { display: block; }
 .site-page .slide img { position: absolute; right: 0; bottom: 0; width: 65%; max-height: 220px; opacity: .12; }
 .site-page .slide .display { font-size: clamp(30px,8.5vw,44px); }
 .site-page .pricing-rows article { grid-template-columns: minmax(0,.7fr) minmax(0,1.3fr); padding: 22px 16px; gap: 16px; }
 .site-page .plan-name { grid-column: 1 / -1; }
 .site-page .plan-hours { font-size: 42px; }
 .site-page .plan-price strong { font-size: clamp(21px,6vw,28px); }
 .site-page .matrix-title,.site-page .included-services li { padding-inline: 20px; }
 .site-page .contact-cards { grid-template-columns: minmax(0,1fr); }
 .site-page .subhero .display,.site-page .project-copy .display { font-size: clamp(32px,9vw,44px); }
 .site-page .co-option-title { font-size: 19px; }
 .gateway .choice h2 { font-size: clamp(1.55rem,6.5vw,2.5rem); }
 .gateway .choice__highlight { overflow-wrap: anywhere; }
}
@media (max-width: 380px) {
 .site-page .slide .btns { display: grid; grid-template-columns: minmax(0,1fr); }
 .site-page .co-options { grid-template-columns: minmax(0,1fr); }
 .site-page .p360-amount strong { font-size: 36px; }
 .site-page .whatsapp-float { max-width: calc(100% - 24px); right: 12px; }
}
@media (prefers-reduced-motion: reduce) {
 .site-page .slide { animation: none !important; transform: none !important; }
 .site-page .slide--1 { visibility: visible; opacity: 1 !important; }
}

/* Explicit service orientation. A side rail only when it fits outside content. */
.p360 .p360-toolbar { display: grid; grid-template-columns: minmax(0,1fr); gap: 14px; }
.p360 .p360-switch { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; width: 100%; padding: 8px; background: #191b1f; border: 0; border-radius: 8px; box-shadow: 0 12px 26px #191b1f18; }
.p360 .p360-switch button { min-width: 0; min-height: 64px; padding: 14px 10px; background: #303339; color: #fff; border: 1px solid #555a62; border-radius: 4px; font-size: 17px; line-height: 1.25; }
.p360 .p360-switch button[aria-pressed="true"] { background: #d9081b; border-color: #ff8c98; box-shadow: 0 3px 12px #d9081b40; }
.p360 .p360-switch button:hover:not([aria-pressed="true"]) { background: #43474f; color: #fff; }
.p360 .p360-toolbar-note { text-align: right; }
.contact-dock { position: fixed; z-index: 100; right: max(18px,env(safe-area-inset-right)); bottom: max(18px,env(safe-area-inset-bottom)); display: grid; gap: 8px; width: 310px; max-width: calc(100% - 24px); }
.contact-dock .contact-call,.contact-dock .whatsapp-float { position: static; display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; max-width: none; min-height: 52px; margin: 0; padding: 12px 16px; border: 2px solid #fff; border-radius: 12px; color: #fff; text-decoration: none; box-shadow: 0 7px 22px #132c4826; font-family: Arial,Helvetica,sans-serif; }
.contact-dock .contact-call { background: var(--dark,#191b1f); }
.contact-dock .contact-call strong { text-align:center; }
.contact-dock .contact-call strong small { display:block; margin-top:4px; font-size:13px; font-weight:600; line-height:1.3; color:#fff; white-space:nowrap; }
.contact-dock .contact-call > span { font-size: 25px; line-height: 1; }
.contact-dock .whatsapp-float { background: #16853e; }
.contact-dock .whatsapp-float svg { width: 30px; height: 30px; flex: 0 0 30px; fill: #fff; }
.contact-dock .whatsapp-float small { display: none; }
.contact-dock .contact-call strong,.contact-dock .whatsapp-float strong { color: #fff; font-size: 14px; font-weight: 800; line-height: 1.35; white-space: normal; }
.contact-dock a:focus-visible { outline: 3px solid #e5ac18; outline-offset: 3px; }
@media(max-width:700px) { .p360 .p360-switch { grid-template-columns: repeat(2,minmax(0,1fr)); } .p360 .p360-switch button { font-size: 15px; min-height: 58px; } }
@media(max-width:600px) { .contact-dock { right: max(12px,env(safe-area-inset-right)); bottom: max(12px,env(safe-area-inset-bottom)); width: 280px; gap: 6px; } .contact-dock .contact-call,.contact-dock .whatsapp-float { min-height: 44px; padding: 9px 12px; } .contact-dock .contact-call strong,.contact-dock .whatsapp-float strong { font-size: 12px; } }
.site-page:has(.service-switch) .utility-actions .sarman360-link { display: none; }
.site-page:has(.service-switch) .utility-actions { display: flex; width: auto; }
.service-switch {
 --destination: #0057b8; display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr);
 align-items: stretch; gap: 20px; padding: 14px max(20px,calc((100% - 1180px)/2));
 background: #f4f7fb; border-bottom: 1px solid #dce3ed;
}
.service-switch--custom { --destination: #d9081b; }
.service-switch__current { display: grid; align-content: center; gap: 4px; min-width: 0; border-left: 3px solid var(--red); padding-left: 14px; }
.service-switch__current > span { color: var(--red); font-size: 10px; font-weight: 900; letter-spacing: .08em; }
.service-switch__current > strong { color: var(--ink); font-size: 20px; line-height: 1.15; }
.service-switch__actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; min-width: 0; }
.service-switch__home { display: flex; align-items: center; justify-content: center; gap: 8px; min-width: 0; padding: 12px; border: 1px solid #c5cfdd; border-radius: 4px; background: #fff; color: #23374f; text-decoration: none; font-size: 14px; font-weight: 800; text-align: center; }
.service-switch__home > span { font-size: 23px; line-height: 1; }
.service-switch__home:hover { background: #e9eff7; border-color: #879bb6; }
.service-switch__home:focus-visible { outline: 3px solid #e5ac18; outline-offset: 4px; }
.service-switch__target { display: grid; align-content: center; gap: 6px; min-width: 0; padding: 14px 20px; background: var(--destination); color: #fff; text-decoration: none; border-radius: 4px; box-shadow: 0 4px 12px #132c4815; transition: box-shadow .2s; }
.service-switch__target > span { font-size: 12px; line-height: 1.35; }
.service-switch__target > strong { display: flex; align-items: center; justify-content: space-between; gap: 10px; font-size: 18px; line-height: 1.25; }
.service-switch__target b { flex-shrink: 0; font-size: 24px; }
.service-switch__target:hover { box-shadow: 0 7px 20px #132c4833; }
.service-switch__target:focus-visible { outline: 3px solid #e5ac18; outline-offset: 4px; }
@media(min-width:1660px) {
 .service-switch { position: fixed; z-index: 60; top: 50%; right: 16px; transform: translateY(-50%); width: 204px; grid-template-columns: minmax(0,1fr); gap: 14px; padding: 18px 14px; border: 1px solid #dce3ed; border-radius: 8px; box-shadow: 0 12px 36px #132c4817; }
 .service-switch__actions { grid-template-columns: minmax(0,1fr); }
 .service-switch__target { padding: 14px 12px; }
 .service-switch__target > strong { font-size: 17px; }
}
@media(max-width:600px) {
 .service-switch { gap: 10px; padding: 12px 14px; }
 .service-switch__current { padding-left: 9px; }
 .service-switch__current > span { font-size: 9px; letter-spacing: 0; }
 .service-switch__current > strong { font-size: 16px; }
 .service-switch__actions { grid-template-columns: minmax(0,1fr); }
 .service-switch__home { padding: 8px; font-size: 12px; }
 .service-switch__target { padding: 11px 10px; }
 .service-switch__target > span { font-size: 10px; }
 .service-switch__target > strong { font-size: 14px; gap: 5px; }
 .service-switch__target b { font-size: 19px; }
}

/* A location marker makes the current service recognisable at a glance. */
.service-switch--pin { background: #142238; border-bottom: 3px solid var(--red); color: #fff; }
.service-switch--pin .service-switch__current { display: flex; align-items: center; justify-content: flex-start; gap: 16px; border: 0; padding: 0; }
.service-switch--pin .service-location { position: relative; display: block; width: 50px; flex: 0 0 50px; color: var(--red); margin: 0; filter: drop-shadow(0 6px 10px #0004); animation: service-pin-float 3.6s ease-in-out infinite; }
.service-location svg { display: block; width: 100%; height: auto; }
.service-switch__identity { display: grid; gap: 6px; min-width: 0; }
.service-switch__identity > span { color: #d5e1f2; font-size: 10px; font-weight: 800; letter-spacing: .14em; }
.service-switch__identity > strong { color: #fff; font-size: 23px; font-weight: 900; line-height: 1.15; }
.service-switch--pin .service-switch__target { border: 1px solid #ffffff60; box-shadow: 0 5px 15px #0003; }
.service-switch--pin .service-switch__home { background: #ffffff0a; border-color: #ffffff50; color: #fff; }
.service-switch--pin .service-switch__home:hover { background: #ffffff20; }
@keyframes service-pin-float { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@media(min-width:1660px) {
 .service-switch--pin { padding: 22px 12px 14px; border: 1px solid #ffffff50; border-top: 4px solid var(--red); border-radius: 18px; box-shadow: 0 16px 40px #14223838; }
 .service-switch--pin .service-switch__current { flex-direction: column; gap: 13px; padding-bottom: 6px; text-align: center; }
 .service-switch--pin .service-location { width: 64px; flex-basis: auto; }
 .service-switch__identity > strong { font-size: 22px; }
 .service-switch--pin .service-switch__target { border-radius: 8px; }
 .service-switch--pin .service-switch__home { border-radius: 8px; }
}
@media(max-width:600px) {
 .service-switch--pin .service-switch__current { gap: 9px; }
 .service-switch--pin .service-location { width: 34px; flex-basis: 34px; }
 .service-switch__identity > span { font-size: 8px; letter-spacing: .06em; }
 .service-switch__identity > strong { font-size: 16px; }
}
@media(prefers-reduced-motion:reduce) { .service-switch--pin .service-location { animation: none; } }

/* Contact actions sit at the vertical centre, not at the bottom edge. */
.contact-dock { top: 50%; bottom: auto; transform: translateY(-50%); }
@media(min-width:1660px) and (min-height:821px) {
 .service-switch--pin { top: calc(50% - 235px); }
}
@media(min-width:1660px) and (max-height:820px) {
 .service-switch--pin { position: static; transform: none; width: auto; grid-template-columns: minmax(0,1fr) minmax(0,1fr); border-radius: 0; padding: 12px max(20px,calc((100% - 1180px)/2)); }
 .service-switch--pin .service-switch__current { flex-direction: row; padding: 0; text-align: left; }
 .service-switch--pin .service-location { width: 36px; flex: 0 0 36px; }
 .service-switch--pin .service-switch__actions { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

/* Gateway fits the available browser height; no scrollbar-hiding rules. */
.gateway { width: calc(100% - 252px); margin-inline: auto; }
.gateway ~ .contact-dock { right: 12px; width: 228px; }
.gateway ~ .contact-dock .contact-call,.gateway ~ .contact-dock .whatsapp-float { padding-inline: 10px; }
@media(max-width:1099px) {
 .gateway { width: calc(100% - 64px); }
 .gateway ~ .contact-dock { width: 52px; right: 6px; }
 .gateway ~ .contact-dock .contact-call,.gateway ~ .contact-dock .whatsapp-float { padding: 9px; min-height: 48px; gap: 0; }
 .gateway ~ .contact-dock .contact-call strong,.gateway ~ .contact-dock .whatsapp-float > span { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); }
 .gateway ~ .contact-dock:focus-within,.gateway ~ .contact-dock:hover { width: 228px; }
 .gateway ~ .contact-dock:focus-within .contact-call strong,.gateway ~ .contact-dock:focus-within .whatsapp-float > span,.gateway ~ .contact-dock:hover .contact-call strong,.gateway ~ .contact-dock:hover .whatsapp-float > span { position: static; width: auto; height: auto; margin: 0; clip-path: none; }
 .gateway ~ .contact-dock:focus-within a,.gateway ~ .contact-dock:hover a { gap: 8px; }
}
.gateway { min-height: 0; height: 100vh; height: 100dvh; grid-template-rows: auto minmax(0,1fr) auto; }
@media(max-width:760px) {
 .gateway { width: 100%; }
 .gateway ~ .contact-dock { display: none; }
}
.gateway .choice { min-height: 0; padding-block: clamp(10px,2.4dvh,28px); }
.gateway .masthead { min-height: 0; padding-block: clamp(10px,1.8dvh,18px); }
.gateway .choice h2 { font-size: clamp(28px,min(3.7vw,6.5dvh),64px); }
.gateway .choice__highlight { min-height: 0; margin-top: clamp(6px,1.3dvh,14px); padding-block: clamp(5px,1dvh,10px); }
.gateway .choice__intro { min-height: 0; margin-top: clamp(6px,1.2dvh,12px); font-size: clamp(12px,1.8dvh,17px); line-height: 1.4; }
.gateway .benefits { min-height: 0; margin-top: clamp(8px,1.7dvh,16px); }
.gateway .benefits__title { margin-bottom: 6px; font-size: clamp(12px,1.8dvh,17px); }
.gateway .benefits ul { gap: clamp(3px,.8dvh,8px); }
.gateway .benefits li { font-size: clamp(12px,1.8dvh,17px); line-height: 1.35; }
.gateway .choice__action { min-height: 40px; margin-top: clamp(8px,1.7dvh,16px); padding-block: clamp(8px,1.3dvh,13px); }
.gateway .campaign,.gateway .proof { padding-block: clamp(6px,1.4dvh,14px); }
.gateway .campaign__text { font-size: clamp(22px,min(2.6vw,4dvh),40px); }
.gateway .campaign__note { font-size: clamp(12px,1.8dvh,16px); }
@media(min-width:761px) and (max-height:600px) {
 .gateway { grid-template-columns: minmax(80px,.65fr) repeat(2,minmax(0,2fr)) minmax(80px,.65fr); }
 .gateway .masthead { flex-direction: row; justify-content: space-between; gap: 12px; padding: 8px 18px; }
 .gateway .wordmark { position: static; font-size: 15px; }
 .gateway .masthead h1 { font-size: 16px; }
 .gateway .campaign { gap: 5px 10px; padding: 5px 8px; }
 .gateway .campaign__kicker { font-size: 9px; }
 .gateway .campaign__text { font-size: 17px; }
 .gateway .campaign__note { font-size: 10px; max-width: 220px; }
 .gateway .proof strong { font-size: 22px; }
 .gateway .proof span { font-size: 10px; }
 .gateway .choice { padding-block: 8px; }
 .gateway .choice h2 { font-size: clamp(23px,5.7dvh,34px); }
 .gateway .choice__eyebrow { margin-bottom: 4px; font-size: 10px; }
 .gateway .choice__highlight { margin-top: 5px; padding: 4px 8px; font-size: 12px; }
 .gateway .choice__intro,.gateway .benefits__title,.gateway .benefits li { font-size: 11px; }
 .gateway .benefits { margin-top: 6px; }
 .gateway .benefits ul { gap: 2px; }
 .gateway .choice__action { min-height: 32px; padding: 6px 10px; margin-top: 6px; font-size: 12px; }
 .gateway .campaign__icon { width: 32px; height: 32px; }
 .gateway .campaign__note { padding: 5px 8px; }
}
@media(max-width:760px) {
 .gateway { grid-template-rows: auto minmax(0,1fr) minmax(0,1fr) auto auto; }
 .gateway .choice { padding: clamp(6px,1.2dvh,12px) 18px; }
 .gateway .masthead { padding-block: 6px; }
 .gateway .choice h2 { font-size: clamp(23px,min(6.5vw,4.5dvh),36px); }
 .gateway .choice__highlight { margin-top: 5px; padding: 4px 6px; font-size: 12px; }
 .gateway .choice__intro { font-size: 12px; margin-top: 5px; line-height: 1.3; }
 .gateway .choice__action { margin-top: 6px; min-height: 36px; padding: 6px 10px; font-size: 12px; }
 .gateway .campaign { padding: 5px 12px; gap: 4px 8px; }
 .gateway .campaign__kicker { font-size: 10px; }
 .gateway .campaign__text { font-size: 20px; }
 .gateway .campaign__note { padding: 5px 8px; font-size: 11px; }
 .gateway .proof { padding-block: 5px; }
 .gateway .proof strong { font-size: 20px; }
 .gateway .proof span { font-size: 11px; }
}
/* Product-first guidance: separate licensing from bespoke project budgets. */
.solution-choice { display:grid; grid-template-columns:1fr 1fr; gap:24px; align-items:stretch; }
.solution-choice > article { min-width:0; display:flex; flex-direction:column; padding:clamp(22px,3vw,36px); border-radius:20px; border:1px solid #d5e2f3; }
.solution-choice__product { background:#191b20; color:#fff; border-top:5px solid #d9081b!important; }
.solution-choice__custom { background:#eef4fc; color:#17334f; border-top:5px solid #0057b8!important; }
.solution-choice__label { font-size:12px; font-weight:800; letter-spacing:.09em; margin:0 0 18px; }
.solution-choice h3 { font-size:clamp(28px,3vw,38px); line-height:1.15; margin:0 0 16px; color:inherit; }
.solution-choice h3 span { display:block; font-size:14px; margin-top:9px; font-weight:600; opacity:.78; }
.solution-choice article > p:not(.solution-choice__label) { font-size:16px; line-height:1.6; margin:0 0 22px; }
.solution-choice__price { margin-top:auto; padding:20px 0; border-top:1px solid #ffffff30; border-bottom:1px solid #ffffff30; }
.solution-choice__custom .solution-choice__price { border-color:#cbd9ec; }
.solution-choice__price > span { display:block; font-size:14px; margin-bottom:8px; }
.solution-choice__price strong { display:block; font-size:clamp(30px,3.2vw,44px); line-height:1.2; letter-spacing:-.035em; }
.solution-choice__price small { display:inline-block; font-size:13px; font-weight:500; letter-spacing:0; }
.solution-choice .checks { padding-block:18px; margin:0; }
.solution-choice .checks li { color:inherit; font-size:15px; }
.theme-custom .solution-choice__product .checks li::before { color:#ff6170; }
.solution-choice .btns { margin-top:10px; gap:10px; }
.solution-choice .btn { white-space:normal; text-align:center; }
.theme-custom .solution-choice__product .btn:not(.btn--light) { background:#d9081b; border-color:#d9081b; color:#fff; }
.theme-custom .solution-choice__product .btn--light { background:transparent; border-color:#ffffff70; color:#fff; }
.solution-choice__note { margin:18px 0 26px; font-size:14px; line-height:1.65; color:#516277; }
.work-rate-details { border:1px solid #d5e2f3; border-radius:14px; background:#fff; }
.work-rate-details > summary { cursor:pointer; padding:22px 24px; font-weight:750; font-size:18px; color:#17334f; }
.work-rate-details > summary small { font-size:13px; font-weight:500; margin-left:16px; color:#516277; }
.work-rate-details[open] > summary { border-bottom:1px solid #d5e2f3; }
.work-rate-content { padding:clamp(14px,2vw,26px); }
.work-rate-intro { font-size:15px; line-height:1.65; margin:0 0 22px; color:#516277; }
@media(max-width:760px) {
 .solution-choice { grid-template-columns:minmax(0,1fr); gap:18px; }
 .solution-choice .btns { flex-direction:column; }
 .solution-choice .btn { width:100%; justify-content:center; }
 .work-rate-details > summary small { display:block; margin:8px 0 0; }
}
.contact-dock .contact-label-mobile{display:none}
/* Compact desktop actions; keep the mobile bottom bar unchanged. */
@media(min-width:761px) and (max-width:1920px){
 .site-page:has(.service-switch) .contact-dock{width:196px;right:10px;gap:6px}
 .site-page:has(.service-switch) .contact-dock .contact-call,.site-page:has(.service-switch) .contact-dock .whatsapp-float{padding:8px 10px;min-height:46px;gap:7px;border-radius:8px}
 .site-page:has(.service-switch) .contact-dock strong{font-size:12px;line-height:1.25}
 .site-page:has(.service-switch) .contact-call strong small{font-size:11px;margin-top:3px}
 .site-page:has(.service-switch) .contact-call>span{font-size:21px}
 .site-page:has(.service-switch) .whatsapp-float svg{width:23px;height:23px;flex-basis:23px}
 .site-page:has(.service-switch) .contact-label-desktop{display:none}
 .site-page:has(.service-switch) .contact-label-mobile{display:inline}
 .site-page:has(.service-switch) .whatsapp-float small{display:block;font-size:9px;letter-spacing:.04em;margin-bottom:2px}
}
@media(min-width:1660px) and (max-width:1920px) and (min-height:821px){
 .service-switch--pin{width:196px;right:10px;top:calc(50% - 155px);padding:10px;gap:9px;border-radius:11px}
 .service-switch--pin .service-switch__current{flex-direction:row;gap:9px;padding-bottom:0;text-align:left}
 .service-switch--pin .service-location{width:31px;flex:0 0 31px;animation:none}
 .service-switch--pin .service-switch__identity{gap:3px}
 .service-switch--pin .service-switch__identity>span{font-size:8px;letter-spacing:.08em}
 .service-switch--pin .service-switch__identity>strong{font-size:16px}
 .service-switch--pin .service-switch__actions{gap:6px}
 .service-switch--pin .service-switch__target{padding:10px 9px}
 .service-switch--pin .service-switch__target>strong{font-size:13px;gap:5px}
 .service-switch--pin .service-switch__target b{font-size:19px}
 .service-switch--pin .service-switch__home{padding:8px;font-size:12px;gap:6px}
 .service-switch--pin .service-switch__home>span{font-size:18px}
}
/* Mobile service pages: two equal actions pinned to the bottom safe area. */
@media(max-width:760px){
 .site-page:has(.service-switch:where(:not(.service-switch--desktop-only))){padding-bottom:calc(100px + env(safe-area-inset-bottom,0px))}
 html:has(.site-page .service-switch){scroll-padding-bottom:calc(100px + env(safe-area-inset-bottom,0px))}
 .site-page:has(.service-switch:where(:not(.service-switch--desktop-only))) .contact-dock{
  position:fixed;top:auto;bottom:0;left:0;right:0;transform:none;
  width:100%;max-width:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:2px;margin:0;padding:0;background:#fff;box-shadow:0 -5px 22px #132c481c;
 }
 .site-page:has(.service-switch:where(:not(.service-switch--desktop-only))) .contact-dock .contact-call,
 .site-page:has(.service-switch:where(:not(.service-switch--desktop-only))) .contact-dock .whatsapp-float{
  display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;
  min-width:0;min-height:calc(84px + env(safe-area-inset-bottom,0px));height:auto;
  padding:9px 6px calc(9px + env(safe-area-inset-bottom,0px));
  border:0;border-radius:0;box-shadow:none;text-align:center;
 }
 .site-page:has(.service-switch:where(:not(.service-switch--desktop-only))) .contact-dock .contact-call{padding-left:max(6px,env(safe-area-inset-left,0px))}
 .site-page:has(.service-switch:where(:not(.service-switch--desktop-only))) .contact-dock .whatsapp-float{padding-right:max(6px,env(safe-area-inset-right,0px))}
 .site-page:has(.service-switch:where(:not(.service-switch--desktop-only))) .contact-call>span{font-size:22px;line-height:22px}
 .site-page:has(.service-switch:where(:not(.service-switch--desktop-only))) .whatsapp-float svg{width:22px;height:22px;flex:0 0 22px}
 .site-page:has(.service-switch:where(:not(.service-switch--desktop-only))) .contact-dock strong{font-size:13px;line-height:1.25}
 .site-page:has(.service-switch:where(:not(.service-switch--desktop-only))) .contact-call strong small{margin-top:3px;font-size:11px;line-height:1.25}
 .site-page:has(.service-switch:where(:not(.service-switch--desktop-only))) .whatsapp-float>span{display:flex;flex-direction:column}
 .site-page:has(.service-switch:where(:not(.service-switch--desktop-only))) .whatsapp-float small{display:block;order:2;margin-top:3px;color:#fff;font-size:11px;line-height:1.25;font-weight:600}
 .site-page:has(.service-switch:where(:not(.service-switch--desktop-only))) .contact-label-desktop{display:none}
 .site-page:has(.service-switch:where(:not(.service-switch--desktop-only))) .contact-label-mobile{display:inline}
 .site-page:has(.service-switch:where(:not(.service-switch--desktop-only))) .contact-dock a:focus-visible{outline-offset:-4px}
}
/* Shared desktop controls, including checkout and legal pages. */
@media(min-width:761px){
 .site-page:has(.s360-checkout) .contact-dock,.site-page:has(.s360-checkout) .service-switch{display:grid}
 .gateway~.contact-dock{width:310px;right:18px}
 .gateway~.service-switch--pin{position:fixed;z-index:60;right:10px;top:calc(50% - 155px);transform:translateY(-50%);width:196px;display:grid;grid-template-columns:1fr;gap:9px;padding:10px;border:1px solid #ffffff50;border-top:4px solid var(--red);border-radius:11px;box-shadow:0 16px 40px #14223838}
 .gateway~.service-switch--pin .service-switch__current{flex-direction:row;gap:9px;text-align:left;padding:0}
 .gateway~.service-switch--pin .service-location{width:31px;flex:0 0 31px;animation:none}
 .gateway~.service-switch--pin .service-switch__identity{gap:3px}
 .gateway~.service-switch--pin .service-switch__identity>span{font-size:8px;letter-spacing:.08em}
 .gateway~.service-switch--pin .service-switch__identity>strong{font-size:16px}
 .gateway~.service-switch--pin .service-switch__actions{grid-template-columns:1fr;gap:6px}
 .gateway~.service-switch--pin .service-switch__target{padding:10px 9px;border-radius:8px}
 .gateway~.service-switch--pin .service-switch__target>strong{font-size:13px;gap:5px}
 .gateway~.service-switch--pin .service-switch__target b{font-size:19px}
 .gateway~.service-switch--pin .service-switch__home{padding:8px;font-size:12px;gap:6px;border-radius:8px}
 .gateway~.service-switch--pin .service-switch__home>span{font-size:18px}
}
@media(max-width:760px){.service-switch--desktop-only{display:none!important}}
@media(min-width:761px) and (max-width:1920px){
 .gateway~.contact-dock{width:196px;right:10px;gap:6px}
 .gateway~.contact-dock .contact-call,.gateway~.contact-dock .whatsapp-float{padding:8px 10px;min-height:46px;gap:7px;border-radius:8px}
 .gateway~.contact-dock strong{font-size:12px;line-height:1.25}
 .gateway~.contact-dock .contact-call strong small{font-size:11px;margin-top:3px}
 .gateway~.contact-dock .contact-call>span{font-size:21px}
 .gateway~.contact-dock .whatsapp-float svg{width:23px;height:23px;flex-basis:23px}
}
