/* ── TOAST ────────────────────────────────────────── */
.toast{
  position:fixed;bottom:var(--sp-6);left:50%;
  transform:translateX(-50%) translateY(140%);
  background:var(--c-surface);color:var(--c-text);
  padding:var(--sp-3) var(--sp-8);border-radius:var(--r-full);
  font-size:var(--fs-sm);font-weight:var(--fw-medium);
  box-shadow:var(--shadow-lg);z-index:9999;
  transition:transform var(--t-base);white-space:nowrap;
  pointer-events:none;border:1px solid var(--c-border-2);
}
.toast--success{border-left:3px solid var(--c-success)}
.toast--error{border-left:3px solid var(--c-error)}
.toast--visible{transform:translateX(-50%) translateY(0)}

/* ── HERO — centered, animated aurora background ──── */
.hero{
  position:relative;min-height:100svh;
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;background:var(--c-bg);text-align:center;
}
.hero-aurora{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none}
.hero-aurora span{
  position:absolute;border-radius:var(--r-full);filter:none;
  opacity:.5;will-change:transform;transform:translateZ(0);
}
/* Soft edge comes from the radial gradient itself (transparent falloff) —
   no filter:blur(), which is far too expensive to animate. */
.hero-blob-1{width:48vw;height:48vw;left:-10vw;top:-14vw;
  background:radial-gradient(circle at 50% 50%,var(--c-brand) 0%,transparent 62%);
  animation:auroraDriftA 22s ease-in-out infinite}
.hero-blob-2{width:44vw;height:44vw;right:-8vw;top:-8vw;
  background:radial-gradient(circle at 50% 50%,var(--c-accent) 0%,transparent 62%);
  animation:auroraDriftB 26s ease-in-out infinite}
.hero-blob-3{width:42vw;height:42vw;left:28vw;bottom:-20vw;
  background:radial-gradient(circle at 50% 50%,var(--c-brand-3) 0%,transparent 62%);
  animation:auroraDriftA 30s ease-in-out infinite reverse}
.hero-inner{
  position:relative;z-index:1;width:100%;
  display:flex;flex-direction:column;align-items:center;
  padding-block:clamp(7rem,14vw,11rem);
}
.hero-content{max-width:760px;margin-inline:auto}
.hero h1{
  font-family:var(--font-display);font-size:var(--fs-hero);
  font-weight:var(--fw-semibold);
  line-height:var(--lh-tight);letter-spacing:var(--ls-tight);
  color:var(--c-text);margin-bottom:var(--sp-6);
}
/* Rotating word — own line, green-to-blue gradient */
.rotator{display:block;position:relative;height:1.18em;margin-top:.08em}
.rot-word{
  position:absolute;left:0;right:0;text-align:center;font-style:italic;
  background:linear-gradient(100deg,var(--c-accent),var(--c-brand));
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:var(--c-brand);
  opacity:0;transform:translateY(45%);
  transition:opacity .5s var(--ease-out),transform .5s var(--ease-out);
}
.rot-word.is-active{opacity:1;transform:none}
.hero-sub{
  font-size:var(--fs-md);color:var(--c-text-2);
  max-width:52ch;margin:0 auto var(--sp-8);line-height:var(--lh-relaxed);
}
.hero-actions{display:flex;flex-wrap:wrap;gap:var(--sp-4);justify-content:center;margin-bottom:var(--sp-8)}
.hero-proof{display:flex;align-items:center;justify-content:center;gap:var(--sp-3)}
.hero-avatars{display:flex}
.hero-avatar{
  width:34px;height:34px;border-radius:var(--r-full);
  background:var(--c-brand-soft);border:2px solid var(--c-bg);
  display:flex;align-items:center;justify-content:center;
  font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--c-brand);
  margin-left:-8px;
}
.hero-avatar:first-child{margin-left:0}
.hero-proof-text{font-size:var(--fs-sm);color:var(--c-text-3)}

/* ── MARQUEE / TRUST STRIP ────────────────────────── */
.trust-strip{
  padding-block:var(--sp-10);
  border-block:1px solid var(--c-border);
  background:var(--c-bg-2);overflow:hidden;
}
.trust-label-text{
  font-size:var(--fs-xs);font-weight:var(--fw-semibold);
  letter-spacing:var(--ls-wider);text-transform:uppercase;
  color:var(--c-text-3);text-align:center;margin-bottom:var(--sp-6);
}
.marquee-item{
  font-family:var(--font-display);font-size:var(--fs-lg);
  font-weight:var(--fw-semibold);color:var(--c-text-3);
  font-style:italic;white-space:nowrap;
  transition:color var(--t-fast);
}
.marquee-sep{color:var(--c-brand);font-size:var(--fs-base);margin-inline:var(--sp-4)}

/* ── SERVICES EDITORIAL ────────────────────────────── */
.services-editorial{display:flex;flex-direction:column}
.service-row{
  border-top:1px solid var(--c-border);
  padding:var(--sp-10) 0;
  display:grid;
  grid-template-columns:5rem 1fr;
  gap:var(--sp-8);
  align-items:start;
  transition:border-color var(--t-base);
}
.service-row:last-child{border-bottom:1px solid var(--c-border)}
.service-row:hover{border-top-color:var(--c-brand-mid)}
@media(max-width:480px){.service-row{grid-template-columns:3.5rem 1fr;gap:var(--sp-5)}}
.service-row-num{
  font-family:var(--font-display);
  font-size:clamp(2.5rem,6vw,4.5rem);
  font-weight:var(--fw-light);font-style:italic;
  color:rgba(43,107,240,.16);line-height:1;
  padding-top:var(--sp-1);
  transition:color var(--t-base);
}
.service-row:hover .service-row-num{color:rgba(43,107,240,.38)}
.service-row-top{
  display:flex;flex-direction:column;gap:var(--sp-2);
  margin-bottom:var(--sp-4);
}
@media(min-width:640px){
  .service-row-top{flex-direction:row;justify-content:space-between;align-items:baseline;gap:var(--sp-6)}
}
.service-row-name{
  font-family:var(--font-display);font-size:var(--fs-2xl);
  font-weight:var(--fw-semibold);color:var(--c-text);line-height:var(--lh-snug);
}
.service-row-price{
  font-size:var(--fs-xs);font-weight:var(--fw-semibold);
  letter-spacing:var(--ls-wider);text-transform:uppercase;
  color:var(--c-brand);flex-shrink:0;
}
.service-row-desc{
  font-size:var(--fs-sm);color:var(--c-text-2);
  line-height:var(--lh-relaxed);max-width:54ch;
}

/* ── PROCESS ──────────────────────────────────────── */
.process-wrap{background:var(--c-bg-2)}
.process-grid{display:grid;grid-template-columns:1fr;gap:var(--sp-12)}
@media(min-width:1024px){
  .process-grid{grid-template-columns:1fr 2fr;gap:var(--sp-20)}
  .process-sticky{position:sticky;top:108px;height:fit-content}
}
.process-sticky h2{font-style:italic}
.process-list{display:flex;flex-direction:column}
.process-step{
  border-top:1px solid var(--c-border);padding:var(--sp-8) 0;
  display:grid;grid-template-columns:auto 1fr;gap:var(--sp-6);align-items:start;
  transition:border-color var(--t-base);
}
.process-step:hover{border-top-color:var(--c-brand-mid)}
.process-num{
  font-family:var(--font-display);font-size:var(--fs-xl);
  font-weight:var(--fw-light);color:var(--c-brand);
  font-style:italic;min-width:3rem;
}
.process-icon{width:28px;height:28px;margin-bottom:var(--sp-3)}
.process-icon svg{
  width:100%;height:100%;stroke:var(--c-brand);fill:none;
  stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;
}
.process-title{
  font-family:var(--font-display);font-size:var(--fs-xl);
  font-weight:var(--fw-semibold);color:var(--c-text);margin-bottom:var(--sp-2);
}
.process-body{font-size:var(--fs-sm);color:var(--c-text-2);line-height:var(--lh-relaxed)}

/* ── FAQ ──────────────────────────────────────────── */
.faq-grid{display:grid;grid-template-columns:1fr;gap:var(--sp-12)}
@media(min-width:1024px){
  .faq-grid{grid-template-columns:1fr 2fr;gap:var(--sp-16)}
  .faq-sticky{position:sticky;top:108px;height:fit-content}
}
.faq-sticky h2{font-style:italic}
.faq-list{display:flex;flex-direction:column}
.accordion-item{border-top:1px solid var(--c-border)}
.accordion-item:last-child{border-bottom:1px solid var(--c-border)}
.accordion-trigger{
  width:100%;text-align:left;padding:var(--sp-6) 0;
  font-family:var(--font-display);font-size:var(--fs-lg);
  font-weight:var(--fw-semibold);color:var(--c-text);cursor:pointer;
  display:flex;justify-content:space-between;align-items:center;
  gap:var(--sp-4);transition:color var(--t-fast);
}
.accordion-trigger:hover,.accordion-trigger[aria-expanded="true"]{color:var(--c-brand)}
.accordion-icon{
  width:20px;height:20px;flex-shrink:0;
  transition:transform var(--t-base);stroke:currentColor;fill:none;
  stroke-width:2;stroke-linecap:round;stroke-linejoin:round;
}
.accordion-trigger[aria-expanded="true"] .accordion-icon{transform:rotate(45deg)}
/* open/close handled by the grid-rows accordion in animations.css */
.accordion-body>div{padding-bottom:var(--sp-6)}
.accordion-body p{
  font-size:var(--fs-base);color:var(--c-text-2);
  line-height:var(--lh-relaxed);max-width:68ch;
}

/* ── WORK / CONCEPTS ──────────────────────────────── */
.work-grid{display:grid;grid-template-columns:1fr;gap:var(--sp-6)}
@media(min-width:640px){.work-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.work-grid{grid-template-columns:repeat(3,1fr)}}
.work-card{
  background:var(--c-surface);border:1px solid var(--c-border);
  border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--shadow-sm);
  transition:transform var(--t-base),box-shadow var(--t-base);
}
.work-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg)}
.work-thumb{
  position:relative;aspect-ratio:4/3;display:flex;
  align-items:center;justify-content:center;overflow:hidden;
}
.work-thumb span{
  font-family:var(--font-display);font-style:italic;
  font-size:var(--fs-3xl);font-weight:var(--fw-semibold);
  color:rgba(255,255,255,.92);letter-spacing:var(--ls-tight);
}
.work-thumb--1{background:linear-gradient(135deg,var(--c-brand),var(--c-brand-3))}
.work-thumb--2{background:linear-gradient(135deg,#0E7C66,var(--c-accent))}
.work-thumb--3{background:linear-gradient(135deg,var(--c-brand-2),#5B7CF0)}
.work-body{padding:var(--sp-6)}
.work-tag{
  font-size:var(--fs-xs);font-weight:var(--fw-semibold);
  letter-spacing:var(--ls-wide);text-transform:uppercase;
  color:var(--c-brand);margin-bottom:var(--sp-2);
}
.work-name{
  font-family:var(--font-display);font-size:var(--fs-xl);
  font-weight:var(--fw-semibold);color:var(--c-text);margin-bottom:var(--sp-2);
}
.work-desc{font-size:var(--fs-sm);color:var(--c-text-2);line-height:var(--lh-relaxed)}
.work-note{margin-top:var(--sp-8);font-size:var(--fs-sm);color:var(--c-text-3);text-align:center;max-width:60ch;margin-inline:auto}

/* ── ABOUT MEDIA ──────────────────────────────────── */
.about-layout{display:grid;grid-template-columns:1fr;gap:var(--sp-8);align-items:center;margin-bottom:var(--sp-4)}
@media(min-width:900px){.about-layout{grid-template-columns:1fr 1fr;gap:var(--sp-12)}}
.about-photo{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r-xl);border:1px solid var(--c-border);box-shadow:var(--shadow-md)}
.about-copy-sub{margin-top:var(--sp-5);font-size:var(--fs-base);color:var(--c-text-2);line-height:var(--lh-relaxed)}

/* ── IMAGE BAND ───────────────────────────────────── */
.image-band{position:relative;min-height:clamp(220px,38vw,360px);display:flex;align-items:center;overflow:hidden;background:var(--c-dark)}
.image-band-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.image-band-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(14,34,48,.88) 0%,rgba(14,34,48,.55) 55%,rgba(14,34,48,.35) 100%)}
.image-band-content{position:relative;z-index:1}
.image-band-text{font-family:var(--font-display);font-style:italic;font-size:var(--fs-3xl);font-weight:var(--fw-semibold);color:var(--c-text-inv);max-width:20ch;line-height:var(--lh-tight)}

/* ── CTA BAND — dark, for end-of-page contrast ──────── */
.cta-band{
  background:var(--c-dark);
  padding-block:var(--section-gap);text-align:center;
  position:relative;overflow:hidden;
}
.cta-band::before{
  content:'';position:absolute;inset:-50%;
  background:
    radial-gradient(ellipse at 50% 35%,rgba(43,107,240,.30) 0%,transparent 58%),
    radial-gradient(ellipse at 72% 85%,rgba(21,185,129,.20) 0%,transparent 55%);
  pointer-events:none;
}
.cta-band h2{font-style:italic;margin-bottom:var(--sp-5);color:var(--c-text-inv)}
.cta-band>*{position:relative;z-index:1}
.cta-band .label{color:var(--c-accent)}
.cta-band .label::before{background:var(--c-accent)}
.cta-band p{max-width:var(--max-w-text);margin:0 auto var(--sp-8);color:rgba(252,254,254,.74)}
.cta-band .btn-secondary{border-color:rgba(252,254,254,.32);color:var(--c-text-inv)}
.cta-band .btn-secondary:hover{border-color:var(--c-text-inv);color:var(--c-text-inv)}
.cta-band-actions{
  display:flex;align-items:center;justify-content:center;
  flex-wrap:wrap;gap:var(--sp-4);
}

/* ── CONTACT ──────────────────────────────────────── */
.contact-grid{display:grid;grid-template-columns:1fr;gap:var(--sp-12)}
@media(min-width:1024px){.contact-grid{grid-template-columns:1fr 1.5fr;gap:var(--sp-16);align-items:start}}
.contact-info h3{font-style:italic;margin-bottom:var(--sp-4)}
.contact-detail{
  display:flex;align-items:center;gap:var(--sp-4);
  padding:var(--sp-4) 0;border-bottom:1px solid var(--c-border);
}
.contact-detail-icon{
  width:40px;height:40px;background:var(--c-brand-soft);
  border:1px solid var(--c-brand-mid);border-radius:var(--r-md);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.contact-detail-icon svg{width:18px;height:18px;stroke:var(--c-brand);fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.contact-detail-label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:var(--ls-wider);color:var(--c-text-3);margin-bottom:var(--sp-1)}
.contact-detail-value{font-size:var(--fs-sm);color:var(--c-text)}
.form-card{
  background:var(--c-bg-2);border:1px solid var(--c-border);
  border-radius:var(--r-xl);padding:var(--sp-10);
}
.form-row{display:grid;grid-template-columns:1fr;gap:var(--sp-5);margin-bottom:var(--sp-5)}
@media(min-width:640px){.form-row{grid-template-columns:1fr 1fr}}
.form-group{display:flex;flex-direction:column;gap:var(--sp-2)}
.form-group label{
  font-size:var(--fs-xs);font-weight:var(--fw-semibold);
  letter-spacing:var(--ls-wide);text-transform:uppercase;color:var(--c-text-3);
}
.form-group input,.form-group select,.form-group textarea{
  background:var(--c-bg-3);border:1px solid var(--c-border-2);
  border-radius:var(--r-md);padding:var(--sp-4);
  font-family:var(--font-body);font-size:var(--fs-sm);color:var(--c-text);
  transition:border-color var(--t-fast),box-shadow var(--t-fast);width:100%;
}
.form-group input::placeholder,.form-group textarea::placeholder{color:var(--c-text-3)}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{
  outline:none;border-color:var(--c-brand);box-shadow:0 0 0 3px var(--c-brand-soft);
}
.form-group input.error,.form-group textarea.error{border-color:var(--c-error)}
.form-group textarea{resize:vertical;min-height:140px}
.form-group select{
  appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238A7E72' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 1rem center;padding-right:var(--sp-8);
}
.form-group select option{background:var(--c-bg-3)}
.form-check{display:flex;align-items:flex-start;gap:var(--sp-3);margin-bottom:var(--sp-6)}
.form-check input[type="checkbox"]{width:16px;height:16px;flex-shrink:0;margin-top:2px;accent-color:var(--c-brand);cursor:pointer}
.form-check label{font-size:var(--fs-xs);color:var(--c-text-3);line-height:var(--lh-relaxed);cursor:pointer}
.form-check label a{color:var(--c-brand);text-decoration:underline}
.form-status{font-size:var(--fs-sm);min-height:1.5rem;margin-top:var(--sp-3);color:var(--c-text-3)}
.form-honeypot{position:absolute;left:-9999px}

/* ── PAGE HEADER (inner pages) ────────────────────── */
.page-header{
  padding-top:clamp(5rem,10vw,8rem);padding-bottom:var(--sp-16);
  background:var(--c-bg);border-bottom:1px solid var(--c-border);
  position:relative;overflow:hidden;
}
.page-header-inner{position:relative;z-index:1}
.page-header h1{
  font-family:var(--font-display);font-size:var(--fs-hero);
  font-weight:var(--fw-semibold);font-style:italic;
  line-height:var(--lh-tight);letter-spacing:var(--ls-tight);
  color:var(--c-text);margin-bottom:var(--sp-5);
}
.page-header p{font-size:var(--fs-md);color:var(--c-text-2);max-width:56ch;line-height:var(--lh-relaxed)}

/* ── VALUES ───────────────────────────────────────── */
.values-grid{display:grid;grid-template-columns:1fr;gap:var(--sp-8)}
@media(min-width:640px){.values-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.values-grid{grid-template-columns:repeat(4,1fr)}}
.value-item{padding:var(--sp-8);background:var(--c-bg-2);border:1px solid var(--c-border);border-radius:var(--r-xl)}
.value-num{
  font-family:var(--font-display);font-size:var(--fs-3xl);font-style:italic;
  font-weight:var(--fw-bold);color:var(--c-brand-soft);margin-bottom:var(--sp-4);
  border-bottom:1px solid var(--c-border);padding-bottom:var(--sp-4);
}
.value-num span{color:var(--c-brand)}
.value-title{
  font-family:var(--font-display);font-size:var(--fs-xl);
  font-weight:var(--fw-semibold);color:var(--c-text);margin-bottom:var(--sp-2);
}
.value-desc{font-size:var(--fs-sm);color:var(--c-text-2);line-height:var(--lh-relaxed)}
