/* ============================================================
   ALIFY — WordPress bridge v1.2
   Dynamic ACF content mapped onto the exact demo-2 visual system.
   Reference tokens/fonts/components remain authoritative.
   ============================================================ */

/* WordPress chrome */
.admin-bar .site-header{top:32px}@media(max-width:782px){.admin-bar .site-header{top:46px}}
.screen-reader-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Brand: keep supplied reference typography unless a custom logo is deliberately uploaded. */
.brand__image{display:block;width:auto;max-width:190px;height:30px;object-fit:contain}.footer__brand .brand__image{height:34px;max-width:220px}.pushmenu__top .brand__image{height:30px;max-width:190px}

/* Breadcrumb bridge: rendered with the same slash-separated editorial treatment as case studies. */
.crumbs-wrap{max-width:var(--container-w);margin:calc(var(--header-h) + 1.25rem) auto 0;padding-inline:var(--gutter)}
.crumbs{display:flex;align-items:center;flex-wrap:wrap;gap:.55rem;list-style:none;font-family:var(--ff-mono);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.crumbs a{text-decoration:none;color:var(--muted);transition:color .25s}.crumbs a:hover{color:var(--green)}.crumbs .sep{color:var(--faint)}
.crumbs-wrap + .section{padding-top:clamp(2rem,5vw,4rem)}

/* ACF sections should feel like the static reference, never boxed by default. */
.alify-ref-section{position:relative;overflow:hidden}.alify-ref-section .section__head-side p{max-width:34ch;margin-left:auto}
.alify-ref-section .section__head-side .muted p+ p{margin-top:.75rem}
.alify-ref-section .prose{max-width:70ch}

/* Editorial split used for narrative sections where ACF content has no repeaters. */
.alify-editorial-split{display:grid;gap:2rem;border-top:1px solid var(--line);padding-top:1.5rem}
.alify-editorial-split__label{font-family:var(--ff-mono);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--teal-2)}
.alify-editorial-split__body{max-width:72ch;color:rgba(236,236,228,.8)}
@media(min-width:1024px){.alify-editorial-split{grid-template-columns:220px minmax(0,1fr);gap:clamp(3rem,7vw,7rem)}}

/* Capability / industry links are the reference capability strip, now clickable. */
.alify-cap-strip .cap{display:block;text-decoration:none;min-height:220px;transition:background .3s,transform .3s}
.alify-cap-strip .cap:hover{background:var(--panel);transform:translateY(-3px)}
.alify-cap-strip .link-arrow{margin-top:1.2rem}

/* Dynamic empty states — editorial, not generic cards. */
.alify-empty{padding:clamp(1.5rem,3vw,2.25rem);border-block:1px solid var(--line);background:linear-gradient(90deg,rgba(56,65,102,.12),transparent);font-family:var(--ff-mono);font-size:.78rem;letter-spacing:.06em;color:var(--muted)}

/* Home stats with descriptive content rather than fake numeric proof. */
.alify-stats-copy .stat__num{font-size:clamp(2.2rem,5vw,4.2rem);-webkit-text-stroke:1px rgba(12,220,42,.5);color:transparent}
.alify-stats-copy .stat__label{line-height:1.55}.alify-stats-copy .stat__label strong{display:inline-block;margin-bottom:.35rem}

/* Technology chip cloud */
.alify-tags{gap:.65rem;max-width:900px}.alify-tags .chip{margin:0}

/* Forms keep the reference panel proportions and never overflow containers. */
.alify-form-feature,.contact-form-col .form-panel{max-width:760px;width:100%;margin-inline:auto}.form-panel{overflow:hidden}
.alify-field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.alify-field-grid .field--full{grid-column:1/-1}
.alify-form .hp-field{position:absolute!important;left:-9999px!important;opacity:0!important;pointer-events:none!important}.alify-form__status{margin-top:1rem;min-height:1.5rem}.alify-form__status.is-error{color:#ff9b9b}.alify-form__status.is-ok{color:var(--green)}

/* Service page: project proof slider uses home component CSS. */
.sv-hero .display{max-width:13ch}.sv-card .btn{width:100%;justify-content:center}.sv-card__price{font-size:clamp(1.25rem,2.2vw,1.7rem)}

/* Project archive/single WordPress output. */
.pf-grid{align-items:start}.pf-card{text-decoration:none}.pf-card__result{display:block}
.cs-hero__title{font-family:var(--ff-display);font-size:clamp(2.5rem,5vw,4.35rem);font-weight:600;line-height:1.02;letter-spacing:-.02em;color:var(--off);text-wrap:balance}
.cs-hero__title em{font-family:var(--ff-accent);font-style:italic;font-weight:500;background:linear-gradient(100deg,var(--green),var(--teal-2));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}

/* Team link cards from reference about.css */
.team-card{display:block;text-decoration:none}.team-card__tile img{width:100%;height:100%;object-fit:cover}.team-card__name,.team-card__role{display:block}

/* Testimonials */
.t-card__quote{margin:0}.t-card__stars{font-family:var(--ff-mono);letter-spacing:.18em}.tm-hero .score-panel{max-width:420px}

/* Contact — keep the form and contact details aligned to reference widths. */
.contact-hero .display{max-width:13ch}.contact-bigmail a{color:inherit;text-decoration:none}.contact-grid{align-items:start}

/* Pricing cards generated from ACF engagement sections. */
.price-card__desc{min-height:8.5em}.price-card .btn--block{width:100%;justify-content:center}

/* CTA bands should use reference spacing exactly and avoid nested section padding collisions. */
.cta-band .btn-row{display:flex;gap:1rem;flex-wrap:wrap;margin-top:1.6rem}.cta-band__note p+ p{margin-top:.8rem}

/* WP single-post body polish */
.article-wrap{min-width:0}.post-layout{align-items:start}.post-hero__title{text-wrap:balance}

/* Popups */
.alify-popup-form{margin-top:1.5rem}.modal__panel{max-height:min(90vh,850px);overflow:auto}

/* Legal */
.alify-legal-section{scroll-margin-top:110px}.legal-body .alify-legal-section+.alify-legal-section{margin-top:3rem}.legal-body .alify-legal-section h2{margin-bottom:1rem}.alify-schema-note{display:none}

/* Images: preserve demo-2 editorial crop and tint; don't stretch portrait uploads. */
/* Reference base.css owns .square and .media-frame aspect/crop behavior. */

/* Responsive: reference stays asymmetric on desktop, but centered/controlled on small screens. */
@media(max-width:1023px){
  .section__head-side{text-align:left;justify-self:start}.alify-ref-section .section__head-side p{margin-left:0}
  .sv-hero__card{max-width:640px}.contact-info{position:static!important}
}
@media(max-width:768px){
  .brand__image{height:26px;max-width:160px}
  .hero__grid,.sv-hero__grid,.hub-hero__grid,.about-hero__grid,.contact-grid,.pricing-hero__grid,.faq-hero__grid,.tm-hero__grid,.blog-hero__grid,.quote-hero__grid,.cs-hero__grid{grid-template-columns:1fr!important}
  .hero__main,.hero__media,.sv-hero__main,.sv-hero__card{grid-column:auto!important}
  .hero__media{margin-top:.5rem;max-width:100%}
  .hero__meta{gap:.65rem 1rem}.hero__meta-line{font-size:.66rem}
  .section__head{gap:1.25rem}.section__head-side{text-align:left!important}
  .alify-field-grid{grid-template-columns:1fr}.alify-field-grid .field{grid-column:1/-1}
  .cta-band__grid{grid-template-columns:1fr!important}.cta-band__side{margin-top:1.5rem}
  .price-card__desc{min-height:0}
  .crumbs-wrap{margin-top:calc(var(--header-h) + .75rem)}
}
@media(max-width:520px){
  :root{--gutter:1.1rem;--section:3.75rem}
  body{font-size:1rem}.display{font-size:clamp(2.65rem,14vw,4rem)}h1{font-size:clamp(2.35rem,11vw,3.4rem)}h2{font-size:clamp(1.95rem,9vw,2.65rem)}
  .hero{min-height:auto;padding-top:calc(var(--header-h) + 3.5rem)}.hero__inner{padding-bottom:2.5rem}.hero__lead-row{align-items:flex-start}
  .hero__actions,.btn-row{width:100%}.hero__actions .btn,.btn-row .btn{flex:1 1 100%;justify-content:center}
  .svc-index__row{gap:1rem;padding-block:1.35rem}.svc-index__name{font-size:1.45rem}
  .media-caption{font-size:.62rem}.sv-card__body{padding:1.25rem}.sv-card__top{padding:1.25rem}
}

/* ============================================================
   ALIFY v1.2 — reference-first rebuild additions
   ============================================================ */

/* Polished proof / empty state: never expose admin instructions. */
.alify-proof-empty{
  display:grid;gap:clamp(2rem,5vw,5rem);align-items:center;
  padding-block:clamp(1rem,3vw,2rem);
}
@media(min-width:900px){.alify-proof-empty{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}.alify-proof-empty .media-frame{max-width:560px}}
.alify-proof-empty h2{margin-top:1rem;max-width:14ch}.alify-proof-empty .lead{margin-top:1.25rem;max-width:58ch}

/* Industry archive uses the portfolio card language, with calmer crop/metadata. */
.alify-industry-grid .pf-card__line>span:first-child{max-width:48ch;color:var(--muted)}

/* Team portraits can replace the reference typographic tile without breaking proportions. */
.team-card__tile--image{padding:0;overflow:hidden;background:var(--panel)!important}.team-card__tile--image img{width:100%;height:100%;object-fit:cover;filter:saturate(.9) contrast(1.03);transition:transform .6s cubic-bezier(.22,1,.36,1),filter .4s}.team-card:hover .team-card__tile--image img{transform:scale(1.045);filter:saturate(1.05) contrast(1.05)}

/* AI + Data band keeps reference asymmetry and strong navy contrast. */
.alify-ai-data .story__body .prose{max-width:62ch}.alify-ai-data .tags{max-width:720px}

/* Thank-you is a deliberate success state, not another generic form section. */
.alify-thanks-success{max-width:720px;border:1px solid rgba(12,220,42,.3);background:linear-gradient(145deg,rgba(12,220,42,.08),rgba(56,65,102,.12));padding:clamp(1.4rem,3vw,2rem);border-radius:8px}.alify-thanks-success>i{font-size:2.2rem;color:var(--green);margin-bottom:1rem}.alify-thanks-success h3{font-family:var(--ff-display);font-size:1.45rem;margin-bottom:.5rem}.alify-thanks-success p{color:var(--muted)}

/* Reference spacing fixes for dynamic screen compositions. */
.pricing-hero .lead{max-width:760px}.pricing-hero__aside{display:flex;align-items:flex-end}.pricing-hero__aside .chip{white-space:nowrap}
.sv-hero__card>.media-frame{min-height:100%;height:100%}.sv-hero__card>.media-frame img{height:100%;min-height:420px}
.related-grid .related-card{min-height:260px}.related-card__text{display:block;color:var(--muted);line-height:1.55;margin-top:.85rem}.related-card .link-arrow{margin-top:auto;padding-top:1.4rem}

/* Keep the contact and quote forms wide enough, without fluid overflow. */
.contact-form-col .form-panel,.quote-form .form-panel{width:100%;max-width:none}.quote-layout{align-items:start}.quote-aside{position:sticky;top:calc(var(--header-h) + 1.5rem)}

/* Footer/newsletter compact form should never inherit the 2-col form grid. */
.footer__news .alify-form,.price-band__side .alify-form.nl{display:flex;align-items:center;position:relative}.footer__news .alify-form .hp-field,.price-band__side .alify-form .hp-field{display:none!important}
.price-band__side .alify-form.nl{min-width:min(100%,360px)}

/* Avoid excessively tall SEO excerpts inside service rows. */
.svc-index__meta{max-width:42ch;line-height:1.45}

/* Project archive empty proof and project single media. */
.cs-hero__media{margin-top:clamp(2rem,5vw,4rem);aspect-ratio:16/9}.cs-hero__media img{height:100%;width:100%;object-fit:cover}.cs-meta{margin-top:clamp(2rem,4vw,3.5rem)}

/* The v1 seed contains some very long prose. Keep editorial measure intentional. */
.kick__body.prose{max-width:74ch}.story__body .prose{max-width:68ch}.section__head-side{max-width:38ch}

@media(max-width:1023px){
  .quote-aside{position:static}.alify-proof-empty{gap:2rem}.sv-hero__card>.media-frame img{min-height:320px}
}
@media(max-width:768px){
  .alify-proof-empty{grid-template-columns:1fr}.related-grid{grid-template-columns:1fr!important}.pricing-hero__aside{justify-self:start}.price-band__side .alify-form.nl{min-width:0;width:100%}
  .faq-layout{grid-template-columns:1fr!important}.faq-aside{position:static!important}.faq-aside__box{position:static!important;margin-bottom:2rem}.faq-aside__nav{display:flex!important;overflow:auto;gap:.5rem;padding-bottom:.5rem}.faq-aside__nav a{white-space:nowrap;border:1px solid var(--line);padding:.6rem .8rem;border-radius:99px}
}

/* Team single — use a brand tile rather than a fake portrait when no headshot is published. */
.alify-team-single-tile{min-height:min(62vw,620px);display:grid;place-items:center;border-radius:var(--r);background:linear-gradient(145deg,var(--navy),var(--ink2));border:1px solid var(--line);font-family:var(--ff-display);font-size:clamp(5rem,14vw,11rem);font-weight:700;letter-spacing:-.06em;color:var(--sand);overflow:hidden;position:relative}
.alify-team-single-tile::after{content:"ALIFY";position:absolute;right:-.04em;bottom:-.15em;font-family:var(--ff-display);font-size:clamp(4rem,10vw,8rem);color:rgba(255,255,255,.035);letter-spacing:-.08em}
.alify-generic-prose{max-width:860px;margin-inline:auto}

/* Service problems are editorial rows, not oversized empty cards. */
.alify-problem-list{border-top:1px solid var(--line)}
.alify-problem{display:grid;grid-template-columns:54px minmax(0,1fr) auto;gap:1.25rem;align-items:center;padding:1.25rem 0;border-bottom:1px solid var(--line);transition:padding-left .3s,color .3s}
.alify-problem:hover{padding-left:.5rem;color:var(--green)}
.alify-problem__num{font-family:var(--ff-mono);font-size:.68rem;letter-spacing:.14em;color:var(--faint)}
.alify-problem p{margin:0;font-size:clamp(1rem,1.4vw,1.18rem);line-height:1.45;color:var(--off)}
.alify-problem i{font-size:1.1rem;color:var(--teal-2)}
@media(max-width:600px){.alify-problem{grid-template-columns:38px minmax(0,1fr) auto;gap:.75rem}}

/* Project single fallback is branded, never an unrelated stock/case-study image. */
.alify-project-placeholder{aspect-ratio:3/2;width:100%;display:grid;place-items:center;border-radius:var(--r);background:linear-gradient(135deg,var(--navy),var(--ink2));border:1px solid var(--line);font-family:var(--ff-display);font-size:clamp(4rem,9vw,7rem);font-weight:700;letter-spacing:-.06em;color:var(--sand);position:relative;overflow:hidden}
.alify-project-placeholder::after{content:"ALIFY";position:absolute;right:-.02em;bottom:-.16em;font-size:clamp(3.5rem,8vw,6rem);color:rgba(255,255,255,.035);letter-spacing:-.08em}
.cs-block__body .article-figure{margin-top:2.5rem}

/* Popup forms stay intentionally short; full briefs live on dedicated pages. */
.modal .alify-popup-form .alify-field-grid{grid-template-columns:1fr 1fr;gap:.8rem}
.modal .alify-popup-form .field__textarea{min-height:110px}
.modal .alify-popup-form .form__foot{margin-top:1rem}
.modal .alify-popup-form .form__note{font-size:.72rem}
.alify-popup-fullbrief{display:inline-flex;margin-top:1rem}
.modal--news .alify-popup-form .nl{width:100%}
@media(max-width:600px){.modal .alify-popup-form .alify-field-grid{grid-template-columns:1fr}.modal .alify-popup-form .alify-field-grid .field{grid-column:1/-1}}
