/* BOUYA mobile material. Optical layering adapted from rdev/liquid-glass-react (MIT).
   Component scope / existing typography and layout. Neutral material, sharp content.
   Desktop does not consume these layers. */
.lg-definitions{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}
.lg-warp,.lg-rim{display:none}
.lg-dialog-content{display:contents}
@property --header-presence{syntax:"<number>";inherits:true;initial-value:1}
@media(max-width:600px){
 :root{
  --glass-clear:rgba(255,255,255,.025);
  --glass-dark:rgba(0,0,0,.14);
  --glass-scrim:rgba(0,0,0,.38);
  --glass-rim:rgba(255,255,255,.28);
  --glass-white:rgba(255,255,255,.8);
  --glass-shadow:rgba(0,0,0,.24);
 }
 html{scroll-padding-top:100px}
 :where(.lg-surface){position:relative}
 html body .lg-surface{
  isolation:isolate;background:var(--glass-clear);border-color:var(--glass-rim);
  backdrop-filter:none;-webkit-backdrop-filter:none;
  box-shadow:0 5px 18px var(--glass-shadow),inset 0 .5px 0 var(--glass-white),inset 0 -.5px 0 var(--glass-rim);
 }
 html body .lg-surface>.lg-warp{
  display:block;position:absolute;inset:0;z-index:-1;pointer-events:none;border-radius:inherit;
  background:transparent;backdrop-filter:blur(var(--lg-blur,1.5px)) saturate(100%);
  -webkit-backdrop-filter:blur(var(--lg-blur,1.5px)) saturate(100%);
  filter:var(--lg-filter,none);clip-path:inset(0 round var(--lg-radius,20px));
 }
 html body .lg-surface>.lg-rim{
  display:block;position:absolute;inset:0;z-index:1;pointer-events:none;border-radius:inherit;padding:1.5px;
  background:linear-gradient(var(--lg-angle,125deg),var(--glass-white),var(--color-clear) 25%,var(--glass-rim) 54%,var(--color-clear) 74%,var(--glass-white));
  -webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);
  mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;
 }
 .masthead::before,.masthead::after,.nav-links a::before{content:none}
 /* Fade material and foreground separately: parent opacity would cut off the
    backdrop sampled by the nested glass surfaces. */
 html body .masthead,html body .masthead.scrolled,html body.menu-open .masthead{
  --lg-blur:3px;
  --glass-clear:rgb(255 255 255 / calc(.025 * var(--header-presence)));
  --glass-rim:rgb(255 255 255 / calc(.28 * var(--header-presence)));
  --glass-white:rgb(255 255 255 / calc(.8 * var(--header-presence)));
  --glass-shadow:rgb(0 0 0 / calc(.24 * var(--header-presence)));
  opacity:1;visibility:visible;pointer-events:auto;
  transform:scale(calc(1 + (1 - var(--header-presence)) * .045));transform-origin:50% 50%;
  transition:--header-presence .6s ease-out,visibility 0s;
 }
 html body .masthead[inert]{pointer-events:none;visibility:hidden;transition:--header-presence .6s ease-out,visibility 0s .6s}
 .masthead>.brand-corner,.masthead .menu-icon,.masthead .lg-warp{opacity:var(--header-presence);transition:none}
 .masthead>.header-actions{opacity:1}
 html body .header-actions .request-top{background:transparent;color:var(--color-ink);transform:none}
 html body .header-actions .request-short{
  height:36px;border-color:var(--glass-rim);background:var(--glass-clear);
  color:color-mix(in srgb,var(--color-ink) calc(100% * var(--header-presence)),transparent);font-weight:600;
 }
 .request-short::before,.request-submit::before{content:none}
 .header-actions .menu-button{border:1px solid var(--glass-rim);width:38px;height:38px;min-height:38px}
 .header-actions .menu-button::after{content:"";position:absolute;inset:-3px;pointer-events:auto}
 html body .flight-deck{--lg-blur:2px}
 .deck-control{border-radius:50%;text-shadow:0 1px 5px #000}
 .deck-control:hover,.deck-control:focus-visible{background:var(--glass-rim)}
 /* A sibling backdrop blurs the whole page without blurring menu content or
    creating a backdrop root above the links' glass layers. */
 body.menu-open::before{
  content:"";position:fixed;inset:0;z-index:180;pointer-events:none;
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
 }
 html body .navigation{
  background:var(--glass-scrim);backdrop-filter:none;-webkit-backdrop-filter:none;
  opacity:0;transition:transform .35s var(--ease-out),visibility .35s;
 }
 html body.menu-open .navigation{opacity:1}
 /* Chromium can paint a filtered backdrop even under visibility:hidden. */
 html body .navigation[aria-hidden=true] .lg-warp{display:none}
 .nav-inner{padding:106px 20px 22px}
 .nav-caption{margin-bottom:18px;text-shadow:0 1px 8px #000}
 .nav-links{gap:10px}
 html body .nav-links a{
  --lg-blur:5px;min-height:56px;border:1px solid var(--glass-rim);
  background:var(--glass-dark);font-size:clamp(19px,5.2vw,25px);
  text-shadow:0 1px 6px #000;transition:scale .28s var(--ease-out),box-shadow .28s;
 }
 .nav-bottom{margin-top:20px;text-shadow:0 1px 6px #000}
 .lg-dialog-content{display:block;overflow:auto;max-height:calc(100svh - 34px);overscroll-behavior:contain;scrollbar-width:thin}
 #service-dialog[open]{display:block}
 html body dialog[open]{animation:glass-dialog-enter .35s var(--ease-out)}
 @keyframes glass-dialog-enter{from{transform:translateY(10px) scale(.98)}to{transform:none}}
 html body dialog.lg-surface{
  --lg-blur:10px;position:fixed;border-radius:24px;background:var(--glass-dark);
  color:var(--color-ink);overflow:hidden;
 }
 dialog::backdrop{background:rgba(0,0,0,.48);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
 html body #date-calendar{--lg-blur:14px;border-radius:24px;padding:0}
 #date-calendar>.lg-dialog-content{padding:var(--space-md);max-height:calc(100svh - 26px)}
 #date-calendar::backdrop{background:rgba(0,0,0,.22);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
 .request-body,.service-body{position:relative}
 .request-body>p,.request-body h2,.service-body>p,.service-body h2{ text-shadow:0 1px 10px #000 }
 html body .dialog-close{background:var(--glass-dark);color:var(--color-ink)}
 html body .button-primary,html body .text-button{
  background:var(--glass-clear);color:var(--color-ink);border:1px solid var(--glass-rim);
  border-radius:100px;text-shadow:0 1px 5px #000;
  transition:scale .32s var(--ease-out),box-shadow .32s;filter:none;
 }
 .text-button{padding:14px 20px}
 .button-primary>span:not(.lg-warp):not(.lg-rim),.text-button>span:not(.lg-warp):not(.lg-rim){display:none}
 .button-primary:hover,.text-button:hover{transform:none}
 html body .interest-face,html body .date-trigger{
  --lg-blur:2px;background:var(--glass-clear);border:1px solid var(--glass-rim);border-radius:14px;
 }
 .form-grid input:not([type=hidden]),.form-grid select,.form-wide textarea{
  background:var(--glass-clear);border:1px solid var(--glass-rim);border-radius:14px;
  box-shadow:inset 0 1px 1px var(--glass-rim);color:var(--color-ink);
 }
 .form-grid input::placeholder{color:var(--color-muted)}
 .form-grid select option{background:var(--color-paper-2);color:var(--color-ink)}
 html body .interest-option input:checked+.interest-face{
  border-color:var(--color-accent);color:var(--color-accent);background:var(--glass-clear);
  box-shadow:inset 0 0 0 1px var(--color-accent);
 }
 .interest-option input:checked+.interest-face .interest-check{background:var(--color-accent)}
 html body .date-trigger[data-has-value]{color:var(--color-ink)}
 .calendar-head button,.calendar-bottom button{padding-inline:8px;border-radius:100px;background:var(--glass-clear);border:1px solid var(--glass-rim)}
 .calendar-grid button{border-radius:50%}
 .calendar-grid td[aria-selected=true] button{background:var(--color-accent);color:var(--color-paper)}
 html body .service-links button{border:1px solid var(--glass-rim);border-radius:16px;white-space:nowrap;padding:10px 7px}
 .service-links{gap:10px;border:0;padding:0}
 .service-links button:last-child{width:calc(50% - 5px)}
 .service-links button::after{content:none}
 html body .footer-bottom button{color:var(--color-ink)}
 html body .circle-arrow,html body .marker-point{background:var(--glass-clear);color:var(--color-accent)}
 .lg-surface:is(button,a):hover,.interest-option:hover .interest-face{
  box-shadow:0 6px 22px var(--glass-shadow),inset 0 1px 0 var(--glass-white),inset 0 0 18px var(--glass-rim);
 }
 .lg-surface:is(button,a):active,.request-top:active .request-short,.interest-option:active .interest-face{scale:.97}
 .lg-surface:is(button,a):focus-visible{outline:2px solid var(--color-focus);outline-offset:4px}
 .lg-surface:disabled,.lg-surface[aria-disabled=true]{opacity:.5;scale:1}
 .lg-surface[aria-busy=true]{cursor:progress}
 .date-trigger[aria-invalid=true]{border-color:var(--color-error)}
 @supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  html body .lg-surface,html body .navigation{background:var(--color-paper-2)!important}
 }
}
@media(max-width:600px) and (prefers-reduced-transparency:reduce),(max-width:600px) and (prefers-contrast:more){
 html body .lg-surface,html body .navigation{background:var(--color-paper-2)!important}
 html body .lg-surface>.lg-warp{display:none}
 html body .masthead{opacity:var(--header-presence)}
}
@media(prefers-reduced-motion:reduce){
 html body .lg-surface{scale:1;transition:none}
}
