/* =========================================================================
   Green Tree — section components (pillars, apps, services, stats, cases,
   team, company, contact, legal). Pairs with styles.css.
   ========================================================================= */

/* ----------------------------------------------------------- panel/wrap */
.panel{border-radius:2rem;border:1px solid rgba(0,0,0,.05);background:rgba(255,255,255,.7);
  backdrop-filter:blur(4px);padding:2rem;box-shadow:var(--shadow-soft)}
@media(min-width:640px){.panel{padding:3rem}}

/* ----------------------------------------------------------- 4 pillars */
.pillar{position:relative;overflow:hidden;height:100%;border-radius:1.5rem;border:1px solid rgba(0,0,0,.05);
  background:#fff;padding:1.75rem;box-shadow:var(--shadow-soft);transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.pillar:hover{transform:translateY(-6px);box-shadow:var(--shadow-lift)}
.pillar:hover .icon-tile{color:#fff;transform:scale(1.06)}
.pillar:hover .icon-tile::before{opacity:1}
.pillar__num{position:absolute;right:-.5rem;top:-1.5rem;font-family:var(--font-display);font-size:5.5rem;font-weight:700;color:rgba(2,181,151,.07);transition:color .5s}
.pillar:hover .pillar__num{color:rgba(2,181,151,.12)}
.pillar__bar{position:absolute;left:1.75rem;right:1.75rem;top:0;height:2px;border-radius:999px;background:var(--brand-gradient);
  transform:scaleX(0);transform-origin:left;transition:transform .8s var(--ease) .25s}
.reveal.is-visible .pillar__bar{transform:scaleX(1)}
.pillar h3{position:relative;margin-top:1.25rem;font-size:1.25rem;color:var(--ink)}
.pillar p{position:relative;margin-top:.65rem;font-size:.95rem;line-height:1.6;color:rgba(11,36,32,.6)}

/* --------------------------------------------------------- app cards */
.app-card{display:flex;flex-direction:column;height:100%;overflow:hidden;border-radius:1.5rem;
  border:1px solid rgba(0,0,0,.05);background:var(--cream);transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.app-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lift)}
.app-card__media{position:relative;aspect-ratio:16/10;display:flex;align-items:center;justify-content:center;
  padding:1rem;background:var(--brand-gradient-soft);overflow:hidden}
.app-card__media svg{width:100%;height:100%}
.app-card__body{padding:1.75rem;flex:1}
.app-card__head{display:flex;align-items:center;justify-content:space-between}
.app-card h3{font-size:1.25rem;color:var(--ink)}
.app-card__tagline{margin-top:.35rem;font-size:.875rem;font-weight:600;color:var(--brand-700)}
.app-card__body p{margin-top:.75rem;font-size:.95rem;line-height:1.6;color:rgba(11,36,32,.6)}
.app-card__arrow{width:1.25rem;height:1.25rem;color:rgba(11,36,32,.3);transition:transform .3s,color .3s}
.app-card:hover .app-card__arrow{color:var(--brand-600);transform:translate(2px,-2px)}

/* app illustrations — elements assemble in sequence on scroll-reveal */
.app-illus>*{transform-box:fill-box;transform-origin:center}
@keyframes illus-pop{from{opacity:0;transform:scale(.5)}to{opacity:1;transform:none}}
.reveal.is-visible .app-illus>*{animation:illus-pop .55s var(--ease) both;animation-delay:calc(var(--i,0)*55ms + .1s)}
/* gentle continuous float once assembled */
@keyframes illus-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
.reveal.is-visible .app-illus{animation:illus-float 7s ease-in-out 1.6s infinite}

/* --------------------------------------------------- app rows (page) */
.app-row{display:grid;gap:2.5rem;align-items:center}
@media(min-width:1024px){.app-row{grid-template-columns:1fr 1fr;gap:4rem}
  .app-row--rev .app-row__media{order:2}.app-row--rev .app-row__text{order:1}}
.app-row__media{position:relative;overflow:hidden;border-radius:2rem;border:1px solid rgba(0,0,0,.05);
  background:var(--brand-gradient-soft);padding:1.5rem;box-shadow:var(--shadow-soft)}
@media(min-width:640px){.app-row__media{padding:2.5rem}}
.app-row__media .illus{aspect-ratio:16/11}
.app-row__media .blob{position:absolute;right:-2.5rem;top:-2.5rem;width:10rem;height:10rem;border-radius:50%;background:rgba(2,181,151,.15);filter:blur(40px)}
.app-row__kicker{font-family:var(--font-display);font-size:.875rem;font-weight:700;text-transform:uppercase;letter-spacing:.2em;color:var(--brand-600)}
.app-row h2{margin-top:1rem;max-width:28rem;font-size:clamp(1.75rem,3vw,2.25rem);line-height:1.15;color:var(--ink)}
.app-row__text>p{margin-top:1.25rem;max-width:32rem;font-size:1.125rem;line-height:1.7;color:rgba(11,36,32,.65)}
.feature-grid{margin-top:2rem;display:grid;gap:.75rem}
@media(min-width:640px){.feature-grid{grid-template-columns:1fr 1fr}}
.feature{height:100%;border-radius:1rem;border:1px solid rgba(0,0,0,.05);background:#fff;padding:1.25rem;box-shadow:var(--shadow-soft);transition:box-shadow .3s}
.feature:hover{box-shadow:var(--shadow-lift)}
.feature h3{margin-top:.75rem;font-size:1rem;color:var(--ink)}
.feature p{margin-top:.35rem;font-size:.875rem;line-height:1.5;color:rgba(11,36,32,.6)}

/* ------------------------------------------------------- services */
.service{display:flex;flex-direction:column;height:100%;border-radius:1.5rem;border:1px solid rgba(255,255,255,.8);
  background:rgba(255,255,255,.8);backdrop-filter:blur(4px);padding:1.75rem;box-shadow:var(--shadow-soft);
  transition:transform .5s var(--ease),box-shadow .5s var(--ease),background .5s}
.service:hover{transform:translateY(-6px);background:#fff;box-shadow:var(--shadow-lift)}
.service h3{margin-top:1.25rem;font-size:1.125rem;color:var(--ink)}
.service--lg h3{font-size:1.5rem}
.service__desc{margin-top:.65rem;flex:1;font-size:.9rem;line-height:1.6;color:rgba(11,36,32,.62)}
.service--lg .service__desc{font-size:1rem}
.checklist{margin-top:1.25rem;display:flex;flex-direction:column;gap:.6rem;border-top:1px solid rgba(0,0,0,.05);padding-top:1.25rem}
.checklist li{display:flex;align-items:flex-start;gap:.6rem;font-size:.85rem;color:rgba(11,36,32,.8)}
.checklist svg{width:.9rem;height:.9rem;color:var(--brand-600);flex:none;margin-top:.2rem;stroke-width:3}
.service--lg .checklist li{font-size:.95rem}
.service__num{position:absolute;right:-.25rem;top:-1rem;font-family:var(--font-display);font-size:6rem;font-weight:700;color:rgba(2,181,151,.06)}
.service--lg{position:relative;overflow:hidden;border-radius:2rem;padding:2rem;background:#fff;border-color:rgba(0,0,0,.05)}
@media(min-width:1024px){.service--lg{padding:2.5rem}}
.service--lg .service__head{position:relative;display:flex;align-items:center;gap:1rem}

/* ------------------------------------------------------- process */
.process{position:relative}
.process__track{position:relative;display:grid;grid-template-columns:1fr;gap:2.5rem}
@media(min-width:1024px){.process__track{grid-template-columns:repeat(5,1fr);gap:1rem}
  .process__track::before{content:"";position:absolute;left:10%;right:10%;top:1.75rem;height:2px;
    background:linear-gradient(90deg,var(--brand-500),var(--leaf-500));opacity:.3;
    transform:scaleX(0);transform-origin:left;transition:transform 1.4s var(--ease) .3s}
  .reveal.is-visible .process__track::before{transform:scaleX(1)}}
.process__step{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center}
.process__num{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;width:3.5rem;height:3.5rem;
  border-radius:1rem;background:#fff;font-family:var(--font-display);font-size:1.125rem;font-weight:700;color:var(--brand-700);
  box-shadow:var(--shadow-soft),inset 0 0 0 1px rgba(2,181,151,.15)}
.process__step h3{margin-top:1.25rem;font-size:1.125rem;color:var(--ink)}
.process__step p{margin-top:.4rem;font-size:.875rem;line-height:1.5;color:rgba(11,36,32,.55);max-width:14rem}

/* ------------------------------------------------------- stats band */
.stats{position:relative;overflow:hidden;background:var(--ink);color:#fff;padding-block:5rem}
.stats__bg{position:absolute;inset:0;opacity:.8;background:
  radial-gradient(50% 50% at 10% 0%,rgba(2,181,151,.22),transparent 55%),
  radial-gradient(45% 45% at 90% 10%,rgba(101,188,123,.16),transparent 55%)}
.stats__glow{position:absolute;bottom:-6rem;left:50%;transform:translateX(-50%);width:36rem;height:18rem;border-radius:50%;background:rgba(2,181,151,.2);filter:blur(100px)}
.stats__grid{position:relative;display:grid;gap:3rem 1.5rem;grid-template-columns:1fr}
@media(min-width:640px){.stats__grid{grid-template-columns:1fr 1fr}}
@media(min-width:1024px){.stats__grid{grid-template-columns:repeat(4,1fr)}}
.stat{text-align:center}
@media(min-width:1024px){.stat{text-align:left}}
.stat__num{font-family:var(--font-display);font-size:clamp(3rem,5vw,3.75rem);font-weight:700;letter-spacing:-.03em;
  background:var(--brand-gradient);-webkit-background-clip:text;background-clip:text;color:transparent}
.stat__label{margin-top:.75rem;font-family:var(--font-display);font-weight:600;color:#fff}
.stat__sub{margin-top:.25rem;font-size:.875rem;color:rgba(255,255,255,.5)}

/* ------------------------------------------------------- case studies */
.case{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;height:100%;
  border-radius:1.5rem;border:1px solid rgba(0,0,0,.05);background:#fff;padding:1.75rem;
  transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.case:hover{transform:translateY(-6px);box-shadow:var(--shadow-lift)}
.case__top{display:flex;align-items:center;justify-content:space-between}
.case__num{font-family:var(--font-display);font-weight:700;font-size:.875rem;color:rgba(11,36,32,.15)}
.case__client{margin-top:1.5rem;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.15em;color:rgba(11,36,32,.4)}
.case h3{margin-top:.5rem;font-size:1.25rem;line-height:1.3;color:var(--ink)}
.case p{margin-top:.75rem;font-size:.95rem;line-height:1.6;color:rgba(11,36,32,.6)}
.case__link{margin-top:2rem;display:inline-flex;align-items:center;gap:.4rem;font-size:.875rem;font-weight:600;color:var(--brand-700)}
.case__link svg{width:1rem;height:1rem;transition:transform .3s}
.case:hover .case__link svg{transform:translate(2px,-2px)}

/* ------------------------------------------------------- company/areas */
.area{height:100%;border-radius:1.5rem;border:1px solid rgba(0,0,0,.05);background:#fff;padding:1.5rem;
  box-shadow:var(--shadow-soft);transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.area:hover{transform:translateY(-4px);box-shadow:var(--shadow-lift)}
.area:hover .icon-tile{color:#fff;transform:scale(1.06)}
.area:hover .icon-tile::before{opacity:1}
.area h3{margin-top:1rem;font-size:1.125rem;color:var(--ink)}
.area p{margin-top:.5rem;font-size:.875rem;line-height:1.6;color:rgba(11,36,32,.6)}
.value-check{display:flex;align-items:flex-start;gap:.6rem}
.value-check__ic{display:flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;border-radius:999px;
  background:rgba(2,181,151,.12);flex:none;margin-top:.1rem}
.value-check__ic svg{width:.75rem;height:.75rem;color:var(--brand-600);stroke-width:3.5}
.value-check p{font-size:.875rem;font-weight:500;color:rgba(11,36,32,.8)}
.value-card{display:flex;flex-direction:column;height:100%;border-radius:1.5rem;border:1px solid rgba(0,0,0,.05);
  background:#fff;padding:1.75rem;box-shadow:var(--shadow-soft);transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.value-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lift)}
.value-card__num{display:flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;border-radius:.9rem;
  background:var(--brand-gradient);color:#fff;font-family:var(--font-display);font-weight:700;box-shadow:var(--shadow-lift)}
.value-card h3{margin-top:1.25rem;font-size:1.125rem;color:var(--ink)}
.value-card p{margin-top:.6rem;font-size:.875rem;line-height:1.6;color:rgba(11,36,32,.6)}

/* mission facts */
.facts{display:grid;gap:1rem;border-radius:2rem;border:1px solid rgba(0,0,0,.05);background:#fff;padding:1.5rem;box-shadow:var(--shadow-soft)}
@media(min-width:640px){.facts{grid-template-columns:1fr 1fr;padding:2rem}}
.fact{border-radius:1rem;background:var(--cream);padding:1.25rem}
.fact h4{margin-top:1rem;font-family:var(--font-display);font-size:1rem;color:var(--ink)}
.fact p{margin-top:.25rem;font-size:.875rem;color:rgba(11,36,32,.55)}

/* cta band */
.cta-band{position:relative;overflow:hidden;border-radius:2.75rem;background:var(--ink);color:#fff;padding:3.5rem 2rem}
@media(min-width:640px){.cta-band{padding:4rem 3.5rem}}
@media(min-width:1024px){.cta-band{padding:5rem}}
.cta-band__bg{position:absolute;inset:0;opacity:.7;background:radial-gradient(50% 50% at 10% 0%,rgba(2,181,151,.22),transparent 55%),radial-gradient(45% 45% at 90% 10%,rgba(101,188,123,.16),transparent 55%)}
.cta-band__inner{position:relative}
.cta-band h2{font-size:clamp(1.75rem,3.5vw,2.25rem);letter-spacing:-.03em;text-wrap:balance}
.cta-band .lead{color:rgba(255,255,255,.7)}
.cta-band .checklist{border-top-color:rgba(255,255,255,.12)}
.cta-band .checklist li{color:rgba(255,255,255,.85)}
.cta-band .checklist svg{color:var(--brand-300)}

/* ------------------------------------------------------- suite modules */
.modules{position:relative;overflow:hidden;background:var(--ink);color:#fff;padding-block:6rem}
@media(min-width:1024px){.modules{padding-block:8rem}}
.modules__bg{position:absolute;inset:0;opacity:.7;background:radial-gradient(50% 50% at 10% 0%,rgba(2,181,151,.2),transparent 55%),radial-gradient(45% 45% at 90% 10%,rgba(101,188,123,.14),transparent 55%)}
.module{height:100%;border-radius:1.5rem;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.04);
  backdrop-filter:blur(4px);padding:1.75rem;transition:transform .5s var(--ease),border-color .5s,background .5s}
.module:hover{transform:translateY(-6px);border-color:rgba(34,196,155,.3);background:rgba(255,255,255,.07)}
.module__top{display:flex;align-items:center;gap:.75rem}
.module__num{display:flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:.75rem;
  background:var(--brand-gradient);font-family:var(--font-display);font-size:.875rem;font-weight:700;color:#fff}
.module__check{margin-left:auto;width:1.25rem;height:1.25rem;color:var(--brand-400);stroke-width:2.5}
.module h3{margin-top:1.25rem;font-size:1.125rem;color:#fff}
.module p{margin-top:.65rem;font-size:.875rem;line-height:1.6;color:rgba(255,255,255,.6)}

/* ------------------------------------------------------- team */
.avatar{position:relative;overflow:hidden;border-radius:1.6rem;aspect-ratio:1;display:flex;align-items:center;justify-content:center}
.avatar__glow{position:absolute;right:-25%;top:-25%;width:66%;height:66%;border-radius:50%;background:rgba(255,255,255,.2);filter:blur(40px)}
.avatar__initials{position:relative;font-family:var(--font-display);font-weight:700;text-transform:uppercase;color:#fff;font-size:2.4rem}
.avatar--g1{background:linear-gradient(135deg,#02B597,#65BC7B)}
.avatar--g2{background:linear-gradient(135deg,#019680,#2FB58E)}
.avatar--g3{background:linear-gradient(135deg,#0A5F53,#22C49B)}
.avatar--g4{background:linear-gradient(135deg,#067A69,#5CD8B6)}
.avatar--g5{background:linear-gradient(135deg,#0C4942,#02B597)}
.avatar--g6{background:linear-gradient(135deg,#0E7565,#65BC7B)}
@keyframes soft-pop{from{opacity:0;transform:scale(.82)}to{opacity:1;transform:none}}
.reveal.is-visible .avatar{animation:soft-pop .6s var(--ease) .12s both}

.founder{position:relative;overflow:hidden;border-radius:2.75rem;border:1px solid rgba(0,0,0,.05);background:#fff;box-shadow:var(--shadow-soft)}
.founder__blob{position:absolute;right:-6rem;top:-6rem;width:18rem;height:18rem;border-radius:50%;background:var(--brand-gradient);opacity:.1;filter:blur(60px)}
.founder__inner{position:relative;display:grid;gap:2rem;padding:1.75rem;align-items:center}
@media(min-width:640px){.founder__inner{padding:2.5rem}}
@media(min-width:1024px){.founder__inner{grid-template-columns:auto 1fr;gap:3.5rem;padding:3.5rem}}
.founder .avatar{width:11rem;height:11rem;margin-inline:auto;box-shadow:var(--shadow-lift)}
@media(min-width:640px){.founder .avatar{width:14rem;height:14rem}}
@media(min-width:1024px){.founder .avatar{width:16rem;height:16rem;margin:0}}
.founder .avatar__initials{font-size:4.5rem}
.founder h2{margin-top:1rem;font-size:clamp(1.875rem,3vw,2.25rem);color:var(--ink)}
.founder__role{margin-top:.5rem;font-family:var(--font-display);font-size:1.125rem;font-weight:600;color:var(--brand-700)}
.founder__bio{margin-top:1.25rem;max-width:34rem;font-size:1.125rem;line-height:1.7;color:rgba(11,36,32,.65)}

.team-card{position:relative;display:flex;flex-direction:column;height:100%;overflow:hidden;border-radius:1.5rem;
  border:1px solid rgba(0,0,0,.05);background:#fff;box-shadow:var(--shadow-soft);transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.team-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lift)}
.team-card .avatar{border-radius:0}
.team-card .avatar__initials{font-size:3rem}
.team-card__ln{position:absolute;right:.75rem;top:.75rem;display:flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;
  border-radius:999px;background:rgba(255,255,255,.9);color:rgba(11,36,32,.7);box-shadow:var(--shadow-soft);opacity:0;transition:all .3s}
.team-card:hover .team-card__ln{opacity:1}
.team-card__ln:hover{background:var(--brand-gradient);color:#fff}
.team-card__ln svg{width:1rem;height:1rem}
.team-card__body{padding:1.5rem;flex:1}
.team-card--compact .team-card__body{padding:1.25rem}
.team-card h3{font-size:1.125rem;color:var(--ink)}
.team-card--compact h3{font-size:1rem}
.team-card__role{margin-top:.25rem;font-size:.875rem;font-weight:500;color:var(--brand-700)}
.team-card__area{margin-top:.5rem;font-size:.72rem;line-height:1.5;color:rgba(11,36,32,.45)}

/* ------------------------------------------------------- partner cards */
.partner-card{position:relative;display:flex;flex-direction:column;height:100%;border-radius:2rem;
  border:1px solid rgba(0,0,0,.05);background:#fff;padding:1.75rem;box-shadow:var(--shadow-soft);transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
@media(min-width:1024px){.partner-card{padding:2.5rem}}
.partner-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lift)}
.partner-card__top{display:flex;align-items:flex-start;justify-content:space-between}
.partner-card__mark{width:3.5rem;height:3.5rem}
.partner-card__go{display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:999px;
  background:var(--cream);color:rgba(11,36,32,.4);transition:all .3s}
.partner-card:hover .partner-card__go{background:var(--brand-gradient);color:#fff}
.partner-card__go svg{width:1.25rem;height:1.25rem}
.partner-card h2{margin-top:1.5rem;font-size:1.5rem;color:var(--ink)}
.partner-card p{margin-top:.75rem;flex:1;font-size:1rem;line-height:1.65;color:rgba(11,36,32,.65)}
.partner-card__link{margin-top:1.5rem;display:inline-flex;align-items:center;gap:.4rem;font-size:.875rem;font-weight:600;color:var(--brand-700)}
.partner-card__link svg{width:1rem;height:1rem;transition:transform .3s}
.partner-card:hover .partner-card__link svg{transform:translate(2px,-2px)}

/* ------------------------------------------------------- contact */
.contact-grid{display:grid;gap:2.5rem;align-items:start}
@media(min-width:1024px){.contact-grid{grid-template-columns:1.15fr 1fr;gap:3.5rem}}
.form-card{position:relative;border-radius:2rem;border:1px solid rgba(0,0,0,.05);background:#fff;padding:1.75rem;box-shadow:var(--shadow-soft)}
@media(min-width:640px){.form-card{padding:2.25rem}}
.form{display:flex;flex-direction:column;gap:1.25rem}
.form-grid{display:grid;gap:1.25rem}
@media(min-width:640px){.form-grid{grid-template-columns:1fr 1fr}}
.field{display:flex;flex-direction:column;gap:.5rem}
.field label{font-size:.875rem;font-weight:500;color:rgba(11,36,32,.8)}
.field input,.field textarea{width:100%;border-radius:1rem;border:1px solid rgba(0,0,0,.1);background:#fff;
  padding:.85rem 1rem;font-size:.95rem;box-shadow:0 1px 2px rgba(0,0,0,.04);transition:border-color .2s,box-shadow .2s}
.field textarea{resize:vertical;min-height:7rem}
.field input::placeholder,.field textarea::placeholder{color:rgba(11,36,32,.35)}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--brand-400);box-shadow:0 0 0 4px rgba(2,181,151,.12)}
.consent{display:flex;align-items:flex-start;gap:.75rem;font-size:.875rem;color:rgba(11,36,32,.6);cursor:pointer}
.consent input{width:1.25rem;height:1.25rem;margin-top:.1rem;accent-color:var(--brand-600);flex:none}
.consent a{color:var(--brand-700);text-decoration:underline}
.form-success{display:flex;flex-direction:column;align-items:center;text-align:center;padding:3.5rem 0}
.form-success__ic{display:flex;align-items:center;justify-content:center;width:4rem;height:4rem;border-radius:999px;background:rgba(2,181,151,.12);color:var(--brand-600)}
.form-success__ic svg{width:2.25rem;height:2.25rem}
.form-success h3{margin-top:1.5rem;font-size:1.5rem;color:var(--ink)}
.form-success p{margin-top:.5rem;max-width:24rem;color:rgba(11,36,32,.6)}

.contact-aside{display:flex;flex-direction:column;gap:1.5rem;height:100%}
.info-grid{display:grid;gap:1rem;grid-template-columns:1fr}
@media(min-width:640px){.info-grid{grid-template-columns:1fr 1fr}}
.info-card{display:block;border-radius:1.5rem;border:1px solid rgba(0,0,0,.05);background:#fff;padding:1.5rem;box-shadow:var(--shadow-soft);transition:transform .3s,box-shadow .3s}
.info-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lift)}
.info-card .icon-tile{width:2.75rem;height:2.75rem}
.info-card:hover .icon-tile{color:#fff;transform:scale(1.06)}
.info-card:hover .icon-tile::before{opacity:1}
.info-card__label{margin-top:1rem;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:rgba(11,36,32,.4)}
.info-card__value{margin-top:.25rem;font-family:var(--font-display);font-size:.95rem;font-weight:600;line-height:1.3;color:var(--ink)}
.hours{display:flex;align-items:center;gap:.75rem;border-radius:1.5rem;border:1px solid rgba(0,0,0,.05);background:var(--cream);padding:1.25rem;font-size:.875rem;color:rgba(11,36,32,.7)}
.hours svg{width:1.25rem;height:1.25rem;color:var(--brand-600);flex:none}
.hours strong{color:var(--ink)}

.map{position:relative;display:flex;min-height:16rem;flex:1;overflow:hidden;border-radius:1.5rem;border:1px solid rgba(0,0,0,.05);box-shadow:var(--shadow-soft);background:var(--cream)}
.map svg.map__bg{position:absolute;inset:0;width:100%;height:100%}
.map__fade{position:absolute;inset:0;background:linear-gradient(to top,var(--cream),transparent 60%)}
.map__pin{position:absolute;left:50%;top:42%;transform:translate(-50%,-50%) rotate(45deg);width:3rem;height:3rem;
  border-radius:50% 50% 50% 0;background:var(--brand-gradient);box-shadow:var(--shadow-lift);display:flex;align-items:center;justify-content:center}
.map__pin svg{transform:rotate(-45deg);width:1.25rem;height:1.25rem;color:#fff}
.map__pulse{position:absolute;left:50%;top:42%;width:2.5rem;height:2.5rem;border-radius:50%;background:rgba(2,181,151,.3);transform:translate(-50%,-50%);animation:pulse-ring 2.6s var(--ease) infinite}
@keyframes pulse-ring{0%{transform:translate(-50%,-50%) scale(.8);opacity:.7}70%{transform:translate(-50%,-50%) scale(1.8);opacity:0}100%{opacity:0}}
.map__overlay{position:absolute;left:.75rem;right:.75rem;bottom:.75rem;display:flex;align-items:center;justify-content:space-between;gap:.75rem;
  border-radius:1rem;border:1px solid rgba(255,255,255,.7);background:rgba(255,255,255,.85);backdrop-filter:blur(16px);padding:.85rem 1.25rem}
.map__overlay .label{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:rgba(11,36,32,.4)}
.map__overlay .addr{margin-top:.15rem;font-family:var(--font-display);font-size:.875rem;font-weight:600;color:var(--ink)}
.map__overlay .go{display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:999px;background:var(--brand-gradient);color:#fff;flex:none}
.map__overlay .go svg{width:1.25rem;height:1.25rem}

/* ------------------------------------------------------- legal */
.legal{max-width:60rem;margin-inline:auto;display:flex;flex-direction:column;gap:1.5rem;font-size:1.02rem;line-height:1.7;color:rgba(11,36,32,.7)}
.legal h2{font-size:1.25rem;color:var(--ink)}
.legal a{color:var(--brand-700);text-decoration:underline}
.legal .note{border-radius:1rem;border:1px solid rgba(251,191,36,.4);background:#FFFBEB;padding:1.25rem;font-size:.9rem;color:#78350F}

/* ------------------------------------------------------- spacing utils */
.mt-3{margin-top:.75rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-9{margin-top:2.25rem}
.mt-14{margin-top:3.5rem}.mt-16{margin-top:4rem}
.maxw-xl{max-width:36rem}.maxw-2xl{max-width:42rem}
.col-narrow{display:flex;flex-direction:column;gap:.75rem}
.stack-lg{display:flex;flex-direction:column;gap:1.25rem}
.two-col{display:grid;gap:3rem}
@media(min-width:1024px){.two-col{grid-template-columns:1fr 1fr;align-items:center;gap:3.5rem}
  .two-col--narrow-left{grid-template-columns:1fr 1.1fr}
  .two-col--narrow-right{grid-template-columns:1.2fr 1fr}}
