/* Phone/tablet composition, after the shared desktop styles. Native document
   scrolling, gentle chapter stops, intrinsic photographs and complete offers. */
@media (max-width:1079px) {
 html:has(body[data-gr-mobile]) {
  --gr-mobile-gutter:clamp(20px,5vw,36px);
  --gr-mobile-width:min(720px,calc(100% - 2 * var(--gr-mobile-gutter)));
  --gr-mobile-header:var(--gr-chapter-header,73px);
  height:auto!important;overflow-x:clip!important;overflow-y:auto!important;
  scroll-padding-top:calc(var(--gr-mobile-header) + 12px);
  scroll-padding-bottom:24px;scrollbar-width:auto!important;
 }
 html.gr-entry-landing:has(body[data-gr-mobile])::-webkit-scrollbar{display:block}
 body[data-gr-mobile]{height:auto!important;min-height:100svh!important;min-width:0;overflow:visible!important}
 body[data-gr-mobile],body[data-gr-mobile] main,body[data-gr-mobile] main *{box-sizing:border-box}
 body[data-gr-mobile] main{height:auto!important;min-width:0;max-width:100%}
 body[data-gr-mobile] main :is(div,section,article,aside,figure,nav,form){min-width:0}
 body[data-gr-mobile] main :is(h1,h2,h3,h4,p,li,a,summary){overflow-wrap:break-word}
 body[data-gr-mobile] main img{max-width:100%}
 html:has(body.gr-desktop-story[data-gr-mobile]){scroll-snap-type:y proximity!important}
 body[data-gr-mobile] :is(main>.hero,main>.compact-offer,main>.gr-editorial,
  .gr-desktop-frame,.gr-service-frame,.gr-decision-grid>article,.gr-value-tier,
  .gr-offer-group>header,.gr-offer-summary) {
  scroll-snap-align:start;scroll-snap-stop:normal;scroll-margin-top:0!important;
 }
 body[data-gr-mobile] :is(main>.gr-rhythm-gallery,main>.gr-offer-overview,footer){scroll-snap-align:none}
 body[data-gr-mobile] main :is([id^="gr-"],#services,#offers,#value-packages,#packages,[id^="package-"]){scroll-margin-top:0!important}
 /* An expanded answer remains a continuous reading surface. */
 html:has(body[data-gr-mobile] main details[open]){scroll-snap-type:none!important}
 body[data-gr-mobile] :is(.wrap,.gr-gateway-wrap){max-width:100%;min-width:0}
 body[data-gr-mobile] main>:is(.hero,.compact-offer,.gr-editorial,.section){
  display:block;min-height:0;height:auto;padding-top:44px;padding-bottom:44px;
 }
 body[data-gr-mobile] main>:is(.hero,.compact-offer,.gr-editorial,.section)>.wrap{
  width:var(--gr-mobile-width);max-width:720px;margin-inline:auto;
 }
 body[data-gr-mobile] .hero :is(.hero-layout,.hero-layout>div){display:block;min-width:0}
 body[data-gr-mobile] .hero h1{font-size:clamp(2.05rem,7.6vw,3.5rem);line-height:1.1;letter-spacing:-.045em;max-width:20ch;margin:14px 0 22px;text-wrap:balance}
 body[data-gr-mobile] .hero .lead{font-size:1.05rem;line-height:1.65;margin:0;max-width:60ch}
 body[data-gr-mobile] .gr-category-masthead{position:static;transform:none;font-size:.78rem;line-height:1.5;letter-spacing:.12em;margin:0 0 18px}
 body[data-gr-mobile] .gr-category-method{font-size:1rem;line-height:1.7;margin:22px 0 0}
 body[data-gr-mobile] .gr-centered-opening :is(h1,.lead,.gr-category-method){margin-inline:auto;text-align:center}
 body[data-gr-mobile] .gr-centered-opening .gr-service-continuation{margin-inline:auto}
 body[data-gr-mobile] .gr-actor-opening>.wrap{display:grid;grid-template-columns:minmax(0,1fr);gap:28px}
 body[data-gr-mobile] .gr-opening-detail{margin:0;width:100%}
 body[data-gr-mobile] .gr-opening-detail>a{display:block;overflow:hidden}
 body[data-gr-mobile] .gr-opening-detail img{display:block;width:100%;height:clamp(240px,65vw,420px);object-fit:cover;object-position:52% 28%}
 body[data-gr-mobile] .gr-opening-detail figcaption{font-size:.78rem;line-height:1.5;padding-top:12px}
 body[data-gr-mobile] .gr-opening-method{margin-top:22px}
 body[data-gr-mobile] .hero .price-card{width:100%;max-width:100%;margin:28px 0 0;padding:24px}
 body[data-gr-mobile] .hero .price-card .actions .button{width:100%;white-space:normal;min-height:48px}
 body[data-gr-mobile] .hero .gr-on-page{display:grid;grid-template-columns:1fr;gap:0;margin-top:24px}
 body[data-gr-mobile] .gr-on-page a{padding:14px 0;line-height:1.45}
 body[data-gr-mobile] .gr-service-continuation{margin-top:26px;font-size:.95rem;gap:16px;max-width:none}
 /* Clear service frames: photo, purpose, whole-card destination. */
 body[data-gr-mobile] .gr-service-gateways{padding:44px 0;background:transparent}
 body[data-gr-mobile] .gr-gateway-wrap{width:var(--gr-mobile-width);max-width:720px}
 body[data-gr-mobile] .gr-gateway-heading{margin-bottom:28px}
 body[data-gr-mobile] :is(.gr-gateway-heading h2,.gr-value-heading h2,.gr-editorial h2){font-size:clamp(1.85rem,6.6vw,2.8rem);line-height:1.17;letter-spacing:-.035em;text-wrap:balance}
 body[data-gr-mobile] .gr-service-frame-grid{grid-template-columns:minmax(0,1fr);gap:28px}
 body[data-gr-mobile] a.gr-service-frame{grid-template-columns:minmax(0,1fr);gap:20px;padding:20px;background:transparent}
 body[data-gr-mobile] .gr-service-frame .gr-gateway-visual{width:100%;margin:0}
 body[data-gr-mobile] .gr-service-frame .gr-gateway-visual img{height:auto;max-height:340px;width:auto;max-width:100%;object-fit:contain;margin-inline:auto}
 body[data-gr-mobile] .gr-service-frame-wide .gr-gateway-visual img{width:100%;height:auto;max-height:none}
 body[data-gr-mobile] .gr-service-frame-copy{padding:0}
 body[data-gr-mobile] .gr-service-frame-copy h3{font-size:clamp(1.55rem,5.8vw,2rem);line-height:1.18}
 body[data-gr-mobile] .gr-service-number{margin:0 0 12px}
 body[data-gr-mobile] .gr-service-goal{font-size:1rem;line-height:1.65;margin-bottom:22px}
 body[data-gr-mobile] .gr-service-frame-end{font-size:.9rem;min-height:44px;padding-top:14px}
 body[data-gr-mobile] .gr-custom-gateway{padding:20px;font-size:1rem;gap:16px}
 /* One readable chapter at a time; comparisons retain their relationship. */
 body[data-gr-mobile] main>.gr-rhythm-gallery{display:block!important;width:100%;max-width:none;margin:0!important;padding:0!important;min-height:0!important}
 body[data-gr-mobile] .gr-composed-grid{display:block}
 body[data-gr-mobile] .gr-desktop-frame{
  display:grid;grid-template-columns:minmax(0,1fr);gap:28px;width:var(--gr-mobile-width);
  max-width:720px;height:auto;min-height:0;margin:0 auto;padding:44px 0;border-bottom:1px solid #ffffff30;
 }
 body[data-gr-mobile] .gr-frame-copy{display:block;width:100%;max-width:none}
 body[data-gr-mobile] .gr-frame-kicker{display:flex;align-items:baseline;gap:14px;font-size:.75rem;line-height:1.6;letter-spacing:.055em;margin:0 0 16px}
 body[data-gr-mobile] .gr-frame-kicker span{margin:0;flex:none;font-variant-numeric:tabular-nums}
 body[data-gr-mobile] .gr-frame-title{font-size:clamp(1.8rem,6.5vw,2.65rem);line-height:1.18;letter-spacing:-.035em;margin:0 0 22px!important;text-wrap:balance}
 body[data-gr-mobile] .gr-frame-prose{font-size:1rem;line-height:1.75;max-width:none}
 body[data-gr-mobile] .gr-frame-prose p{margin:0 0 1em}
 body[data-gr-mobile] .gr-frame-prose p:last-child{margin-bottom:0}
 body[data-gr-mobile] .gr-frame-media{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;width:100%;align-items:start}
 body[data-gr-mobile] .gr-frame-media figure{margin:0;min-width:0;width:100%}
 body[data-gr-mobile] .gr-frame-media figure>a{display:block}
 body[data-gr-mobile] .gr-frame-media img{display:block;width:auto;height:auto;max-width:100%;max-height:68svh;object-fit:contain;margin-inline:auto}
 body[data-gr-mobile] .gr-frame-media figcaption{padding:10px 0 0;font-size:.76rem;line-height:1.55;color:#b9bbc1}
 body[data-gr-mobile] :is(.gr-frame-comparison,.gr-frame-collection,.gr-frame-triptych) .gr-frame-media{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
 body[data-gr-mobile] .gr-frame-comparison .gr-frame-media img{width:100%;height:auto;max-height:54svh;object-fit:contain}
 body[data-gr-mobile] .gr-frame-triptych .gr-frame-media>figure:first-child{grid-column:1/-1}
 body[data-gr-mobile] .gr-frame-triptych .gr-frame-media>figure:first-child img{max-height:58svh}
 body[data-gr-mobile] .gr-frame-collection .gr-frame-media img{max-height:38svh}
 body[data-gr-mobile] .gr-media-examples .gr-related-work{width:100%;margin:22px 0 0}
 body[data-gr-mobile] .gr-media-examples .gr-related-work a{display:inline-block;min-height:44px;padding:10px 0;line-height:1.6}
 /* Break up the method and decisions without trapping text in viewports. */
 body[data-gr-mobile] :is(.gr-decision-grid,.gr-choice-grid,.gr-process-grid,.gr-proof-notes,.gr-brief-questions){display:grid;grid-template-columns:minmax(0,1fr);gap:24px}
 body[data-gr-mobile] .gr-decision-grid>article{min-height:0;padding:28px 0 8px}
 body[data-gr-mobile] .gr-decision-grid>article.gr-with-photo{grid-template-columns:minmax(0,1fr);gap:24px}
 body[data-gr-mobile] .gr-decision-grid h3{font-size:1.45rem;line-height:1.3;text-wrap:balance}
 body[data-gr-mobile] .gr-decision-grid p{font-size:1rem;line-height:1.75}
 body[data-gr-mobile] .gr-editorial-visual{width:100%;max-width:100%;margin:0;padding:0}
 body[data-gr-mobile] .gr-editorial-visual img{max-height:58svh}
 body[data-gr-mobile] .gr-editorial-pair{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
 body[data-gr-mobile] .gr-process-grid li{padding-top:20px}
 body[data-gr-mobile] .gr-context-links{display:grid;gap:0;margin-top:28px}
 body[data-gr-mobile] .gr-context-links a{display:block;padding:14px 0;line-height:1.6;border-bottom:1px solid #ffffff30;min-height:48px}
 /* All three choices stay visible, in the same order as their summaries. */
 body[data-gr-mobile] .gr-value-tier-grid{grid-template-columns:minmax(0,1fr);gap:28px}
 body[data-gr-mobile] .gr-value-tiers a.gr-value-tier{order:0;height:auto;max-height:none;overflow:visible;padding:24px;border-radius:0}
 body[data-gr-mobile] .gr-value-tiers a.gr-value-tier h3{font-size:1.6rem;line-height:1.25}
 body[data-gr-mobile] .gr-value-name{font-size:.8rem;margin-bottom:14px}
 body[data-gr-mobile] .gr-value-promise{font-size:1rem;line-height:1.7}
 body[data-gr-mobile] .gr-value-summary{font-size:1.12rem;line-height:1.55}
 body[data-gr-mobile] .gr-value-tier :is(li,.gr-value-deliverable){font-size:.95rem;line-height:1.7}
 body[data-gr-mobile] .gr-value-tier .gr-value-scope{font-size:.88rem;line-height:1.65}
 body[data-gr-mobile] .gr-value-tiers .gr-value-button{min-height:48px;padding:15px 10px;font-size:.95rem}
 body[data-gr-mobile] .gr-price-guidance{margin:26px 0}
 body[data-gr-mobile] :is(.gr-editorial,.gr-price-guidance,.gr-opening-method) summary{min-height:48px;font-size:1rem;line-height:1.6;padding-top:14px;padding-bottom:14px}
 body[data-gr-mobile] :is(.gr-editorial,.gr-price-guidance) details[open] p{font-size:1rem;line-height:1.75;margin:14px 0 8px}
 body[data-gr-mobile] .gr-offer-overview{padding:48px 0}
 body[data-gr-mobile] .gr-offer-group{padding:38px 0 44px}
 body[data-gr-mobile] .gr-offer-group>header{margin-bottom:26px;gap:16px}
 body[data-gr-mobile] .gr-offer-group h3{font-size:clamp(2rem,7vw,3rem);line-height:1.14}
 body[data-gr-mobile] .gr-offer-summary-grid{grid-template-columns:minmax(0,1fr);gap:20px}
 body[data-gr-mobile] a.gr-offer-summary{padding:22px;min-height:0}
 body[data-gr-mobile] .gr-offer-summary h4{font-size:1.45rem;line-height:1.3;margin-bottom:18px}
 body[data-gr-mobile] .gr-offer-overview-note{margin-top:30px;font-size:1rem;line-height:1.7}
 /* Video keeps its approved native ratio, including the BARRIOS content crop. */
 body[data-gr-mobile] .gr-gallery-promo{width:var(--gr-mobile-width);max-width:720px;margin-inline:auto;padding-block:40px}
 body[data-gr-mobile] .gr-promo-grid{grid-template-columns:minmax(0,1fr);gap:32px}
 body[data-gr-mobile] .gr-media-film{min-width:0;margin-inline:0;max-width:100%}
 body[data-gr-mobile] .gr-film-box{max-width:100%;height:auto}
 body[data-gr-mobile] .gr-film-box:has(.gr-film-portrait){max-width:min(100%,calc(68svh * 608 / 1080))}
 /* Forms, final actions and fixed bars remain reachable above safe areas. */
 body[data-gr-mobile] :is(.contact-grid,.builder-grid){grid-template-columns:minmax(0,1fr)}
 body[data-gr-mobile] :is(input,select,textarea){min-width:0;max-width:100%;font-size:16px}
 body[data-gr-mobile] .field{min-width:0}
 body[data-gr-mobile] .form-buttons{display:flex;flex-wrap:wrap;gap:14px}
 body[data-gr-mobile] .form-buttons>*{max-width:100%;white-space:normal}
 body[data-gr-mobile] .service-booking-bar{gap:12px;padding-bottom:max(12px,env(safe-area-inset-bottom));min-width:0}
 body[data-gr-mobile] .service-booking-bar>.button{flex-shrink:0;white-space:normal}
 body[data-gr-mobile] .mobile-contact{padding-bottom:max(12px,env(safe-area-inset-bottom))}
 body[data-gr-mobile] .gr-global-nav{overscroll-behavior-y:contain}
 body[data-gr-mobile] .gr-footer-map{padding-bottom:max(26px,env(safe-area-inset-bottom))}
 body[data-gr-mobile] .gr-footer-map-col{min-width:0}
 body[data-gr-mobile] .gr-footer-map a{min-height:36px;padding-block:6px;overflow-wrap:break-word}
 body[data-gr-mobile] :is(.gr-directory-grid,.gr-directory-service-groups,.gr-studio-facts){grid-template-columns:1fr}
 body[data-gr-mobile] .gr-studio-columns{grid-template-columns:minmax(0,1fr)}
 /* Preserve the four-panel main entry, but let real content set its height. */
 html.gr-entry-landing body.gr-home[data-gr-mobile]>main{height:auto!important;min-height:calc(100svh - var(--gr-mobile-header))!important;overflow:visible!important}
 html.gr-entry-landing body.gr-home[data-gr-mobile] .audience-gateway{width:var(--gr-mobile-width)!important;min-height:calc(100svh - var(--gr-mobile-header))!important;height:auto!important;padding:24px 0!important}
 html.gr-entry-landing body.gr-home[data-gr-mobile] .gateway-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(180px,1fr));height:auto!important;min-height:376px;gap:12px}
 html.gr-entry-landing body.gr-home[data-gr-mobile] .gateway-card{height:auto!important;min-height:180px!important;min-width:0}
 html.gr-entry-landing body.gr-home[data-gr-mobile] .gateway-intro h1{font-size:clamp(1.7rem,7vw,2.6rem);line-height:1.12;max-width:100%;margin-bottom:18px}
 html.gr-entry-landing body.gr-home[data-gr-mobile] .site-footer{height:auto!important;padding-bottom:max(32px,env(safe-area-inset-bottom))!important}
}
@media (max-width:850px) {
 body[data-gr-mobile]:has(.service-booking-bar),
 html:is(.gr-entry-booking,.gr-entry-builder) body.gr-home[data-gr-mobile]{padding-bottom:calc(84px + env(safe-area-inset-bottom))}
 html:has(body[data-gr-mobile] .service-booking-bar),
 html:is(.gr-entry-booking,.gr-entry-builder):has(body[data-gr-mobile]){scroll-padding-bottom:calc(96px + env(safe-area-inset-bottom))}
}
@media (max-width:790px) {
 html:has(body[data-gr-mobile]){--gr-mobile-header:var(--gr-chapter-header,65px)}
 body[data-gr-mobile] .gr-global-header .gr-menu-toggle{min-height:44px!important}
}
@media (max-width:370px) {
 html:has(body[data-gr-mobile]){--gr-mobile-gutter:16px}
 body[data-gr-mobile] a.gr-service-frame,body[data-gr-mobile] .gr-value-tiers a.gr-value-tier{padding:18px}
 body[data-gr-mobile] .gr-frame-comparison .gr-frame-media{gap:10px}
 body[data-gr-mobile] .gr-service-frame-end{font-size:.82rem}
}
@media (max-width:1079px) and (max-height:520px) {
 html:has(body.gr-desktop-story[data-gr-mobile]),html:has(body[data-gr-mobile]){scroll-snap-type:none!important}
 body[data-gr-mobile] .gr-opening-detail img{height:auto;max-height:75svh;object-fit:contain}
}
@media (max-width:1079px) and (prefers-reduced-motion:reduce) {
 html:has(body.gr-desktop-story[data-gr-mobile]),html:has(body[data-gr-mobile]){scroll-snap-type:none!important;scroll-behavior:auto!important}
 body[data-gr-mobile] main a{transition:none!important}
}
