/* ══════════════════════════════════════════════════════════
   R.I.S.E. Recovery Resources — "Sunrise Botanical"
   Palette sampled directly from the logo artwork.
   ══════════════════════════════════════════════════════════ */

:root{
  --ink:        #2E1119;
  --ink-soft:   #6A4550;
  --bark:       #5C3524;
  --rose:       #C8446E;
  --rose-deep:  #9E2C51;
  --rose-dark:  #7C2242;
  --rose-soft:  #E9A0B6;
  --blush:      #F9DCE5;
  --petal:      #FDF1F5;
  --ivory:      #FFFAF7;
  --gold:       #DFB07A;
  --gold-pale:  #F7E7CD;
  --line:       rgba(158,44,81,.16);
  --line-soft:  rgba(158,44,81,.09);

  --display: "Fraunces", "Iowan Old Style", Georgia, serif;
  --body:    "Karla", "Segoe UI", sans-serif;
  --script:  "Parisienne", cursive;

  --shadow-sm: 0 1px 2px rgba(124,34,66,.05), 0 6px 18px -10px rgba(124,34,66,.22);
  --shadow-md: 0 2px 6px rgba(124,34,66,.06), 0 22px 48px -24px rgba(124,34,66,.34);
  --shadow-lg: 0 40px 90px -46px rgba(124,34,66,.5);

  --wrap: 1180px;
  --gutter: clamp(1.25rem, 5vw, 3.5rem);
  --sec-y: clamp(5rem, 11vh, 9rem);
}

/* ─── Reset ─── */
*,*::before,*::after{ box-sizing:border-box; }
*{ margin:0; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; scroll-padding-top:5.5rem; }
body{
  font-family:var(--body);
  font-weight:400;
  font-size:clamp(1rem,.96rem + .18vw,1.075rem);
  line-height:1.72;
  color:var(--ink-soft);
  background:var(--ivory);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img,svg{ display:block; max-width:100%; }
a{ color:inherit; }
button,input,select,textarea{ font:inherit; color:inherit; }
.sprite{ position:absolute; width:0; height:0; overflow:hidden; }
.ico{ width:1em; height:1em; fill:currentColor; }

:focus-visible{
  outline:2px solid var(--rose);
  outline-offset:3px;
  border-radius:4px;
}

.skip-link{
  position:absolute; left:50%; top:-100px; transform:translateX(-50%);
  z-index:200; background:var(--rose-deep); color:var(--ivory);
  padding:.7rem 1.3rem; border-radius:0 0 12px 12px; text-decoration:none;
  transition:top .2s ease;
}
.skip-link:focus{ top:0; }

.wrap{ width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:var(--gutter); }
.section{ padding-block:var(--sec-y); position:relative; }

/* ─── Paper grain ─── */
.grain{
  position:fixed; inset:0; z-index:100; pointer-events:none;
  opacity:.4; mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.32'/%3E%3C/svg%3E");
}

/* ─── Type primitives ─── */
h1,h2,h3{
  font-family:var(--display);
  font-weight:500;
  font-variation-settings:"SOFT" 34,"WONK" 1;
  color:var(--ink);
  line-height:1.06;
  letter-spacing:-.018em;
}
.eyebrow{
  font-size:.72rem;
  font-weight:600;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:var(--rose-deep);
  margin-bottom:1.1rem;
}
.eyebrow span{ opacity:.5; }

.sechead{ max-width:34rem; margin-bottom:clamp(3rem,6vw,4.75rem); }
.sechead--center{ margin-inline:auto; text-align:center; }
.sechead__title{ font-size:clamp(2.35rem,1.5rem + 3.4vw,4rem); }
.sechead__lead{
  margin-top:1.5rem;
  font-size:clamp(1.05rem,1rem + .3vw,1.2rem);
  color:var(--ink-soft);
  max-width:38ch;
}
.sechead--center .sechead__lead{ margin-inline:auto; }
.sechead--invert .sechead__title{ color:var(--ivory); }
.sechead--invert .sechead__lead{ color:rgba(255,250,247,.76); }
.sechead--invert .eyebrow{ color:var(--rose-soft); }

/* ─── Buttons ─── */
.btn{
  --btn-bg:var(--rose-deep);
  position:relative; display:inline-flex; align-items:center; justify-content:center;
  gap:.6rem; padding:.95rem 1.9rem; border:0; border-radius:999px;
  background:var(--btn-bg); color:var(--ivory);
  font-size:.9rem; font-weight:600; letter-spacing:.055em; text-transform:uppercase;
  text-decoration:none; cursor:pointer; overflow:hidden;
  box-shadow:var(--shadow-sm);
  transition:transform .35s cubic-bezier(.22,.7,.24,1), box-shadow .35s ease, background .3s ease;
}
.btn::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(120deg,transparent 20%,rgba(255,255,255,.28),transparent 80%);
  transform:translateX(-110%); transition:transform .7s cubic-bezier(.22,.7,.24,1);
}
.btn:hover{ transform:translateY(-2px); box-shadow:var(--shadow-md); background:var(--rose); }
.btn:hover::after{ transform:translateX(110%); }
.btn:active{ transform:translateY(0); }
.btn--ghost{
  background:transparent; color:var(--rose-deep);
  box-shadow:inset 0 0 0 1.5px var(--line);
}
.btn--ghost:hover{ background:var(--petal); color:var(--rose-dark); box-shadow:inset 0 0 0 1.5px var(--rose-soft); }
.btn--sm{ padding:.6rem 1.25rem; font-size:.74rem; }
.btn--full{ width:100%; margin-top:.6rem; }

/* ══════════ NAV ══════════ */
.nav{
  position:fixed; inset:0 0 auto 0; z-index:90;
  transition:background .4s ease, box-shadow .4s ease, backdrop-filter .4s ease;
}
.nav.is-stuck{
  background:rgba(255,250,247,.82);
  backdrop-filter:blur(14px) saturate(1.4);
  -webkit-backdrop-filter:blur(14px) saturate(1.4);
  box-shadow:0 1px 0 var(--line-soft), 0 16px 40px -34px rgba(124,34,66,.55);
}
.nav__inner{
  max-width:var(--wrap); margin-inline:auto; padding:.85rem var(--gutter);
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
}
.nav__brand{ display:flex; align-items:center; gap:.7rem; text-decoration:none; }
.nav__brand img{ width:44px; height:44px; border-radius:50%; }
.nav__brandtext{ display:flex; flex-direction:column; line-height:1.1; }
.nav__brandtext strong{
  font-family:var(--display); font-weight:600; font-size:1.02rem;
  letter-spacing:.08em; color:var(--rose-deep);
}
.nav__brandtext em{
  font-style:normal; font-size:.63rem; letter-spacing:.2em;
  text-transform:uppercase; color:var(--ink-soft); opacity:.75;
}
.nav__links{ display:flex; align-items:center; gap:clamp(1rem,2.2vw,2rem); }
.nav__links a:not(.btn){
  position:relative; text-decoration:none; font-size:.84rem; font-weight:500;
  letter-spacing:.06em; color:var(--ink); padding-block:.3rem;
}
.nav__links a:not(.btn)::after{
  content:""; position:absolute; left:0; bottom:0; height:1.5px; width:100%;
  background:var(--rose); transform:scaleX(0); transform-origin:right;
  transition:transform .4s cubic-bezier(.22,.7,.24,1);
}
.nav__links a:not(.btn):hover::after{ transform:scaleX(1); transform-origin:left; }

.nav__toggle{
  display:none; width:44px; height:44px; border:0; background:transparent;
  cursor:pointer; padding:10px; flex-direction:column; justify-content:space-between;
}
.nav__toggle span{
  display:block; height:1.6px; width:100%; background:var(--rose-deep); border-radius:2px;
  transition:transform .35s cubic-bezier(.22,.7,.24,1), opacity .2s ease;
}
.nav.is-open .nav__toggle span:nth-child(1){ transform:translateY(10px) rotate(45deg); }
.nav.is-open .nav__toggle span:nth-child(2){ opacity:0; }
.nav.is-open .nav__toggle span:nth-child(3){ transform:translateY(-10px) rotate(-45deg); }

/* ══════════ HERO ══════════ */
.hero{ position:relative; overflow:hidden; padding-block:clamp(8rem,16vh,11rem) clamp(4rem,9vh,7rem); }
.hero__wash{
  position:absolute; inset:0; z-index:-2;
  background:
    radial-gradient(120% 78% at 78% 6%,  var(--petal) 0%, transparent 58%),
    radial-gradient(90% 60% at 8% 22%,   rgba(249,220,229,.72) 0%, transparent 62%),
    radial-gradient(120% 55% at 55% 108%, var(--gold-pale) 0%, transparent 64%),
    var(--ivory);
}
.hero__rays{
  position:absolute; z-index:-1; top:-14%; right:-16%;
  width:min(92vmax,1200px); aspect-ratio:1;
  background:repeating-conic-gradient(from 0deg,
    rgba(223,176,122,.30) 0deg 1.6deg, transparent 1.6deg 9deg);
  -webkit-mask-image:radial-gradient(closest-side,#000 6%,rgba(0,0,0,.35) 40%,transparent 74%);
  mask-image:radial-gradient(closest-side,#000 6%,rgba(0,0,0,.35) 40%,transparent 74%);
  animation:spin 240s linear infinite;
}
@keyframes spin{ to{ transform:rotate(360deg); } }

.hero__inner{
  max-width:var(--wrap); margin-inline:auto; padding-inline:var(--gutter);
  display:grid; grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);
  gap:clamp(2.5rem,5vw,4.5rem); align-items:center;
}
.hero__title{
  font-size:clamp(3.1rem,1.4rem + 7.4vw,7rem);
  font-variation-settings:"SOFT" 46,"WONK" 1;
  font-weight:400; line-height:.92; letter-spacing:-.035em;
}
.hero__title span{ display:block; }
.hero__title--accent{
  font-style:italic; font-weight:600;
  color:var(--rose-deep);
  padding-left:.09em;
}
.hero__lead{ margin-top:1.9rem; max-width:36ch; font-size:clamp(1.06rem,1rem + .35vw,1.24rem); }
.hero__actions{ margin-top:2.4rem; display:flex; flex-wrap:wrap; gap:.9rem; }
.hero__note{
  margin-top:1.6rem; display:flex; align-items:center; gap:.55rem;
  font-size:.86rem; letter-spacing:.03em; color:var(--rose-deep);
}
.hero__note .ico{ width:.95em; height:.95em; opacity:.65; }

.hero__art{ position:relative; display:grid; place-items:center; }
.hero__halo{
  position:absolute; inset:-12%;
  background:radial-gradient(circle at 50% 54%, rgba(255,255,255,.95) 0%, rgba(249,220,229,.6) 42%, transparent 68%);
  filter:blur(6px);
}
.hero__logo{
  position:relative; width:100%; height:auto;
  filter:drop-shadow(0 44px 60px rgba(124,34,66,.18));
  animation:breathe 11s ease-in-out infinite;
}
@keyframes breathe{
  0%,100%{ transform:translateY(0) rotate(0deg); }
  50%    { transform:translateY(-12px) rotate(.5deg); }
}

.flit{
  position:absolute; color:var(--rose); fill:currentColor;
  filter:drop-shadow(0 6px 10px rgba(124,34,66,.22));
  will-change:transform;
}
.flit--1{ width:54px; height:54px; top:1%;   left:-8%;  opacity:.9; animation:drift1 15s ease-in-out infinite; }
.flit--2{ width:38px; height:38px; top:34%;  right:-9%; opacity:.75; color:var(--rose-soft); animation:drift2 19s ease-in-out infinite; }
.flit--3{ width:28px; height:28px; bottom:6%; left:-4%; opacity:.6;  color:var(--rose-deep); animation:drift1 23s ease-in-out infinite reverse; }
@keyframes drift1{
  0%,100%{ transform:translate(0,0) rotate(-8deg); }
  33%    { transform:translate(18px,-22px) rotate(6deg); }
  66%    { transform:translate(-10px,-9px) rotate(-14deg); }
}
@keyframes drift2{
  0%,100%{ transform:translate(0,0) rotate(10deg); }
  50%    { transform:translate(-22px,18px) rotate(-6deg); }
}

/* ══════════ SCRIPT BAND ══════════ */
.band{
  display:flex; align-items:center; justify-content:center; gap:clamp(1rem,3vw,2.5rem);
  max-width:var(--wrap); margin-inline:auto; padding:clamp(1.5rem,4vw,2.75rem) var(--gutter);
}
.band__rule{ flex:1; height:1px; max-width:16rem; background:linear-gradient(90deg,transparent,var(--line),transparent); }
.band__text{
  font-family:var(--script);
  font-size:clamp(1.6rem,1rem + 2.2vw,2.9rem);
  color:var(--rose); line-height:1.3; text-align:center; white-space:nowrap;
}

/* ══════════ PILLARS ══════════ */
.pillars{
  background:
    radial-gradient(80% 50% at 50% 0%, var(--petal) 0%, transparent 70%),
    var(--ivory);
}
.trunk{ list-style:none; padding:0; position:relative; max-width:62rem; margin-inline:auto; }
.trunk::before{
  content:""; position:absolute; left:50%; top:0; bottom:0; width:1px;
  background:linear-gradient(180deg,transparent,var(--line) 10%,var(--line) 90%,transparent);
}
.pillar{
  position:relative;
  display:grid; grid-template-columns:1fr 1fr;
  gap:clamp(1.5rem,4vw,4rem); align-items:center;
  padding-block:clamp(1.5rem,3.5vw,2.75rem);
}
.pillar__node{
  position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  width:38px; height:38px; border-radius:50%;
  display:grid; place-items:center;
  background:var(--ivory); box-shadow:0 0 0 1px var(--line);
  color:var(--rose); font-size:20px;
}
.pillar__letter{
  font-family:var(--display); font-weight:300;
  font-size:clamp(4rem,3rem + 6vw,9rem); line-height:.8;
  color:transparent;
  -webkit-text-stroke:1.2px var(--rose-soft);
  font-variation-settings:"SOFT" 60,"WONK" 1;
  transition:color .6s ease, -webkit-text-stroke-color .6s ease;
}
.pillar:hover .pillar__letter{ color:rgba(233,160,182,.16); -webkit-text-stroke-color:var(--rose); }
.pillar__body h3{ font-size:clamp(1.5rem,1.2rem + 1vw,2.05rem); margin-bottom:.6rem; }
.pillar__def{
  font-family:var(--display); font-style:italic; font-weight:400;
  font-size:1.05rem; color:var(--rose-deep); margin-bottom:.8rem;
}
.pillar__body p:last-child{ font-size:.98rem; }

.pillar__letter,.pillar__body{ grid-row:1; }
.pillar[data-side="left"]  .pillar__body  { grid-column:1; text-align:right; }
.pillar[data-side="left"]  .pillar__letter{ grid-column:2; text-align:left;  padding-left:.5rem; }
.pillar[data-side="right"] .pillar__letter{ grid-column:1; text-align:right; padding-right:.5rem; }
.pillar[data-side="right"] .pillar__body  { grid-column:2; text-align:left; }

/* ══════════ SERVICES ══════════ */
.services{ background:linear-gradient(180deg,var(--ivory),var(--petal) 55%,var(--ivory)); }
.services .sechead{ margin-left:auto; text-align:right; }
.services .sechead__lead{ margin-left:auto; }

.cards{ display:grid; grid-template-columns:repeat(6,1fr); gap:clamp(.9rem,1.5vw,1.35rem); }
.card{
  grid-column:span 2;
  position:relative; padding:clamp(1.6rem,2.4vw,2.3rem);
  border-radius:20px;
  background:rgba(255,250,247,.72);
  box-shadow:inset 0 0 0 1px var(--line-soft), var(--shadow-sm);
  backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
  transition:transform .45s cubic-bezier(.22,.7,.24,1), box-shadow .45s ease, background .45s ease;
  overflow:hidden;
}
.card::before{
  content:""; position:absolute; left:0; right:0; top:0; height:2px;
  background:linear-gradient(90deg,var(--rose),var(--gold));
  transform:scaleX(0); transform-origin:left;
  transition:transform .55s cubic-bezier(.22,.7,.24,1);
}
.card:hover{ transform:translateY(-5px); box-shadow:inset 0 0 0 1px var(--line), var(--shadow-md); background:var(--ivory); }
.card:hover::before{ transform:scaleX(1); }
.card--wide{ grid-column:span 4; }
.card__num{
  font-family:var(--display); font-size:.78rem; font-weight:600;
  letter-spacing:.2em; color:var(--rose-soft); display:block; margin-bottom:1rem;
}
.card h3{ font-size:clamp(1.25rem,1.1rem + .5vw,1.6rem); margin-bottom:.7rem; }
.card p{ font-size:.97rem; }
.card--accent{
  background:linear-gradient(140deg,var(--rose-deep),var(--rose-dark));
  box-shadow:var(--shadow-md);
}
.card--accent h3{ color:var(--ivory); }
.card--accent p{ color:rgba(255,250,247,.8); }
.card--accent .card__num{ color:var(--rose-soft); }
.card--accent:hover{ background:linear-gradient(140deg,var(--rose),var(--rose-deep)); }

.card--cta{
  display:flex; flex-direction:column; justify-content:center; align-items:flex-start;
  gap:1rem; text-decoration:none;
  background:transparent; box-shadow:inset 0 0 0 1.5px var(--line);
  backdrop-filter:none; -webkit-backdrop-filter:none;
}
.card--cta h3{ font-size:1.25rem; }
.card--cta:hover{ background:var(--blush); box-shadow:inset 0 0 0 1.5px var(--rose-soft); }
.card--cta .card__arrow{
  display:inline-flex; align-items:center; gap:.5rem;
  font-size:.82rem; font-weight:600; letter-spacing:.09em; text-transform:uppercase;
  color:var(--rose-deep);
}
.card--cta .card__arrow svg{ width:1.1em; height:1.1em; transition:transform .4s cubic-bezier(.22,.7,.24,1); }
.card--cta:hover .card__arrow svg{ transform:translateX(5px); }

/* ══════════ APPROACH ══════════ */
.approach__grid{
  display:grid; grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
  gap:clamp(2rem,5vw,5rem) clamp(2.5rem,6vw,6rem); align-items:start;
}
.approach .sechead{ margin-bottom:0; }
.steps{ grid-row:span 2; list-style:none; padding:0; position:relative; }
.steps::before{
  content:""; position:absolute; left:23px; top:2rem; bottom:2rem; width:1px;
  background:repeating-linear-gradient(180deg,var(--rose-soft) 0 4px,transparent 4px 10px);
}
.step{ display:flex; gap:1.5rem; padding-block:clamp(1rem,2vw,1.6rem); position:relative; }
.step__n{
  flex:none; width:47px; height:47px; border-radius:50%;
  display:grid; place-items:center;
  background:var(--ivory); box-shadow:0 0 0 1px var(--line);
  font-family:var(--display); font-size:.86rem; font-weight:600; color:var(--rose-deep);
  transition:background .4s ease, color .4s ease, box-shadow .4s ease;
}
.step:hover .step__n{ background:var(--rose-deep); color:var(--ivory); box-shadow:0 0 0 6px var(--blush); }
.step h3{ font-size:1.35rem; margin-bottom:.45rem; }
.step p{ font-size:.97rem; }

.quote{
  position:relative; padding:clamp(2rem,3.5vw,3rem);
  border-radius:22px;
  background:linear-gradient(150deg,var(--blush),var(--petal));
  box-shadow:inset 0 0 0 1px var(--line-soft);
  overflow:hidden;
}
.quote__wing{
  position:absolute; right:-14px; bottom:-16px; width:120px; height:120px;
  color:var(--rose); fill:currentColor; opacity:.14; transform:rotate(-14deg);
}
.quote blockquote{
  font-family:var(--display); font-style:italic; font-weight:400;
  font-size:clamp(1.35rem,1.1rem + 1vw,1.85rem); line-height:1.32;
  color:var(--ink); letter-spacing:-.01em;
}
.quote figcaption{
  margin-top:1.2rem; font-size:.72rem; letter-spacing:.2em;
  text-transform:uppercase; color:var(--rose-deep);
}

/* ══════════ CRISIS ══════════ */
.crisis{
  background:
    radial-gradient(90% 60% at 50% 0%, rgba(200,68,110,.55) 0%, transparent 65%),
    linear-gradient(160deg,var(--rose-deep),var(--rose-dark) 70%,#5F1731);
  color:rgba(255,250,247,.82);
}
.lines{
  list-style:none; padding:0;
  display:grid; grid-template-columns:repeat(4,1fr);
  border-block:1px solid rgba(255,250,247,.2);
}
.line{
  padding:clamp(1.6rem,2.4vw,2.2rem) clamp(1rem,1.8vw,1.6rem);
  transition:background .4s ease;
  text-align:center;
}
.line + .line{ border-left:1px solid rgba(255,250,247,.2); }
.line:hover{ background:rgba(255,250,247,.06); }
.line__label{ font-size:.7rem; letter-spacing:.18em; text-transform:uppercase; color:var(--rose-soft); }
.line__value{
  display:block; margin-block:.7rem .5rem;
  font-family:var(--display); font-weight:500;
  font-size:clamp(1.25rem,1.02rem + .68vw,1.55rem);
  color:var(--ivory); text-decoration:none; letter-spacing:-.01em;
  border-bottom:1.5px solid transparent; transition:border-color .3s ease;
  overflow-wrap:break-word;
}
.line__value--sm{ font-size:clamp(1.12rem,.98rem + .42vw,1.3rem); }
.line__value:hover{ border-bottom-color:var(--rose-soft); }
.line__note{ font-size:.84rem; color:rgba(255,250,247,.6); }

/* ══════════ CONTACT ══════════ */
.contact{ background:linear-gradient(180deg,var(--ivory),var(--petal)); }
.contact__grid{
  display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  gap:clamp(2.5rem,5vw,5rem); align-items:start;
}
.mailcard{
  margin-top:2.5rem; display:flex; align-items:center; gap:1.1rem;
  padding:1.1rem 1.4rem; border-radius:16px; text-decoration:none;
  background:var(--ivory); box-shadow:inset 0 0 0 1px var(--line-soft), var(--shadow-sm);
  transition:transform .4s cubic-bezier(.22,.7,.24,1), box-shadow .4s ease;
}
.mailcard:hover{ transform:translateY(-3px); box-shadow:inset 0 0 0 1px var(--rose-soft), var(--shadow-md); }
.mailcard__ico{
  flex:none; width:44px; height:44px; border-radius:50%; display:grid; place-items:center;
  background:var(--rose-deep); color:var(--ivory);
}
.mailcard__ico svg{ width:20px; height:20px; }
.mailcard__body{ display:flex; flex-direction:column; min-width:0; }
.mailcard__label{ font-size:.7rem; letter-spacing:.18em; text-transform:uppercase; color:var(--rose-deep); }
.mailcard__addr{ font-family:var(--display); font-size:1.02rem; color:var(--ink); overflow-wrap:anywhere; }
.contact__fineprint{ margin-top:1.4rem; font-size:.84rem; color:var(--ink-soft); opacity:.8; max-width:34ch; }

.form{
  padding:clamp(1.6rem,3vw,2.6rem);
  border-radius:24px; background:var(--ivory);
  box-shadow:inset 0 0 0 1px var(--line-soft), var(--shadow-lg);
}
.hp{ position:absolute; left:-9999px; }
.field{ margin-bottom:1.15rem; }
.field-row{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.field label{
  display:block; margin-bottom:.45rem;
  font-size:.74rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  color:var(--rose-deep);
}
.field .opt{ font-weight:400; opacity:.5; letter-spacing:.1em; }
.field input,.field textarea,.field select{
  width:100%; padding:.85rem 1rem; border-radius:12px;
  border:1.5px solid var(--line-soft); background:var(--petal);
  color:var(--ink); font-size:.98rem; line-height:1.5;
  transition:border-color .3s ease, background .3s ease, box-shadow .3s ease;
}
.field textarea{ resize:vertical; min-height:7.5rem; }
.field input::placeholder,.field textarea::placeholder{ color:var(--ink-soft); opacity:.45; }
.field input:focus,.field textarea:focus,.field select:focus{
  outline:none; border-color:var(--rose); background:var(--ivory);
  box-shadow:0 0 0 4px rgba(200,68,110,.12);
}
.field input[aria-invalid="true"],.field textarea[aria-invalid="true"]{
  border-color:#C0392B; background:#FDF0EE;
}
.field .err{ display:block; margin-top:.4rem; font-size:.8rem; color:#B23122; text-transform:none; letter-spacing:0; font-weight:500; }
.select{ position:relative; }
.select select{ appearance:none; -webkit-appearance:none; padding-right:2.8rem; cursor:pointer; }
.select svg{
  position:absolute; right:1rem; top:50%; transform:translateY(-50%);
  width:18px; height:18px; color:var(--rose-deep); pointer-events:none;
}

.btn__spinner{
  position:absolute; width:17px; height:17px; border-radius:50%;
  border:2px solid rgba(255,250,247,.35); border-top-color:var(--ivory);
  opacity:0; animation:spin .7s linear infinite;
}
.btn.is-busy{ pointer-events:none; }
.btn.is-busy .btn__label{ opacity:0; }
.btn.is-busy .btn__spinner{ opacity:1; }

.form__status{ margin-top:1rem; font-size:.92rem; min-height:1.4rem; }
.form__status.is-ok{ color:var(--rose-deep); font-weight:600; }
.form__status.is-err{ color:#B23122; }

.form--sent{ text-align:center; }
.sent{ display:grid; place-items:center; gap:1rem; padding:clamp(1rem,3vw,2.5rem) 0; }
.sent svg{ width:56px; height:56px; color:var(--rose); fill:currentColor; animation:pop .7s cubic-bezier(.2,1.4,.4,1) both; }
.sent h3{ font-size:1.7rem; }
.sent p{ max-width:34ch; }
@keyframes pop{ from{ transform:scale(.4) rotate(-12deg); opacity:0; } to{ transform:none; opacity:1; } }

/* ══════════ FOOTER ══════════ */
.foot{ background:var(--blush); padding-top:clamp(3rem,6vw,4.5rem); color:var(--ink-soft); }
.foot__grid{
  display:grid; grid-template-columns:auto 1fr auto; gap:2.5rem;
  align-items:center; padding-bottom:2.5rem;
}
.foot__brand{ display:flex; align-items:center; gap:1rem; }
.foot__brand img{ width:64px; height:64px; }
.foot__tag{
  font-family:var(--display); font-style:italic; font-size:1.05rem;
  color:var(--rose-deep); line-height:1.25; max-width:8ch;
}
.foot__nav{ display:flex; flex-wrap:wrap; justify-content:center; gap:.6rem 1.6rem; }
.foot__nav a{ font-size:.86rem; text-decoration:none; transition:color .3s ease; }
.foot__nav a:hover{ color:var(--rose-deep); }
.foot__contact{ text-align:right; }
.foot__contact a{ font-size:.92rem; color:var(--ink); text-decoration:none; border-bottom:1px solid var(--rose-soft); overflow-wrap:anywhere; }
.foot__contact a:hover{ color:var(--rose-deep); }
.foot__script{ font-family:var(--script); font-size:1.35rem; color:var(--rose); margin-top:.5rem; }

.foot__base{
  border-top:1px solid rgba(158,44,81,.14);
  padding-block:1.6rem 2.2rem;
  display:flex; flex-wrap:wrap; gap:.6rem 2rem; justify-content:space-between; align-items:baseline;
  font-size:.78rem; opacity:.8;
}
.foot__disclaimer{ max-width:56ch; line-height:1.6; }

/* ══════════ REVEAL ══════════ */
.reveal{ opacity:0; transform:translateY(22px); }
.reveal--scale{ transform:translateY(22px) scale(.965); }
.reveal.in{
  opacity:1; transform:none;
  transition:opacity .85s cubic-bezier(.22,.7,.24,1) var(--d,0ms),
             transform .85s cubic-bezier(.22,.7,.24,1) var(--d,0ms);
}

/* ══════════ RESPONSIVE ══════════ */
@media (max-width:1000px){
  .cards{ grid-template-columns:repeat(4,1fr); }
  .card{ grid-column:span 2; }
  .card--wide{ grid-column:span 4; }
  .lines{ grid-template-columns:repeat(2,1fr); }
}

@media (max-width:900px){
  .nav__links{
    position:fixed; inset:0 0 auto 0; z-index:-1;
    flex-direction:column; align-items:stretch; gap:0;
    padding:5.5rem var(--gutter) 2rem;
    background:rgba(255,250,247,.97);
    backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px);
    box-shadow:0 24px 60px -30px rgba(124,34,66,.5);
    transform:translateY(-101%); transition:transform .5s cubic-bezier(.22,.7,.24,1);
    visibility:hidden;
  }
  .nav.is-open .nav__links{ transform:translateY(0); visibility:visible; }
  .nav__links a:not(.btn){ padding-block:1rem; border-bottom:1px solid var(--line-soft); font-size:1.05rem; }
  .nav__links .btn{ margin-top:1.5rem; }
  .nav__toggle{ display:flex; }
  .nav.is-open{ background:rgba(255,250,247,.97); }

  .hero__inner{ grid-template-columns:1fr; text-align:center; }
  .hero__copy{ order:2; }
  .hero__art{ order:1; width:min(78%,420px); margin-inline:auto; }
  .hero__lead,.hero__actions,.hero__note{ margin-inline:auto; justify-content:center; }
  .hero__title--accent{ padding-left:0; }

  .approach__grid,.contact__grid{ grid-template-columns:1fr; }
  .steps{ grid-row:auto; }
  .services .sechead{ margin-left:0; text-align:left; }
  .services .sechead__lead{ margin-left:0; }
}

@media (max-width:760px){
  .trunk::before{ left:17px; }
  .pillar{ grid-template-columns:1fr; padding-left:3.5rem; gap:.4rem; }
  .pillar__node{ left:17px; top:2.6rem; transform:translate(-50%,-50%); }
  .pillar__letter,.pillar__body{ grid-row:auto; }
  .pillar[data-side="left"] .pillar__body,
  .pillar[data-side="right"] .pillar__body{ grid-column:1; text-align:left; }
  .pillar[data-side="left"] .pillar__letter,
  .pillar[data-side="right"] .pillar__letter{
    grid-column:1; text-align:left; padding:0;
    font-size:3.4rem; line-height:1; margin-bottom:.2rem;
  }

  .cards{ grid-template-columns:1fr; }
  .card,.card--wide,.card--cta{ grid-column:span 1; }
  .lines{ grid-template-columns:1fr; }
  .line + .line{ border-left:0; border-top:1px solid rgba(255,250,247,.2); }
  .field-row{ grid-template-columns:1fr; }

  .band__text{ white-space:normal; }
  .band__rule{ max-width:3rem; }

  .foot__grid{ grid-template-columns:1fr; justify-items:center; text-align:center; gap:1.8rem; }
  .foot__contact{ text-align:center; }
  .foot__brand{ flex-direction:column; }
  .foot__tag{ max-width:none; }
  .foot__base{ justify-content:center; text-align:center; }
}

@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{
    animation-duration:.001ms !important; animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
  }
  .reveal{ opacity:1; transform:none; }
}
