@font-face { font-family: Inter; src: url('assets/inter-400.ttf') format('truetype'); font-weight:400; font-display:swap; }
@font-face { font-family: Inter; src: url('assets/inter-500.ttf') format('truetype'); font-weight:500; font-display:swap; }
@font-face { font-family: Inter; src: url('assets/inter-600.ttf') format('truetype'); font-weight:600; font-display:swap; }
:root { color-scheme:light; --green:#02300a; --deep:#032509; --accent:#9ecf1d; --text:#193423; --muted:#58665d; --line:#dde5dc; --surface:#f4f6f2; --radius:1.15rem; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:#fff; color:var(--text); font:400 1rem/1.7 Inter,Arial,sans-serif; -webkit-font-smoothing:antialiased; }
a { color:inherit; text-decoration:none; }
a,button,summary { touch-action:manipulation; -webkit-tap-highlight-color:transparent; }
button { font:inherit; }
img { display:block; max-width:100%; height:auto; }
h1,h2,h3,p { margin:0; }
h1,h2,h3 { font-weight:500; line-height:1.12; letter-spacing:-.045em; text-wrap:balance; }
h1 { font-size:clamp(2.5rem,4vw,3.7rem); max-width:19ch; }
h2 { font-size:clamp(2rem,3.25vw,3rem); max-width:24ch; }
h3 { font-size:1.3rem; line-height:1.3; letter-spacing:-.025em; }
p { color:var(--muted); max-width:65ch; text-wrap:pretty; }
p+p { margin-top:1.3rem; }
ul,ol { margin:0; padding:0; list-style:none; }
.container { width:min(1184px,calc(100% - 6rem)); margin-inline:auto; }
.section { padding-block:6rem; }
section[id],main { scroll-margin-top:6rem; }
:focus-visible { outline:3px solid #638315; outline-offset:6px; }
.skip { position:fixed; top:-100px; left:1rem; background:var(--accent); color:var(--deep); padding:1rem; z-index:30; }
.skip:focus { top:1rem; }
.header { position:sticky; top:0; z-index:20; background:var(--green); color:#f5f8f2; border-bottom:1px solid #31533a; }
.header__inner { height:80px; display:flex; align-items:center; justify-content:space-between; gap:2rem; }
.logo { display:block; flex-shrink:0; }
.logo img { width:213px; }
.header nav { display:flex; align-items:center; gap:2rem; font-size:.875rem; }
.header nav>a:not(.button) { position:relative; padding:1rem 0; color:#d4dfcf; }
.header nav>a:not(.button)::after { content:''; position:absolute; inset:auto 0 .5rem; height:2px; background:var(--accent); transform:scaleX(0); transform-origin:left; transition:transform .25s; }
.header nav>a:hover::after,.header nav>a[aria-current]::after { transform:scaleX(1); }
.button { display:inline-flex; justify-content:center; align-items:center; gap:1.5rem; min-height:50px; padding:.95rem 1.6rem; border:1px solid transparent; border-radius:.5rem; background:var(--accent); color:var(--deep); font-size:1rem; font-weight:600; line-height:1.4; white-space:nowrap; transition:background .2s,transform .25s,box-shadow .25s; }
.button::after { content:'↗'; font-size:1.2rem; transition:transform .25s; }
.button:hover { background:#b8e84a; box-shadow:0 8px 22px #152e2020; transform:translateY(-3px); }
.button:hover::after { transform:translate(2px,-2px); }
.button:active { transform:translateY(0) scale(.98); }
.button--small { font-size:.85rem; min-height:44px; padding:.75rem 1.1rem; gap:1rem; }
.button--small::after { display:none; }
.menu-toggle { display:none; }
.hero-shell { background:var(--green); color:#f5f8f2; }
.hero { display:grid; grid-template-columns:1.15fr 1fr; gap:3.5rem; align-items:center; padding-block:4.25rem 5rem; }
.hero__intro { color:#c7d6c5; font-size:1.07rem; line-height:1.75; margin:1.7rem 0; max-width:44ch; }
.hero__note { font-size:.8rem; margin-top:1.4rem; color:#c7d6c5; max-width:none; }
.hero__media { position:relative; }
.hero__media img { width:100%; transition:transform .65s cubic-bezier(.2,.7,.2,1); }
.hero__media:hover img { transform:scale(1.025); }
.problem { background:#fff; }
.section__intro { max-width:760px; }
.section__intro h2 { max-width:none; }
.section__intro p { margin-top:1.2rem; font-size:1.05rem; max-width:61ch; }
.problem__list { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; margin-top:2.5rem; }
.problem__list li { background:var(--surface); padding:1.65rem; border:1px solid #e7ece4; border-radius:var(--radius); }
.problem__icon { display:grid; place-items:center; width:3.25rem; height:3.25rem; margin-bottom:2.5rem; background:#e5ecd9; border-radius:.7rem; }
.problem__icon img { width:29px; }
.problem__list p { color:var(--text); font-size:.93rem; line-height:1.7; }
.problem__close { margin-top:2rem; color:var(--text); font-weight:500; max-width:none; }
.guide { display:grid; grid-template-columns:.85fr 1.15fr; align-items:center; gap:5rem; padding-top:2rem; }
.guide__media { width:100%; }
.guide__media img { width:100%; max-width:400px; height:auto; margin-inline:auto; }
.guide__copy h2 { margin-bottom:1.6rem; }
.guide__copy p { font-size:.96rem; }
.review { background:var(--surface); }
.review h2 { max-width:none; }
.review__layout { display:grid; grid-template-columns:1fr 1.1fr; gap:5rem; margin-top:3rem; align-items:center; }
.review__visual { background:#e3edd6; min-height:330px; display:flex; flex-direction:column; align-items:center; justify-content:center; border-radius:var(--radius); overflow:hidden; }
.review__orbit { position:relative; width:225px; height:225px; display:grid; place-items:center; border:1px solid #b9cea0; border-radius:50%; background:#eff4e8; }
.review__orbit::before { content:''; position:absolute; inset:19px; border:1px dashed #b9cea0; border-radius:50%; }
.review__big-number { position:absolute; left:0; top:8px; width:48px; height:48px; display:grid; place-items:center; background:var(--green); color:#fff; border-radius:50%; z-index:1; }
.review__art { width:95px; }
.review__progress { display:flex; gap:8px; margin-top:1.5rem; }
.review__progress span { width:32px; height:4px; border-radius:2px; background:#b6c5a6; }
.review__progress .active { background:#42651e; }
.review__steps details { border-bottom:1px solid #d4dfcd; padding:1.4rem 0; }
.review__steps summary { display:flex; align-items:center; gap:1rem; cursor:pointer; list-style:none; }
.review__steps summary::-webkit-details-marker { display:none; }
.review__number { display:grid; place-items:center; width:2.5rem; height:2.5rem; flex-shrink:0; border:1px solid #cedbc5; border-radius:50%; font-size:.9rem; }
.review__steps details[open] .review__number { border-color:var(--green); background:var(--green); color:#fff; }
.review__steps p { margin:.85rem 2rem 0 3.5rem; font-size:.97rem; }
.expand { margin-left:auto; width:1rem; height:1rem; position:relative; flex-shrink:0; }
.expand::before,.expand::after { content:''; position:absolute; background:var(--green); width:12px; height:2px; top:7px; left:2px; }
.expand::after { transform:rotate(90deg); transition:transform .25s; }
.review__steps details[open] .expand::after,.faq details[open] .expand::after { transform:rotate(0); }
.takeaway { padding-block:5rem 2rem; }
.takeaway__panel { display:grid; grid-template-columns:1fr 1.15fr; column-gap:5rem; row-gap:1.8rem; background:var(--green); color:#f5f8f2; border-radius:var(--radius); padding:3.5rem; }
.takeaway__heading>img { filter:invert(1); margin-bottom:1.5rem; width:42px; }
.check-list { display:grid; gap:1.25rem; }
.check-list li { padding-left:2.2rem; position:relative; }
.check-list li::before { content:'✓'; position:absolute; left:0; color:var(--accent); }
.takeaway__note { grid-column:2; font-size:.9rem; color:#d1dfcb; border-top:1px solid #3f5e44; padding-top:1.25rem; }
.services { padding-top:4rem; }
.services h2 { max-width:none; }
.services__grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1.25rem; margin-top:2.5rem; }
.service-card { transition:transform .35s,box-shadow .35s; min-width:0; background:var(--surface); border:1px solid #e1e8de; border-radius:var(--radius); overflow:hidden; display:flex; flex-direction:column; }
@media (hover:hover) {
 .service-card:hover { transform:translateY(-6px); box-shadow:0 15px 30px #17382114; }
 .service-card:hover .service-card__media img { transform:translateY(-4px) rotate(-5deg); }
}
.service-card--1,.service-card--2 { grid-column:span 2; }
.service-card__media { display:grid; place-items:center; height:155px; overflow:hidden; background:#e9eddf; }
.service-card:nth-child(even) .service-card__media { background:#e9ecea; }
.service-card__media img { width:74px; height:74px; object-fit:contain; transition:transform .45s cubic-bezier(.2,.7,.2,1); }
.service-card__body { position:relative; flex:1; padding:1.5rem 1.4rem 1.8rem; }
.services h3 { font-size:1.12rem; }
.service-card--1 h3,.service-card--2 h3 { font-size:1.45rem; }
.services p { margin-top:.75rem; font-size:.9rem; line-height:1.7; }
.stakes { background:#f1f3ed; }
.stakes__inner { display:grid; grid-template-columns:1fr 1fr; gap:5rem; }
.stakes h2 { max-width:19ch; }
.stakes p { font-size:1.02rem; }
.future { display:grid; grid-template-columns:1.1fr 1fr; gap:4rem; align-items:center; }
.future__heading img { width:100%; max-width:400px; height:auto; margin:2rem auto 0; }
.future__list { display:grid; gap:0; }
.future li { font-size:1.13rem; padding:1.4rem 0 1.4rem 2.75rem; position:relative; border-bottom:1px solid var(--line); }
.future li::before { content:'✓'; position:absolute; left:0; top:1.5rem; display:grid; place-items:center; width:28px; height:28px; border-radius:50%; background:#e5efd5; color:var(--green); font-size:.95rem; }
.booking { background:var(--green); color:#f5f8f2; text-align:center; }
.booking__inner { display:flex; align-items:center; flex-direction:column; }
.booking h2 { max-width:24ch; font-size:clamp(2.1rem,3.6vw,3.3rem); }
.booking p { margin-block:1.5rem 1.8rem; max-width:52ch; color:#c7d6c5; }
.booking .booking__note { font-size:.85rem; max-width:67ch; margin:1.6rem 0 0; }
.faq { display:grid; grid-template-columns:.8fr 1.2fr; gap:5rem; }
.faq h2 { max-width:15ch; }
.faq__list { border-top:1px solid var(--line); }
.faq details { border-bottom:1px solid var(--line); }
.faq summary { display:flex; align-items:center; gap:1.5rem; padding:1.5rem 0; cursor:pointer; list-style:none; font-size:1.08rem; font-weight:500; line-height:1.5; transition:color .2s; }
.faq summary::-webkit-details-marker { display:none; }
.faq summary:hover { color:#55741b; }
.faq details p { padding:0 2.5rem 1.5rem 0; font-size:.97rem; }
.footer-shell { background:var(--green); color:#f5f8f2; }
.footer { display:grid; grid-template-columns:minmax(0,1fr) minmax(22rem,1.15fr); align-items:start; gap:3rem 5rem; padding-block:3.5rem 2rem; }
.footer .logo { display:block; width:fit-content; }
.footer .logo img { width:230px; }
.footer__brand p { max-width:32rem; margin:1.25rem 0 0; color:#c7d6c5; font-size:.9rem; line-height:1.7; }
.footer__heading { margin:0 0 .8rem; color:#fff; font-size:.78rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.footer__email { display:inline-block; color:#fff; font-size:1.05rem; font-weight:600; }
.footer__offices { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.5rem; margin-top:1.65rem; }
.footer__office { display:grid; gap:.35rem; }
.footer__office span { color:#91a794; font-size:.72rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.footer__office a { color:#e6eee3; font-size:.88rem; }
.footer__bottom { grid-column:1/-1; display:flex; align-items:center; justify-content:space-between; gap:2rem; padding-top:1.5rem; border-top:1px solid #31533a; }
.footer__legal { display:flex; gap:1.5rem; font-size:.76rem; }
.footer small { color:#9fb2a1; font-size:.75rem; }
.footer a:hover { text-decoration:underline; }
@media(prefers-reduced-motion:no-preference) {
 .hero__copy { animation:arrive .75s both; }
 .hero__media { animation:arrive 1s .15s both; }
 .reveal-pending { opacity:0; transform:translateY(26px); }
 .reveal-ready { opacity:1; transform:translateY(0); transition:opacity .65s,transform .65s cubic-bezier(.2,.7,.2,1); }
 .problem__list .reveal-ready:nth-child(2),.services__grid .reveal-ready:nth-child(2) { transition-delay:.08s; }
 .problem__list .reveal-ready:nth-child(3) { transition-delay:.16s; }
 .problem__list .reveal-ready:nth-child(4) { transition-delay:.24s; }
 .review__art.is-changing { animation:art-enter .45s both; }
 .review__steps details[open] p,.faq details[open] p { animation:arrive .35s both; }
 @keyframes arrive { from { opacity:0; transform:translateY(20px); } to { opacity:1; transform:translateY(0); } }
 @keyframes art-enter { from { opacity:.2; transform:scale(.85) rotate(-8deg); } to { opacity:1; transform:scale(1) rotate(0); } }
}
@media(max-width:1024px) {
 .container { width:calc(100% - 4rem); }
 .header nav { gap:1.1rem; }
 .logo img { width:180px; }
 .hero { grid-template-columns:1.1fr .9fr; gap:2rem; }
 h1 { font-size:clamp(2.4rem,4.4vw,3.3rem); }
 .problem__list { grid-template-columns:repeat(2,1fr); }
 .problem__icon { margin-bottom:1.5rem; }
 .guide,.review__layout,.future { gap:3rem; }
 .takeaway__panel { gap:2rem; padding:2.5rem; }
 .services__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .service-card--1,.service-card--2 { grid-column:auto; }
 .service-card__media { height:155px; }
 .stakes__inner { gap:3rem; }
}
@media(max-width:767px) {
 .container { width:calc(100% - 2.5rem); }
 .header__inner { height:72px; }
 .logo img { width:175px; }
 .menu-toggle { display:block; border:1px solid #496448; border-radius:.4rem; padding:.5rem .8rem; min-height:44px; background:transparent; color:#fff; }
 .header nav { display:none; position:absolute; left:0; right:0; top:72px; padding:1.4rem; background:var(--deep); border-bottom:1px solid #496448; align-items:stretch; flex-direction:column; gap:.35rem; }
 .header nav.is-open { display:flex; }
 .header nav>a:not(.button) { padding:.6rem; }
 .header nav .button { margin-top:.5rem; }
 .hero { grid-template-columns:1fr; padding-block:2.6rem 3rem; gap:2rem; }
 .hero h1 { font-size:clamp(2.25rem,7.7vw,3.3rem); max-width:19ch; }
 .hero__intro { font-size:1rem; margin-block:1.4rem; }
 .hero__note { font-size:.75rem; margin-top:1.1rem; }
 .hero__media { max-width:390px; justify-self:center; }
 .section { padding-block:3.5rem; }
 h2 { font-size:2rem; }
 .problem__list { grid-template-columns:1fr; margin-top:2rem; }
 .problem__list li { display:grid; grid-template-columns:48px 1fr; gap:1rem; padding:1.4rem; }
 .problem__icon { width:48px; height:48px; margin:0; }
 .guide { grid-template-columns:1fr; gap:2rem; padding-top:.5rem; }
 .guide__media { width:100%; }
 .review__layout { grid-template-columns:1fr; gap:1.6rem; margin-top:2rem; }
 .review__visual { min-height:235px; }
 .review__orbit { width:155px; height:155px; }
 .review__art { width:70px; }
 .review__big-number { width:38px; height:38px; }
 .review__steps h3 { font-size:1.15rem; }
 .review__steps p { margin-right:0; }
 .takeaway__panel { display:block; padding:1.75rem; }
 .takeaway h2 { margin-bottom:1.8rem; }
 .takeaway__note { margin-top:1.8rem; }
 .services { padding-top:1rem; }
 .services__grid { grid-template-columns:1fr; margin-top:2rem; }
 .service-card__media { height:155px; }
 .services h3 { font-size:1.4rem; }
 .service-card__body { padding:1.5rem 1.5rem 1.8rem; }
 .services p { font-size:.95rem; }
 .stakes__inner,.future,.faq { grid-template-columns:1fr; gap:1.6rem; }
 .future__heading img { width:100%; margin-top:1.5rem; }
 .future li { font-size:1.05rem; }
 .booking h2 { font-size:2.25rem; }
 .footer { grid-template-columns:1fr; gap:2.25rem; }
 .footer__offices { grid-template-columns:1fr; gap:1rem; }
 .footer__bottom { grid-column:auto; align-items:flex-start; flex-direction:column; gap:1rem; }
 .footer__legal { gap:1.25rem; }
}
@media(prefers-reduced-motion:reduce) {
 html { scroll-behavior:auto; }
 *,*::before,*::after { animation:none; transition:none; }
 .reveal-pending { opacity:1; transform:none; }
}

