@charset "UTF-8";
:root {
  --ink: #233b33;
  --ink-light: #506257;
  --muted: #6f7e74;
  --sage: #859c8d;
  --sage-soft: #e4eae2;
  --lilac: #ded7e7;
  --cream: #f8f7f3;
  --cream-darker: #f1efe7;
  --paper: #ffffff;
  --border: rgba(35, 59, 51, .12);
  --shadow: 0 24px 70px rgba(42, 61, 47, .085);
  --font-ui: "Avenir Next", "Segoe UI", Arial, sans-serif;
  --font-display: "Iowan Old Style", "Baskerville", "Palatino Linotype", "Book Antiqua", Georgia, serif;
  --max: 1200px;
  --header-height: 86px;
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 92px; }
body { margin: 0; min-width: 320px; background: var(--cream); font-family: var(--font-ui); color: var(--ink); -webkit-font-smoothing: antialiased; }
body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
svg { display: block; }
::selection { background: #d0dccc; color: #233b33; }
:focus-visible { outline: 3px solid #7c937c; outline-offset: 4px; }
.container { width: min(calc(100% - 88px), var(--max)); margin-inline: auto; }
.section-anchor { scroll-margin-top: var(--header-height); }
.skip-link { position: fixed; z-index: 1000; top: -80px; left: 12px; padding: 13px 18px; background: var(--ink); color: #fff; border-radius: 9px; }
.skip-link:focus { top: 14px; }

/* HEADER */
.site-header { width: 100%; height: var(--header-height); z-index: 100; position: fixed; top: 0; left: 0; background: rgba(248,247,243,.9); backdrop-filter: blur(22px); -webkit-backdrop-filter: blur(22px); border-bottom: 1px solid rgba(35,59,51,.07); transition: background .3s ease, box-shadow .3s ease; }
.site-header.is-scrolled { background: rgba(248,247,243,.96); box-shadow: 0 12px 30px rgba(31,51,42,.055); }
.header-inner { height: 100%; display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.brand { display: inline-flex; align-items: center; gap: 12px; flex: 0 0 auto; }
.brand-mark { display: flex; align-items: center; justify-content: center; width: 45px; height: 45px; border: 1px solid rgba(35,59,51,.22); border-radius: 50%; font: italic 24px/1 var(--font-display); letter-spacing: -.11em; padding-right: 4px; }
.brand-mark i { align-self: center; display: inline-block; width: 1px; height: 23px; transform: rotate(25deg); margin-inline: 3px 5px; background: #adbaa9; }
.brand-copy { display: flex; flex-direction: column; gap: 4px; }
.brand-copy strong { font: 600 20px/1 var(--font-display); letter-spacing: -.035em; }
.brand-copy small { font: 600 8.5px/1 var(--font-ui); color: var(--muted); letter-spacing: .19em; }
.main-nav { display: flex; align-items: center; gap: clamp(13px, 2.4vw, 31px); margin-left: auto; }
.nav-link { display: inline-flex; align-items: center; min-height: 44px; position: relative; font-size: 12px; font-weight: 600; color: #58665d; transition: color .2s ease; }
.nav-link::after { content: ""; position: absolute; left: 0; right: 100%; bottom: 8px; height: 1px; background: var(--ink); transition: right .25s ease; }
.nav-link:hover, .nav-link.active { color: var(--ink); }
.nav-link:hover::after, .nav-link.active::after { right: 0; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 15px; border-radius: 100px; padding: 14px 20px; font-size: 12px; font-weight: 650; letter-spacing: .005em; line-height: 1.1; border: 1px solid transparent; white-space: nowrap; transition: transform .3s ease, background .3s ease, border-color .3s ease, box-shadow .3s ease; }
.button:hover { transform: translateY(-2px); }
.button svg { width: 17px; height: 17px; transition: transform .25s ease; flex: 0 0 auto; }
.button:hover svg.cta-arrow, .button:hover svg:not(:first-child) { transform: translateX(4px); }
.button-dark { background: var(--ink); color: white; }
.button-dark:hover { background: #385c4c; box-shadow: 0 10px 24px rgba(35,59,51,.18); }
.button-outline { background: transparent; color: var(--ink); border-color: rgba(35,59,51,.35); }
.button-outline:hover { background: var(--ink); color: #fff; border-color: var(--ink); }
.header-cta { flex: 0 0 auto; padding-inline: 19px; }
.menu-toggle { display: none; flex-direction: column; align-items: center; justify-content: center; gap: 5px; width: 45px; height: 45px; border: 1px solid var(--border); border-radius: 50%; background: transparent; cursor: pointer; }
.menu-toggle span { width: 19px; height: 1.5px; background: var(--ink); border-radius: 3px; transition: transform .25s ease, opacity .25s ease; }
.mobile-nav-cta { display: none; }
.scroll-progress { height: 2px; position: absolute; bottom: 0; left: 0; right: 0; overflow: hidden; }
.scroll-progress span { display: block; background: #8ea994; width: 100%; height: 100%; transform: scaleX(0); transform-origin: left center; }

/* HERO */
.hero { position: relative; min-height: 780px; padding: calc(var(--header-height) + 60px) 0 90px; background: linear-gradient(124deg, #faf9f5 0%, #f4f3ed 58%, #e8eee6 100%); overflow: hidden; isolation: isolate; }
.hero::before { content: ""; position: absolute; pointer-events: none; background: radial-gradient(circle, rgba(189,202,181,.33), rgba(189,202,181,0) 65%); border-radius: 50%; width: 800px; height: 800px; top: -420px; left: -260px; z-index: -1; }
.hero-glow { position: absolute; width: 360px; height: 360px; z-index: -1; pointer-events: none; filter: blur(20px); border-radius: 50%; }
.hero-glow-one { top: 15%; left: 30%; background: radial-gradient(circle,rgba(224,216,229,.35),transparent 68%); }
.hero-glow-two { bottom: -160px; right: -60px; background: radial-gradient(circle,rgba(169,192,173,.3),transparent 68%); }
.hero-grid { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(0,1fr); gap: clamp(45px,7vw,95px); align-items: center; }
.hero-copy { padding-top: 6px; position: relative; z-index: 2; }
.eyebrow { display: flex; align-items: center; gap: 12px; color: #637d6a; font-size: 11px; font-weight: 700; letter-spacing: .18em; }
.eyebrow-line { width: 30px; height: 1px; background: #779780; }
.eyebrow-bullet { font-weight: 400; }
h1, h2, h3, p { margin-top: 0; }
h1 { margin: 30px 0 23px; max-width: 760px; font: 400 clamp(63px, 7.5vw, 113px)/.98 var(--font-display); letter-spacing: -.074em; }
h1 > span { display: inline-block; position: relative; font-style: italic; font-weight: 400; color: #6d8b7b; white-space: nowrap; }
.name-underline { position: absolute; bottom: -12px; left: 7%; right: 0; width: 91%; height: 16px; color: rgba(125,154,129,.36); }
.hero-lede { max-width: 510px; font: 400 clamp(20px,2.1vw,27px)/1.5 var(--font-display); letter-spacing: -.025em; color: #34483f; margin: 38px 0 13px; }
.hero-lede strong { font-weight: 600; }
.hero-description { max-width: 430px; font-size: 14px; line-height: 1.85; color: #647369; margin-bottom: 27px; }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 20px; }
.button-large { min-height: 53px; padding: 16px 25px; }
.button-text { padding-left: 0; padding-right: 0; color: var(--ink); font-weight: 650; }
.button-text .text-arrow { font-size: 19px; font-weight: 400; transition: transform .25s ease; }
.button-text:hover .text-arrow { transform: translate(3px,-3px); }
.hero-meta { display: flex; align-items: center; gap: 13px; border-top: 1px solid rgba(35,59,51,.16); padding-top: 24px; margin-top: 55px; width: min(100%,440px); }
.meta-icon { width: 41px; height: 41px; display: grid; place-items: center; border: 1px solid #c4cfc2; border-radius: 50%; }
.meta-icon svg { width: 19px; height: 19px; color: #527260; }
.hero-meta div { display: flex; flex-direction: column; gap: 5px; }
.hero-meta strong { font-weight: 700; font-size: 12px; }
.hero-meta div span { color: #708177; font-size: 11px; }
.hero-visual { width: 100%; max-width: 500px; justify-self: end; position: relative; padding: 12px 6px 0; }
.hero-visual-frame { position: relative; isolation: isolate; height: clamp(475px,43vw,585px); border-radius: 49% 49% 45% 45% / 42% 42% 30% 30%; background: linear-gradient(144deg,rgba(217,227,213,.8) 0%,#cfdbce 57%,#d9e3d7 100%); border: 1px solid rgba(130,157,134,.2); overflow: hidden; box-shadow: inset 2px 2px 28px rgba(255,255,255,.35), var(--shadow); }
.hero-visual-frame::after { content: ""; position: absolute; inset: 16px; border: 1px solid rgba(255,255,255,.52); border-radius: inherit; pointer-events: none; }
.visual-arc { position: absolute; border: 1px solid rgba(255,255,255,.48); border-radius: 50%; }
.arc-1 { width: 560px; height: 560px; top: 42px; left: -36px; }
.arc-2 { width: 420px; height: 420px; bottom: -160px; right: -100px; }
.visual-circle { position: absolute; border-radius: 50%; background: #f3eee6; opacity: .7; }
.small-circle { width: 74px; height: 74px; top: 73px; right: 55px; }
.visual-orbit-label { position: absolute; z-index: 3; top: 48px; left: 50%; transform: translateX(-50%); color: #526a5b; font: 650 9px/1 var(--font-ui); letter-spacing: .24em; white-space: nowrap; }
.hero-art { position: absolute; z-index: 2; inset: 21px 0 3px; display: flex; align-items: center; justify-content: center; }
.hero-art svg { width: 105%; max-width: 540px; height: 100%; }
.visual-footer-tag { position: absolute; bottom: 32px; left: 50%; transform: translateX(-50%); z-index: 4; border: 1px solid rgba(255,255,255,.75); background: rgba(248,248,242,.75); backdrop-filter: blur(7px); border-radius: 35px; padding: 12px 18px; display: inline-flex; align-items: center; gap: 11px; font-size: 9px; letter-spacing: .12em; color: #3a5949; white-space: nowrap; font-weight: 700; }
.tiny-divider { width: 1px; height: 12px; background: rgba(56,84,68,.3); }
.tag-spark { width: 7px; height: 7px; border-radius: 50%; background: #94aa8e; }
.floating-note { position: absolute; z-index: 5; display: flex; align-items: center; gap: 12px; left: -55px; top: 57%; padding: 15px 18px; background: rgba(255,255,255,.96); border: 1px solid #ecede7; border-radius: 15px; box-shadow: 0 19px 50px rgba(42,61,47,.12); font-size: 12px; line-height: 1.5; color: #6a796d; animation: floatNote 6s ease-in-out infinite; }
.floating-note strong { color: #304a3d; font: 600 16px var(--font-display); }
.floating-note-icon { background: #e7ede5; border-radius: 50%; width: 35px; height: 35px; display: grid; place-items: center; }
.floating-note-icon svg { width: 20px; height: 20px; color: #607e6a; }
@keyframes floatNote { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-9px); } }
.hero-bottom-line { position: absolute; bottom: 23px; left: 50%; transform: translateX(-50%); width: min(calc(100% - 88px),var(--max)); display: flex; align-items: center; gap: 14px; color: #7e9784; }
.hero-bottom-line > span:first-child { display: block; height: 1px; flex: 1; background: rgba(82,110,89,.2); }
.hero-bottom-symbol { font-size: 18px; }
.specialties-strip { background: #ebeee8; border-top: 1px solid #dbe3d9; border-bottom: 1px solid #dbe3d9; }
.specialties-strip-inner { min-height: 81px; display: flex; justify-content: space-between; align-items: center; gap: 13px; }
.specialties-strip-inner > span:not(.strip-circle) { font-size: 10px; letter-spacing: .14em; color: #536b59; font-weight: 700; white-space: nowrap; }
.strip-circle { width: 6px; height: 6px; background: #9cad9b; border-radius: 50%; flex: 0 0 auto; }

/* COMMON SECTION */
.section { padding: 122px 0; position: relative; }
.section-kicker { display: flex; gap: 8px; align-items: center; font-weight: 750; font-size: 10px; letter-spacing: .18em; color: #637d6b; margin-bottom: 24px; }
.section-kicker span { color: #9caf9e; font-weight: 500; }
.section-title { font: 400 clamp(43px,4.8vw,68px)/1.13 var(--font-display); letter-spacing: -.065em; margin: 0; }
.section-title em { color: #7b9484; font-weight: 400; }
.section-lede { font: 400 19px/1.8 var(--font-display); letter-spacing: -.01em; color: #526558; }

/* ENFOQUE */
.section-enfoque { background: #fbfaf7; }
.enfoque-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.12fr); gap: 11%; align-items: center; }
.section-enfoque .section-copy { padding: 15px 0; }
.section-enfoque .section-title { max-width: 480px; }
.section-enfoque .section-lede { max-width: 490px; margin: 27px 0 32px; }
.enfoque-detail { display: flex; align-items: center; gap: 13px; border-top: 1px solid var(--border); padding-top: 22px; }
.detail-mark { display: block; width: 29px; height: 1px; background: #7a9982; }
.enfoque-detail p { font-size: 12px; letter-spacing: .015em; margin: 0; color: #65776b; }
.enfoque-detail p span { padding: 0 8px; }
.enfoque-visual { height: 425px; position: relative; background: #e9eee6; border-radius: 12px 120px 12px 12px; overflow: hidden; isolation: isolate; }
.enfoque-shape { position: absolute; border-radius: 50%; }
.enfoque-shape-one { width: 400px; height: 400px; top: -180px; right: -90px; border: 1px solid rgba(114,143,120,.35); box-shadow: 0 0 0 35px rgba(238,242,235,.8),0 0 0 70px rgba(238,242,235,.5); }
.enfoque-shape-two { width: 190px; height: 190px; left: -80px; bottom: -70px; background: #d6dfe0; }
.enfoque-stroke { position: absolute; width: 250px; height: 250px; border: 1px solid rgba(123,152,124,.45); border-radius: 50%; right: 35px; bottom: -110px; }
.enfoque-main-card { position: absolute; top: 49px; left: 44px; width: 60%; height: 286px; padding: 27px; background: #527162; color: #fff; border-radius: 5px 80px 5px 5px; display: flex; flex-direction: column; justify-content: space-between; box-shadow: 0 24px 50px rgba(66,101,75,.15); }
.enfoque-card-number { font-size: 9px; letter-spacing: .17em; opacity: .8; font-weight: 650; }
.enfoque-main-card strong { font: 400 clamp(28px,3.3vw,43px)/1.13 var(--font-display); letter-spacing: -.05em; }
.enfoque-card-deco { width: 74px; height: 74px; border: 1px solid rgba(255,255,255,.55); border-radius: 50%; align-self: flex-end; position: relative; }
.enfoque-card-deco::before, .enfoque-card-deco::after { content: ""; position: absolute; width: 74px; height: 74px; border-radius: 50%; border: 1px solid rgba(255,255,255,.23); }
.enfoque-card-deco::before { left: -20px; }
.enfoque-card-deco::after { left: -40px; }
.enfoque-small-card { position: absolute; right: 30px; bottom: 36px; width: 47%; min-height: 160px; background: #e0d9e7; border: 1px solid rgba(173,151,188,.2); border-radius: 65px 5px 5px 5px; padding: 21px; display: flex; flex-direction: column; justify-content: flex-end; gap: 6px; color: #4c4b63; box-shadow: 0 19px 40px rgba(66,101,75,.1); }
.enfoque-small-card > span:not(.enfoque-small-orbit) { font-size: 9px; line-height: 1.6; letter-spacing: .13em; font-weight: 700; }
.enfoque-small-card strong { font: 400 43px/1 var(--font-display); letter-spacing: -.05em; }
.enfoque-small-orbit { width: 54px; height: 54px; border: 1px solid #aaa3b5; border-radius: 50%; position: absolute; right: 20px; top: 20px; }

/* AUDIENCES */
.section-audiences { background: #f1f3ee; }
.section-header { display: flex; align-items: end; justify-content: space-between; gap: 40px; margin-bottom: 47px; }
.section-header .section-title { max-width: 830px; }
.section-side-note { font: italic 19px/1.4 var(--font-display); color: #839989; white-space: nowrap; margin-bottom: 11px; }
.audience-grid { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 16px; }
.audience-card { grid-column: span 2; min-height: 233px; padding: 28px; background: #fff; border: 1px solid rgba(50,78,58,.08); border-radius: 5px 5px 44px 5px; position: relative; display: flex; flex-direction: column; justify-content: space-between; overflow: hidden; transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; }
.audience-card:nth-child(2) { background: #e2e8df; }
.audience-card:nth-child(3) { background: #ece8f0; }
.audience-card:nth-child(4) { background: #e9e8df; }
.audience-card:nth-child(5) { background: #fff; }
.audience-card.wide { grid-column: span 3; }
.audience-card::before { content: ""; position: absolute; width: 210px; height: 210px; border: 1px solid currentColor; color: rgba(89,115,96,.09); border-radius: 50%; bottom: -128px; right: -75px; box-shadow: 0 0 0 35px rgba(116,148,119,.035),0 0 0 70px rgba(116,148,119,.025); }
.audience-card:hover { transform: translateY(-6px); box-shadow: 0 20px 36px rgba(40,70,49,.08); border-color: rgba(62,106,73,.2); }
.audience-card-top { display: flex; align-items: flex-start; justify-content: space-between; }
.card-number { font-size: 10px; color: #8a9b8b; letter-spacing: .14em; }
.audience-card-top svg { width: 50px; height: 50px; color: #6f9078; }
.audience-card h3 { font: 400 clamp(29px,3vw,38px)/1.1 var(--font-display); letter-spacing: -.045em; margin: auto 0 14px; position: relative; z-index: 1; }
.card-accent { width: 36px; height: 2px; background: #98b09b; }

/* SERVICES */
.section-servicios { background: #fbfaf7; }
.services-heading { max-width: 650px; margin-bottom: 46px; }
.services-heading > p:last-child { margin: 20px 0 0; font-size: 13px; color: #7b8b7e; }
.services-grid { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 16px; }
.service-card { grid-column: span 2; display: flex; flex-direction: column; justify-content: space-between; min-height: 282px; padding: 28px; background: #f2f2ec; border: 1px solid #e5e8dd; border-radius: 6px; overflow: hidden; transition: transform .3s ease, box-shadow .3s ease, background .3s ease; position: relative; }
.service-card::after { content: ""; pointer-events: none; position: absolute; right: -95px; bottom: -170px; width: 280px; height: 280px; border: 1px solid rgba(109,142,114,.17); border-radius: 50%; box-shadow: 0 0 0 40px rgba(103,141,113,.035),0 0 0 78px rgba(103,141,113,.035); }
.service-card:hover { transform: translateY(-5px); box-shadow: var(--shadow); background: #edf1e9; }
.service-card-large { grid-column: span 3; min-height: 313px; }
.service-card:nth-child(1) { background: #e2ebe1; }
.service-card:nth-child(2) { background: #e8e4eb; border-color: #e8e0ed; }
.service-card:nth-child(4) { background: #edf0e9; }
.service-card:nth-child(5) { background: #eaeae2; }
.service-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.service-card-head span { font-size: 10px; letter-spacing: .17em; font-weight: 700; color: #79917d; }
.service-card-head svg { width: 51px; height: 51px; color: #78947d; flex: 0 0 auto; }
.service-card h3 { position: relative; z-index: 1; max-width: 380px; margin: 40px 0 28px; font: 400 clamp(26px,2.8vw,36px)/1.22 var(--font-display); letter-spacing: -.042em; }
.service-card-large h3 { font-size: clamp(33px,3.5vw,46px); }
.service-bottom-line { width: 100%; height: 1px; background: rgba(80,115,85,.23); position: relative; z-index: 1; }
.service-bottom-line::after { content: ""; position: absolute; top: -3px; right: 0; width: 7px; height: 7px; border: 1px solid #7d9780; border-radius: 50%; background: #f7f8f2; }
.services-footer { display: flex; align-items: center; justify-content: center; gap: 12px; text-align: center; margin: 38px 0 0; color: #637769; font-size: 12px; }
.dot { width: 6px; height: 6px; background: #a1b59e; border-radius: 50%; }

/* SCHEDULE */
.section-schedule { background: #29483b; padding: 100px 0; overflow: hidden; color: #f7f7ef; }
.schedule-grid { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 110px; position: relative; z-index: 2; }
.kicker-light { color: #b8d0bb; }
.kicker-light span { color: #7eaa87; }
.schedule-heading h2 { max-width: 480px; margin: 0; font: 400 clamp(47px,5vw,72px)/1.07 var(--font-display); letter-spacing: -.06em; }
.schedule-heading h2 em { color: #b6c7ad; font-weight: 400; }
.schedule-details { display: grid; grid-template-columns: 1fr 1fr; gap: 25px; }
.schedule-item { min-height: 190px; display: flex; flex-direction: column; align-items: flex-start; gap: 24px; padding: 26px; border: 1px solid rgba(227,238,221,.25); border-radius: 4px 34px 4px 4px; background: rgba(242,247,236,.055); backdrop-filter: blur(4px); }
.schedule-icon { border: 1px solid rgba(225,238,222,.33); width: 41px; height: 41px; border-radius: 50%; display: grid; place-items: center; }
.schedule-icon svg { width: 20px; height: 20px; color: #d0e1d0; }
.schedule-label { display: block; margin-bottom: 12px; font-size: 9px; color: #b5cbb8; letter-spacing: .18em; font-weight: 700; }
.schedule-item strong { display: block; font: 400 25px/1.2 var(--font-display); letter-spacing: -.035em; }
.schedule-item p { margin: 7px 0 0; color: #b7cabb; font-size: 12px; }
.schedule-watermark { pointer-events: none; position: absolute; right: -40px; bottom: -130px; opacity: .04; font: italic 450px/1 var(--font-display); letter-spacing: -.13em; }

/* CONTACT */
.section-contact { background: #f6f5ef; padding: 137px 0; }
.contact-grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(60px,10vw,140px); align-items: center; }
.contact-copy .section-title { margin-bottom: 22px; }
.contact-copy > p:not(.section-kicker) { color: #617469; font: 400 18px/1.7 var(--font-display); }
.contact-ornament { display: flex; align-items: center; gap: 0; margin-top: 68px; }
.contact-ornament span { display: block; border: 1px solid #b8c8b6; width: 75px; height: 75px; border-radius: 50%; margin-left: -18px; }
.contact-ornament span:first-child { margin-left: 0; }
.contact-card { position: relative; padding: clamp(30px,4.5vw,56px); background: #fff; border: 1px solid #e2e9e0; border-radius: 9px 80px 9px 9px; box-shadow: var(--shadow); }
.contact-card::after { content: ""; position: absolute; right: 24px; top: 24px; width: 56px; height: 56px; border: 1px solid rgba(101,143,109,.26); border-radius: 50%; pointer-events: none; }
.contact-card-label { color: #859b86; letter-spacing: .17em; font-size: 10px; font-weight: 750; margin-bottom: 27px; }
.contact-phone { display: inline-block; font: 400 clamp(35px,4.5vw,58px)/1.15 var(--font-display); letter-spacing: -.065em; overflow-wrap: anywhere; transition: color .2s; }
.contact-phone:hover { color: #6a9173; }
.contact-card-location { display: flex; gap: 8px; align-items: center; color: #718474; font-size: 12px; margin-top: 22px; padding-bottom: 31px; border-bottom: 1px solid #e8ece6; }
.contact-card-location svg { width: 18px; height: 18px; }
.contact-call { width: 100%; margin-top: 27px; padding: 18px 22px; min-height: 56px; font-size: 13px; }
.contact-call svg:first-child { width: 17px; height: 17px; }
.contact-call .cta-arrow { margin-left: auto; }
.copy-phone { border: 0; background: transparent; color: #6d8171; cursor: pointer; display: flex; align-items: center; justify-content: center; margin: 16px auto 0; gap: 8px; padding: 6px 10px; font-size: 11px; transition: color .2s; }
.copy-phone:hover { color: #314f3e; }
.copy-phone svg { width: 16px; height: 16px; }
.copy-feedback { min-height: 12px; margin: 2px 0 0; font-size: 11px; color: #4c7457; text-align: center; }

/* FOOTER */
.footer { background: #e6ede4; border-top: 1px solid #d8e3d7; }
.footer-main { display: flex; justify-content: space-between; align-items: flex-start; gap: 30px; padding: 65px 0 57px; }
.footer-brand { font: 400 clamp(32px,4.3vw,51px)/1.2 var(--font-display); letter-spacing: -.055em; }
.footer-brand em { color: #64866e; }
.footer-main p { font-size: 13px; color: #718676; margin: 12px 0 0; }
.footer-side { display: flex; flex-direction: column; gap: 7px; text-align: right; padding-top: 7px; }
.footer-side > span { font-size: 10px; font-weight: 700; letter-spacing: .17em; color: #7c967f; }
.footer-side > a { font: 400 22px/1.3 var(--font-display); }
.footer-side > a:hover { color: #6b9175; }
.footer-side > small { font-size: 12px; color: #718676; }
.footer-bottom { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 23px 0 26px; border-top: 1px solid #cedbce; font-size: 10px; color: #718476; }
.footer-bottom a { font-weight: 650; transition: color .2s; }
.footer-bottom a:hover { color: var(--ink); }
.footer-bottom a span { padding-left: 7px; }
.mobile-contact-bar { display: none; }

/* MOTION: default content remains visible if JavaScript does not load */
.js-enabled .reveal { opacity: 0; transform: translateY(24px); transition: opacity .8s ease, transform .8s cubic-bezier(.2,.7,.2,1); }
.js-enabled .reveal.is-visible { opacity: 1; transform: translateY(0); }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .js-enabled .reveal { opacity: 1; transform: none; }
}

@media (max-width: 1150px) {
  .container { width: min(calc(100% - 60px),var(--max)); }
  .main-nav { gap: 15px; }
  .hero-grid { gap: 55px; }
  h1 { font-size: clamp(66px,7.4vw,95px); }
  .floating-note { left: -26px; }
  .specialties-strip-inner > span:not(.strip-circle) { font-size: 9px; letter-spacing: .1em; }
  .schedule-grid { gap: 60px; }
  .hero-bottom-line { width: min(calc(100% - 60px),var(--max)); }
}

@media (max-width: 980px) {
  :root { --header-height: 76px; }
  .header-cta { display: none; }
  .menu-toggle { display: flex; z-index: 102; }
  .main-nav { position: fixed; top: var(--header-height); left: 0; right: 0; z-index: 101; background: #f8f7f3; border-bottom: 1px solid #e4e7e0; box-shadow: 0 18px 30px rgba(29,56,40,.11); padding: 22px max(30px,calc((100vw - 840px)/2)) 30px; display: flex; flex-direction: column; align-items: stretch; gap: 5px; visibility: hidden; opacity: 0; transform: translateY(-12px); transition: visibility .25s,opacity .25s,transform .25s; pointer-events: none; max-height: calc(100dvh - var(--header-height)); overflow-y: auto; }
  .main-nav.is-open { visibility: visible; opacity: 1; transform: translateY(0); pointer-events: auto; }
  .nav-link { padding: 10px 1px; min-height: 47px; font-size: 15px; border-bottom: 1px solid #e8ebe4; }
  .nav-link::after { display: none; }
  .mobile-nav-cta { display: inline-flex; margin-top: 12px; min-height: 52px; }
  .menu-toggle.is-open span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
  .menu-toggle.is-open span:nth-child(2) { opacity: 0; }
  .menu-toggle.is-open span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }
  .hero { padding-top: calc(var(--header-height) + 65px); min-height: 680px; }
  .hero-grid { gap: 24px; }
  h1 { font-size: clamp(58px,7.4vw,80px); }
  .hero-visual-frame { height: 430px; }
  .floating-note { left: -18px; top: 65%; }
  .visual-footer-tag { bottom: 21px; font-size: 8px; }
  .hero-art { inset: 20px 0 -7px; }
  .hero-meta { margin-top: 37px; }
  .specialties-strip-inner { min-height: 66px; }
  .section { padding: 95px 0; }
  .enfoque-grid { gap: 50px; }
  .enfoque-visual { height: 370px; }
  .enfoque-main-card { top: 37px; left: 28px; height: 265px; padding: 22px; }
  .enfoque-small-card { right: 18px; bottom: 20px; }
  .section-title { font-size: clamp(43px,5.5vw,59px); }
  .schedule-details { gap: 12px; }
  .schedule-item { padding: 18px; }
}

@media (max-width: 720px) {
  :root { --header-height: 70px; }
  .container { width: min(calc(100% - 42px),var(--max)); }
  .brand-mark { width: 40px; height: 40px; font-size: 22px; }
  .brand-copy strong { font-size: 18px; }
  .brand-copy small { font-size: 8px; }
  .main-nav { padding-left: 21px; padding-right: 21px; }
  .hero { min-height: 0; padding: calc(var(--header-height) + 45px) 0 74px; }
  .hero-grid { grid-template-columns: 1fr; gap: 48px; }
  .hero-copy { padding: 0; }
  .hero-eyebrow { font-size: 10px; }
  h1 { font-size: clamp(65px,12vw,89px); margin-top: 24px; margin-bottom: 15px; }
  .hero-lede { margin-top: 34px; font-size: 24px; }
  .hero-description { font-size: 13px; }
  .hero-meta { margin-top: 37px; }
  .hero-visual { width: min(100% - 36px, 495px); justify-self: center; padding: 0; }
  .hero-visual-frame { height: clamp(390px,100vw,540px); }
  .floating-note { left: -25px; top: 61%; }
  .hero-bottom-line { width: calc(100% - 42px); bottom: 17px; }
  .specialties-strip-inner { gap: 10px; flex-wrap: wrap; justify-content: center; padding: 22px 0; }
  .specialties-strip-inner > span:not(.strip-circle) { font-size: 9px; }
  .specialties-strip-inner .strip-circle:nth-of-type(4) { display: none; }
  .section { padding: 80px 0; }
  .section-title { font-size: clamp(42px,8vw,61px); }
  .enfoque-grid { grid-template-columns: 1fr; gap: 45px; }
  .enfoque-visual { height: 390px; }
  .enfoque-main-card { width: 64%; }
  .section-header { display: block; }
  .section-side-note { margin: 24px 0 0; }
  .audience-grid { gap: 12px; }
  .audience-card { min-height: 205px; padding: 21px; border-radius: 5px 5px 32px 5px; }
  .audience-card h3 { font-size: clamp(27px,4vw,36px); }
  .audience-card-top svg { width: 43px; height: 43px; }
  .services-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
  .service-card, .service-card-large { grid-column: span 1; min-height: 260px; padding: 22px; }
  .service-card:last-child { grid-column: span 2; min-height: 220px; }
  .service-card-large h3, .service-card h3 { font-size: clamp(26px,4.5vw,35px); }
  .service-card-head svg { width: 40px; height: 40px; }
  .schedule-grid { grid-template-columns: 1fr; gap: 36px; }
  .schedule-heading h2 { font-size: clamp(48px,9vw,67px); }
  .schedule-item { min-height: 180px; padding: 21px; }
  .section-contact { padding: 90px 0; }
  .contact-grid { grid-template-columns: 1fr; gap: 40px; }
  .contact-ornament { display: none; }
  .contact-card { max-width: 550px; width: 100%; }
  .footer-main { padding: 52px 0 43px; }
  .footer-brand { font-size: 36px; }
  .mobile-contact-bar { display: block; position: fixed; z-index: 88; bottom: 0; left: 0; width: 100%; padding: 10px 18px calc(10px + env(safe-area-inset-bottom)); background: rgba(248,247,243,.97); backdrop-filter: blur(14px); border-top: 1px solid #dde7dc; box-shadow: 0 -12px 30px rgba(32,58,40,.08); transition: transform .3s ease; }
  .mobile-contact-bar a { height: 46px; display: flex; align-items: center; justify-content: center; gap: 10px; background: var(--ink); color: #fff; border-radius: 30px; font-size: 13px; font-weight: 650; }
  .mobile-contact-bar svg { width: 17px; height: 17px; }
  .footer { padding-bottom: 73px; }
}

@media (max-width: 490px) {
  .hero-visual { width: calc(100% - 24px); }
  .eyebrow { letter-spacing: .14em; }
  h1 { font-size: clamp(58px, 13vw, 72px); }
  .hero-lede { font-size: 23px; }
  .hero-actions { gap: 11px; }
  .hero-actions .button { font-size: 11.5px; }
  .hero-actions .button-large { padding: 14px 17px; }
  .hero-actions .button-text { padding-left: 0; padding-right: 0; }
  .hero-visual-frame { height: clamp(360px,102vw,460px); }
  .floating-note { left: -16px; padding: 11px 13px; font-size: 10px; }
  .floating-note strong { font-size: 14px; }
  .floating-note-icon { width: 31px; height: 31px; }
  .visual-orbit-label { top: 36px; font-size: 8px; }
  .visual-footer-tag { bottom: 18px; padding: 10px 11px; gap: 7px; font-size: 7px; }
  .section { padding: 75px 0; }
  .section-title { font-size: clamp(39px,10vw,52px); }
  .section-lede { font-size: 17px; }
  .section-kicker { font-size: 9px; }
  .enfoque-visual { height: 330px; }
  .enfoque-main-card { width: 64%; top: 28px; left: 23px; height: 225px; padding: 20px; }
  .enfoque-main-card strong { font-size: 31px; }
  .enfoque-small-card { width: 49%; min-height: 137px; padding: 17px; bottom: 16px; right: 15px; }
  .enfoque-small-card strong { font-size: 37px; }
  .enfoque-small-card > span:not(.enfoque-small-orbit) { font-size: 7px; }
  .enfoque-small-orbit { width: 39px; height: 39px; }
  .audience-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .audience-card, .audience-card.wide { grid-column: span 1; min-height: 181px; padding: 19px; }
  .audience-card:last-child { grid-column: span 2; min-height: 151px; }
  .audience-card-top svg { width: 39px; height: 39px; }
  .audience-card h3 { font-size: clamp(26px,6vw,33px); }
  .service-card, .service-card-large { min-height: 216px; padding: 18px; }
  .service-card h3, .service-card-large h3 { font-size: clamp(24px,6.4vw,31px); margin-top: 26px; }
  .service-card-head span { font-size: 8px; }
  .service-card-head svg { width: 32px; height: 32px; }
  .service-card:last-child { min-height: 195px; }
  .schedule-details { grid-template-columns: 1fr 1fr; }
  .schedule-item { padding: 16px; min-height: 164px; gap: 15px; }
  .schedule-item strong { font-size: 22px; }
  .schedule-label { letter-spacing: .1em; font-size: 8px; }
  .contact-card { padding: 29px 23px; border-radius: 6px 55px 6px 6px; }
  .contact-phone { font-size: clamp(31px,9vw,42px); }
  .footer-main { flex-direction: column; gap: 32px; }
  .footer-side { text-align: left; }
  .footer-bottom { flex-wrap: wrap; }
}
@media (max-width: 360px) {
  .container { width: calc(100% - 32px); }
  .brand-copy strong { font-size: 17px; }
  .hero { padding-top: calc(var(--header-height) + 32px); }
  h1 { font-size: 56px; }
  .hero-actions .button-large { padding: 13px 13px; }
  .hero-actions { gap: 8px; }
  .services-grid { grid-template-columns: 1fr; }
  .service-card, .service-card-large, .service-card:last-child { grid-column: span 1; min-height: 185px; }
  .schedule-details { grid-template-columns: 1fr; }
  .schedule-item { min-height: 155px; }
}
