/* Phase B: one fluid layer over Concept C. Fixed chrome/visual-viewport logic stays in components.css. */
:root {
  --ans-navy: #223248;
  --c-container: 88rem;
  --fluid-gutter: clamp(1rem, .65rem + 1.25vw, 2rem);
  --fluid-gap: clamp(.875rem, .625rem + .75vw, 1.5rem);
  --fluid-inset: clamp(1rem, .75rem + 1vw, 1.75rem);
  --fluid-section: clamp(2rem, 1.25rem + 2vw, 4rem);
  --fluid-body: clamp(1rem, .96rem + .15vw, 1.08rem);
  --fluid-h1: clamp(1.9rem, 1.3rem + 2vw, 3.6rem);
  --fluid-h2: clamp(1.5rem, 1.15rem + 1.1vw, 2.3rem);
  --fluid-h3: clamp(1.15rem, 1.05rem + .4vw, 1.5rem);
  --fluid-measure: 72ch;
}
.site-body { font-size: var(--fluid-body); }
.site-body .container { width: 100%; max-width: var(--c-container); padding-inline: var(--fluid-gutter); }
.site-body main > .container > section { margin-block-end: var(--fluid-section); }
.site-body :where(h1,h2,h3,h4,h5,h6,p,a,label,summary,button) { overflow-wrap: anywhere; }
.site-body h1, .home-hero h1, .hero h1 { font-size: var(--fluid-h1) !important; line-height: 1.16; }
.site-body h2:not([class*="h3"]):not([class*="h4"]):not([class*="h5"]) { font-size: var(--fluid-h2); }
.site-body h3.h5 { font-size: var(--fluid-h3); }
.site-body .lead { font-size: clamp(1.05rem, .97rem + .35vw, 1.25rem); line-height: 1.65; }
.site-body :where(.editorial-intro,.wd-section-head,.section-intro) p { max-width: var(--fluid-measure); }
.site-body .feature-card.p-4 { padding: var(--fluid-inset) !important; }
.site-body .hero-inner { padding: clamp(1.25rem, .75rem + 2vw, 3rem); }
.home-intro .home-hero-copy { padding: clamp(1.15rem, .7rem + 1.75vw, 2.5rem); }
.home-hero .kicker { font-size: clamp(.73rem, .68rem + .2vw, .85rem); }
.home-intro .home-hero .lead { font-size: clamp(1rem, .92rem + .3vw, 1.15rem); }
.site-body :where(.portfolio-grid,.service-grid,.benefit-strip,.ans-fluid-grid) {
  display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,18rem),1fr)); gap: var(--fluid-gap);
}
.site-body .benefit-strip { grid-template-columns: repeat(auto-fit,minmax(min(100%,12rem),1fr)); }
.site-body .row.ans-fluid-grid { margin: 0; }
.site-body .row.ans-fluid-grid > * { width: auto; max-width: 100%; margin: 0; padding: 0; min-width: 0; }
.site-body :where(.portfolio-card,.service-card,.wd-price) { min-width: 0; }
.portfolio-card .portfolio-actions { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: auto; }
.portfolio-card .portfolio-actions .btn { flex: 1 1 11rem; }
.site-body .btn { font-size: 1rem; min-height: 2.75rem; padding: .65em 1em; white-space: normal; line-height: 1.4; max-width: 100%; }
.site-body :where(.home-hero-actions,.wd-actions,.admin-form-actions,.booking-admin-nav) { flex-wrap: wrap; gap: var(--fluid-gap); }
.site-body :where(input,select,textarea) { max-width: 100%; min-width: 0; font-size: 1rem; }
.site-body :where(.form-control,.form-select):not(textarea) { min-height: 3rem; }
.site-body :where(.contact-layout,.booking-panel) { min-width: 0; }
.booking-panel { width: 100%; max-width: 72rem; }
.booking-slots { gap: clamp(.5rem,.4rem + .3vw,.85rem); }
.booking-slots .btn { flex: 0 1 auto; }
.site-body .brand-image { width: clamp(7.375rem,9vw,10rem); height: auto; }
.site-footer .footer-inner { gap: clamp(.4rem,.3rem + .5vw,1rem); }
.site-body :where(.app-gallery,.software-gallery) { min-width: 0; }
.site-body :where(.app-gallery,.software-gallery) img { max-width: 100%; object-fit: contain; }
.site-body :where(.app-gallery,.software-gallery) a { min-width: 0; }
/* Wide administrative data keeps its semantic columns in a local scroll container. */
.ans-admin { --admin-fluid-gap: var(--fluid-gap); }
.ans-admin :where(.admin-main,.admin-content,.admin-panel,.admin-surface,.admin-form-group) { min-width: 0; max-width: 100%; }
.ans-admin :where(.admin-card-grid,.admin-overview-grid,.admin-metrics) { grid-template-columns: repeat(auto-fit,minmax(min(100%,18rem),1fr)); gap: var(--fluid-gap); }
.ans-admin .admin-dialog { width: min(64rem,calc(100% - 2rem)); max-height: calc(100svh - 2rem); }
.ans-admin .admin-dialog-body { padding: var(--fluid-inset); }
.ans-admin :where(.admin-table-wrap,.booking-admin-scroll) { max-width: 100%; overflow-x: auto; overscroll-behavior-x: contain; }
.ans-admin :where(input,select,textarea) { font-size: 1rem; }
.ans-admin :where(.admin-surface,.admin-type-card,.admin-provider-card) { container-type: inline-size; }
@container (max-width: 24rem) {
  .admin-form-actions { flex-direction: column; align-items: stretch; }
  .admin-form-actions .btn { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .site-body :where(.feature-card,.btn,.reveal) { transition: none; animation: none; }
}

/* v7.3.2: quiet, opt-in depth; no layout displacement or touch hover. */
body:not([data-page="booking-admin"]) :is(.portfolio-card,.wd-price,.wd-project,.software-showcase,.app-project-cta,.software-project-cta,.ans-card){transition:transform 220ms ease,box-shadow 220ms ease,border-color 220ms ease}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
 body:not([data-page="booking-admin"]) :is(.portfolio-card,.wd-price,.wd-project,.software-showcase,.app-project-cta,.software-project-cta,.ans-card):hover{transform:translateY(-6px);box-shadow:0 20px 42px rgba(15,23,42,.18);border-color:color-mix(in srgb,var(--c-green) 48%,var(--c-line))}
}
body:not([data-page="booking-admin"]) :is(.portfolio-card,.wd-price,.wd-project,.software-showcase,.app-project-cta,.software-project-cta,.ans-card):focus-within{border-color:var(--c-blue)}
@media(prefers-reduced-motion:reduce){body:not([data-page="booking-admin"]) :is(.portfolio-card,.wd-price,.wd-project,.software-showcase,.app-project-cta,.software-project-cta,.ans-card){transition:none;transform:none!important}}

@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
 body:not([data-page="booking-admin"]) :is(.portfolio-card,.wd-price,.wd-project,.software-showcase,.ans-card){position:relative;isolation:isolate}
 body:not([data-page="booking-admin"]) :is(.portfolio-card,.wd-price,.wd-project,.software-showcase,.ans-card)::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;pointer-events:none;background:linear-gradient(120deg,rgba(43,120,197,.08),transparent 65%);opacity:0;transition:opacity 220ms ease}
 body:not([data-page="booking-admin"]) :is(.portfolio-card,.wd-price,.wd-project,.software-showcase,.ans-card):hover::before{opacity:1}
 [data-bs-theme=dark] body:not([data-page="booking-admin"]) :is(.portfolio-card,.wd-price,.wd-project,.software-showcase,.ans-card):hover{box-shadow:0 20px 42px rgba(0,0,0,.28),0 2px 18px rgba(43,120,197,.08)}
}
@media(prefers-reduced-motion:no-preference){.ans-reveal-played{animation:ans-soft-reveal 300ms ease-out}@keyframes ans-soft-reveal{from{opacity:.78;transform:translateY(6px)}to{opacity:1;transform:none}}}
[data-reveal-once]:focus-within{animation:none}

/* v7.3.3: visible but bounded accents; original imagery and six-pixel lift retained. */
body:not([data-page="booking-admin"]) :is(.portfolio-card,.wd-price,.wd-project,.software-showcase,.ans-card):focus-within{border-color:var(--c-green);box-shadow:inset 0 3px 0 var(--c-green)}
@media(hover:hover) and (pointer:fine){body:not([data-page="booking-admin"]) :is(.portfolio-card,.wd-price,.wd-project,.software-showcase,.ans-card):hover{border-color:var(--c-green);box-shadow:inset 0 3px 0 var(--c-green),0 20px 42px rgba(15,23,42,.18)}body:not([data-page="booking-admin"]) .btn-primary:hover{background-image:linear-gradient(110deg,rgba(255,255,255,.14),transparent 65%);box-shadow:0 5px 16px rgba(43,120,197,.2)}}
@media(prefers-reduced-motion:no-preference){.ans-reveal-played{animation:ans-clear-reveal 300ms ease-out}@keyframes ans-clear-reveal{from{opacity:.6;transform:translateY(10px)}to{opacity:1;transform:none}}}
/* Explicit opt-in only; no nested, form, dialog or admin surfaces. */
@media(hover:none),(pointer:coarse),(prefers-reduced-motion:reduce){body:not([data-page="booking-admin"]) .ans-card:hover{transform:none!important}}
