/* Service information is readable above the fold, with a persistent request action. */
html:has(.request-dock){scroll-padding-bottom:calc(120px + env(safe-area-inset-bottom,0px))}
[dir=rtl] .service-back>span{display:inline-block;transform:rotate(180deg)}
.service-detail{padding-block:32px 72px}.service-back{font-size:14px}.service-detail-heading{display:flex;align-items:flex-start;gap:22px;margin:28px 0 38px;max-width:1120px}.service-detail-heading>.service-icon{flex:0 0 auto;width:64px;height:64px;margin-top:6px}.service-detail-heading .eyebrow{margin:0 0 12px;font-size:12px;letter-spacing:.08em;color:var(--secondary)}.service-detail-heading h1{font-size:clamp(36px,4.2vw,64px);letter-spacing:-.045em;line-height:1.3}.service-introduction{font-size:clamp(18px,1.5vw,22px);line-height:1.9;max-width:880px;margin-top:14px;color:var(--secondary)}
.service-detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:64px;align-items:start}.service-detail-main{min-width:0}.service-detail-main>section{padding:28px 0;border-top:1px solid var(--line)}.service-detail-main h2{font-size:clamp(23px,2.2vw,30px);line-height:1.5;letter-spacing:-.025em;margin-bottom:16px}.service-detail-main p{font-size:17px;line-height:2;color:var(--secondary);white-space:pre-line;max-width:850px}.service-deliverables ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.service-deliverables li{display:flex;align-items:flex-start;gap:12px;padding:15px 16px;background:var(--surface);border:1px solid var(--line);border-radius:12px;font-size:16px;line-height:1.8}.service-deliverables li>span{color:var(--accent);font-size:20px;flex-shrink:0}.service-more{display:flex;flex-wrap:wrap;gap:22px;border-top:1px solid var(--line);padding-top:24px}
.service-request-card{position:sticky;top:130px;padding:26px;background:var(--surface);border:1px solid var(--line);border-radius:18px;min-width:0}.service-request-card h2{font-size:27px;line-height:1.5;letter-spacing:-.025em;margin-bottom:18px}.service-request-card>.eyebrow{font-size:11px;margin-bottom:12px;color:var(--secondary)}.service-request-card .button{width:100%;min-height:58px;margin-top:20px;gap:12px;font-size:17px;padding:14px 21px}.service-request-explainer{font-size:14px;line-height:1.95;margin:18px 0;color:var(--secondary)}.service-request-card>.text-link{font-size:14px}.service-quote-label{font-size:17px;color:var(--ink)}.service-detail-price{font-size:30px;font-weight:600;line-height:1.4;color:var(--ink)}.service-price-caption,.service-advance{font-size:14px;line-height:1.9;color:var(--secondary);margin-top:12px}.service-price-scope{font-size:14px;margin-top:16px}.service-price-scope summary{cursor:pointer;min-height:44px;padding-block:10px}.service-price-scope p{white-space:pre-line;color:var(--secondary);line-height:1.9}
/* Space at the end prevents the floating bar from covering footer actions. */
body:has(.request-dock){padding-bottom:calc(100px + env(safe-area-inset-bottom,0px))}
.request-dock{position:fixed;inset-inline:20px;bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:24;display:flex;align-items:center;justify-content:space-between;gap:20px;width:min(720px,calc(100% - 40px));margin-inline:auto;padding:10px 12px 10px 22px;border:1px solid var(--line);border-radius:24px;background:var(--surface-raised);color:var(--ink);box-shadow:var(--shadow)}
.request-dock-context{font-size:14px;line-height:1.7;min-width:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.request-dock-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}
.request-dock .button{min-height:52px;font-size:16px;padding:12px 24px;gap:22px;white-space:nowrap}
.request-dock .button:hover{transform:none}
.request-dock-whatsapp{display:grid;place-items:center;flex:0 0 52px;width:52px;height:52px;border:1px solid #128c4a;border-radius:50%;background:#25d366;color:#fff;box-shadow:0 4px 14px #063b231a;transition:background .2s,box-shadow .2s}
.request-dock-whatsapp svg{display:block;width:27px;height:27px}
.request-dock-whatsapp:hover{background:#128c4a;box-shadow:0 6px 20px #063b2333}
.request-dock-whatsapp:focus-visible{outline-color:var(--ink);outline-offset:4px}
[dir=rtl] .request-dock-start>span{transform:scaleX(-1)}
body:has(.site-header nav.open) .request-dock,body:has(dialog[open]) .request-dock{visibility:hidden;pointer-events:none}
body:has([data-compare-tray]:not([hidden])) .request-dock{display:none}
/* Compact shared detail pages without changing the homepage hero. */
.detail-hero{padding-top:36px}.detail-hero .detail-heading{margin-top:32px;margin-bottom:34px}.detail-hero .detail-heading h1{font-size:clamp(38px,5vw,72px)}.detail-hero .detail-heading .eyebrow{margin-bottom:16px}.detail-hero .hero-body{max-width:820px;margin-top:18px}.detail-copy>.body-large{margin-top:0}
@media(min-width:1500px){.service-detail-layout{grid-template-columns:minmax(0,1fr) 380px;gap:80px}}
@media(max-width:1000px){.service-detail-layout{grid-template-columns:minmax(0,1fr) 300px;gap:30px}.service-request-card{padding:22px}.service-deliverables ul{grid-template-columns:1fr}}
@media(max-width:760px){.service-detail{padding-top:22px;padding-bottom:48px}.service-detail-heading{gap:14px;margin:24px 0 26px}.service-detail-heading>.service-icon{width:44px;height:44px;border-radius:12px}.service-detail-heading>.service-icon svg{width:25px;height:25px}.service-detail-heading h1{font-size:clamp(29px,7.8vw,42px);line-height:1.45}.service-detail-heading .eyebrow{font-size:10px;letter-spacing:0;margin-bottom:6px}.service-introduction{font-size:17px;margin-top:10px}.service-detail-layout{display:flex;flex-direction:column;gap:28px}.service-detail-main{width:100%}.service-detail-main>section{padding-block:24px}.service-detail-main p{font-size:16px;line-height:2}.service-request-card{position:static;width:100%;padding:22px}.service-deliverables li{font-size:15px;padding:13px 14px}.service-more .text-link{font-size:14px}.request-dock{inset-inline:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));width:calc(100% - 24px);padding:8px 10px;gap:12px;border-radius:18px}.request-dock-context{font-size:12px;line-height:1.6;max-width:46%}.request-dock .button{font-size:15px;min-height:50px;padding-inline:18px;gap:14px}.detail-hero{padding-top:24px}.detail-hero .detail-heading{margin-top:26px}}
/* The shared bottom bar covers phones and tablets, including landscape tablets. */
@media(max-width:760px){
 .request-dock{gap:14px;border-radius:22px;padding:8px}
 .request-dock-context{max-width:none;padding-inline-start:8px}
 .request-dock-actions{gap:8px}
 .request-dock .button{min-height:50px;padding-inline:20px;gap:16px}
 .request-dock-whatsapp{width:50px;height:50px;flex-basis:50px}
}
@media(max-width:599px){
 .request-dock-context{display:none}
 .request-dock-actions{width:100%}
 .request-dock-start{flex:1;justify-content:space-between}
}
/* Desktop actions sit at the reading edge as separate floating buttons. */
@media(min-width:1200px){
 html:has(.request-dock){scroll-padding-bottom:32px}
 body:has(.request-dock){padding-bottom:0}
 .request-dock{inset-inline-start:auto;inset-inline-end:max(24px,env(safe-area-inset-right,0px));bottom:28px;width:auto;max-width:calc(100% - 48px);margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;pointer-events:none}
 [dir=rtl] .request-dock{inset-inline-end:max(24px,env(safe-area-inset-left,0px))}
 .request-dock-context{display:none}
 .request-dock-actions{flex-direction:column;align-items:flex-end;gap:12px}
 .request-dock-actions>a{pointer-events:auto;box-shadow:var(--shadow)}
 .request-dock .button{min-height:54px;padding-inline:24px;font-size:15px;gap:24px;border:1px solid var(--line)}
 .request-dock-whatsapp{width:56px;height:56px;flex-basis:56px}
 .request-dock-whatsapp svg{width:29px;height:29px}
}
@media(prefers-reduced-motion:reduce){.request-dock,.request-dock .button,.request-dock-whatsapp{transition:none}}

/* Internal page introductions use the same compact rhythm. */
.catalog,.work-catalog,.legal,.thank-you{padding-top:40px}.catalog h1,.work-catalog h1,.legal h1,.thank-you h1{font-size:clamp(38px,5vw,76px);line-height:1.3}.work-catalog>.hero-body{margin-top:20px}.catalog>.eyebrow,.work-catalog>.eyebrow,.legal>.eyebrow{margin-bottom:18px}
@media(max-width:760px){.catalog,.work-catalog,.legal,.thank-you{padding-top:28px}.catalog h1,.work-catalog h1,.legal h1,.thank-you h1{font-size:clamp(32px,8vw,48px)}}

/* Catalogue rhythm: reset the inherited heading margin as well as section padding. */
body[data-page=services] .catalog{padding-top:28px}
body[data-page=services] .catalog>.eyebrow{margin:0 0 12px}
body[data-page=services] .catalog h1{max-width:1180px;margin:0;font-size:clamp(36px,3.5vw,60px);line-height:1.15}
html[lang=ar] body[data-page=services] .catalog h1{line-height:1.4}
body[data-page=services] .catalog-intro{margin:20px 0 0;gap:20px;align-items:center}
body[data-page=services] .catalog-intro>p{max-width:760px}
body[data-page=services] .catalog-search{margin-top:24px;max-width:1000px}
body[data-page=services] .catalog-search>label{margin-bottom:10px}
body[data-page=services] .catalog .filter-row{margin:16px 0 0}
body[data-page=services] .catalog>.filter-status{margin:14px 0 18px}

/* Preserve large home actions while removing stacked blank space on phones. */
@media(max-width:760px){
 body[data-page=services] .catalog{padding-top:22px}
 body[data-page=services] .catalog h1{font-size:clamp(32px,7.6vw,46px);line-height:1.2}
 html[lang=ar] body[data-page=services] .catalog h1{line-height:1.4}
 body[data-page=services] .catalog-intro{margin-top:16px}
 body[data-page=services] .catalog-intro .text-link{margin-top:10px}
 body[data-page=services] .catalog-search{margin-top:20px}
 body[data-page=home] .hero{padding-top:24px}
 body[data-page=home] .hero-copy{padding-bottom:12px}
 body[data-page=home] .hero-copy>.eyebrow{margin-bottom:12px}
 body[data-page=home] .hero-body{margin-top:16px;line-height:1.75}
 body[data-page=home] .hero-actions{margin-top:20px;row-gap:10px}
 body[data-page=home] .hero-account{margin-top:10px;gap:2px 10px;font-size:14px;line-height:1.6}
 body[data-page=home] .hero-account-link{min-height:44px}
 body[data-page=home] .hero-payment-path{margin-top:12px;font-size:15px;line-height:1.7}
 body[data-page=home] .hero-disciplines{margin-top:18px}
}

/* Keep the first public content close to the header, including wide home heroes. */
body[data-page=home] .hero{padding-top:32px}
body[data-page=home] .hero-copy{align-self:start}
body[data-page=home] .hero-copy>.eyebrow{margin-bottom:16px}
body .work-catalog,body .legal,body .thank-you,body .merchant-page{padding-top:32px}
@media(max-width:760px){
 body[data-page=home] .hero{padding-top:24px}
 body[data-page=home] .hero-copy>.eyebrow{margin-bottom:12px}
 body .work-catalog,body .legal,body .thank-you,body .merchant-page{padding-top:24px}
}

/* Small white CTA labels require the compact contrast-safe brand tone. */
.request-dock .request-dock-start{background:var(--brand-button-compact);border-color:var(--brand-button-compact);color:#fff}

/* On the mobile homepage, the hero already contains the primary action. */
@media(max-width:1199px){
 [data-home-request-dock]{opacity:0;visibility:hidden;pointer-events:none;transform:translateY(calc(100% + 32px));transition:opacity .24s ease,transform .28s cubic-bezier(.2,.65,.2,1),visibility 0s .28s}
 [data-home-request-dock].is-revealed{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0);transition-delay:0s}
 body[data-motion-effective=off] [data-home-request-dock]{transition:none}
 body:has(.site-header nav.open) [data-home-request-dock],body:has(dialog[open]) [data-home-request-dock]{transition:none}
}
@media(prefers-reduced-motion:reduce){[data-home-request-dock]{transition:none}}
