:root{--pine:#1f3b30;--pine2:#2a4a3d;--moss:#5d7a64;--sage:#c9d2bf;--cream:#f4efe4;--paper:#faf7f0;--sand:#e8dfcc;--ochre:#d4a437;--ochre2:#c08f24;--ink:#17221c;--body:#46524a;--line:rgba(23,34,28,.13);--serif:"Gloock",Georgia,serif;--sans:"Instrument Sans",system-ui,sans-serif;--mono:"Azeret Mono",ui-monospace,monospace}
*{box-sizing:border-box}html{scroll-behavior:auto;overflow-x:clip}body{margin:0;background:var(--paper);color:var(--body);font-family:var(--sans);font-size:17px;line-height:1.62;overflow-x:clip;-webkit-font-smoothing:antialiased}body.is-loading{overflow:hidden}
img{display:block;max-width:100%;height:auto}a{color:inherit}.wrap{width:min(1240px,92vw);margin:0 auto}
h1,h2,h3{color:var(--ink);margin:0;text-wrap:balance}h1,h2{font-family:var(--serif);font-weight:400;line-height:1.02;letter-spacing:-.015em}p,li,blockquote,td,figcaption{text-wrap:pretty}
h2{font-size:clamp(2.1rem,4.4vw,3.6rem);max-width:20ch}h2 em,h1 em{font-style:normal;color:var(--moss)}h3{font-family:var(--sans);font-size:1.15rem;font-weight:600;letter-spacing:-.01em}
.eyebrow{font-family:var(--mono);font-size:.72rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--moss);margin:0 0 1.1rem;display:flex;align-items:center;gap:.7rem}.eyebrow::before{content:"";width:9px;height:9px;border:1.5px solid var(--ochre);border-radius:50%;flex:none}.eyebrow.light{color:var(--sage)}
.head-note{max-width:46ch;margin:0}
.skip-link{position:absolute;left:-999px}.skip-link:focus{left:1rem;top:1rem;z-index:200;background:#fff;padding:.6rem 1rem}
/* Preloader */
.preloader{position:fixed;inset:0;z-index:100;display:grid;place-items:center;pointer-events:none}.pre-panels{position:absolute;inset:0;display:grid;grid-template-columns:repeat(3,1fr)}.pre-panel{display:block;background:var(--pine)}.pre-panel:nth-child(2){background:var(--pine2)}
.pre-inner{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:1.4rem;color:var(--cream);padding:0 1rem;text-align:center}
.pre-compass{width:96px;height:96px;opacity:0}
.pre-word{display:block;font-family:var(--serif);font-size:clamp(1.7rem,4.6vw,3rem);color:var(--cream);opacity:0;transform:translateY(40%)}
/* Nav */
.nav{position:fixed;top:0;left:0;right:0;z-index:60;transition:background .3s,box-shadow .3s}.nav.scrolled{background:rgba(250,247,240,.93);backdrop-filter:blur(12px);box-shadow:0 1px 0 var(--line)}
.nav-inner{width:min(1300px,94vw);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:1.2rem;padding:.85rem 0}
.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;color:var(--pine);line-height:1}.brand img{width:36px;height:auto}
.brand-txt{font-family:var(--serif);font-size:1.25rem;letter-spacing:-.01em}.brand small{display:block;font-family:var(--mono);font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;color:var(--body);margin-top:.3rem}
.nav-links{display:flex;gap:1.6rem}.nav-links a{text-decoration:none;font-size:.93rem;color:var(--ink);font-weight:500;position:relative}.nav-links a::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:1.5px;background:var(--ochre);transform:scaleX(0);transform-origin:left;transition:transform .3s}.nav-links a:hover::after{transform:scaleX(1)}
.nav-cta{display:flex;align-items:center;gap:1rem}.nav-tel{text-decoration:none;font-size:.93rem;white-space:nowrap;color:var(--ink);font-weight:600}
.btn{display:inline-flex;align-items:center;justify-content:center;padding:.95rem 1.5rem;border-radius:999px;text-decoration:none;font-weight:600;font-size:.95rem;border:1px solid transparent;transition:background .25s,color .25s,border-color .25s;will-change:transform;text-align:center}
.btn-pine{background:var(--pine);color:var(--cream)}.btn-pine:hover{background:var(--moss)}.btn-ghost{border-color:rgba(23,34,28,.28);color:var(--ink)}.btn-ghost:hover{border-color:var(--pine);background:#fff}
.btn-ochre{background:var(--ochre);color:var(--ink)}.btn-ochre:hover{background:#e2b448}.btn-line{border-color:rgba(244,239,228,.4);color:var(--cream)}.btn-line:hover{border-color:var(--cream)}.btn-sm{padding:.62rem 1.1rem;font-size:.87rem;white-space:nowrap}
/* Hero */
.hero{position:relative;padding:8.4rem 0 4.4rem;background:var(--cream);overflow:hidden}
.hero-topo{position:absolute;inset:0;background:url(assets/topo.svg) center/cover no-repeat;pointer-events:none}
.hero .wrap{position:relative}
.hero-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:3.4rem;align-items:center}
h1{font-size:clamp(3.2rem,7.4vw,7rem);line-height:.95;color:var(--pine)}
.line-mask{display:block;overflow:hidden;padding-bottom:.06em}.line{display:block;white-space:nowrap;transform:translateY(105%);opacity:0}
.hero-lead,.hero-actions,.hero-proof,.hero-note{opacity:0;transform:translateY(22px)}
.hero-lead{font-size:1.1rem;margin:1.8rem 0 1.7rem;max-width:44ch}.hero-actions{display:flex;gap:.7rem;flex-wrap:wrap}
.hero-visual{position:relative;padding-bottom:3rem}
.hero-media{margin:0;border-radius:200px 200px 1.4rem 1.4rem;overflow:hidden;aspect-ratio:4/4.3;background:var(--sand);clip-path:inset(10% 8% 10% 8% round 24px)}
.hero-media picture{display:block;width:100%;height:100%}.hero-media img{width:100%;height:100%;object-fit:cover;object-position:50% 55%;transform:scale(1.12)}
.hero-card{position:absolute;left:-2.2rem;bottom:0;display:flex;gap:.9rem;align-items:center;background:var(--paper);border:1px solid var(--line);border-radius:1rem;padding:.7rem 1.1rem .7rem .7rem;max-width:340px;box-shadow:0 18px 40px -24px rgba(23,34,28,.45)}
.hero-card img{width:64px;height:64px;border-radius:50%;object-fit:cover;object-position:50% 30%;flex:none}.hero-card strong{display:block;color:var(--ink);font-size:.98rem}.hero-card span{font-size:.8rem;line-height:1.35;display:block}
.hero-coord{position:absolute;right:-.2rem;top:8%;font-family:var(--mono);font-size:.7rem;letter-spacing:.08em;color:var(--moss);text-align:right;margin:0;writing-mode:vertical-rl;transform-origin:center}
.hero-facts{list-style:none;margin:3.2rem 0 0;padding:1.6rem 0 0;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(4,1fr);gap:1.4rem}
.hero-facts strong{display:block;font-family:var(--serif);font-weight:400;font-size:1.7rem;color:var(--pine);line-height:1.05}.hero-facts span{font-size:.88rem;line-height:1.35;display:block;margin-top:.35rem;max-width:24ch}
/* Marquee */
.marquee-section{background:var(--pine);color:var(--cream);overflow:hidden;padding:1.05rem 0}.marquee{display:flex;width:max-content}.marquee-group{display:flex;gap:1.7rem;padding-right:1.7rem;font-family:var(--serif);font-size:1.45rem;white-space:nowrap;align-items:center}.marquee-group i{width:7px;height:7px;border-radius:50%;background:var(--ochre);display:block}
section{padding:6.5rem 0}
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:3rem;margin-bottom:3.4rem}
/* Compass */
.compass{background:var(--paper)}
.compass-grid{display:grid;grid-template-columns:1fr minmax(220px,300px) 1fr;grid-template-rows:auto auto;gap:1.4rem 2.6rem;align-items:center}
.dir{position:relative;padding:1.7rem 1.7rem 1.8rem;border:1px solid var(--line);border-radius:1.2rem;background:#fff}
.dir-n{grid-column:1;grid-row:1}.dir-o{grid-column:3;grid-row:1}.dir-s{grid-column:3;grid-row:2}.dir-w{grid-column:1;grid-row:2}
.rose{grid-column:2;grid-row:1/3;color:var(--pine);aspect-ratio:1;width:100%}.rose svg{width:100%;height:100%;overflow:visible}
.dir-k{position:absolute;top:1.3rem;right:1.4rem;font-family:var(--mono);font-size:.8rem;color:var(--ochre2);font-weight:500}
.dir p{margin:.55rem 0 0;font-size:.96rem;max-width:44ch}
/* Services */
.services{background:var(--cream)}
.svc-list{border-top:1px solid var(--line)}
.svc{display:grid;grid-template-columns:4rem 1.3fr 1fr;gap:2rem;padding:2rem 0;border-bottom:1px solid var(--line);align-items:start}
.svc-n{font-family:var(--mono);font-size:.8rem;color:var(--moss);padding-top:.5rem}.svc h3{font-family:var(--serif);font-weight:400;font-size:clamp(1.6rem,2.6vw,2.2rem);color:var(--pine);letter-spacing:-.01em}.svc-main p{margin:.55rem 0 0;max-width:52ch}
.svc-meta{list-style:none;margin:0;padding:.4rem 0 0;display:flex;flex-direction:column;gap:.45rem}.svc-meta li{font-size:.9rem;padding-left:1.1rem;position:relative}.svc-meta li::before{content:"";position:absolute;left:0;top:.62em;width:6px;height:6px;border-radius:50%;background:var(--ochre)}
.tarif{margin-top:2.6rem;background:var(--pine);color:var(--sage);border-radius:1.4rem;padding:2.2rem 2.4rem;display:grid;grid-template-columns:1.3fr 1fr;gap:2.4rem;align-items:center}
.tarif-txt{margin:0;color:#dfe5d8;max-width:52ch}.tarif-prices{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.tarif-prices div{border:1px solid rgba(244,239,228,.22);border-radius:1rem;padding:1.1rem 1.3rem}.tarif-prices span{display:block;font-family:var(--mono);font-size:.74rem;letter-spacing:.06em;text-transform:uppercase}.tarif-prices strong{display:block;font-family:var(--serif);font-weight:400;font-size:2.3rem;color:var(--cream);line-height:1.1;margin-top:.3rem;white-space:nowrap}
.extra{margin-top:2.6rem}.extra h3{margin-bottom:1rem}.extra ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.55rem}.extra li{border:1px solid var(--line);border-radius:999px;padding:.45rem .95rem;font-size:.9rem;background:var(--paper)}
/* Spiral */
.spiral{background:var(--pine);color:#d9e0d2;overflow:hidden}.spiral h2{color:var(--cream)}.spiral h2 em{color:var(--ochre)}
.spiral-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:4rem;align-items:center}
.spiral-art{aspect-ratio:1;max-width:440px;width:100%;justify-self:center}.spiral-art svg{width:100%;height:100%}
.spiral-copy p{max-width:50ch}.spiral-copy blockquote{margin:2rem 0 2.2rem;padding-left:1.4rem;border-left:2px solid var(--ochre)}.spiral-copy blockquote p{font-family:var(--serif);font-size:1.6rem;line-height:1.25;color:var(--cream);margin:0}.spiral-copy cite{display:block;margin-top:.7rem;font-style:normal;font-family:var(--mono);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--sage)}
/* Praxis */
.praxis{background:var(--paper)}
.gallery{display:grid;grid-template-columns:1.5fr 1fr 1fr;grid-template-rows:auto auto;gap:1.2rem}
.gallery figure{margin:0;border-radius:1.2rem;overflow:hidden;background:var(--sand)}.gallery img{width:100%;height:100%;object-fit:cover;transform:scale(1.12)}
.g1{grid-column:1;grid-row:1;aspect-ratio:3/2}.g2{grid-column:2;grid-row:1/3}.g3{grid-column:1;grid-row:2;aspect-ratio:3/2}.g4{grid-column:3;grid-row:1/3}
/* Steps */
.steps{background:var(--cream)}
.step-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;counter-reset:s}
.step{padding:2rem;border-radius:1.2rem;background:var(--paper);border:1px solid var(--line);position:relative}
.step-n{display:block;font-family:var(--serif);font-size:3.2rem;line-height:1;color:var(--ochre);margin-bottom:1.2rem}.step p{margin:.6rem 0 0;font-size:.96rem}
/* About */
.about{background:var(--paper)}
.about-grid{display:grid;grid-template-columns:.72fr 1.28fr;gap:4.4rem;align-items:start}
.about-media{margin:0;position:sticky;top:6.5rem}.about-media img{border-radius:1.4rem;aspect-ratio:4/5;object-fit:cover;width:100%}.about-media figcaption{font-family:var(--mono);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;margin-top:.8rem;color:var(--moss)}
.about-copy>p{max-width:54ch}
.timeline{list-style:none;margin:2rem 0 0;padding:0;border-left:1.5px solid var(--sage)}
.timeline li{position:relative;padding:0 0 1.3rem 1.6rem}.timeline li::before{content:"";position:absolute;left:-6px;top:.45em;width:10px;height:10px;border-radius:50%;background:var(--paper);border:1.5px solid var(--pine)}.timeline li:first-child::before{background:var(--ochre);border-color:var(--ochre)}
.timeline span{font-family:var(--mono);font-size:.76rem;color:var(--moss);letter-spacing:.04em;white-space:nowrap}.timeline p{margin:.15rem 0 0;color:var(--ink)}
.more{margin-top:1.2rem;border-top:1px solid var(--line);padding-top:1.1rem}.more summary{cursor:pointer;font-weight:600;color:var(--pine);list-style:none;display:flex;align-items:center;gap:.6rem}.more summary::-webkit-details-marker{display:none}.more summary::after{content:"+";font-family:var(--mono);font-size:1.1rem;color:var(--ochre2)}.more[open] summary::after{content:"−"}
.more ul{margin:1rem 0 0;padding:0;list-style:none;columns:2;column-gap:2rem}.more li{font-size:.92rem;padding:.3rem 0;break-inside:avoid;border-bottom:1px dashed var(--line)}
/* Refer */
.refer{background:var(--sand)}
.refer-grid{display:grid;grid-template-columns:.7fr 1.3fr;gap:4rem;align-items:center}
.refer-media{margin:0;border-radius:1.2rem;overflow:hidden;aspect-ratio:4/5}.refer-media img{width:100%;height:100%;object-fit:cover}
.refer-copy p{max-width:52ch}.refer-links{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1.8rem}
.refer-links a{display:block;text-decoration:none;background:var(--paper);border-radius:1rem;padding:1.2rem 1.3rem;color:var(--ink);font-weight:600;border:1px solid var(--line);transition:border-color .25s;overflow-wrap:anywhere}.refer-links a:hover{border-color:var(--pine)}.refer-links span{display:block;font-family:var(--mono);font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--moss);font-weight:400;margin-bottom:.35rem}
/* FAQ */
.faq{background:var(--paper)}
.faq-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:4rem;align-items:start}.faq-grid .head-note{margin-top:1.3rem}.faq-media{margin:2.2rem 0 0;max-width:340px;border-radius:1.2rem;overflow:hidden}.faq-media img{width:100%;aspect-ratio:4/3;object-fit:cover}
.faq-item{border-bottom:1px solid var(--line)}.faq-item:first-child{border-top:1px solid var(--line)}
.faq-q{width:100%;background:none;border:0;text-align:left;font:600 1.05rem/1.4 var(--sans);color:var(--ink);padding:1.3rem 2.6rem 1.3rem 0;cursor:pointer;position:relative}
.faq-q span{position:absolute;right:.2rem;top:50%;width:16px;height:16px;transform:translateY(-50%)}.faq-q span::before,.faq-q span::after{content:"";position:absolute;left:0;right:0;top:7px;height:1.5px;background:var(--pine);transition:transform .3s}.faq-q span::after{transform:rotate(90deg)}.faq-item.open .faq-q span::after{transform:rotate(0)}
.faq-a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .4s ease}.faq-a>p{overflow:hidden;margin:0;max-width:60ch}.faq-item.open .faq-a{grid-template-rows:1fr}.faq-item.open .faq-a>p{padding-bottom:1.3rem}
/* Contact */
.contact{background:var(--cream);padding-bottom:5rem}
.contact-panel{background:var(--pine);border-radius:1.8rem;overflow:hidden;display:grid;grid-template-columns:1.35fr .65fr;color:#d9e0d2}
.contact-body{padding:3.4rem}.contact-body h2{color:var(--cream)}.contact-body h2 em{color:var(--ochre)}.contact-body>p{max-width:50ch}
.contact-actions{display:flex;flex-wrap:wrap;gap:.7rem;margin:1.8rem 0 2.6rem}
.contact-details{display:grid;grid-template-columns:1fr 1fr 1.3fr;gap:1.8rem;border-top:1px solid rgba(244,239,228,.18);padding-top:2rem}
.contact-details span{display:block;font-family:var(--mono);font-size:.7rem;letter-spacing:.07em;text-transform:uppercase;color:var(--sage);margin-bottom:.6rem}.contact-details strong{display:block;font-weight:500;color:var(--cream);line-height:1.5}.contact-details a{display:inline-block;margin-top:.7rem;color:var(--ochre);text-decoration:none;font-weight:600}.contact-details a.mail{font-size:.9rem;white-space:nowrap}.contact-details a:hover{text-decoration:underline}
.hours{border-collapse:collapse;color:var(--cream)}.hours td{padding:.15rem 0;font-size:.95rem}.hours td:last-child{padding-left:1rem;white-space:nowrap}
.small{font-size:.9rem;margin:.6rem 0 0}
.contact-media{position:relative;min-height:100%}.contact-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
/* Footer */
footer{background:var(--ink);color:#b9c2b6;padding:2.8rem 0 3.4rem}.footer-inner{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;flex-wrap:wrap}
.footer-brand img{width:190px;height:auto}.footer-brand p{margin:.8rem 0 0;font-size:.88rem}.footer-links{display:flex;gap:1.4rem;align-items:center;flex-wrap:wrap;font-size:.88rem}.footer-links a{text-decoration:none}.footer-links a:hover{color:var(--cream)}.credit{font-size:.74rem;opacity:.75}
.sticky-cta{display:none}
/* Reveal */
.js .reveal{opacity:0}.force-visible .reveal,.force-visible .line,.force-visible .hero-lead,.force-visible .hero-actions,.force-visible .hero-proof,.force-visible .hero-note{opacity:1!important;transform:none!important}.force-visible .hero-media{clip-path:none!important}
@media (prefers-reduced-motion:reduce){.js .reveal,.line,.hero-lead,.hero-actions,.hero-proof,.hero-note{opacity:1!important;transform:none!important}.hero-media{clip-path:none!important}.hero-media img,.gallery img{transform:none!important}.preloader{display:none!important}body.is-loading{overflow:auto}.pre-needle{transform:none}}
/* Responsive */
@media (max-width:1240px){.nav-tel{display:none}}
@media (max-width:1080px){.nav-links{display:none}.hero-grid{grid-template-columns:1fr;gap:2.6rem}.hero-media{aspect-ratio:16/11;border-radius:1.4rem;clip-path:inset(10% 8% 10% 8% round 24px)}.hero-card{left:1rem}.hero-coord{display:none}.hero-facts{grid-template-columns:repeat(2,1fr)}
.compass-grid{grid-template-columns:1fr 1fr}.rose{grid-column:1/3;grid-row:1;max-width:220px;justify-self:center}.dir-n{grid-column:1;grid-row:2}.dir-o{grid-column:2;grid-row:2}.dir-w{grid-column:1;grid-row:3}.dir-s{grid-column:2;grid-row:3}
.svc{grid-template-columns:3rem 1fr}.svc-meta{grid-column:2}.tarif{grid-template-columns:1fr}.spiral-grid{grid-template-columns:1fr;gap:2.4rem}.spiral-art{max-width:300px}
.about-grid,.faq-grid{grid-template-columns:1fr;gap:2.6rem}.about-media{position:relative;top:0;max-width:380px}.refer-grid{grid-template-columns:.8fr 1.2fr;gap:2.4rem}
.contact-panel{grid-template-columns:1fr}.contact-media{min-height:320px}.contact-details{grid-template-columns:1fr 1fr}}
@media (max-width:760px){body{font-size:16px}section{padding:4.6rem 0}.sec-head{flex-direction:column;align-items:flex-start;gap:1.2rem;margin-bottom:2.4rem}
.hero{padding:6.6rem 0 3.4rem}h1{font-size:clamp(3rem,15vw,4.6rem)}.hero-lead{margin:1.4rem 0 1.4rem}.hero-visual{padding-bottom:0}.hero-card{position:relative;left:auto;bottom:auto;margin:-2.2rem 1rem 0;max-width:none}
.hero-facts{gap:1.2rem 1rem;margin-top:2.4rem}.hero-facts strong{font-size:1.45rem}
.compass-grid{grid-template-columns:1fr}.rose{grid-column:1;max-width:180px}.dir-n,.dir-o,.dir-s,.dir-w{grid-column:1;grid-row:auto}
.svc{grid-template-columns:1fr;gap:.6rem;padding:1.6rem 0}.svc-meta{grid-column:1}.svc-n{padding:0}.tarif{padding:1.7rem 1.4rem}.tarif-prices strong{font-size:1.9rem}
.gallery{grid-template-columns:1fr 1fr}.g1{grid-column:1/3;grid-row:auto}.g3{grid-column:1/3;grid-row:auto}.g2{grid-column:1;grid-row:auto;aspect-ratio:4/5}.g4{grid-column:2;grid-row:auto;aspect-ratio:4/5}
.step-list{grid-template-columns:1fr}.about-media{max-width:300px}.faq-media{max-width:260px}.more ul{columns:1}.refer-grid{grid-template-columns:1fr}.refer-media{max-width:360px;aspect-ratio:4/4.4}.refer-links{grid-template-columns:1fr}
.contact-body{padding:2.2rem 1.4rem}.contact-details{grid-template-columns:1fr}.contact-media{min-height:260px}
.sticky-cta{display:block;position:fixed;left:1rem;right:1rem;bottom:1rem;z-index:50;text-align:center;background:var(--pine);color:var(--cream);text-decoration:none;font-weight:600;padding:.95rem;border-radius:999px;box-shadow:0 12px 30px -10px rgba(23,34,28,.5)}footer{padding-bottom:5.6rem}
.nav-cta{display:none}.brand small{display:block}.sticky-cta{transform:translateY(160%);transition:transform .4s cubic-bezier(.16,1,.3,1)}.sticky-cta.show{transform:none}}
@media (max-width:380px){.brand-txt{font-size:1.05rem}.hero-facts{grid-template-columns:1fr}.tarif-prices{grid-template-columns:1fr}}
#nl-badge-frame,[id*="netlify-badge"],iframe[src*=".netlify/scripts/hud"]{display:none!important}
