/* Adeo Marketing Web 2.0 — Adeo Apple convergence layer
 * Adeo identity. Apple discipline. Zero unnecessary noise.
 * Final project-wide rules after the legacy/refinement layers.
 */

:root{
  --space-1:8px;
  --space-2:16px;
  --space-3:24px;
  --space-4:32px;
  --space-6:48px;
  --space-8:64px;
  --space-12:96px;
  --space-16:128px;
  --radius-ui:16px;
  --radius-panel:22px;
  --section-space:clamp(4.5rem,8vw,7.5rem);
}

/* Global rhythm: hierarchy and whitespace before decoration. */
.section{padding-block:var(--section-space)!important}
.section--compact{padding-top:clamp(1.5rem,3vw,2.5rem)!important}
.section-heading{margin-bottom:clamp(1.75rem,4vw,3rem)}
.section-heading h2,.page-hero h1,.hero h1,.cta-panel h2{letter-spacing:-.018em!important;text-wrap:balance}
.hero__lead,.page-lead,.section-heading>p:last-child{max-width:68ch}
.section-heading--with-link{display:flex;align-items:end;justify-content:space-between;gap:var(--space-4);max-width:none}
.section-heading--with-link>div{max-width:820px}

/* Keep the homepage hero expressive, but calm. The fast aurora layer is not loaded. */
.section--hero{background:var(--theme-canvas,var(--bg,#0a0a0b))!important}
.section--hero::before{content:none!important}
.section--hero .hero__ambient{opacity:.72}
.signal--hero{
  position:static!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  width:min(220px,54vw)!important;
  max-width:none!important;
  margin:26px 0 0!important;
  transform:none!important;
  opacity:.56!important;
}

/* Interactive cards may remain cards. Remove ornamental edge competition. */
.service-grid .service-panel{
  border-color:var(--theme-line)!important;
  background:var(--theme-surface,rgba(255,255,255,.035))!important;
  box-shadow:none!important;
}
.service-grid .service-panel::before{opacity:0!important}
.service-grid .service-panel:hover,
.service-grid .service-panel:focus-visible{
  transform:translateY(-2px)!important;
  border-color:var(--theme-line-strong)!important;
  background:rgba(255,255,255,.052)!important;
  box-shadow:none!important;
}
html[data-theme="light"] .service-grid .service-panel:hover,
html[data-theme="light"] .service-grid .service-panel:focus-visible{background:#fff!important}

/* Trust logos are proof, not controls. No card boxes and no fake hover affordance. */
.client-logo-grid{gap:clamp(1.25rem,4vw,3.5rem)!important}
.client-logo{
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  transform:none!important;
  padding:.4rem!important;
}
.client-logo:hover{transform:none!important}
.client-logo img{opacity:.64;filter:grayscale(1);transition:opacity .2s ease,filter .2s ease!important}
.client-logo:hover img{opacity:.64;filter:grayscale(1);transform:none!important}

/* Cases now have real destinations, so their affordance is explicit and honest. */
a.case-card{display:block;color:inherit;text-decoration:none;box-shadow:0 24px 72px rgba(0,0,0,.26)!important;transition:border-color .25s ease!important}
a.case-card:hover,a.case-card:focus-visible{border-color:var(--theme-line-strong)!important}
a.case-card:hover .case-card__visual img{transform:scale(1.012)!important}
.case-card__visual img{transition:transform .55s var(--ease)!important}
.case-card__visual img.parallax-ready{translate:0 0!important;scale:1!important;will-change:auto!important}
.case-card__content{padding:clamp(1.35rem,3vw,2rem)!important}
.case-card__action{display:inline-flex!important;align-items:center;gap:8px;margin-top:18px;color:var(--theme-text)!important;font-size:.82rem!important;font-weight:700;text-transform:none!important;letter-spacing:0!important}
.case-card__action>span{transition:transform .2s var(--ease)}
a.case-card:hover .case-card__action>span{transform:translate(2px,-2px)}

/* Project hub: large editorial cases instead of another dense card grid. */
.case-index__intro{display:grid;grid-template-columns:minmax(150px,.4fr) minmax(0,1fr);gap:clamp(24px,6vw,90px);align-items:start;margin-bottom:clamp(2rem,5vw,4rem);padding-bottom:var(--space-4);border-bottom:1px solid var(--theme-line)}
.case-index__intro>p:last-child{max-width:62ch;margin:0;color:var(--theme-muted);font-size:1.04rem;line-height:1.7}
.case-index__grid{display:grid;gap:clamp(2.5rem,7vw,6.5rem)}
.case-preview{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:clamp(1.75rem,5vw,5rem);align-items:center;color:inherit;text-decoration:none}
.case-preview:nth-child(even){grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr)}
.case-preview:nth-child(even) .case-preview__visual{order:2}
.case-preview__visual{aspect-ratio:16/10;overflow:hidden;border-radius:var(--radius-panel);background:var(--theme-surface-raised)}
.case-preview__visual img{width:100%;height:100%;object-fit:cover;transition:transform .55s var(--ease)}
.case-preview:hover .case-preview__visual img{transform:scale(1.012)}
.case-preview__client{display:block;margin-bottom:12px;color:var(--adeo-stone,var(--champ));font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em}
.case-preview h2{margin:0;font-family:"Clash Display","DM Sans",sans-serif;font-size:clamp(2.2rem,4.8vw,4.7rem);line-height:1.02;letter-spacing:-.018em;text-wrap:balance}
.case-preview__footer{display:flex;justify-content:space-between;gap:20px;margin-top:24px;padding-top:18px;border-top:1px solid var(--theme-line);color:var(--theme-muted);font-size:.86rem}
.case-preview__footer>span:last-child{color:var(--theme-text);font-size:1.2rem;transition:transform .2s var(--ease)}
.case-preview:hover .case-preview__footer>span:last-child{transform:translate(2px,-2px)}

/* Individual case: visual first, verified scope second. */
.case-detail__hero .back-link{margin-bottom:26px}
.case-detail__visual{overflow:hidden;border-radius:clamp(20px,3vw,30px);background:var(--theme-surface-raised)}
.case-detail__visual img{width:100%;max-height:760px;object-fit:cover}
.case-detail__grid{display:grid;grid-template-columns:minmax(220px,.72fr) minmax(0,1.28fr);gap:clamp(2rem,7vw,7rem);align-items:start}
.case-detail__grid h2{margin:0;font-family:"Clash Display","DM Sans",sans-serif;font-size:clamp(2.4rem,5vw,5rem);line-height:1.02;letter-spacing:-.018em}
.case-detail__copy>p{max-width:68ch;margin:0;color:var(--theme-muted);font-size:clamp(1.05rem,1.5vw,1.18rem);line-height:1.75}
.case-scope{margin-top:clamp(2rem,5vw,3.5rem);padding-top:var(--space-3);border-top:1px solid var(--theme-line)}
.case-scope__label{margin:0 0 14px;color:var(--adeo-stone,var(--champ));font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em}
.case-scope ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.case-scope li{padding:9px 13px;border:1px solid var(--theme-line);border-radius:999px;color:var(--theme-text);font-size:.82rem}

/* About page values stay editorial rather than becoming another card grid. */
.values-grid--editorial .value-card:hover{transform:none!important}

/* Contact: direct details are content, the form is the actual focused surface. */
.contact-card{
  position:sticky;
  top:calc(var(--header) + 40px);
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
html[data-theme="light"] .contact-card{background:transparent!important;box-shadow:none!important}
.contact-card__item{padding-block:1.1rem!important;border-bottom:1px solid var(--theme-line)!important}

/* Forms need a clear boundary, generous padding and predictable controls. */
.form-card--premium{padding:clamp(1.35rem,4vw,2.25rem)!important;border-radius:var(--radius-panel)!important}
.form-card .ff-el-form-control{border-radius:var(--radius-ui)!important}
.form-card .ff-btn-submit{min-height:52px!important}

/* FAQ items are interactive disclosures; use a light divider treatment. */
.faq-list{gap:0!important;border-top:1px solid var(--theme-line)}
.faq-list details{
  padding:1.15rem 0!important;
  border:0!important;
  border-bottom:1px solid var(--theme-line)!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.faq-list details:hover,.faq-list details[open]{background:transparent!important}
html[data-theme="light"] .faq-list details{background:transparent!important;box-shadow:none!important}

/* Legal pages should read like documents, not content inside a large card. */
.legal-shell{max-width:880px!important}
.legal-panel{
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.legal-panel h2{margin-top:clamp(2.5rem,6vw,4rem)!important}
.legal-panel p{max-width:74ch;line-height:1.75}
.legal-panel a{text-decoration:underline;text-underline-offset:3px}
html[data-theme="light"] .legal-panel{background:transparent!important;box-shadow:none!important}

/* Guide cards are legitimate content units, but keep them calm. */
.guide-card,.related-guide-card,.next-article{box-shadow:none!important}
.guide-card:hover,.next-article:hover{transform:translateY(-1px)!important}
.related-guide-card{background:transparent!important;border-color:var(--theme-line)!important}
html[data-theme="light"] .related-guide-card{background:transparent!important;box-shadow:none!important}

/* CTA panels: one focused action, less decorative surface noise. */
.cta-panel--split{
  background:transparent!important;
  border:0!important;
  border-top:1px solid var(--theme-line)!important;
  border-bottom:1px solid var(--theme-line)!important;
  border-radius:0!important;
  box-shadow:none!important;
  padding-inline:0!important;
}
.cta-panel--split::before{content:none!important}

/* Newsletter remains a distinct chapter, but with contained, softer branding. */
.newsletter-band{
  border-radius:var(--radius-panel)!important;
  box-shadow:none!important;
  background:
    radial-gradient(circle at 0 0,rgba(255,92,0,.11),transparent 34%),
    radial-gradient(circle at 100% 100%,rgba(37,120,255,.09),transparent 38%),
    rgba(255,255,255,.025)!important;
}
.newsletter-band::before,.newsletter-band::after{opacity:.45}
html[data-theme="light"] .newsletter-band{
  background:
    radial-gradient(circle at 0 0,rgba(255,92,0,.065),transparent 34%),
    radial-gradient(circle at 100% 100%,rgba(37,120,255,.055),transparent 38%),
    #fff!important;
}

/* Pricing is a comparison task: cards are justified, but avoid unnecessary lift. */
.price-card{box-shadow:none!important}
.price-card:hover{transform:none!important}
.price-card--featured{border-color:rgba(255,92,0,.30)!important}

/* Motion is explanation, not decoration. */
[data-parallax-auto].parallax-ready{translate:0 0!important;will-change:auto!important}
.product-card{transform:rotate(-2deg)!important;transition:transform .3s var(--ease)!important}
.launch-card--premium{transform:rotate(-1.5deg)!important;transition:transform .3s var(--ease)!important}

/* Mobile: generous edge spacing and predictable stacks. */
@media(max-width:859px){
  .shell{width:min(calc(100% - 32px),var(--shell))!important}
  .section{padding-block:clamp(4rem,15vw,5.5rem)!important}
  .page-hero{padding-top:calc(var(--header) + 72px)!important}
  .section-heading--with-link{display:block}
  .section-heading--with-link>.text-link{margin-top:18px}
  .service-panel{min-height:0!important}
  .service-panel__number{margin-bottom:2.5rem!important}
  .case-card{top:calc(var(--header) + 12px)!important}
  .case-index__intro,.case-detail__grid{grid-template-columns:1fr;gap:18px}
  .case-preview,.case-preview:nth-child(even){grid-template-columns:1fr;gap:22px}
  .case-preview:nth-child(even) .case-preview__visual{order:0}
  .case-preview__visual{aspect-ratio:4/3}
  .contact-card{position:static}
  .newsletter-band{padding:40px 32px 44px!important;gap:32px!important}
  .newsletter-band>div{min-width:0}
  .newsletter-band h2{font-size:clamp(2.15rem,8.6vw,3.35rem)!important;line-height:1.03!important}
  .cta-panel--split{padding-block:2.25rem!important}
  .mobile-sticky-contact{border-radius:18px!important}
}

@media(max-width:520px){
  .shell{width:min(calc(100% - 28px),var(--shell))!important}
  .hero h1,.page-hero h1{overflow-wrap:normal;word-break:normal}
  .newsletter-band{padding:34px 24px 38px!important;border-radius:20px!important}
  .newsletter-form__row{grid-template-columns:1fr!important}
  .newsletter-form__row input,.newsletter-form__row button{min-height:54px!important;width:100%}
  .case-card__visual{height:48svh!important;min-height:280px!important}
  .case-preview h2{font-size:clamp(2rem,10vw,3rem)}
  .case-preview__footer{display:grid;grid-template-columns:1fr auto;align-items:center}
  .case-detail__visual{border-radius:20px}
  .form-card--premium{padding:1.25rem!important}
}

@media(prefers-reduced-motion:reduce){
  .service-panel,.guide-card,.next-article,.product-card,.launch-card--premium,.client-logo img,.case-preview__visual img,.case-card__visual img{transition:none!important}
}

/* V18 — interaction clarity, trust rhythm and small-screen hardening. */
.service-grid .service-panel{position:relative;padding-right:clamp(1.6rem,3vw,2.6rem)!important}
.service-grid .service-panel::after{
  content:"↗";
  position:absolute;
  top:22px;
  right:22px;
  color:var(--theme-muted);
  font-size:1rem;
  line-height:1;
  opacity:.72;
  transition:transform .2s var(--ease),color .2s ease,opacity .2s ease;
}
.service-grid .service-panel:hover::after,
.service-grid .service-panel:focus-visible::after{transform:translate(2px,-2px);color:var(--theme-text);opacity:1}

.client-logo-grid{
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  align-items:center!important;
  padding-block:clamp(1.6rem,3vw,2.4rem)!important;
  border-top:1px solid var(--theme-line);
  border-bottom:1px solid var(--theme-line);
}
.client-logo{min-height:72px!important;display:grid!important;place-items:center!important}
.client-logo img{width:auto!important;height:auto!important;max-width:min(132px,82%)!important;max-height:58px!important;object-fit:contain!important}

.newsletter-form,.newsletter-form__row,.newsletter-form__consent{min-width:0}
.newsletter-form__row input{min-width:0;width:100%}
.newsletter-form__consent{align-items:flex-start!important;gap:10px!important}
.newsletter-form__consent input{flex:0 0 auto;margin-top:.2rem}
.newsletter-form__consent span{overflow-wrap:anywhere}

@media(max-width:859px){
  .case-stack{display:grid!important;gap:18px!important}
  .case-stack .case-card{position:relative!important;top:auto!important}
  .client-logo-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:1rem 1.5rem!important}
  .client-logo{min-height:64px!important}
}

@media(max-width:520px){
  .section--hero{min-height:auto!important;padding-top:calc(var(--header) + 72px)!important}
  .section--hero .hero__ambient{opacity:.48}
  .service-grid .service-panel::after{top:18px;right:18px}
  .newsletter-band{padding:30px 20px 34px!important}
  .newsletter-form__consent span{font-size:.82rem!important;line-height:1.45!important}
  .cta-panel--split .button{width:100%;justify-content:center}
  .client-logo img{max-width:min(118px,78%)!important;max-height:52px!important}
}
