/* Reusable editorial section components. Requires editorial.css tokens. */
.ed-capabilities { display: grid; grid-template-columns: 1.1fr 1fr 1.1fr; gap: .75rem; }
.ed-capabilities__strategy { grid-row: span 2; display: flex; flex-direction: column; align-items: flex-start; }
.ed-square-icon { width: 3rem; height: 3rem; display: inline-grid; place-items: center; background: var(--ed-ink); color: var(--surface); border-radius: var(--ed-radius-md); margin-bottom: 1.5rem; }
.ed-square-icon svg { width: 1.5rem; height: 1.5rem; }
.ed-capabilities__strategy > p { margin-top: 1rem; font-size: var(--ed-body); line-height: 1.5; }
.ed-stack { width: 100%; margin: auto 0; padding-block: 2rem; }
.ed-stack span { display: flex; justify-content: space-between; gap: 1rem; padding: 1rem; border-radius: var(--ed-radius-sm); font-size: var(--ed-label); background: var(--ed-canvas); border: 1px solid var(--ed-line); }
.ed-stack span + span { margin-top: -.25rem; }
.ed-stack span:nth-child(2) { width: 90%; margin-left: 5%; background: var(--ed-frame); }
.ed-stack span:nth-child(3) { width: 80%; margin-left: 10%; background: var(--brand); border-color: var(--brand); color: var(--surface); }
.ed-stack b { font-weight: 500; }
.ed-card-label { display: block; color: var(--ed-muted); font-size: var(--ed-label); margin-bottom: 1.5rem; }
.ed-capabilities .ed-number { margin-bottom: .5rem; }
.ed-capabilities__brands h3 { font-size: var(--ed-body); letter-spacing: 0; }
.ed-brand-mini { display: flex; align-items: center; gap: 1.5rem; margin-top: 2rem; }
.ed-brand-mini img { width: auto; height: 1rem; max-width: 9rem; filter: grayscale(1); }
.ed-capabilities__rating .ed-number span { font-size: var(--ed-title); color: var(--ed-muted); }
.ed-capabilities__rating h3 { font-size: var(--ed-body); margin-top: 1.5rem; letter-spacing: 0; }
.ed-capabilities__rating .ed-text-link { font-size: var(--ed-label); }
.ed-blue-stars { display: inline-flex; gap: .25rem; color: var(--brand); }
.ed-blue-stars svg { width: 1rem; height: 1rem; }
.ed-capabilities__funding .ed-number { font-size: var(--ed-title); white-space: nowrap; }
.ed-capabilities__funding p { margin-top: 1rem; font-size: var(--ed-label); }
.ed-capabilities__collective { position: relative; border-radius: calc(var(--ed-radius-xl) - .75rem); background: var(--ed-blue-wash) url("../../img/backgrounds/dream/figma/card/ai-bg-097.webp") center / cover; overflow: hidden; min-height: 14rem; padding: 1.75rem; }
.ed-capabilities__collective > img { position: absolute; width: 100%; height: 100%; object-fit: cover; object-position: 68% center; opacity: .2; inset: 0; }
.ed-capabilities__collective > div { position: relative; }
.ed-capabilities__collective span { font-size: var(--ed-label); }
.ed-capabilities__collective p { font-size: var(--ed-card-title); line-height: 1.15; letter-spacing: -.025em; margin-top: 1rem; font-weight: 500; }
.ed-capabilities__collective .ed-text-link { font-size: var(--ed-label); margin-top: .5rem; }
.ed-services__layout { display: grid; grid-template-columns: 15rem minmax(0,1fr); gap: 2rem; align-items: center; min-height: 27rem; }
.ed-services__list { display: flex; flex-direction: column; gap: .5rem; }
.ed-service-tab { display: flex; align-items: center; gap: .75rem; padding: .5rem .875rem .5rem .5rem; border-radius: var(--ed-radius-pill); min-height: 3.75rem; text-align: left; font-size: var(--ed-body); transition: background var(--ed-duration),color var(--ed-duration); }
.ed-service-tab__icon { width: 2.5rem; height: 2.5rem; display: grid; place-items: center; background: var(--ed-frame); border-radius: 50%; flex-shrink: 0; }
.ed-service-tab__icon svg { width: 1.125rem; height: 1.125rem; }
.ed-service-tab__arrow { margin-left: auto; opacity: 0; }
.ed-service-tab[aria-selected="true"] { background: var(--surface); color: var(--brand); }
.ed-service-tab[aria-selected="true"] .ed-service-tab__icon { background: var(--brand); color: var(--surface); }
.ed-service-tab[aria-selected="true"] .ed-service-tab__arrow { opacity: 1; }
.ed-service-tab:hover { color: var(--brand); }
.ed-service-panel { display: grid; grid-template-columns: minmax(0,1fr) 13rem; align-items: center; gap: 2rem; min-height: 27rem; }
.ed-service-panel__copy { position: relative; text-align: center; padding: 3.5rem 1.5rem; }
.ed-service-panel__copy::before { content: ""; position: absolute; width: min(27rem,110%); aspect-ratio: 1; border: 1px solid var(--ed-line); border-radius: 50%; top: 50%; left: 50%; transform: translate(-50%,-50%); pointer-events: none; }
.ed-service-panel__index { font-size: var(--ed-label); color: var(--brand); }
.ed-service-panel h3 { font-size: clamp(1.875rem,2.6vw,2.5rem); line-height: 1.12; letter-spacing: -.035em; font-weight: 500; margin-top: 1rem; text-wrap: balance; }
.ed-service-panel__copy > p { margin-block: 1.25rem 1.5rem; font-size: var(--ed-body); color: var(--ed-muted); line-height: 1.5; }
.ed-service-panel__copy > * { position: relative; }
.ed-service-panel .ed-button { font-size: var(--ed-label); }
.ed-service-panel__visual img { height: 17rem; width: 100%; object-fit: contain; object-position: center; background: var(--surface); }
.ed-service-panel__visual p { font-size: var(--ed-label); color: var(--ed-muted); margin-top: 1rem; }
.ed-services__panels > .ed-service-panel + .ed-service-panel { border-top: 1px solid var(--ed-line); }
.ed-services__layout[data-enhanced] .ed-service-panel { border: 0; }
.ed-work-grid { display: grid; gap: 1.5rem; }
.ed-work-card { display: grid; grid-template-columns: 1.3fr 1fr; gap: clamp(1.5rem,4vw,3rem); padding: .75rem; background: var(--ed-frame); min-width: 0; border-radius: var(--ed-radius-xl); }
.ed-work-card__image { position: relative; min-width: 0; }
.ed-work-card__image img { width: 100%; height: 100%; min-height: 22rem; aspect-ratio: 1.5; object-fit: cover; background: var(--surface); }
.ed-work-card__image { --cut-unit: clamp(2rem, 4vw, 3rem); --cut-inset: clamp(.25rem, .55vw, .5rem); }
.ed-work-card__image .ed-cut-image { --cut-unit: inherit; }
.ed-work-card__number {
  position: absolute; right: calc(var(--cut-unit) + var(--cut-inset)); bottom: calc(var(--cut-unit) + var(--cut-inset));
  width: calc(var(--cut-unit) - var(--cut-inset) * 2); height: calc(var(--cut-unit) - var(--cut-inset) * 2);
  min-width: 1.5rem; min-height: 1.5rem; display: grid; place-items: center;
  border-radius: 2px; background: var(--ed-ink); color: var(--surface); font-size: var(--ed-label);
}
@supports not (mask-image: url("")) {
  .ed-work-card__number { right: 1rem; bottom: 1rem; }
}
.ed-work-card__body { padding: 2rem 2rem 2rem 0; display: flex; flex-direction: column; min-width: 0; }
.ed-work-card__body h3 { font-size: clamp(1.75rem,3vw,2.5rem); letter-spacing: -.03em; font-weight: 500; line-height: 1.2; margin-bottom: 1rem; }
.ed-work-card__body > p { font-size: var(--ed-body); line-height: 1.5; color: var(--ed-muted); }
.ed-work-card__body .ed-work-card__scope { margin-bottom: 1.5rem; font-size: var(--ed-label); }
.ed-work-card__foot { margin-top: auto; padding-top: 2rem; display: flex; flex-direction: column; gap: .75rem; font-size: var(--ed-label); }
.ed-work-card__foot > span:first-child { color: var(--ed-muted); }
.ed-work-card__link { display: flex; justify-content: space-between; align-items: center; font-weight: 500; }
.ed-work-card__link svg { width: 1.25rem; height: 1.25rem; transition: transform var(--ed-duration); }
.ed-work-card__pending { color: var(--ed-muted); }
.ed-section-action { display: flex; justify-content: center; margin-top: 2.5rem; }
.ed-process { display: grid; grid-template-columns: 1fr 1.7fr; gap: 5rem; align-items: start; }
.ed-process__intro .ed-heading { margin-bottom: 2rem; }
.ed-process__note { color: var(--ed-muted); margin-bottom: 2rem; }
.ed-process__phase { border-top: 1px solid var(--ed-line); }
.ed-process__phase:last-child { border-bottom: 1px solid var(--ed-line); }
.ed-process__phase summary { display: flex; gap: 1.25rem; align-items: center; padding: 1.75rem 0; list-style: none; cursor: pointer; }
.ed-process__phase summary::-webkit-details-marker { display: none; }
.ed-process__number { font-size: var(--ed-label); color: var(--brand); }
.ed-process__phase h3 { font-size: var(--ed-card-title); font-weight: 500; line-height: 1.2; letter-spacing: -.025em; }
.ed-process__phase-label { margin-left: auto; font-size: var(--ed-label); color: var(--ed-muted); }
.ed-process__toggle::before { content: "+"; font-size: var(--ed-card-title); }
.ed-process__phase[open] .ed-process__toggle::before { content: "−"; }
.ed-process__body { padding: 0 0 2rem 2.25rem; }
.ed-process__body ol { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
.ed-process__body h4 { font-weight: 500; font-size: var(--ed-body); margin-bottom: .5rem; }
.ed-process__body li p { color: var(--ed-muted); font-size: var(--ed-label); line-height: 1.5; }
.ed-process__delivery { padding: 1.25rem; border-radius: var(--ed-radius-md); margin-top: 1.75rem; background: var(--ed-frame); }
.ed-process__delivery > span { display: block; font-size: var(--ed-label); color: var(--ed-muted); margin-bottom: .25rem; }
.ed-process__delivery strong { font-size: var(--ed-body); font-weight: 500; }
.ed-process__delivery p { font-size: var(--ed-label); margin-top: .75rem; color: var(--ed-muted); }
.ed-reviews-summary { display: flex; align-items: center; justify-content: center; gap: .75rem; margin: -1rem 0 2rem; font-size: var(--ed-label); }
.ed-reviews { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; align-items: start; }
.ed-review { padding: 1.75rem; border-radius: var(--ed-radius-lg); background: var(--surface); display: flex; flex-direction: column; min-height: 25rem; }
.ed-review__top { display: flex; gap: .75rem; align-items: center; font-size: var(--ed-label); padding-bottom: 1.25rem; border-bottom: 1px solid var(--ed-line); }
.ed-review__monogram { width: 2.5rem; height: 2.5rem; border-radius: var(--ed-radius-sm); background: var(--ed-frame); display: grid; place-items: center; flex-shrink: 0; font-weight: 500; }
.ed-review__quote-mark { margin-left: auto; font-size: var(--ed-title); color: var(--brand); height: 2.5rem; line-height: 1.2; }
.ed-review blockquote { font-size: var(--ed-body); line-height: 1.55; padding-block: 1.5rem; color: var(--ed-muted); }
.ed-review figcaption { margin-top: auto; }
.ed-review .testimonial__author { font-size: var(--ed-body); font-weight: 500; }
.ed-review .testimonial__role { font-size: var(--ed-label); color: var(--ed-muted); margin-top: .375rem; }
.ed-review .testimonial__logo { width: auto; height: 1rem; margin-top: 1rem; filter: grayscale(1); }
/* The card takes a fifth more than the FAQ column so its two actions sit on one line. */
.ed-questions { display: grid; grid-template-columns: 1.2fr 1.55fr; gap: 4rem; }
/* The FAQ's side card is the way to reach a person. Hulusi, 16 September:
   the icon-tile card read as boring; make it editorial, on our abstract
   ground, with the two channels side by side. The card sits on the cobalt
   grain plate the hero's sky and the contact form use; the portrait fills
   the top and the white body overlaps its foot like a magazine caption block.
   One action opens Calendly over the page (calendly.js picks up any
   calendly.com link), the other dials. Both carry their icon: the opt-in
   .ed-button__icon variant, asked for here. */
/* 13 Oct, round 2 (Hulusi: "fix Panos's card, better style, a book-a-call
   block that belongs with the FAQ"). One sharp card that stays in view
   beside the questions (sticky): a short band of plate 081 at the top, Panos's
   square portrait sitting on its edge like a profile, then the invitation and
   the two ways in, stacked full width. No offset plate, no photo filling the
   card. */
/* 13 Oct, round 3 (Hulusi picked option A of the Mobbin options, labs/contact-card):
   the card is the dream plate 081 itself (card render), Panos's portrait fills
   the top and fades into the plate, name and role under it, the invitation
   white on the plate under a veil at the foot, the two ways in stacked. No
   border, no white body, no note box: the 30 minutes live in the lede. */
.ed-contact-card {
  position: sticky; top: calc(var(--closing-pin-top, 72px) + 1.5rem); align-self: start;
  display: flex; flex-direction: column; isolation: isolate;
  border: 0; border-radius: 0; overflow: hidden; color: #fff;
  background: #0b2a8a url('../../img/backgrounds/dream/figma/card/ai-bg-096.webp') center / cover no-repeat;
  box-shadow: 0 30px 60px -45px rgb(10 30 90 / .45);
}
.ed-contact-card::after { content: ""; position: absolute; inset: 40% 0 0; z-index: -1; pointer-events: none; background: linear-gradient(180deg, rgb(6 14 40 / 0), rgb(6 14 40 / .72) 55%); }
.ed-contact-card__figure { position: relative; margin: 0; height: auto; background: none; }
.ed-contact-card__figure img {
  position: static; display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; object-position: center 20%;
  border: 0; border-radius: 0; background: none;
  -webkit-mask-image: linear-gradient(#000 60%, transparent); mask-image: linear-gradient(#000 60%, transparent);
}
.ed-contact-card__who { display: grid; gap: .125rem; margin: 0; padding: 0 1.5rem; font-size: .875rem; line-height: 1.35; color: rgb(255 255 255 / .78); }
.ed-contact-card__name { font-size: 1.0625rem; font-weight: 500; color: #fff; }
.ed-contact-card__body { position: static; margin: 0; padding: .75rem 1.5rem 1.5rem; background: none; border-radius: 0; }
.ed-contact-card h3 { margin: 0; font-size: 1.75rem; line-height: 1.1; font-weight: 500; letter-spacing: -.035em; text-wrap: balance; color: #fff; }
.ed-contact-card__lede { color: rgb(255 255 255 / .82); font-size: var(--ed-body); margin-block: .875rem 0; }
.ed-contact-card .ind-call { margin: 1rem 0 0; padding: .875rem 1rem; background: rgb(255 255 255 / .12); color: #fff; font-size: .9375rem; line-height: 1.5; }
html[data-style] .ed-contact-card .ed-contact-card__actions, html .ed-contact-card .ed-contact-card__actions { display: grid; grid-template-columns: 1fr; gap: .5rem; margin-top: 1.5rem; }
html .ed-contact-card .ed-contact-card__actions .ed-button { width: 100%; justify-content: center; border-radius: 0; font-size: .9375rem; min-height: 3rem; }
.ed-contact-card .ed-button--secondary { background: transparent; color: #fff; border-color: rgb(255 255 255 / .5); }
.ed-contact-card .ed-button--secondary:hover { background: rgb(255 255 255 / .1); color: #fff; }
@media (max-width: 899px) { .ed-contact-card { position: relative; top: auto; } }
@media (hover:hover) and (pointer:fine) {
a.ed-work-card:hover .ed-work-card__link { color: var(--brand); }
a.ed-work-card:hover .ed-work-card__link svg { transform: translate(2px,-2px); }
}
@media (max-width:1100px) {
.ed-services__layout { grid-template-columns: 13rem minmax(0,1fr); gap: 1rem; }
.ed-service-panel { grid-template-columns: minmax(0,1fr) 10rem; gap: 1rem; }
.ed-service-panel__copy { padding-inline: 1rem; }
.ed-work-card { grid-template-columns: 1.2fr 1fr; }
.ed-work-card__image img { min-height: 20rem; }
.ed-work-card__body { padding: 1rem; }
.ed-work-card__foot { flex-direction: row; justify-content: space-between; gap: 1rem; }
.ed-work-card__link { gap: 1rem; }
.ed-process { gap: 3rem; grid-template-columns: 1fr 1.4fr; }
.ed-process__phase-label { display: none; }
.ed-process__toggle { margin-left: auto; }
.ed-questions { gap: 2rem; }
}
@media (max-width:1023px) {
.ed-capabilities { grid-template-columns: 1fr 1fr; }
.ed-capabilities__strategy { grid-row: span 2; }
.ed-capabilities__collective { grid-column: 1 / -1; min-height: 12rem; }
.ed-capabilities__collective > img { width: 55%; left: auto; }
.ed-service-panel { grid-template-columns: 1fr; }
.ed-service-panel__visual { display: none; }
.ed-reviews { grid-template-columns: 1fr 1fr; }
.ed-process { grid-template-columns: 1fr; }
.ed-process__intro { max-width: 36rem; }
.ed-process__note { display: none; }
.ed-questions { grid-template-columns: 1fr 1.5fr; gap: 1.5rem; }
.ed-contact-card__body { padding: .75rem 1.25rem 1.25rem; }
}
@media (max-width:639px) {
.ed-capabilities { grid-template-columns: 1fr; }
.ed-capabilities__strategy { grid-row: auto; }
.ed-stack { padding-block: 1.5rem; }
.ed-capabilities__collective { grid-column: auto; }
.ed-capabilities__collective > img { width: 100%; }
.ed-services__layout { display: block; }
.ed-services__list { flex-direction: row; gap: .5rem; overflow-x: auto; padding: .5rem; scroll-padding-inline: .5rem; scroll-snap-type: x proximity; }
.ed-service-tab { flex-shrink: 0; scroll-snap-align: start; font-size: var(--ed-label); padding: .5rem .75rem; }
.ed-service-tab__icon { width: 2rem; height: 2rem; }
.ed-service-tab__arrow { display: none; }
.ed-service-panel { min-height: 25rem; }
.ed-service-panel__copy { padding: 3.5rem 1rem; }
.ed-service-panel__copy::before { width: 100%; }
.ed-work-grid { grid-template-columns: 1fr; }
.ed-work-card { grid-template-columns: 1fr; gap: .5rem; }
.ed-work-card__image img { height: auto; min-height: 0; aspect-ratio: 1.35; }
.ed-work-card__foot { flex-direction: column; }
.ed-process__phase h3 { font-size: var(--ed-lede); }
.ed-process__body { padding-left: 0; }
.ed-process__body ol { grid-template-columns: 1fr; }
.ed-reviews { grid-template-columns: 1fr; }
.ed-review { min-height: 0; }
.ed-questions { grid-template-columns: 1fr; gap: 2rem; }
.ed-contact-card__body { padding: .75rem 1.25rem 1.25rem; }
}
@media (prefers-reduced-motion:reduce) {
.ed-service-tab, .ed-work-card__link svg { transition: none; }
a.ed-work-card:hover .ed-work-card__link svg { transform: none; }
}
