:root {
  --navy: #17263b;
  --navy-deep: #0d1828;
  --green: #16856f;
  --green-dark: #0f6657;
  --green-soft: #dceae4;
  --cream: #f5f2eb;
  --paper: #fbfaf7;
  --white: #fff;
  --ink: #243142;
  --muted: #667181;
  --line: #dce1e3;
  --gold: #c9a86a;
  --serif: Georgia, 'Times New Roman', serif;
  --sans: 'Segoe UI', Arial, sans-serif;
  --shadow: 0 24px 70px rgba(23, 38, 59, .14);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--sans); overflow-x: hidden; }
a { color: inherit; }
button, input, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; left: 1rem; top: -4rem; z-index: 999; background: white; padding: .8rem 1rem; }
.skip-link:focus { top: 1rem; }

.site-header {
  height: 88px; padding: 0 5vw; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center;
  position: fixed; left: 0; right: 0; top: 0; z-index: 100;
  background: rgba(255,255,255,.94); backdrop-filter: blur(16px); border-bottom: 1px solid rgba(23,38,59,.1);
  transition: height .25s, box-shadow .25s;
}
.site-header.scrolled { height: 74px; box-shadow: 0 12px 34px rgba(20,37,55,.08); }
.brand { display: inline-flex; align-items: center; gap: .8rem; width: max-content; text-decoration: none; color: var(--navy); }
.brand-mark {
  width: 42px; height: 42px; display: grid; place-items: center; border-radius: 50%;
  color: white; background: var(--navy); font: 700 .72rem var(--serif); letter-spacing: .08em; position: relative;
}
.brand-mark::after { content: ''; position: absolute; inset: 4px; border: 1px solid rgba(255,255,255,.45); border-radius: 50%; }
.brand-name { font: 700 1.04rem/1.05 var(--serif); letter-spacing: -.02em; text-transform: uppercase; }
.brand-name small { display: block; margin-top: .26rem; font: 600 .47rem var(--sans); letter-spacing: .24em; color: var(--green); }
.primary-nav { display: flex; align-items: center; gap: 2.3rem; }
.primary-nav a { text-decoration: none; font-size: .76rem; font-weight: 600; letter-spacing: .02em; position: relative; }
.primary-nav a::after { content: ''; position: absolute; height: 1px; left: 0; right: 100%; bottom: -.45rem; background: var(--green); transition: right .25s; }
.primary-nav a:hover::after { right: 0; }
.header-cta {
  justify-self: end; min-height: 43px; padding: 0 1.25rem; background: var(--navy); color: white;
  display: inline-flex; align-items: center; gap: 1.25rem; text-decoration: none; font-size: .72rem; font-weight: 700;
}
.header-cta:hover { background: var(--green-dark); }
.menu-toggle { display: none; }

.hero { min-height: 100vh; padding-top: 88px; display: grid; grid-template-columns: .9fr 1.1fr; background: var(--cream); }
.hero-copy { padding: clamp(5rem,8vw,9rem) 5vw clamp(4rem,7vw,7rem) 7.5vw; display: flex; flex-direction: column; justify-content: center; }
.eyebrow { display: block; color: var(--green-dark); font-size: .64rem; font-weight: 800; text-transform: uppercase; letter-spacing: .2em; margin-bottom: 1.35rem; }
.hero h1 { margin: 0 0 2rem; max-width: 770px; font: 500 clamp(3.2rem,5.7vw,6.6rem)/.96 var(--serif); color: var(--navy); letter-spacing: -.06em; }
.hero h1 em, .about-copy h2 em { color: var(--green); font-weight: 400; }
.hero-copy > p { max-width: 650px; margin: 0 0 2.4rem; color: #5e6976; font-size: clamp(.95rem,1.1vw,1.08rem); line-height: 1.75; }
.hero-actions { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
.button { min-height: 51px; padding: 0 1.45rem; border: 1px solid transparent; display: inline-flex; align-items: center; justify-content: center; gap: 1.5rem; text-decoration: none; font-size: .73rem; font-weight: 750; cursor: pointer; transition: transform .2s, background .2s, color .2s; }
.button:hover { transform: translateY(-2px); }
.button-primary { background: var(--green); color: white; }
.button-primary:hover { background: var(--green-dark); }
.button-quiet { border-color: #aeb8bb; color: var(--navy); background: transparent; }
.hero-proof { margin-top: clamp(3rem,6vw,6.5rem); padding-top: 1.5rem; border-top: 1px solid #cfd5d3; display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem; }
.hero-proof div { display: flex; gap: .75rem; align-items: center; }
.hero-proof strong { color: var(--gold); font: 1.05rem var(--serif); }
.hero-proof span { font-size: .63rem; line-height: 1.3; color: #65706f; }
.hero-portrait { min-height: 700px; position: relative; overflow: hidden; }
.hero-portrait::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg,transparent 55%,rgba(12,27,42,.42)); pointer-events: none; }
.hero-portrait img { width: 100%; height: 100%; object-fit: cover; object-position: center 34%; display: block; }
.portrait-overlay { position: absolute; z-index: 2; left: 6%; bottom: 6%; padding-left: 1.2rem; border-left: 2px solid var(--gold); color: white; }
.portrait-overlay span { font-size: .58rem; text-transform: uppercase; letter-spacing: .2em; opacity: .8; }
.portrait-overlay p { margin: .55rem 0 0; font: 1.45rem/1.25 var(--serif); }
.portrait-badge { position: absolute; z-index: 3; right: 4%; top: 8%; width: 108px; height: 108px; border-radius: 50%; background: var(--gold); color: var(--navy); display: grid; place-items: center; text-align: center; transform: rotate(6deg); box-shadow: var(--shadow); }
.portrait-badge span { position: absolute; bottom: 17px; font-size: .42rem; letter-spacing: .13em; text-transform: uppercase; }
.portrait-badge b { font: 1.75rem var(--serif); transform: translateY(-7px); }

.trust-bar { min-height: 88px; padding: 1.4rem 5vw; background: var(--navy); color: white; display: flex; justify-content: center; align-items: center; gap: 3vw; }
.trust-bar > span { color: #8190a3; font-size: .58rem; letter-spacing: .18em; text-transform: uppercase; }
.trust-bar strong { font: 1.05rem var(--serif); font-weight: 400; }
.trust-bar i { width: 4px; height: 4px; background: var(--green); border-radius: 50%; }
.section-shell { padding: clamp(5rem,9vw,9rem) 6vw; max-width: 1600px; margin: auto; }
.section-heading { display: grid; grid-template-columns: 1.3fr .7fr; gap: 8vw; align-items: end; margin-bottom: 4rem; }
.section-heading h2, .approach-intro h2, .about-copy h2, .contact-copy h2 { margin: 0; color: var(--navy); font: 500 clamp(2.6rem,4.6vw,5.2rem)/1 var(--serif); letter-spacing: -.05em; }
.section-heading p { color: var(--muted); font-size: .92rem; line-height: 1.7; margin: 0; }
.service-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; }
.service-card { min-height: 660px; padding: clamp(2rem,4vw,4rem); position: relative; overflow: hidden; display: flex; flex-direction: column; align-items: flex-start; }
.accounting-card { background: var(--navy); color: white; }
.tutoring-card { background: var(--green-soft); color: var(--navy); }
.service-card::after { content: ''; position: absolute; width: 340px; height: 340px; right: -130px; bottom: -140px; border: 1px solid currentColor; opacity: .08; border-radius: 50%; box-shadow: 0 0 0 45px currentColor, 0 0 0 90px currentColor; }
.service-number { position: absolute; right: 2.2rem; top: 2rem; font: 5rem/.8 var(--serif); opacity: .08; }
.service-icon { width: 58px; height: 58px; display: grid; place-items: center; border-radius: 50%; border: 1px solid currentColor; margin-bottom: 2.2rem; }
.service-icon svg { width: 29px; fill: none; stroke: currentColor; stroke-width: 1.5; }
.service-label { text-transform: uppercase; letter-spacing: .18em; font-size: .57rem; font-weight: 800; opacity: .68; }
.service-card h3 { max-width: 500px; margin: .8rem 0 1.1rem; font: 500 clamp(2rem,3vw,3.2rem)/1.03 var(--serif); letter-spacing: -.04em; }
.service-card > p { margin: 0 0 2rem; max-width: 560px; font-size: .87rem; line-height: 1.7; opacity: .72; }
.service-card ul { list-style: none; padding: 1.2rem 0; margin: 0 0 2rem; width: 100%; border-top: 1px solid rgba(255,255,255,.14); }
.tutoring-card ul { border-color: rgba(23,38,59,.15); }
.service-card li { padding: .65rem 0; display: flex; gap: .7rem; align-items: center; font-size: .78rem; border-bottom: 1px solid rgba(255,255,255,.1); }
.tutoring-card li { border-color: rgba(23,38,59,.1); }
.service-card li span { color: var(--gold); }
.service-link { margin-top: auto; padding: 0 0 .4rem; color: inherit; background: none; border: 0; border-bottom: 1px solid currentColor; font-size: .72rem; font-weight: 800; cursor: pointer; position: relative; z-index: 2; text-decoration: none; }
.service-link span { margin-left: .8rem; }

.approach-section { padding: clamp(5rem,9vw,9rem) 7vw; background: var(--cream); display: grid; grid-template-columns: .8fr 1.2fr; gap: 8vw; }
.approach-intro { position: sticky; top: 130px; align-self: start; }
.approach-intro p { max-width: 430px; color: var(--muted); line-height: 1.7; }
.approach-steps article { display: grid; grid-template-columns: 70px 1fr; gap: 1.5rem; padding: 2.5rem 0; border-top: 1px solid #ccd2d2; }
.approach-steps article:last-child { border-bottom: 1px solid #ccd2d2; }
.approach-steps article > span { color: var(--green); font: 1.4rem var(--serif); }
.approach-steps h3 { margin: 0 0 .6rem; font: 1.55rem var(--serif); color: var(--navy); }
.approach-steps p { margin: 0; color: var(--muted); font-size: .86rem; line-height: 1.65; max-width: 580px; }

.about-section { display: grid; grid-template-columns: .85fr 1.15fr; gap: 8vw; align-items: center; }
.about-image { min-height: 650px; position: relative; }
.about-image img { width: 100%; height: 100%; position: absolute; object-fit: cover; object-position: center 30%; filter: saturate(.9); }
.image-accent { position: absolute; left: -20px; bottom: -20px; width: 48%; height: 44%; background: var(--green); z-index: -1; }
.about-copy h2 { margin-bottom: 2rem; }
.about-lead { font: 1.35rem/1.5 var(--serif) !important; color: var(--navy) !important; }
.about-copy > p { color: var(--muted); font-size: .88rem; line-height: 1.75; }
.about-values { margin: 2.2rem 0; display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 1.5rem 0; }
.about-values b { display: block; color: var(--green); font: 1.1rem var(--serif); }
.about-values span { display: block; margin-top: .3rem; color: var(--muted); font-size: .62rem; line-height: 1.4; }
.text-link { display: inline-flex; gap: 1rem; padding-bottom: .35rem; text-decoration: none; border-bottom: 1px solid; font-size: .72rem; font-weight: 800; color: var(--navy); }

.audience-section { padding: clamp(5rem,8vw,8rem) 6vw; background: var(--navy); color: white; }
.audience-section .section-heading { max-width: 1420px; margin-left: auto; margin-right: auto; }
.audience-section .eyebrow { color: #78c8b7; }
.audience-section .section-heading h2 { color: white; }
.audience-section .section-heading p { color: #9faabb; }
.audience-grid { max-width: 1420px; margin: auto; display: grid; grid-template-columns: repeat(4,1fr); border-top: 1px solid rgba(255,255,255,.16); }
.audience-grid article { padding: 2.5rem 2rem 1rem 0; border-right: 1px solid rgba(255,255,255,.13); }
.audience-grid article:not(:first-child) { padding-left: 2rem; }
.audience-grid article:last-child { border-right: 0; }
.audience-grid article > span { color: #63b6a4; font: 1.15rem var(--serif); }
.audience-grid h3 { margin: 2.8rem 0 .7rem; font: 1.5rem var(--serif); }
.audience-grid p { color: #a8b2c0; font-size: .77rem; line-height: 1.65; }

.contact-section { padding: clamp(5rem,9vw,9rem) 7vw; display: grid; grid-template-columns: .85fr 1.15fr; gap: 8vw; background: #e7ece8; align-items: start; }
.contact-copy { position: sticky; top: 120px; }
.contact-copy > p { max-width: 570px; color: var(--muted); line-height: 1.75; }
.contact-direct { margin-top: 2.3rem; max-width: 540px; border-top: 1px solid #bfc9c4; }
.contact-direct a { padding: 1.15rem 0; display: grid; grid-template-columns: 42px 1fr auto; gap: 1rem; align-items: center; text-decoration: none; border-bottom: 1px solid #bfc9c4; }
.contact-icon { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; color: white; background: var(--navy); }
.whatsapp-icon { background: #25d366; }
.contact-direct small { display: block; color: var(--muted); font-size: .58rem; text-transform: uppercase; letter-spacing: .12em; }
.contact-direct strong { display: block; margin-top: .3rem; font-size: .75rem; }
.contact-direct b { color: var(--green); }
.demo-note { margin-top: 1.2rem !important; font-size: .68rem; padding: .9rem 1rem; border-left: 2px solid var(--gold); background: rgba(255,255,255,.5); }
.enquiry-form { background: white; padding: clamp(2rem,4vw,3.5rem); box-shadow: var(--shadow); }
.form-heading { display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid var(--line); padding-bottom: 1.2rem; margin-bottom: 1.5rem; }
.form-heading span { font: 1.5rem var(--serif); color: var(--navy); }
.form-heading b { color: var(--green); font-size: .55rem; text-transform: uppercase; letter-spacing: .1em; }
.enquiry-form > label, .enquiry-form fieldset { display: block; border: 0; padding: 0; margin: 0 0 1.4rem; }
.enquiry-form label > span, .enquiry-form legend { display: block; margin-bottom: .55rem; color: var(--navy); font-size: .65rem; font-weight: 750; }
.enquiry-form input[type="text"], .enquiry-form textarea { width: 100%; border: 1px solid #cbd2d2; border-radius: 0; outline: 0; padding: .9rem; background: #fbfbf9; font-size: .8rem; resize: vertical; }
.enquiry-form input:focus, .enquiry-form textarea:focus { border-color: var(--green); box-shadow: 0 0 0 2px rgba(22,133,111,.12); }
.service-options { display: grid; grid-template-columns: repeat(3,1fr); gap: .5rem; }
.service-options label { cursor: pointer; }
.service-options input { position: absolute; opacity: 0; }
.service-options span { margin: 0 !important; padding: .8rem .5rem; text-align: center; border: 1px solid #cbd2d2; color: var(--muted) !important; font-weight: 600 !important; }
.service-options input:checked + span { border-color: var(--green); color: var(--green-dark) !important; background: #eaf4f0; }
.button-whatsapp { width: 100%; background: #1c9b5f; color: white; }
.button-whatsapp:hover { background: #167d4d; }
.form-privacy { text-align: center; color: #90999e; font-size: .6rem; margin: .8rem 0 0; }

.site-footer { padding: 5rem 6vw 2rem; background: var(--navy-deep); color: #b5c0ce; display: grid; grid-template-columns: 1fr 1.3fr; gap: 5rem; }
.brand-light { color: white; }
.brand-light .brand-mark { background: white; color: var(--navy); }
.brand-light .brand-mark::after { border-color: rgba(23,38,59,.3); }
.footer-brand p { margin-top: 1.4rem; font: 1.15rem/1.5 var(--serif); color: #8290a1; }
.footer-nav { display: grid; grid-template-columns: repeat(3,1fr); gap: 2rem; }
.footer-nav h3 { color: white; font-size: .6rem; text-transform: uppercase; letter-spacing: .16em; margin: 0 0 1.25rem; }
.footer-nav a { display: block; margin: .7rem 0; color: #8e9bac; text-decoration: none; font-size: .72rem; }
.footer-nav a:hover { color: white; }
.footer-bottom { grid-column: 1/-1; padding-top: 1.5rem; border-top: 1px solid rgba(255,255,255,.12); display: flex; justify-content: space-between; color: #657285; font-size: .6rem; }
.floating-whatsapp { position: fixed; right: 1.4rem; bottom: 1.4rem; z-index: 90; min-height: 48px; padding: 0 1rem; display: flex; align-items: center; gap: .6rem; border-radius: 100px; background: #25d366; color: white; text-decoration: none; box-shadow: 0 10px 32px rgba(14,65,42,.26); font-size: .68rem; font-weight: 800; }
.floating-whatsapp svg { width: 24px; fill: currentColor; }
.toast { position: fixed; bottom: 1.4rem; left: 50%; z-index: 200; transform: translate(-50%,100px); opacity: 0; padding: .9rem 1.2rem; background: var(--navy-deep); color: white; font-size: .72rem; box-shadow: var(--shadow); transition: .3s; }
.toast.show { transform: translate(-50%,0); opacity: 1; }

/* Scroll-linked office panorama: each section reveals a different zone of one space. */
.parallax-section {
  --parallax-y: 0px;
  --parallax-image: url('/images/office-parallax.png');
  --parallax-position: center center;
  --section-wash: rgba(255,255,255,.9);
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: transparent !important;
}
.parallax-section::before {
  content: '';
  position: absolute;
  z-index: -2;
  inset: -15% -3%;
  background-image: var(--parallax-image);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: var(--parallax-position);
  transform: translate3d(0, var(--parallax-y), 0) scale(1.045);
  transform-origin: center;
  will-change: transform;
}
.parallax-section::after {
  content: '';
  position: absolute;
  z-index: -1;
  inset: 0;
  background: var(--section-wash);
  pointer-events: none;
}
.services-section {
  --parallax-image: url('/images/parallax-accounting.png');
  --parallax-position: left center;
  --section-wash: linear-gradient(180deg, rgba(251,250,247,.97) 0%, rgba(245,242,235,.84) 52%, rgba(251,250,247,.96) 100%);
}
.services-section::before { filter: saturate(.75) contrast(.9); }
.approach-section {
  --parallax-image: url('/images/parallax-consultation.png');
  --parallax-position: center center;
  --section-wash: linear-gradient(180deg, rgba(245,242,235,.96) 0%, rgba(231,236,232,.78) 50%, rgba(245,242,235,.96) 100%);
}
.approach-section::before { filter: saturate(.7) blur(.3px); }
.about-section {
  --parallax-image: url('/images/office-parallax.png');
  --parallax-position: 63% center;
  --section-wash: linear-gradient(180deg, rgba(251,250,247,.97) 0%, rgba(251,250,247,.84) 45%, rgba(251,250,247,.97) 100%);
}
.about-section::before { opacity: .86; filter: saturate(.68); }
.about-copy { padding: clamp(1.4rem,3vw,2.8rem); background: rgba(251,250,247,.79); backdrop-filter: blur(8px); box-shadow: 0 20px 60px rgba(23,38,59,.08); }
.audience-section {
  --parallax-image: url('/images/parallax-consultation.png');
  --parallax-position: center center;
  --section-wash: linear-gradient(180deg, rgba(13,24,40,.96) 0%, rgba(23,38,59,.86) 48%, rgba(13,24,40,.96) 100%);
}
.audience-section::before { filter: saturate(.72) contrast(1.05); }
.contact-section {
  --parallax-image: url('/images/parallax-tutoring.png');
  --parallax-position: right center;
  --section-wash: linear-gradient(180deg, rgba(231,236,232,.97) 0%, rgba(220,234,228,.82) 48%, rgba(231,236,232,.96) 100%);
}
.contact-section::before { filter: saturate(.78); }
.site-footer.parallax-section {
  --parallax-image: url('/images/parallax-tutoring.png');
  --parallax-position: 72% center;
  --section-wash: linear-gradient(180deg, rgba(13,24,40,.97), rgba(8,17,29,.96));
}
.site-footer.parallax-section::before { filter: saturate(.55) contrast(1.1); }
.parallax-section + .parallax-section { border-top: 1px solid rgba(255,255,255,.2); }

/* Dedicated specialist pages */
.specialist-page { padding-top: 88px; }
.specialist-hero { min-height: calc(100vh - 88px); position: relative; overflow: hidden; display: flex; align-items: center; }
.specialist-hero > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.accounting-page .specialist-hero > img { object-position: center top; }
.english-page .specialist-hero > img { object-position: center top; }
.specialist-hero__wash { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(245,242,235,.98) 0%, rgba(245,242,235,.94) 34%, rgba(245,242,235,.38) 58%, transparent 78%); }
.specialist-hero__copy { position: relative; z-index: 2; width: min(46%,760px); margin-left: 7vw; padding: 5rem 0; }
.back-link { display: inline-flex; align-items: center; gap: .7rem; margin-bottom: clamp(3rem,6vh,6rem); color: var(--muted); text-decoration: none; font-size: .62rem; font-weight: 700; text-transform: uppercase; letter-spacing: .12em; }
.back-link span { color: var(--green); font-size: 1rem; }
.specialist-hero h1 { margin: 0 0 1.8rem; color: var(--navy); font: 500 clamp(3.2rem,5.7vw,6.5rem)/.95 var(--serif); letter-spacing: -.06em; }
.specialist-hero__copy > p { max-width: 620px; color: #596675; font-size: 1rem; line-height: 1.75; margin: 0 0 2.2rem; }
.specialist-assurance { display: flex; align-items: center; gap: 1rem; margin-top: clamp(3rem,6vh,5.5rem); color: #65716f; font-size: .6rem; text-transform: uppercase; letter-spacing: .1em; }
.specialist-assurance i { width: 4px; height: 4px; border-radius: 50%; background: var(--gold); }
.specialist-hero--reverse { justify-content: flex-end; }
.specialist-hero--reverse .specialist-hero__wash { background: linear-gradient(90deg, transparent 20%, rgba(245,242,235,.34) 43%, rgba(245,242,235,.94) 64%, rgba(245,242,235,.98) 100%); }
.specialist-hero--reverse .specialist-hero__copy { margin: 0 7vw 0 0; }

.page-intro { min-height: 180px; padding: 2.5rem 7vw; display: grid; grid-template-columns: .7fr 1.3fr; gap: 7vw; align-items: center; background: var(--navy); color: white; }
.page-intro > span { color: #73c5b4; font-size: .64rem; font-weight: 800; text-transform: uppercase; letter-spacing: .16em; }
.page-intro p { max-width: 850px; margin: 0; font: 1.35rem/1.55 var(--serif); color: #d9e0e5; }

.detail-services { --parallax-image: url('/images/parallax-accounting.png'); --parallax-position: center center; --section-wash: linear-gradient(180deg,rgba(251,250,247,.97),rgba(245,242,235,.87),rgba(251,250,247,.97)); padding: clamp(5rem,9vw,9rem) 6vw; }
.english-detail { --parallax-image: url('/images/parallax-tutoring.png'); --parallax-position: right center; }
.detail-heading { max-width: 900px; margin-bottom: 4rem; }
.detail-heading h2, .outcome-copy h2, .fit-heading h2, .gallery-heading h2, .learning-copy h2, .page-cta h2 { margin: 0; color: var(--navy); font: 500 clamp(2.6rem,4.6vw,5rem)/1 var(--serif); letter-spacing: -.05em; }
.detail-heading p, .gallery-heading p { max-width: 650px; color: var(--muted); line-height: 1.7; }
.detail-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: rgba(104,113,129,.26); border: 1px solid rgba(104,113,129,.2); }
.detail-grid article { min-height: 310px; padding: 2rem; position: relative; background: rgba(255,255,255,.91); backdrop-filter: blur(7px); transition: transform .25s, background .25s; }
.detail-grid article:hover { z-index: 2; transform: translateY(-5px); background: white; box-shadow: var(--shadow); }
.detail-grid article > span { position: absolute; right: 1.5rem; top: 1.4rem; color: #9aa5a5; font-size: .58rem; }
.detail-icon { width: 48px; height: 48px; display: grid; place-items: center; border: 1px solid #b9c4c2; border-radius: 50%; color: var(--green); font: 1rem var(--serif); }
.detail-grid h3 { margin: 3.8rem 0 .8rem; color: var(--navy); font: 1.45rem var(--serif); }
.detail-grid p { margin: 0; color: var(--muted); font-size: .78rem; line-height: 1.65; }

.outcome-section { padding: clamp(5rem,9vw,9rem) 7vw; display: grid; grid-template-columns: .9fr 1.1fr; gap: 8vw; background: var(--cream); }
.outcome-copy p { max-width: 520px; color: var(--muted); line-height: 1.75; margin: 1.7rem 0 2rem; }
.outcome-list article { display: grid; grid-template-columns: 60px 1fr; gap: 1.5rem; padding: 2rem 0; border-top: 1px solid #cbd2d0; }
.outcome-list article:last-child { border-bottom: 1px solid #cbd2d0; }
.outcome-list b { color: var(--green); font: 1.2rem var(--serif); }
.outcome-list h3 { margin: 0 0 .5rem; color: var(--navy); font: 1.45rem var(--serif); }
.outcome-list p { margin: 0; color: var(--muted); font-size: .8rem; line-height: 1.65; }

.fit-section { padding: clamp(5rem,8vw,8rem) 6vw; background: white; }
.fit-heading { display: grid; grid-template-columns: .6fr 1.4fr; align-items: end; gap: 5vw; margin-bottom: 3.5rem; }
.fit-grid { display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.fit-grid article { padding: 2.5rem 2.2rem; border-right: 1px solid var(--line); }
.fit-grid article:first-child { padding-left: 0; }
.fit-grid article:last-child { border: 0; }
.fit-grid span { color: var(--green); text-transform: uppercase; letter-spacing: .14em; font-size: .56rem; font-weight: 800; }
.fit-grid h3 { margin: 2.8rem 0 .7rem; color: var(--navy); font: 1.7rem var(--serif); }
.fit-grid p { color: var(--muted); font-size: .78rem; line-height: 1.65; }

.coaching-gallery { padding: clamp(5rem,9vw,9rem) 6vw; display: grid; grid-template-columns: .8fr 1.15fr; gap: 2rem; background: white; }
.gallery-heading { padding: 2rem 5vw 2rem 0; align-self: center; }
.coaching-photo { margin: 0; position: relative; min-height: 590px; overflow: hidden; }
.coaching-photo--one { grid-row: span 2; }
.coaching-photo--class { grid-column: 1/-1; min-height: 560px; margin-top: 1rem; }
.coaching-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .8s ease; }
.coaching-photo:hover img { transform: scale(1.025); }
.coaching-photo figcaption { position: absolute; z-index: 2; left: 1.3rem; right: 1.3rem; bottom: 1.3rem; padding: 1.1rem 1.3rem; display: grid; grid-template-columns: 35px 1fr; gap: .8rem; color: white; background: rgba(13,24,40,.88); backdrop-filter: blur(8px); }
.coaching-photo figcaption b { color: #70c7b4; font: 1rem var(--serif); }
.coaching-photo figcaption span { font-size: .67rem; line-height: 1.5; color: #bdc7d1; }
.coaching-photo figcaption strong { display: block; margin-bottom: .2rem; color: white; font: 1rem var(--serif); }

.learning-path { padding: clamp(5rem,8vw,8rem) 7vw; display: grid; grid-template-columns: .8fr 1.2fr; gap: 8vw; background: var(--green-soft); }
.learning-path ol { list-style: none; padding: 0; margin: 0; }
.learning-path li { display: grid; grid-template-columns: 55px 1fr; gap: 1.2rem; padding: 1.8rem 0; border-top: 1px solid rgba(23,38,59,.17); }
.learning-path li:last-child { border-bottom: 1px solid rgba(23,38,59,.17); }
.learning-path li > span { color: var(--green); font: 1.15rem var(--serif); }
.learning-path h3 { margin: 0 0 .45rem; color: var(--navy); font: 1.4rem var(--serif); }
.learning-path p { margin: 0; color: var(--muted); font-size: .78rem; line-height: 1.65; }

.page-cta { padding: clamp(5rem,8vw,8rem) 7vw; display: grid; grid-template-columns: 1.2fr .8fr; gap: 8vw; align-items: end; background: var(--navy); color: white; }
.english-cta { background: var(--green-dark); }
.page-cta .eyebrow { color: #79c9b8; }
.page-cta h2 { color: white; }
.page-cta p { max-width: 620px; margin-bottom: 0; color: #aeb9c5; line-height: 1.7; }
.page-cta > div:last-child { display: flex; flex-direction: column; align-items: flex-start; gap: 1.4rem; }
.cross-link { color: #bdc8d1; font-size: .68rem; text-decoration: none; border-bottom: 1px solid rgba(255,255,255,.4); padding-bottom: .3rem; }

.reveal { opacity: 0; transform: translateY(24px); transition: opacity .7s ease, transform .7s ease; }
.reveal.visible { opacity: 1; transform: none; }
.reveal-delay { transition-delay: .1s; }

@media (max-width: 1080px) {
  .site-header { grid-template-columns: 1fr auto; }
  .primary-nav { display: none; }
  .hero { grid-template-columns: 1fr 1fr; }
  .hero-copy { padding-left: 5vw; }
  .hero h1 { font-size: clamp(3rem,5.7vw,5rem); }
  .service-card { min-height: 610px; }
  .audience-grid { grid-template-columns: 1fr 1fr; }
  .audience-grid article:nth-child(2) { border-right: 0; }
  .audience-grid article:nth-child(n+3) { border-top: 1px solid rgba(255,255,255,.13); }
  .specialist-hero__copy { width: 52%; margin-left: 5vw; }
  .specialist-hero--reverse .specialist-hero__copy { margin-right: 5vw; }
  .detail-grid { grid-template-columns: repeat(2,1fr); }
}

@media (max-width: 760px) {
  .site-header { height: 72px; padding: 0 4vw; }
  .site-header.scrolled { height: 66px; }
  .brand-mark { width: 36px; height: 36px; }
  .brand-name { font-size: .85rem; }
  .header-cta { display: none; }
  .menu-toggle { display: flex; justify-self: end; flex-direction: column; gap: 5px; width: 40px; height: 40px; justify-content: center; align-items: center; border: 0; background: transparent; }
  .menu-toggle span:not(.sr-only) { width: 21px; height: 1px; background: var(--navy); }
  .primary-nav { display: flex; position: absolute; top: 72px; left: 0; right: 0; padding: 1.5rem 5vw; flex-direction: column; align-items: flex-start; background: white; transform: translateY(-140%); transition: transform .3s; z-index: -1; border-bottom: 1px solid var(--line); }
  .primary-nav.open { transform: translateY(0); }
  .hero { padding-top: 72px; grid-template-columns: 1fr; }
  .hero-copy { min-height: 720px; padding: 5rem 7vw 3rem; }
  .hero h1 { font-size: clamp(3.25rem,13.5vw,5rem); }
  .hero-proof { margin-top: 3.5rem; }
  .hero-portrait { min-height: 660px; }
  .trust-bar { justify-content: flex-start; overflow-x: auto; }
  .trust-bar > span { display: none; }
  .section-shell { padding-left: 6vw; padding-right: 6vw; }
  .section-heading { grid-template-columns: 1fr; gap: 1.5rem; }
  .service-grid { grid-template-columns: 1fr; }
  .service-card { min-height: 600px; }
  .approach-section { grid-template-columns: 1fr; }
  .approach-intro, .contact-copy { position: static; }
  .about-section { grid-template-columns: 1fr; }
  .about-image { min-height: 580px; }
  .contact-section { grid-template-columns: 1fr; }
  .site-footer { grid-template-columns: 1fr; gap: 3rem; }
  .parallax-section::before { inset: -10% -35%; background-size: auto 120%; }
  .services-section { --parallax-position: 22% center; }
  .approach-section { --parallax-position: center center; }
  .about-section { --parallax-position: 60% center; }
  .contact-section, .site-footer.parallax-section { --parallax-position: 82% center; }
  .specialist-page { padding-top: 72px; }
  .specialist-hero { min-height: 860px; align-items: flex-end; }
  .specialist-hero > img { object-position: 70% center; }
  .accounting-page .specialist-hero > img { object-position: 70% top; }
  .english-page .specialist-hero > img { object-position: 30% top; }
  .specialist-hero--reverse > img { object-position: 30% center; }
  .specialist-hero__wash, .specialist-hero--reverse .specialist-hero__wash { background: linear-gradient(180deg, transparent 8%, rgba(245,242,235,.3) 35%, rgba(245,242,235,.98) 63%, rgba(245,242,235,1) 100%); }
  .specialist-hero__copy, .specialist-hero--reverse .specialist-hero__copy { width: auto; margin: 0; padding: 20rem 7vw 3.5rem; }
  .back-link { margin-bottom: 2rem; }
  .specialist-assurance { margin-top: 2.5rem; }
  .page-intro { grid-template-columns: 1fr; gap: 1rem; }
  .detail-grid { grid-template-columns: 1fr; }
  .outcome-section, .learning-path { grid-template-columns: 1fr; }
  .fit-heading { grid-template-columns: 1fr; }
  .fit-grid { grid-template-columns: 1fr; }
  .fit-grid article, .fit-grid article:first-child { padding: 2rem 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .coaching-gallery { grid-template-columns: 1fr; }
  .gallery-heading { padding-right: 0; }
  .coaching-photo, .coaching-photo--class { min-height: 470px; grid-column: auto; grid-row: auto; }
  .page-cta { grid-template-columns: 1fr; align-items: start; }
}

@media (max-width: 520px) {
  .hero-copy { min-height: 680px; }
  .hero-actions { align-items: stretch; flex-direction: column; }
  .hero-proof div { display: block; }
  .hero-proof strong { display: block; margin-bottom: .25rem; }
  .hero-portrait { min-height: 560px; }
  .portrait-badge { width: 88px; height: 88px; }
  .trust-bar { gap: 1.1rem; }
  .trust-bar strong { white-space: nowrap; font-size: .9rem; }
  .about-image { min-height: 500px; }
  .about-values { grid-template-columns: 1fr; }
  .audience-grid { grid-template-columns: 1fr; }
  .audience-grid article, .audience-grid article:not(:first-child) { padding: 2rem 0; border-right: 0; border-top: 1px solid rgba(255,255,255,.13); }
  .audience-grid h3 { margin-top: 1.4rem; }
  .service-options { grid-template-columns: 1fr; }
  .form-heading { align-items: flex-start; flex-direction: column; gap: .5rem; }
  .footer-nav { grid-template-columns: 1fr 1fr; }
  .footer-nav div:last-child { display: none; }
  .footer-bottom { flex-direction: column; gap: .5rem; }
  .floating-whatsapp span { display: none; }
  .floating-whatsapp { width: 50px; padding: 0; justify-content: center; }
  .specialist-hero { min-height: 820px; }
  .specialist-hero h1 { font-size: clamp(3rem,14vw,4.4rem); }
  .specialist-assurance { flex-wrap: wrap; }
  .page-intro p { font-size: 1.1rem; }
  .detail-services { padding-left: 5vw; padding-right: 5vw; }
  .coaching-photo, .coaching-photo--class { min-height: 390px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
  .parallax-section { --parallax-y: 0px !important; }
}
