/* Shared inner/service/case layouts. Values follow the existing canonical specification. */
.content-template .page-content { padding-block:0; }
.content-template .page-content > .page-hero { width:auto; margin-inline:0; }
.template-title { padding-block:var(--space-8); }
.page-hero { padding-block:24px 64px; }
.page-hero__layout { display:grid; grid-template-columns:minmax(0,46fr) minmax(0,54fr); gap:48px; align-items:center; }
.page-hero__copy { min-width:0; }
.page-hero__copy > * + * { margin-top:24px; }
.page-hero__copy p { color:var(--copy); }
.page-hero__copy .eyebrow { text-transform:uppercase; letter-spacing:.08em; }
.page-hero__media { margin:0; min-width:0; overflow:hidden; border-radius:var(--radius-media); aspect-ratio:1.23; background:var(--surface); }
.page-hero__media img { display:block; width:100%; height:100%; object-fit:cover; }
.page-hero .hero-actions { margin-top:32px; }
.page-hero .hero-actions .wp-block-button { flex:0 1 auto; }
.content-template--services-all .page-hero { background:linear-gradient(180deg,var(--surface),var(--paper)); }
.content-template--case .page-hero__layout { grid-template-columns:minmax(0,55fr) minmax(0,45fr); }
.content-template--case .page-hero__media { aspect-ratio:4/3; }
.facts-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.fact-card { min-width:0; padding:24px; border:1px solid var(--line); border-radius:var(--radius-control); background:var(--paper); }
.fact-card h3 { margin:0 0 8px; font-size:18px; line-height:1.3; }
.fact-card p { font-size:14px; color:var(--copy); }
.quick-links { display:flex; flex-wrap:wrap; gap:12px; }
.quick-links a { display:inline-flex; align-items:center; min-height:44px; padding:8px 16px; border:1px solid var(--line); border-radius:var(--radius-control); }
.content-template .ag-split .wp-block-image { overflow:hidden; border-radius:var(--radius-media); }
.content-template .ag-split img { display:block; width:100%; }
.content-template .wp-block-details > p { color:var(--copy); padding:8px 0 16px; }
.content-template :is(.ag-split,.facts-grid,.page-hero__layout) > * { min-width:0; }
@media (max-width:1023px) {
  .page-hero { padding-block:20px 48px; }
  .page-hero__layout { gap:24px; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .facts-grid { gap:16px; }
}
@media (max-width:767px) {
  .page-hero { padding-block:16px 40px; }
  .page-hero__layout,.content-template--case .page-hero__layout { grid-template-columns:minmax(0,1fr); }
  .page-hero__media { aspect-ratio:1.65; }
  .content-template--service-direction .page-hero__media { order:-1; }
  .facts-grid { grid-template-columns:minmax(0,1fr); }
  .page-hero .hero-actions .wp-block-button { flex:auto; }
}

/* Shared mockup compositions: editable blocks, no page IDs or template-specific hacks. */
.ag-composition { padding-block:80px; color:var(--ink); }
.ag-composition.ag-soft { background:var(--surface); }
.ag-composition.ag-mist { background:#eef2f4; }
.ag-composition.ag-section--joined { padding-top:24px; }
.ag-composition :is(.ag-grid,.ag-split-layout,.ag-copy,.ag-card,.ag-rail) { min-width:0; }
.ag-composition .ag-copy > * + * { margin-top:20px; }
.ag-composition p { line-height:1.6; }
:where(.ag-composition) :is(.ag-card,.ag-feature,.ag-variant) p { font-size:14px; color:var(--copy); }
.ag-composition h1 { font-size:40px; line-height:1.12; margin:0; max-width:650px; }
.ag-composition h2 { font-size:32px; line-height:1.2; margin:0; font-weight:500; text-wrap:balance; }
:where(.ag-composition) h3 { font-size:20px; line-height:1.25; margin:0; font-weight:650; overflow-wrap:break-word; }
.ag-composition .ag-eyebrow { color:var(--brand); font-size:12px; font-weight:700; letter-spacing:.025em; margin-bottom:20px; }
.ag-composition .ag-lead { color:var(--copy); margin-top:20px; max-width:740px; }
.ag-section-heading { margin-bottom:32px; }
.ag-composition .ag-caption { font-size:12px; color:var(--copy); }
.ag-composition .ag-label { font-size:14px; font-weight:650; }
.ag-grid { display:grid; gap:20px; }
.ag-grid--2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.ag-grid--3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
.ag-grid--4 { grid-template-columns:repeat(4,minmax(0,1fr)); }
.ag-grid--5 { grid-template-columns:repeat(5,minmax(0,1fr)); }
.ag-split-layout { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:56px; align-items:center; }
.ag-split-layout--narrow { grid-template-columns:minmax(0,36fr) minmax(0,64fr); }
.ag-split-layout--wide-left { grid-template-columns:minmax(0,56fr) minmax(0,44fr); }
.ag-composition .ag-media { margin:0; aspect-ratio:3/2; overflow:hidden; border-radius:12px; background:var(--surface); }
.ag-composition .ag-media img { width:100%; height:100%; object-fit:cover; }
.ag-composition .ag-media--framed { padding:8px; border:1px solid var(--line); background:white; }
.ag-composition .ag-media--framed img { border-radius:8px; }
.ag-composition .ag-media--landscape { aspect-ratio:1.6; }
.ag-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:28px; }
.ag-composition .ag-actions .wp-block-button { margin:0; }
.ag-composition .ag-text-link { margin:20px 0 0; font-size:14px; font-weight:650; }
.ag-text-link a { display:inline-flex; align-items:center; min-height:44px; text-decoration:none; text-underline-offset:6px; }
.ag-text-link a:hover { text-decoration:underline; color:var(--brand); }
.ag-hero { padding-top:28px; padding-bottom:56px; }
.ag-hero-layout { grid-template-columns:minmax(0,46fr) minmax(0,54fr); gap:40px; }
.ag-hero-copy > * + * { margin-top:24px; }
.ag-hero .ag-eyebrow { margin-bottom:12px; }
.ag-hero-media { aspect-ratio:1.35; border-radius:12px; overflow:hidden; margin:0; }
.ag-hero-media img { width:100%; height:100%; object-fit:cover; }
.ag-hero--detail .ag-hero-media { aspect-ratio:1.35; background:white; }
.ag-hero--detail .ag-hero-media img { object-fit:contain; }
.ag-hero--case .ag-hero-layout { grid-template-columns:minmax(0,55fr) minmax(0,45fr); }
.ag-hero--case .ag-hero-media { aspect-ratio:4/3; }
.ag-hero .ag-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.ag-hero .ag-actions .wp-block-button__link { width:100%; background:var(--brand); color:white; }
.ag-hero .ag-actions .ag-action--secondary .wp-block-button__link { background:white; color:#596577; border-color:#879499; }
@media (hover:hover) { .ag-hero .ag-actions .ag-action--secondary .wp-block-button__link:hover { border-color:var(--brand); } }
.ag-hero .ag-icon-facts { grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.ag-icon-facts .ag-feature { flex-direction:column; align-items:center; text-align:center; gap:8px; }
.ag-icon-facts .ag-fact-icon { width:72px; height:72px; margin:0; }
.ag-fact-icon img { display:block; width:100%; height:100%; object-fit:contain; }
.ag-icon-facts .ag-feature h3 { font-size:18px; }
.ag-icon-facts .ag-feature p { margin-top:4px; }
.ag-composition.ag-section--close-bottom { padding-bottom:40px; }
.ag-composition.ag-section--close-top { padding-top:40px; }
.content-template--services-all .ag-hero h1 { max-width:11ch; }
.ag-hero-strip { margin-top:-36px; position:relative; z-index:1; }
.ag-composition .ag-hero-feature { padding:20px; }
.ag-hero-feature h3 { font-size:16px; }
.ag-hero-feature > p:not(.ag-symbol) { margin-top:12px; font-size:13px; }
.ag-hero-feature .ag-symbol { margin-bottom:24px; }
.ag-composition .ag-symbol { font-size:24px; line-height:1.2; color:var(--brand); font-weight:500; margin:0; }
.ag-card { border:1px solid transparent; box-shadow:0 8px 28px #0b1b220a; border-radius:10px; background:white; overflow:hidden; }
.ag-card__media { margin:0; aspect-ratio:1.4; overflow:hidden; }
.ag-card__media img { width:100%; height:100%; object-fit:cover; transition:transform var(--motion-base) var(--ease); }
.ag-card__copy { padding:24px; display:flex; flex-direction:column; gap:12px; }
.ag-card__copy .ag-text-link { margin-top:auto; padding-top:12px; }
.ag-card--dark .ag-card__copy { background:#303637; color:white; }
.ag-composition .ag-card--dark p { color:#e1e7e8; }
.ag-composition .ag-card--dark .ag-text-link { color:white; }
.ag-quick-section { padding-top:160px; }
.ag-quick-card .ag-card__copy { padding:8px 16px; }
.ag-quick-card .ag-text-link { margin:0; padding:0; }
.ag-quick-card .ag-card__media { aspect-ratio:1.65; }
.ag-ribbons { gap:10px; }
.ag-ribbon { position:relative; border-radius:14px; overflow:hidden; min-height:360px; background:var(--ink); }
.ag-ribbon .wp-block-image { position:absolute; inset:0; margin:0; }
.ag-ribbon img { width:100%; height:100%; object-fit:cover; }
.ag-ribbon::after { content:""; position:absolute; inset:30% 0 0; background:linear-gradient(transparent,#0b1b22); pointer-events:none; }
.ag-ribbon .ag-text-link { position:absolute; inset:auto 12px 16px; z-index:1; color:white; font-size:13px; }
.ag-ribbon .ag-text-link a { align-items:flex-end; }
.ag-service-rows { margin-top:32px; }
.ag-composition .ag-disclosure { border:1px solid var(--line); border-radius:8px; background:white; padding:0; min-width:0; }
.ag-disclosure + .ag-disclosure { margin-top:12px; }
.ag-grid > .ag-disclosure { margin:0; align-self:start; }
.ag-disclosure summary { display:flex; align-items:center; gap:16px; min-height:64px; list-style:none; cursor:pointer; padding:16px 20px; font-size:14px; font-weight:650; }
.ag-disclosure summary::-webkit-details-marker { display:none; }
.ag-disclosure summary::after { content:"+"; font-size:22px; color:var(--copy); margin-left:auto; flex:none; font-weight:400; }
.ag-disclosure[open] summary::after { content:"−"; }
.ag-disclosure summary strong { color:var(--brand); font-size:22px; font-weight:500; border-right:1px solid var(--line); padding-right:14px; }
.ag-composition .ag-disclosure > p { padding:0 20px 20px; margin:0; color:var(--copy); font-size:14px; }
.ag-faq-grid { gap:12px 20px; }
.ag-faq-grid .ag-disclosure { background:var(--surface); }
.ag-faq-grid summary::after { font-size:32px; line-height:1; }
.ag-faq-grid .ag-disclosure[open] { background:#fff9f4; border-color:#ffd0af; }
.ag-faq-grid .ag-disclosure[open] summary::after { color:var(--brand); }
.ag-faq-grid summary { min-height:52px; font-size:13px; padding:12px 16px; }
.ag-overlay-card { position:relative; min-height:430px; background:var(--ink); color:white; }
.ag-overlay-card .ag-card__media { position:absolute; inset:0; aspect-ratio:auto; }
.ag-overlay-card::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(11,27,34,.92),rgba(11,27,34,.1)); pointer-events:none; }
.ag-overlay-card .ag-card__copy { position:relative; z-index:1; max-width:75%; padding:40px; min-height:300px; }
.ag-composition .ag-overlay-card p { color:#eef2f4; }
.ag-overlay-card .ag-text-link a { border:1px solid #9ca6aa; border-radius:8px; padding:8px 20px; }
.ag-choice-card { text-align:center; padding:32px 24px 16px; }
.ag-choice-card .ag-symbol { display:grid; place-items:center; margin:0 auto 24px; width:80px; height:80px; border-radius:50%; background:var(--surface); }
.ag-choice-card .ag-text-link { text-align:right; }
.ag-overlap { position:relative; margin-top:-32px; }
.ag-centered { display:flex; justify-content:center; margin-top:32px; }
.ag-stat { padding:28px 20px; text-align:center; }
.ag-stats { gap:0; background:white; box-shadow:0 12px 32px #0b1b2208; border-radius:10px; position:relative; margin-top:-16px; }
.ag-stat + .ag-stat { border-left:1px solid var(--line); }
.ag-composition .ag-stat__value { color:var(--brand); font-size:30px; font-weight:350; margin-bottom:12px; line-height:1.2; overflow-wrap:break-word; }
.ag-stat p:last-child { font-size:14px; }
.ag-feature { display:flex; align-items:flex-start; gap:16px; }
.ag-feature .ag-symbol { flex:none; }
.ag-feature h3 { font-size:16px; }
.ag-feature p { margin-top:8px; }
.ag-strip { padding-block:24px; margin-top:24px; border-block:1px solid var(--line); }
.ag-strip .ag-feature + .ag-feature { border-left:1px solid var(--line); padding-left:16px; }
.ag-hero-facts { border:0; padding-bottom:0; gap:16px; }
.ag-hero-facts .ag-feature { gap:8px; }
.ag-hero-facts .ag-feature + .ag-feature { border:0; padding-left:0; }
.ag-hero-facts h3 { font-size:13px; }
.ag-hero-facts p { font-size:12px; }
.ag-hero-facts .ag-symbol { font-size:20px; }
.ag-popular { background:var(--surface); padding:28px; border-radius:8px; }
.ag-popular .ag-grid { gap:4px 12px; margin-top:12px; }
.ag-popular .ag-text-link { margin:0; font-size:13px; font-weight:350; background:transparent; padding-inline:0; }
.ag-mosaic { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:20px; }
.ag-mosaic--three-two > * { grid-column:span 2; }
.ag-mosaic--three-two > :nth-child(n+4) { grid-column:span 3; }
.ag-mosaic--two-three > * { grid-column:span 2; }
.ag-mosaic--two-three > :nth-child(-n+2) { grid-column:span 3; }
.ag-mosaic .ag-card__media { height:180px; aspect-ratio:auto; }
.ag-mosaic--three-two .ag-card__copy { padding:16px; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px 16px; }
.ag-mosaic--three-two .ag-card__copy > :not(.ag-text-link) { grid-column:1; }
.ag-mosaic--three-two .ag-card__copy .ag-text-link { grid-column:2; grid-row:1 / span 2; align-self:center; margin:0; }
.ag-mosaic--three-two .ag-text-link a { font-size:0; }
.ag-mosaic--three-two .ag-text-link a::after { content:"→"; font:400 14px/1 Arial,sans-serif; }
.ag-mosaic--three-two .ag-card__copy h3 { font-size:18px; }
.ag-mosaic--three-two .ag-card__copy .ag-text-link { padding-top:0; }
.ag-choice-rows { display:grid; gap:12px; }
.ag-choice-row { display:flex; gap:20px; padding:24px; border:1px solid var(--line); border-radius:8px; background:white; align-items:flex-start; }
.ag-choice-row .ag-symbol { padding-right:14px; border-right:1px solid var(--line); }
.ag-choice-row h3 { font-size:18px; }
.ag-choice-row p { font-size:14px; }
.ag-choice-row .ag-text-link { color:var(--brand); margin-top:8px; }
.ag-project-mosaic { display:grid; grid-template-columns:minmax(0,60fr) minmax(0,40fr); gap:16px; }
.ag-project-mosaic > * { display:flex; flex-direction:column; }
.ag-project-mosaic > :first-child { grid-row:span 2; }
.ag-project-mosaic .ag-card__copy { flex:1; }
.ag-project-mosaic.media-gallery__track { grid-auto-flow:row; grid-auto-columns:auto; overflow:visible; padding:0; }
.ag-project-mosaic > :first-child .ag-card__media { flex:1; min-height:320px; }
.ag-project-mosaic > :first-child .ag-card__media img { height:100%; }
.ag-project-mosaic > :not(:first-child) .ag-card__media { aspect-ratio:3.7; }
.ag-dark-panel { background:#101719; color:white; border-radius:12px; overflow:hidden; }
.ag-dark-panel .ag-split-layout { gap:0; align-items:stretch; }
.ag-panel-copy { padding:40px; }
.ag-composition .ag-dark-panel p { color:#d6dfe2; }
.ag-composition .ag-dark-panel .ag-eyebrow { color:var(--brand); }
.ag-dark-panel .ag-action--secondary .wp-block-button__link { color:white; border-color:#879499; }
.ag-panel-media { margin:0; height:100%; min-height:360px; }
.ag-panel-media img { width:100%; height:100%; object-fit:cover; }
.ag-final { background:#101719; }
.ag-dark-panel--media { background:#080e10; }
.ag-help__media { margin:0; aspect-ratio:2.5; }
.ag-help__media img { width:100%; height:100%; object-fit:cover; }
.ag-help .ag-panel-copy { padding:28px; }
.ag-help .ag-actions { display:grid; }
.ag-help .ag-actions a { width:100%; }
.ag-icon-card { padding:30px 24px; box-shadow:0 12px 32px #0b1b2208; min-height:220px; }
.ag-variant-list { display:grid; gap:14px; }
.ag-variant { position:relative; display:flex; align-items:center; gap:16px; padding:28px 24px; border:1px solid var(--line); border-radius:10px; background:white; box-shadow:0 6px 20px #0b1b2206; }
.ag-variant h3 { font-size:17px; }
.ag-variant p { margin-top:8px; }
.ag-composition .ag-variant .ag-price { white-space:nowrap; font-size:16px; margin-left:auto; }
.ag-composition .ag-price { color:var(--ink); font-size:20px; font-weight:700; }
.ag-composition .ag-recommended { border-color:var(--card-hover-line); background:#fffaf6; }
.ag-composition .ag-recommended .ag-symbol { color:var(--brand); }
.ag-comparison-wide .image-comparison.is-interactive .image-comparison__stage { aspect-ratio:3/1; }
.ag-composition .image-comparison { position:relative; width:100%; min-width:0; margin:0; }
/* Keep the reference composition compact; keyboard controls appear on focus. */
.ag-composition .image-comparison.is-interactive .image-comparison__controls { position:absolute; inset:auto 12px 12px; padding:12px; border-radius:8px; background:var(--paper); box-shadow:0 4px 20px #0b1b2226; opacity:0; pointer-events:none; }
.ag-composition .image-comparison.is-interactive .image-comparison__controls:focus-within { opacity:1; pointer-events:auto; }
.ag-work-list { padding:32px; box-shadow:0 12px 32px #0b1b2208; }
.ag-check-list { list-style:none; padding:0; margin:20px 0 0; }
.ag-check-list li { padding:12px 0 12px 26px; position:relative; font-size:14px; line-height:1.5; }
.ag-check-list li::before { content:"✓"; position:absolute; left:0; color:var(--brand); }
.ag-check-list li + li { border-top:1px solid var(--line); }
.ag-rail { position:relative; }
.ag-rail .media-gallery__track { gap:20px; grid-auto-columns:calc((100% - 40px)/3); padding:8px 0 18px; scroll-snap-type:x mandatory; align-items:stretch; }
.ag-rail--four .media-gallery__track { grid-auto-columns:calc((100% - 60px)/4); }
.ag-rail--five .media-gallery__track { grid-auto-columns:calc((100% - 80px)/5); }
.ag-rail .media-gallery__track > * { min-width:0; scroll-snap-align:start; margin:0; }
.ag-rail-media { aspect-ratio:4/3; border-radius:8px; overflow:hidden; }
.ag-rail-media img { width:100%; height:100%; object-fit:cover; }
.ag-rail .media-gallery__controls { justify-content:flex-end; margin-top:12px; }
.ag-price-card { position:relative; padding:28px 24px; min-height:230px; display:flex; flex-direction:column; gap:16px; overflow:visible; }
.ag-price-card h3 { font-size:17px; }
.ag-price-card .ag-price { margin-top:auto; padding-top:24px; }
.ag-composition .ag-badge { position:absolute; top:-10px; left:50%; transform:translateX(-50%); padding:3px 12px; border-radius:20px; color:white; background:var(--brand); font-size:10px; white-space:nowrap; }
.ag-review { padding:24px; min-height:290px; }
.ag-review__head { display:flex; align-items:center; gap:12px; margin-bottom:20px; }
.ag-review__head h3 { font-size:14px; }
.ag-composition .ag-avatar { flex:none; background:var(--ink); color:white; border-radius:50%; width:44px; height:44px; display:grid; place-items:center; font-size:24px; }
.ag-composition .ag-stars { color:var(--brand); white-space:nowrap; letter-spacing:2px; }
.ag-review .ag-caption { margin-top:20px; }
.ag-compact-facts { border:1px solid var(--line); border-radius:8px; padding:24px; gap:20px; }
.ag-compact-facts .ag-symbol { display:grid; place-items:center; width:16px; height:16px; border:1px solid currentColor; border-radius:50%; font-size:11px; margin-top:2px; }
.ag-compact-facts h3 { font-size:14px; }
.ag-compact-facts p { font-size:13px; }
.ag-step { position:relative; border-top:2px solid transparent; display:flex; flex-direction:column; padding:28px 24px; min-height:210px; box-shadow:0 12px 32px #0b1b2208; }
.ag-step h3 { margin-bottom:16px; }
.ag-composition .ag-step__number { color:var(--brand); font-size:26px; font-weight:700; align-self:flex-end; margin-top:auto; padding-top:24px; }
.ag-timeline { padding-bottom:32px; position:relative; }
@media (hover:hover) {
 .ag-step:hover { border-top-color:var(--card-hover-line); }
}
@media (hover:hover) and (prefers-reduced-motion:no-preference) {
 .ag-step:hover { transform:translateY(-6px); box-shadow:0 16px 32px #0b1b2214; }
}
.ag-timeline::after { content:""; position:absolute; bottom:0; left:2%; right:2%; height:1px; background:var(--line); }
.ag-horizontal-card { display:grid; grid-template-columns:minmax(0,40fr) minmax(0,60fr); }
.ag-horizontal-card .ag-card__media { height:100%; aspect-ratio:auto; }
.ag-horizontal-card .ag-card__copy { padding:20px 16px; }
.ag-material-card { min-height:280px; }
.ag-material-card .ag-card__copy { display:flex; flex-direction:column; }
.ag-composition .ag-material-marker { display:flex; align-items:flex-start; gap:8px; margin-top:auto; padding-top:24px; color:var(--brand); font-size:14px; font-weight:600; }
.ag-material-marker::before { content:"✓"; display:grid; place-items:center; flex:none; width:18px; height:18px; background:var(--brand); color:white; border-radius:50%; font-size:12px; }
.ag-horizontal-card h3 { font-size:20px; }
.ag-horizontal-card p { font-size:13px; }
.ag-client-review { padding:28px; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,2fr) auto; gap:24px; align-items:center; }
.ag-client-review .ag-review__head { margin:0; }
.ag-client-review > .ag-copy { border-left:1px solid var(--line); padding-left:24px; }
@media (hover:hover) and (prefers-reduced-motion:no-preference) {
 .ag-card,.ag-variant,.ag-disclosure { transition:transform var(--motion-base) var(--ease),box-shadow var(--motion-base) var(--ease),border-color var(--motion-base) var(--ease),background-color var(--motion-base) var(--ease); }
 .ag-card:hover,.ag-variant:hover,.ag-disclosure:hover { transform:translateY(-3px); border-color:var(--card-hover-line); box-shadow:0 12px 30px #0b1b2210; }

}
@media (prefers-reduced-motion:no-preference) {
 .ag-disclosure[open] > p { animation:ag-faq-open var(--motion-base) var(--ease); }
 .ag-composition .reveal-enter:nth-child(2) { animation-delay:60ms; }
 .ag-composition .reveal-enter:nth-child(3) { animation-delay:120ms; }
 .ag-composition .reveal-enter:nth-child(4) { animation-delay:180ms; }
}
@keyframes ag-faq-open { from { opacity:.4; transform:translateY(-4px); } to { opacity:1; transform:none; } }
@media (max-width:1023px) {
 .ag-composition { padding-block:56px; }
 .ag-composition h1 { font-size:36px; }
 .ag-composition h2 { font-size:30px; }
 .ag-split-layout { gap:28px; }
 .ag-grid--3,.ag-grid--4,.ag-grid--5 { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .ag-hero-strip { margin-top:24px; }
 .ag-hero .ag-hero-facts { grid-template-columns:1fr; }
 .ag-hero-facts .ag-feature { gap:12px; }
 .ag-icon-card { padding:24px; min-height:180px; }
 .ag-variant { flex-wrap:wrap; padding:20px; }
 .ag-variant .ag-copy { flex:1; }
 .ag-variant .ag-price { flex-basis:100%; padding-left:36px; }
 .ag-ribbons { grid-template-columns:repeat(5,minmax(0,1fr)); }
 .ag-ribbon { min-height:300px; }
 .ag-ribbon .ag-text-link { inset-inline:8px; font-size:11px; }
 .ag-horizontal-card { grid-template-columns:1fr; }
 .ag-horizontal-card .ag-card__media { aspect-ratio:1.6; }
 .ag-rail .media-gallery__track { grid-auto-columns:calc((100% - 20px)/2); }
 .ag-panel-copy { padding:28px; }
 .ag-stat__value { font-size:30px; }
 .ag-overlap { margin-top:24px; }
 .ag-client-review { grid-template-columns:minmax(0,1fr) minmax(0,2fr); }
 .ag-client-review > .ag-stars { grid-column:2; }
 .ag-hero--case .ag-hero-layout { grid-template-columns:1fr 1fr; }
}
@media (max-width:767px) {
 .ag-composition { padding-block:40px; }
 .ag-composition h1 { font-size:34px; }
 .ag-composition h2 { font-size:28px; }
 .ag-section-heading { margin-bottom:24px; }
 .ag-composition .ag-eyebrow { font-size:11px; margin-bottom:12px; }
 .ag-split-layout,.ag-hero--case .ag-hero-layout { grid-template-columns:minmax(0,1fr); gap:24px; }
 .ag-grid--2,.ag-grid--3,.ag-grid--4,.ag-grid--5 { grid-template-columns:minmax(0,1fr); }
 .ag-hero-media { aspect-ratio:1.5; }
 .ag-hero--detail .ag-hero-media { aspect-ratio:1.5; }
 .ag-hero-copy .ag-actions .wp-block-button { flex:1 1 180px; }
 .ag-hero-copy .ag-actions a { width:100%; }
 .ag-hero-strip { display:grid; grid-auto-flow:column; grid-template-columns:none; grid-auto-columns:86%; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:12px; }
 .ag-hero-strip > * { scroll-snap-align:start; }
 .ag-popular .ag-grid { grid-template-columns:minmax(0,1fr); }
 .ag-ribbons { display:grid; grid-auto-flow:column; grid-template-columns:none; grid-auto-columns:44%; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:12px; }
 .ag-ribbon { scroll-snap-align:start; min-height:280px; }
 .ag-ribbon .ag-text-link { font-size:14px; inset-inline:14px; }
 .ag-strip .ag-feature + .ag-feature { border-left:0; padding-left:0; }
 .ag-strip { gap:20px; }
 .ag-hero .ag-hero-facts { grid-template-columns:1fr; }
 .ag-mosaic { grid-template-columns:minmax(0,1fr); }
 .ag-mosaic > :nth-child(n) { grid-column:auto; }
 .ag-mosaic .ag-card__media { height:auto; aspect-ratio:1.8; }
 .ag-project-mosaic { grid-template-columns:minmax(0,1fr); }
 .ag-project-mosaic.media-gallery__track { grid-template-columns:none; grid-auto-flow:column; grid-auto-columns:90%; overflow-x:auto; padding-block:4px 16px; scroll-snap-type:x mandatory; }
 .ag-project-mosaic > :first-child { grid-row:auto; }
 .ag-project-mosaic > :first-child .ag-card__media { min-height:0; flex:auto; aspect-ratio:1.5; }
 .ag-project-mosaic > :not(:first-child) .ag-card__media { aspect-ratio:1.8; }
 .ag-overlay-card { min-height:340px; }
 .ag-overlay-card .ag-card__copy { padding:28px; max-width:90%; }
 .ag-stats { margin-top:24px; }
 .ag-stat + .ag-stat { border-left:0; border-top:1px solid var(--line); }
 .ag-stat { padding:24px; }
 .ag-icon-card { min-height:0; }
 .ag-comparison-wide .image-comparison.is-interactive .image-comparison__stage { aspect-ratio:4/3; }
 .ag-rail .media-gallery__track { grid-auto-columns:90%; gap:16px; }
 .ag-rail-media { aspect-ratio:4/3; }
 .ag-price-card { min-height:240px; }
 .ag-review { min-height:280px; }
 .ag-client-review { grid-template-columns:minmax(0,1fr); }
 .ag-client-review > .ag-copy { border-left:0; border-top:1px solid var(--line); padding:20px 0 0; }
 .ag-client-review > .ag-stars { grid-column:auto; }
 .ag-horizontal-card { grid-template-columns:minmax(0,1fr); }
 .ag-horizontal-card .ag-card__media { aspect-ratio:1.6; height:auto; }
 .ag-panel-media { min-height:0; aspect-ratio:1.4; }
 .ag-panel-copy { padding:24px; }
 .ag-dark-panel .ag-actions .wp-block-button { flex:1 1 100%; }
 .ag-dark-panel .ag-actions a { width:100%; }
 .ag-help .ag-actions { display:flex; }
 .ag-compact-facts { padding:20px; }
 .ag-choice-row { padding:20px 16px; gap:12px; }
 .ag-work-list { padding:24px; }
 .ag-step { min-height:180px; }
 @media (hover:hover) {
 .ag-step:hover { border-top-color:var(--card-hover-line); }
}
@media (hover:hover) and (prefers-reduced-motion:no-preference) {
 .ag-step:hover { transform:translateY(-6px); box-shadow:0 16px 32px #0b1b2214; }
}
.ag-timeline::after { display:none; }
}
@media (prefers-reduced-motion:reduce) {
 .ag-composition *, .ag-composition *::before, .ag-composition *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
}

.ag-inquiry-preview fieldset { min-width:0; border:0; margin:24px 0 12px; padding:0; }
.ag-inquiry-preview legend { font-size:12px; color:#d6dfe2; margin-bottom:16px; }
.ag-inquiry-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.ag-inquiry-fields label { min-width:0; display:grid; gap:6px; font-size:12px; }
.ag-inquiry-wide { grid-column:1/-1; }
.ag-inquiry-fields :is(input,textarea) { width:100%; min-width:0; min-height:48px; padding:12px; border:1px solid #879499; border-radius:4px; background:#f5f7f8; opacity:1; font:inherit; resize:none; }
.ag-inquiry-preview button { margin-top:16px; width:100%; min-height:52px; padding:12px; background:var(--brand); color:var(--ink); border:0; border-radius:8px; font-size:14px; font-weight:650; cursor:not-allowed; opacity:1; }
.ag-help--form { position:relative; }
.ag-help--form > .ag-help__media { position:absolute; inset:0; width:100%; height:100%; aspect-ratio:auto; opacity:.18; }
.ag-help--form > .ag-panel-copy { position:relative; }
@media(max-width:1023px) and (min-width:768px) {
 .ag-mosaic { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .ag-mosaic > :nth-child(n) { grid-column:auto; }
 .ag-mosaic > :last-child:nth-child(n) { grid-column:1/-1; }
}

@media (max-width:1023px) {
 .ag-composition.ag-section--close-bottom { padding-bottom:28px; }
 .ag-composition.ag-section--close-top { padding-top:28px; }
}
@media (max-width:767px) {
 .ag-composition.ag-section--close-bottom { padding-bottom:20px; }
 .ag-composition.ag-section--close-top { padding-top:20px; }
 .ag-hero .ag-icon-facts { grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
 .ag-icon-facts .ag-feature h3 { font-size:15px; }
 .ag-icon-facts .ag-fact-icon { width:60px; height:60px; }
 .ag-material-card { min-height:0; }
}
@media (max-width:420px) { .ag-hero .ag-actions { grid-template-columns:minmax(0,1fr); } }

/* Small source icons stay editable images in the block content. */
.ag-inline-icon { flex:none; width:40px; height:40px; margin:0; }
.ag-inline-icon img { display:block; width:100%; height:100%; object-fit:contain; }
.ag-icon-card .ag-inline-icon { width:48px; height:48px; }
.ag-hero .ag-inline-facts { grid-template-columns:repeat(3,minmax(0,1fr)); }
.ag-composition .ag-variant > .ag-symbol { width:14px; height:14px; flex:none; font-size:0; background:#d4dbe1; border:1px solid transparent; border-radius:50%; transition:background-color var(--motion-base) var(--ease),border-color var(--motion-base) var(--ease); }
.ag-composition .ag-variant.ag-recommended > .ag-symbol { background:var(--brand); }
.ag-composition .ag-variant-recommendation { flex:none; border-radius:6px; padding:4px 8px; background:#fff0e4; color:#d65300; font-size:11px; font-weight:600; }
.ag-composition .ag-price-card.ag-recommended { background:white; }
@media (hover:hover) {
 .ag-composition .ag-variant:not(.ag-recommended):hover > .ag-symbol { background:white; border-color:#aab4bd; }
}
@media (max-width:767px) {
 .ag-hero .ag-inline-facts { grid-template-columns:minmax(0,1fr); }
 .ag-variant-recommendation { margin-left:36px; }
}

/* Direction compositions: reusable named variants, editable block content. */
.ag-composition .ag-eyebrow::before { content:""; display:inline-block; width:24px; height:1px; margin-right:12px; vertical-align:middle; background:var(--brand); opacity:.6; }
.ag-direction .ag-strip .ag-feature { align-items:center; }
.ag-direction .ag-strip .ag-feature + .ag-feature { border:0; padding-left:0; }
.ag-direction .ag-strip .ag-symbol { font-size:21px; font-weight:400; line-height:1; padding-right:14px; border-right:1px solid #ff650080; }
.ag-direction .ag-strip h3 { font-size:14px; font-weight:400; line-height:1.4; color:var(--copy); }
.ag-captioned-media { position:relative; min-width:0; overflow:hidden; }
.ag-captioned-media > figure { width:100%; }
.ag-composition .ag-media-note { position:absolute; top:20px; right:20px; max-width:140px; z-index:2; color:white; font-size:12px; line-height:1.4; text-transform:uppercase; }
.ag-media-note::after { content:""; display:block; width:22px; height:1px; background:var(--brand); margin-top:10px; }
.ag-direction-services .ag-card--dark { display:flex; flex-direction:column; background:transparent; }
.ag-direction-services .ag-card--dark .ag-card__copy { flex:1; background:rgb(48 54 55 / .82); }
.ag-direction-services .ag-card--dark .ag-captioned-media::after { content:""; position:absolute; inset:0; background:#0004; pointer-events:none; transition:opacity var(--motion-base) var(--ease); }
@media(hover:hover) { .ag-direction-services .ag-card--dark:hover .ag-captioned-media::after { opacity:0; } }
.ag-direction .ag-text-link a { text-decoration:none; }
.ag-arrow a::after,.ag-arrow .wp-block-button__link::after,.ag-choice-row::after { content:"→"; display:inline-block; margin-left:12px; color:var(--brand); font:400 14px/1 Arial,sans-serif; transition:transform var(--motion-base) var(--ease),color var(--motion-base) var(--ease); }
@media(hover:hover) and (prefers-reduced-motion:no-preference) { .ag-arrow a:hover::after { transform:translateX(5px); } }
.ag-composition.ag-selection { background:white; }
.ag-selection .ag-choice-row { padding:16px 20px; align-items:center; border-color:transparent; box-shadow:0 4px 18px #0b1b220b; transition:background var(--motion-base) var(--ease),box-shadow var(--motion-base) var(--ease); }
.ag-selection .ag-choice-row .ag-symbol { font-size:21px; font-weight:400; line-height:1; padding-right:14px; border-color:#ff650080; min-height:48px; display:flex; align-items:center; }
.ag-selection .ag-choice-row h3 { font-size:16px; }
.ag-selection .ag-choice-row .ag-text-link { margin-top:4px; }
.ag-selection .ag-choice-row .ag-text-link a { min-height:24px; }
.ag-selection .ag-choice-row::after { margin-left:auto; }
@media(hover:hover) { .ag-selection .ag-choice-row:hover { box-shadow:none; background:#f4f6f7; } }
.ag-direction-projects .ag-card { position:relative; background:transparent; }
.ag-direction-projects .ag-card__copy { flex:0 0 auto; padding:14px; gap:8px; background:rgb(48 54 55 / .82); }
.ag-direction-projects .ag-card__copy .ag-text-link { padding-top:0; margin-top:0; }
.ag-direction-projects .ag-project-mosaic > :first-child .ag-card__media { min-height:240px; }
.ag-direction-projects .ag-project-mosaic > :not(:first-child) .ag-card__media { height:auto; min-height:90px; flex:1; aspect-ratio:auto; }
.ag-composition .ag-project-number { position:absolute; top:16px; left:16px; z-index:2; color:white; font-size:12px; }
.ag-project-number::after { content:""; display:inline-block; width:24px; height:1px; background:var(--brand); vertical-align:middle; margin-left:10px; }
.ag-project-tags { display:flex; flex-wrap:wrap; gap:6px; }
.ag-project-tags span { border:1px solid #ffffff60; padding:2px 7px; border-radius:20px; font-size:10px; line-height:1.4; }
.ag-project-subtitle { font-size:18px!important; }
.ag-why-compact .ag-media { aspect-ratio:2.2; }
.ag-why-compact h2::after,.ag-why-compact .ag-stat p:last-child::after { content:""; display:block; width:36px; height:1px; background:#ff650080; margin-top:18px; }
.ag-why-compact .ag-stat p:last-child::after { margin:14px auto 0; }
.ag-direction-faq .ag-disclosure { background:#f6f8f9; }
.ag-direction-faq .ag-disclosure summary strong { color:var(--copy); font-size:14px; font-weight:400; }
.ag-direction-faq .ag-disclosure summary::after { display:grid; place-items:center; width:22px; height:22px; border:1px solid currentColor; border-radius:50%; font-size:18px; line-height:1; }
.ag-direction-faq .ag-disclosure[open] summary strong,.ag-direction-faq .ag-disclosure[open] summary::after { color:var(--brand); }
@media(hover:hover) { .ag-direction-faq .ag-disclosure:hover summary strong { color:var(--brand); } }
.ag-direction-faq .ag-help .wp-block-button__link { color:white; }
.ag-direction-faq .ag-help .ag-arrow a::after { color:white; }
.ag-direction-cta .ag-dark-panel > .ag-split-layout { grid-template-columns:minmax(0,62fr) minmax(0,38fr); align-items:center; }
.ag-direction-cta .ag-panel-media { aspect-ratio:1; height:auto; min-height:0; }
.ag-direction-cta .ag-panel-copy { padding:32px; }
.ag-direction-cta .ag-strip { border:0; padding:12px 0; gap:20px; }
.ag-direction-cta .ag-strip h3 { color:white; font-weight:600; }
.ag-direction-cta .ag-strip .ag-feature { flex-direction:column; align-items:flex-start; gap:12px; }
.ag-direction-cta .ag-strip .ag-feature + .ag-feature { border:0; padding:0; }
.ag-direction-cta .ag-trust-strip { border:1px solid #ffffff30; border-radius:10px; padding:20px; background:#ffffff04; margin:0; }
.ag-direction-cta .ag-trust-strip .ag-feature { flex-direction:row; align-items:center; }
.ag-cta-icon { width:32px; height:32px; margin:0; flex:none; }
.ag-cta-icon img { display:block; width:100%; height:100%; }
.ag-direction-cta .ag-actions { align-items:center; }
.ag-direction-cta .ag-actions .ag-action:not(.ag-messenger) a { color:white; text-decoration:none; }
.ag-direction-cta .ag-actions .ag-action:not(.ag-messenger) a::after { color:white; }
.ag-direction-cta .ag-actions .ag-messenger a { padding:8px 0; border:0; background:none; color:white; text-decoration:underline; text-underline-offset:6px; }
.ag-messenger a::after { color:#b7c0c4; }
@media(hover:hover) { .ag-messenger a:hover::after { color:var(--brand); } }
@media(max-width:767px) {
 .ag-direction-cta .ag-dark-panel > .ag-split-layout { grid-template-columns:minmax(0,1fr); }
 .ag-direction-cta .ag-panel-copy { padding:24px; }
 .ag-direction-projects .ag-project-mosaic > :first-child .ag-card__media { min-height:0; }
 .ag-direction-projects .ag-project-mosaic > :not(:first-child) .ag-card__media { height:auto; aspect-ratio:1.5; }
 .ag-direction-cta .ag-trust-strip .ag-feature { flex-direction:row; }
}

.ag-direction-projects .ag-card__copy p { font-size:13px; }
.ag-direction-cta .ag-actions .ag-messenger a::after { color:#b7c0c4; }
@media(hover:hover) { .ag-direction-cta .ag-actions .ag-messenger a:hover::after { color:var(--brand); } }
@media(hover:hover) and (prefers-reduced-motion:no-preference) { .ag-selection .ag-choice-row:hover::after { transform:translateX(5px); } }

/* Photos fill bounded cards; translucent copy overlays the same photo. */
.ag-direction-services .ag-service-caption-card { position:relative; min-height:380px; justify-content:flex-end; }
.ag-direction-services .ag-service-caption-card > .ag-captioned-media { position:absolute; inset:0; }
.ag-direction-services .ag-service-caption-card .ag-captioned-media > .ag-card__media { height:100%; aspect-ratio:auto; }
.ag-direction-services .ag-service-caption-card > .ag-card__copy { position:relative; z-index:2; flex:0 0 auto; background:rgb(38 44 46 / .72); }
.ag-direction-projects .ag-project-mosaic { grid-template-rows:repeat(2,270px); }
.ag-direction-projects .ag-project-mosaic > .ag-card { justify-content:flex-end; min-height:0; }
.ag-direction-projects .ag-project-mosaic > .ag-card > .ag-card__media { position:absolute; inset:0; margin:0; width:100%; height:100%; min-height:0; aspect-ratio:auto; }
.ag-direction-projects .ag-project-mosaic > .ag-card > .ag-card__copy { position:relative; z-index:1; flex:0 0 auto; background:rgb(38 44 46 / .72); }
@media(max-width:1023px) and (min-width:768px) { .ag-direction-projects .ag-project-mosaic { grid-template-rows:repeat(2,310px); } }
@media(max-width:767px) { .ag-direction-projects .ag-project-mosaic { grid-template-rows:420px; } }
