@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 300;
  font-display: swap;
  src: url(assets/fonts/hailo-font-0.ttf) format('truetype');
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(assets/fonts/hailo-font-1.ttf) format('truetype');
}
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/hailo-font-2.ttf) format('truetype');
}
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(assets/fonts/hailo-font-3.ttf) format('truetype');
}

:root{--vanilla:#F6F1E8;--matcha:#7A846A;--ink:#404c3c;--argile:#BD7164;--ochre:#DB9A4A;--line:#7a846a45;--serif:'Cormorant Garamond',Georgia,serif;--sans:'Jost',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:80px}body{margin:0;background:var(--vanilla);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.65}a{color:inherit;text-underline-offset:5px}button,input,select,textarea{font:inherit}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--ochre);outline-offset:5px}img{display:block;max-width:100%;height:auto}h1,h2,h3,h4,p{margin-top:0}h1,h2,h3,h4{font-family:var(--serif);font-weight:300;line-height:1.04;letter-spacing:-.025em}h1{font-size:clamp(3.3rem,5.25vw,5.9rem);margin-bottom:30px}h2{font-size:clamp(3rem,4.7vw,5.25rem);margin-bottom:48px}h3{font-size:2.15rem}h4{font-size:2.3rem;color:#935246;margin-bottom:22px}p{margin-bottom:22px}em{font-weight:300}header{min-height:94px;display:flex;align-items:center;justify-content:space-between;padding:14px 4.5%;gap:24px;border-bottom:1px solid var(--line);background:var(--vanilla);position:relative;z-index:10}.brand{width:137px;flex-shrink:0}.brand img{width:100%;height:auto}nav{display:flex;gap:28px;align-items:center;font-size:14px}nav a{text-decoration:none}nav a:hover{text-decoration:underline}.nav-contact{padding:10px 16px;border:1px solid var(--argile)}.menu-toggle{display:none}.section{padding:100px max(6%,calc((100vw - 1320px)/2));scroll-margin-top:20px}.eyebrow,.small-label{font-size:13px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;display:block;margin-bottom:22px}.eyebrow:before{content:'';display:inline-block;width:23px;height:2px;background:var(--ochre);vertical-align:middle;margin-right:12px}.hero{display:grid;grid-template-columns:58% 42%;min-height:710px}.hero-copy{padding:85px 8% 78px 10.3%}.hero .eyebrow{font-size:12px;letter-spacing:.11em}.hero-copy>p{max-width:510px}.intro{font-size:19px;line-height:1.55}.highlight{background:linear-gradient(transparent 68%,#db9a4a66 68%,#db9a4a66 91%,transparent 91%)}.button{display:inline-flex;gap:28px;align-items:center;justify-content:space-between;background:var(--argile);color:#241c19;border:1px solid transparent;padding:15px 23px;text-decoration:none;font-size:15px;font-weight:500;min-height:51px;transition:background .2s,transform .2s}.button:hover{background:#cc8a7f;transform:translateY(-2px)}.hero .button{margin-top:12px}.hero-art{background:var(--argile);padding:70px 0 35px 35px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}.hero-note{font-family:var(--serif);font-size:clamp(2.3rem,3.4vw,4rem);line-height:1.08;color:#261f1b;padding:30px 30px 45px 10px}.hero-art img{width:100%;height:360px;object-fit:cover;object-position:40% center}.concrete{display:grid;grid-template-columns:34% minmax(0,1fr);gap:35px;padding-bottom:70px}.section-heading{align-self:start}.cases{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px 40px;padding-top:80px}.case{border-top:1px solid var(--line);padding-top:25px}.case:nth-child(even){margin-top:80px}.small-label{letter-spacing:.08em;font-size:12px;color:#7c493f}.case h3{font-size:2rem}.case p{font-size:16px}.case-photo{grid-column:1/-1;width:100%;height:320px;object-fit:cover}details{border-top:1px solid var(--line);padding-top:14px}summary{font-size:14px;cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:16px}summary::-webkit-details-marker{display:none}summary:after{content:'+';font-size:21px;line-height:1}details[open] summary:after{content:'−'}details p{padding-top:15px;margin-bottom:8px}a:hover{color:#7c493f}.useful{border-top:1px solid var(--line)}.situations{max-width:1010px;margin:auto}.situations article{max-width:530px;padding:20px 0 55px}.situations article:nth-child(2){margin-left:25%}.situations article:nth-child(3){margin-left:48%}.situations h3{font-size:2.6rem}.situations p{max-width:380px}.situations a,.offer a,.founder a{font-size:14px}.offers{background:#eee7da}.offers>h2{margin-bottom:55px}.offer{display:grid;grid-template-columns:42% 58%;border-top:1px solid var(--line);padding:38px 0 45px;scroll-margin-top:40px}.offer h3{font-size:2.4rem}.offer>div{max-width:590px}.offer a{display:inline-block;margin-top:25px}.offer details p{font-size:16px}.deliverables{font-size:14px}.offer-note{border-top:1px solid var(--line);padding-top:30px;font-size:16px;margin-bottom:0}.method{background:var(--matcha);color:#171f14}.method h2{color:var(--vanilla)}.method ol{padding:40px 0 0;margin:0;list-style:none;display:grid;grid-template-columns:repeat(5,minmax(min-content,1fr));gap:26px;border-top:1px solid #f6f1e866}.method h3{font-size:1.8rem;color:var(--vanilla);margin-bottom:15px}.method p{font-size:15px;line-height:1.55;margin-bottom:0}.founder{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10%;align-items:center}.founder h2{margin-bottom:30px}.founder .lead{font-family:var(--serif);font-size:2rem;line-height:1.2}.founder p{font-size:16px}.founder figure{margin:0}.founder img{height:650px;width:100%;object-fit:cover}.founder figcaption{font-size:12px;padding-top:12px}.human{border-top:1px solid var(--line);text-align:center}.human h2{font-size:clamp(2.6rem,4vw,4.5rem)}.human>img{width:86%;height:420px;margin:0 auto;object-fit:cover}.human-copy{max-width:470px;text-align:left;margin:44px 17% 45px auto}.closing{font-family:var(--serif);color:#935246;font-size:2.9rem;line-height:1.1;margin:0}.contact{background:var(--argile);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:11%;color:#251d18}.contact h2{color:#251d18}.contact .eyebrow:before{background:#251d18}.contact>div>p{max-width:400px}.direct-email{font-size:16px}.direct-email-sep{font-size:16px;opacity:.6}form{padding-top:12px}label{display:block;margin:0 0 9px;font-size:15px;font-weight:500}input,select,textarea{width:100%;border:1px solid #251d1880;background:#f6f1e8e8;color:#251d18;border-radius:0;padding:12px;margin:0 0 22px;min-height:49px}textarea{resize:vertical}::placeholder{color:#625b51;opacity:1}form .light{background:var(--vanilla);margin-top:4px}.form-note{font-size:13px;line-height:1.5;margin-top:17px}.contact a:hover{color:inherit}.contact #message-result{border-top:1px solid #251d1880;margin-top:20px;padding-top:20px}.contact #message-result p{font-size:14px}#copy-message{background:transparent;border:1px solid;padding:10px 16px}footer{padding:45px 6% 20px;display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:20px;background:var(--argile);border-top:1px solid #251d1840;color:#251d18;font-size:13px;align-items:start}.footer-brand{font-size:2rem;font-family:var(--serif);text-decoration:none;line-height:1}.footer-brand span{font-family:var(--sans);font-size:11px;display:block;letter-spacing:.08em;padding-top:8px}.credits{grid-column:1/-1;font-size:12px;margin:10px 0}.skip{position:absolute;left:15px;top:-100px;background:var(--vanilla);padding:12px;z-index:100}.skip:focus{top:10px}[hidden]{display:none!important}
@media(max-width:1050px){nav{gap:14px;font-size:12px}.hero-copy{padding:60px 8%}.hero{min-height:640px}.section{padding:75px 6%}.concrete{gap:20px}.cases{gap:30px 24px}.method ol{gap:15px}.method h3{font-size:1.55rem}.founder{gap:6%}.founder img{height:570px}}@media(max-width:760px){html{scroll-padding-top:20px}header{min-height:80px;padding:12px 6%;flex-wrap:wrap}.brand{width:115px}.menu-toggle{display:block;border:1px solid var(--line);background:transparent;padding:10px 15px;font-size:14px;color:var(--ink)}.menu-toggle span{padding-left:10px}nav{display:none;width:100%;flex-direction:column;align-items:stretch;gap:0;padding:12px 0;font-size:16px}nav.open{display:flex}nav a{padding:13px 0}.nav-contact{padding:13px;margin-top:8px}.hero{grid-template-columns:1fr;min-height:auto}.hero-copy{padding:48px 6% 42px}h1{font-size:clamp(3.25rem,10.5vw,4.9rem)}.hero-copy>p{max-width:none}.hero .eyebrow{font-size:11px;letter-spacing:.06em}.hero-art{padding:26px 0 22px 6%;display:grid;grid-template-columns:36% 64%;align-items:center;gap:0}.hero-note{font-size:2rem;padding:0 15px 0 0;margin:0}.hero-art img{height:230px;object-position:37% center}.section{padding:62px 6%}h2{font-size:3.3rem;margin-bottom:32px}.concrete{display:block}.cases{padding-top:8px;gap:27px;grid-template-columns:1fr}.case:nth-child(even){margin-top:0}.case h3{font-size:2.1rem;max-width:500px}.case-photo{height:250px;grid-column:auto}.situations article,.situations article:nth-child(2),.situations article:nth-child(3){margin-left:0;padding:22px 0 28px;max-width:100%;border-bottom:1px solid var(--line)}.situations h3{font-size:2.2rem}.situations h3 br{display:none}.situations p{max-width:none}.offer{grid-template-columns:1fr;padding:26px 0;gap:12px}.offer h3{font-size:1.8rem;margin-bottom:10px}.offer h4{font-size:2.3rem}.method ol{grid-template-columns:1fr;padding-top:0;gap:0}.method li{padding:22px 0;display:grid;grid-template-columns:38% minmax(0,1fr);gap:12px;border-bottom:1px solid #f6f1e84d}.method h3{font-size:1.7rem;margin:0}.method li:last-child{border:0;padding-bottom:0}.founder{grid-template-columns:1fr;gap:35px}.founder img{height:370px}.human>img{width:100%;height:250px}.human-copy{margin:30px 0;max-width:none}.closing{font-size:2.7rem}.contact{grid-template-columns:1fr;gap:25px}.contact h2{font-size:3.8rem}.contact h2 br:nth-child(2){display:none}.contact>div>p{max-width:none}footer{grid-template-columns:1fr 1fr;padding:32px 6% 20px}.credits{grid-column:1/-1}.button{font-size:14px;gap:18px;max-width:100%}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
/* Living editorial rhythm — HaïLO V2 */
.site-header{position:sticky;top:0;background:rgba(246,241,232,.97);transition:box-shadow .25s;min-height:86px}.site-header.scrolled{box-shadow:0 5px 24px #404c3c0c}.reading-progress{position:absolute;bottom:0;left:0;right:0;height:2px;overflow:hidden;pointer-events:none}.reading-progress span{display:block;width:100%;height:100%;background:var(--argile);transform:scaleX(0);transform-origin:left center}nav a{position:relative}nav a[aria-current="location"]:after{content:'';position:absolute;bottom:3px;left:0;right:0;height:2px;background:var(--argile)}nav .nav-contact[aria-current="location"]:after{display:none}.hero{min-height:760px}.hero-copy{padding-top:66px;padding-bottom:58px}.hero-purpose{padding-left:20px;border-left:2px solid var(--argile);font-size:15px}.hero-copy>p{max-width:570px}.hero-art{padding-top:36px;padding-bottom:40px;position:relative;border-bottom-left-radius:100px}.hero-note{padding-top:15px;padding-bottom:36px}.hero-art img{height:390px;min-height:290px;border-top-left-radius:100px;object-position:35% center}.button{border-radius:3px}.button:hover{transform:translateY(-2px);box-shadow:0 8px 20px #6b4e3d14}.button:active{transform:translateY(0)}.button span{transition:transform .25s}.button:hover span{transform:translate(3px,-3px)}.concrete{padding-top:110px;gap:6%;grid-template-columns:30% minmax(0,1fr)}.concrete .section-heading{position:sticky;top:140px;padding-bottom:22px}.concrete h2 em{background:linear-gradient(transparent 66%,#bd71644d 66%,#bd71644d 91%,transparent 91%)}.cases{padding-top:35px;gap:45px 26px;align-items:start}.case{padding-top:23px}.case:nth-child(even){margin-top:65px}.case h3{font-size:2.05rem;line-height:1.12}.case .small-label{font-size:12px;letter-spacing:.07em;margin-bottom:15px}.solution{background:#7a846a1c;border-left:2px solid var(--matcha);padding:18px 20px;margin:23px 0 17px}.solution p{margin:0;font-size:16px;line-height:1.6}.case-2 .solution,.case-4 .solution{background:#bd71641c;border-color:var(--argile)}.case-5{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:26px}.case-5 .small-label{grid-column:1/-1}.case-5 .solution{margin:0 0 20px}.case-5 details{grid-column:1/-1}.case-photo-frame{grid-column:1/-1;margin:0;overflow:hidden;position:relative;border-radius:0 65px 0 0;background:var(--matcha)}.case-photo-frame img{height:310px;transition:transform 1s cubic-bezier(.2,.7,.2,1)}.case-photo-frame:hover img{transform:scale(1.025)}.case-photo-frame figcaption{font-size:13px;line-height:1.5;padding:13px 22px;color:#151d11}.case summary{color:var(--ink)}details[open]{padding-bottom:8px}details[open] summary{font-weight:500}summary{min-height:32px;align-items:start}summary:after{transition:transform .25s}summary:hover:after{transform:rotate(90deg)}.useful{background:linear-gradient(90deg,#7a846a13 0%,#7a846a13 36%,transparent 36%);position:relative}.useful>h2{max-width:620px}.situations{max-width:1120px}.situations article{padding:35px 0 40px;max-width:700px}.situations article:first-child{padding:38px 46px 42px;background:var(--matcha);border-radius:0 56px 0 0;margin:0 0 35px 12%;color:#151d11}.situations article:first-child h3{color:var(--vanilla)}.situations article:first-child a{color:#151d11}.situations article:nth-child(2){margin-left:34%;padding-left:26px;border-left:2px solid var(--argile)}.situations article:nth-child(3){margin-left:14%;padding-top:35px;border-top:1px solid var(--line)}.situations h3{font-size:2.5rem;line-height:1.1}.situations p{max-width:560px}.offers{background:#bd716412}.offers>h2 em{color:#935246}.offer{grid-template-columns:38% minmax(0,1fr);gap:4%;padding:44px 0}.offer>h3{position:relative;padding-top:10px}.offer>h3:before{content:'';position:absolute;top:0;left:0;width:42px;height:3px;background:var(--argile)}.offer h4{font-size:2.5rem;line-height:1.12}.offer-details{padding:5px 0 15px 20px;border-left:2px solid var(--argile);margin-top:20px}.offer-details p{padding-top:0}.offer a.text-link{margin-top:6px}.offer details{margin-top:24px}.method{padding-top:85px;padding-bottom:90px}.method li p{margin:0 0 6px}.method li p:last-child{margin-bottom:0}.founder{align-items:start;gap:8%;padding-top:110px;padding-bottom:100px}.founder-copy>p{font-size:17px;max-width:600px}.founder-portrait{position:sticky;top:125px;padding:0 22px 22px 0}.founder-portrait:before{content:'';position:absolute;z-index:0;inset:40px 0 24px 30px;background:var(--argile);border-radius:0 0 65px 0}.founder-portrait img{position:relative;z-index:1;height:auto;max-height:750px;object-fit:contain;width:100%;border-radius:0 0 55px 0}.founder-portrait figcaption{position:relative;margin-top:18px;padding-top:8px;font-size:13px}.founder-belief{margin:30px 0 24px;padding:28px 30px;background:#7a846a1c;border-left:3px solid var(--matcha)}.founder-belief .lead{font-size:2.1rem;line-height:1.13;margin-bottom:20px}.founder-belief p:last-child{margin-bottom:0}.exchanges{background:var(--matcha);color:#151d11;display:grid;grid-template-columns:40% minmax(0,1fr);gap:0 8%;padding-top:80px;padding-bottom:55px}.exchange-heading h2{color:var(--vanilla);font-size:3.7rem;line-height:1.07}.exchange-heading>p:last-child{font-size:16px}.quotes blockquote{margin:0;padding:24px 0;border-top:1px solid #f6f1e85e}.quotes blockquote:first-child{padding-top:0;border-top:0}.quotes blockquote p{font-family:var(--serif);font-size:2rem;line-height:1.23;margin:0}.quote-note{grid-column:1/-1;margin:27px 0 0;padding-top:20px;border-top:1px solid #f6f1e85e;font-size:12px}.start{display:grid;grid-template-columns:60% minmax(0,1fr);gap:7%;align-items:center;background:#bd716417}.start h2{font-size:3.35rem;line-height:1.12;margin-bottom:0}.start h2 em{color:#935246}.start .button{margin-top:12px}.human{padding-top:100px}.human h2{line-height:1.1}.human>img{border-radius:70px 0 70px 0;width:92%;height:440px}.human-copy{padding:26px 30px;border-left:2px solid var(--argile);background:#bd716415;margin-top:36px;max-width:550px}.human-copy p:last-child{margin-bottom:0}.human .closing{display:inline-block;padding:18px 0 10px;border-bottom:3px solid var(--ochre);max-width:580px;line-height:1.15}.contact{border-radius:70px 0 0 0;padding-top:85px;gap:9%;grid-template-columns:47% minmax(0,1fr)}.contact h2{font-size:clamp(3.5rem,4.7vw,5.25rem);line-height:1.05}.contact>div>p{max-width:500px}.contact .booking-link{margin-top:15px;margin-bottom:12px}.booking-note{font-size:13px}.contact form{background:#f6f1e821;padding:28px 30px 22px;border-top:2px solid #f6f1e8ad}.contact form h3{font-size:2rem;margin-bottom:30px;scroll-margin-top:120px}.optional{font-size:12px;font-weight:400;margin-left:5px}form:focus-within{border-top-color:var(--vanilla)}input,select,textarea{transition:background .2s,border-color .2s}input:focus,textarea:focus,select:focus{background:var(--vanilla);border-color:var(--ink)}.text-link{display:inline-block;transition:transform .25s}.text-link:hover{transform:translateX(4px)}section{overflow-wrap:break-word}.hero-note{overflow-wrap:normal}
@media(min-width:761px) and (max-width:1100px){.site-header{padding-left:3%;padding-right:3%}nav{gap:14px;font-size:13px}.brand{width:110px}.concrete{grid-template-columns:1fr;gap:0}.concrete .section-heading{position:static}.concrete h2 br{display:none}.cases{padding-top:10px}.founder{gap:5%}.founder-portrait{top:115px}.contact{gap:5%}.contact form{padding:24px 20px}.exchange-heading h2{font-size:3.1rem}}
@media(max-width:760px){.site-header{min-height:76px;position:sticky}.site-header nav{max-height:70dvh;overflow:auto}.hero{min-height:auto}.hero-copy{padding-top:42px}.hero-copy h1{font-size:clamp(3rem,10.2vw,4.7rem)}.hero-purpose{font-size:15px}.hero-art{padding:24px 0 26px 6%;border-bottom-left-radius:46px}.hero-art img{height:230px;min-height:0;border-top-left-radius:45px}.hero-note{font-size:1.9rem;padding:0 12px 0 0}.concrete{padding-top:60px}.concrete .section-heading{position:static;padding:0}.cases{display:block}.case{margin:0 0 30px!important}.case h3{font-size:2.05rem}.solution{margin:18px 0}.case-photo-frame{margin-bottom:32px;border-top-right-radius:42px}.case-photo-frame img{height:240px}.case-photo-frame figcaption{font-size:12px;padding:12px 18px}.case-5{display:block}.case-5 .solution{margin:18px 0}.useful{background:linear-gradient(90deg,#7a846a13 0%,#7a846a13 20%,transparent 20%)}.situations article:first-child,.situations article:nth-child(2),.situations article:nth-child(3){margin-left:0;max-width:100%;padding:27px 0}.situations article:first-child{padding:29px 24px 32px;border-top-right-radius:40px;margin-bottom:15px}.situations article:nth-child(2){padding-left:22px;margin-top:30px;margin-bottom:20px}.situations h3{font-size:2.15rem;line-height:1.12}.offer{grid-template-columns:1fr;gap:18px;padding:30px 0}.offer>h3{font-size:1.8rem;padding-top:14px}.offer h4{font-size:2.15rem;line-height:1.14}.offer-details{padding-left:16px}.method{padding-top:60px;padding-bottom:60px}.method li{grid-template-columns:minmax(min-content,35%) minmax(0,1fr);gap:15px}.method li h3{font-size:1.5rem}.founder{padding-top:60px;padding-bottom:60px;display:flex;flex-direction:column;gap:35px}.founder-copy{display:contents}.founder-copy>p.eyebrow{order:0;margin-bottom:-20px}.founder-copy>h2{order:1;margin-bottom:0}.founder-portrait{order:2;position:relative;top:auto;width:100%;max-width:430px;align-self:center;padding-right:16px;padding-bottom:10px}.founder-portrait img{max-height:none}.founder-portrait:before{inset:30px 0 30px 25px}.founder-copy>p:not(.eyebrow){order:3;margin:0;font-size:16px}.founder-belief{order:4;margin:0;padding:26px 23px}.founder-copy>a{order:5}.exchanges{display:block;padding-top:60px;padding-bottom:45px}.exchange-heading h2{font-size:3.05rem}.quotes{margin-top:35px}.quotes blockquote p{font-size:1.9rem}.quote-note{font-size:12px}.start{grid-template-columns:1fr;gap:25px}.start h2{font-size:2.7rem}.start .button{margin-top:0}.human{padding-top:60px}.human>img{width:100%;height:270px;border-radius:38px 0 38px 0}.human-copy{padding:24px;margin:28px 0}.human .closing{font-size:2.5rem}.contact{grid-template-columns:1fr;padding-top:60px;border-top-left-radius:45px;gap:30px}.contact h2{font-size:3.5rem}.contact form{padding:26px 20px 18px;margin:0 -5px}.contact form h3{font-size:1.9rem}.contact .booking-link{margin-top:0}.credits{max-width:500px}html{scroll-padding-top:95px}nav a[aria-current="location"]:after{bottom:8px;right:auto;width:26px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* V3 — glass, depth and equal entry points */
.hero{margin-bottom:65px}.hero-art{overflow:visible;border-radius:0;padding:38px 30px 0 0;justify-content:space-between}.hero-note{padding-left:42px}.hero-art img{position:relative;width:calc(100% + 20px);max-width:none;margin-left:-38px;margin-bottom:-40px;height:410px;border-radius:22px;box-shadow:0 28px 55px -20px #404c3c69,0 3px 12px #404c3c12;transform:rotate(-1.5deg);transition:transform .8s cubic-bezier(.2,.7,.2,1)}.hero-art img:hover{transform:translateY(-7px) rotate(-.5deg)}
.useful{background:radial-gradient(ellipse at 12% 70%,#7a846a24,transparent 48%),radial-gradient(ellipse at 90% 30%,#bd716426,transparent 46%),var(--vanilla);border-top:0}.useful>h2{max-width:900px}.situations{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;max-width:none;align-items:stretch;margin-top:44px}.situations article,.situations article:first-child,.situations article:nth-child(2),.situations article:nth-child(3){display:flex;flex-direction:column;max-width:none;margin:0;padding:32px 28px 26px;border:1px solid #fff9;border-radius:24px;background:linear-gradient(140deg,#ffffff9c,#f6f1e88c);color:var(--ink);box-shadow:inset 0 1px 0 #fff,0 16px 36px -28px #404c3c66;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);transition:transform .3s,box-shadow .3s}.situations article:hover{transform:translateY(-5px);box-shadow:inset 0 1px 0 #fff,0 24px 40px -28px #404c3c80}.situations article h3,.situations article:first-child h3{color:var(--ink);font-size:clamp(1.7rem,2.3vw,2.6rem);line-height:1.13;margin-bottom:24px}.situations article p{font-size:16px;line-height:1.65;max-width:none;margin-bottom:28px}.situations article a,.situations article:first-child a{margin-top:auto;padding:15px 0 0;border-top:1px solid var(--line);color:var(--ink);font-size:15px;text-decoration:none}.situations article a:hover{color:#935246}
.offers{background:var(--vanilla);padding-top:90px;padding-bottom:90px}.offers>h2{font-size:clamp(4rem,6.6vw,7rem);max-width:1000px;line-height:.98;margin-bottom:65px}.offers>h2 br:nth-of-type(2){display:none}.offers>h2 em{display:inline;color:#935246}.offer{position:relative;grid-template-columns:44% minmax(0,1fr);gap:30px;padding:28px;margin:0 0 32px;border:0;border-radius:30px;background:var(--matcha);align-items:stretch;box-shadow:0 24px 60px -45px #404c3c80;scroll-margin-top:105px;isolation:isolate}.offer:nth-of-type(2){background:var(--argile)}.offer:nth-of-type(3){background:var(--matcha)}.offer-visual{position:relative;min-height:440px;border-radius:20px;overflow:hidden;display:flex;align-items:flex-end;padding:24px;max-width:none!important}.offer-visual>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.2,.7,.2,1)}.offer:hover .offer-visual>img{transform:scale(1.035)}.offer .offer-visual h3{position:relative;width:100%;z-index:1;font-size:clamp(2.6rem,4.4vw,4.9rem);line-height:1.02;margin:0;padding:24px 20px;background:#f6f1e8d9;color:var(--ink);border:1px solid #ffffffe0;border-radius:16px;box-shadow:0 10px 35px #404c3c17;backdrop-filter:blur(20px) saturate(115%);-webkit-backdrop-filter:blur(20px) saturate(115%)}.offer-copy{max-width:none!important;display:flex;flex-direction:column;padding:30px 28px;background:#f6f1e8ed;border:1px solid #ffffffb3;border-radius:20px;box-shadow:inset 0 1px 0 #fff9}.offer-copy h4{font-size:clamp(2.2rem,3vw,3.15rem);color:var(--ink);line-height:1.09;margin-bottom:26px}.offer-copy>p{font-size:17px;line-height:1.6;margin-bottom:16px}.offer-copy details{margin-top:auto;padding-top:24px;border-top:0}.offer-copy summary{display:flex;align-items:center;gap:20px;min-height:55px;padding:14px 18px;border:1px solid #7a846a99;border-radius:999px;background:var(--matcha);color:#151d11;font-size:15px;font-weight:500;transition:box-shadow .25s,transform .25s}.offer:nth-of-type(2) .offer-copy summary{background:var(--argile);border-color:var(--argile);color:#251d18}.offer-copy summary:hover{box-shadow:0 8px 18px #404c3c1c;transform:translateY(-2px)}.offer-copy details[open] summary{background:var(--vanilla);color:var(--ink)}.offer-details{border-left:0;padding:10px 3px 0;margin-top:18px}.offer-details p{font-size:16px}.offer-note{border-top:0;padding-top:8px;max-width:760px;font-size:17px}
.human{isolation:isolate;position:relative}.human>img{border-radius:26px;width:94%;height:480px;box-shadow:0 20px 45px -32px #404c3c66}.human-copy{position:relative;z-index:1;max-width:650px;width:65%;margin:-88px 0 50px auto;padding:38px 42px;border:1px solid #ffffffe6;border-radius:28px;background:linear-gradient(130deg,#fffefbec,#f6f1e8cc);box-shadow:inset 0 1px 0 #fff,0 24px 65px -28px #404c3c59;backdrop-filter:blur(26px) saturate(120%);-webkit-backdrop-filter:blur(26px) saturate(120%)}.human-copy p{position:relative;font-size:17px;line-height:1.7}.human-copy p:last-child{font-weight:500}.human .closing{border-bottom:0;padding-top:8px}.founder-belief{border:1px solid #ffffffd9;border-radius:22px;background:linear-gradient(135deg,#ffffff91,#7a846a0f);box-shadow:inset 0 1px 0 #fff,0 15px 35px -28px #404c3c4d}.solution{border-left:0;border-radius:14px;background:linear-gradient(130deg,#ffffffa6,#7a846a21);border:1px solid #ffffffbd;box-shadow:inset 0 1px 0 #fff8}.case-2 .solution,.case-4 .solution{border-color:#ffffffbd;background:linear-gradient(130deg,#ffffffa6,#bd716421)}
@media(min-width:761px) and (max-width:1100px){.situations{gap:16px}.situations article,.situations article:first-child,.situations article:nth-child(2),.situations article:nth-child(3){padding:26px 20px}.situations article h3,.situations article:first-child h3{font-size:1.8rem}.offer{gap:20px;padding:22px;grid-template-columns:42% minmax(0,1fr)}.offer-copy{padding:26px 22px}.offer-visual{padding:16px}.offer .offer-visual h3{font-size:3rem;padding:20px 16px}.hero-art img{margin-left:-20px;width:100%;height:390px}.human-copy{width:78%}}
@media(max-width:760px){.hero{margin-bottom:40px}.hero-art{display:grid;grid-template-columns:36% minmax(0,1fr);padding:24px 22px 0 6%;border-radius:0;min-height:260px}.hero-note{padding:0 12px 20px 0;font-size:1.85rem}.hero-art img{height:250px;width:100%;margin-left:0;margin-bottom:-24px;border-radius:16px;transform:rotate(-2deg);box-shadow:0 20px 36px -18px #404c3c80}.hero-art img:hover{transform:rotate(-2deg)}.useful{padding-top:55px}.situations{grid-template-columns:1fr;gap:18px;margin-top:30px}.situations article,.situations article:first-child,.situations article:nth-child(2),.situations article:nth-child(3){padding:28px 25px;margin:0;border-radius:22px;border:1px solid #fff9}.situations article h3,.situations article:first-child h3{font-size:2.1rem;line-height:1.12}.situations article p{margin-bottom:24px}.situations article:hover{transform:none}.offers{padding-top:60px;padding-bottom:60px}.offers>h2{font-size:3.75rem;margin-bottom:36px}.offer{display:grid;grid-template-columns:1fr;gap:16px;padding:16px;margin:0 0 24px;border-radius:26px}.offer-visual{min-height:285px;padding:18px;border-radius:16px}.offer .offer-visual h3{font-size:2.75rem;padding:18px;border-radius:12px}.offer-copy{padding:26px 22px;border-radius:16px}.offer-copy h4{font-size:2.3rem;line-height:1.12}.offer-copy>p{font-size:16px}.offer-copy details{margin-top:8px}.offer-copy summary{padding:14px 16px;gap:12px;font-size:14px}.offer-note{font-size:16px;padding-top:8px}.human>img{width:100%;height:280px;border-radius:20px}.human-copy{width:94%;max-width:none;margin:-35px 0 34px auto;padding:28px 25px;border-radius:22px;background:linear-gradient(130deg,#fffefbf2,#f6f1e8e8)}.human-copy p{font-size:16px}.human .closing{font-size:2.5rem}}
@supports not (backdrop-filter:blur(1px)){.human-copy,.offer .offer-visual h3,.situations article{background:#f6f1e8}}
/* V4 — precise crops, quieter type and clear footer */
.hero-art{padding-right:30px}.hero-photo{position:relative;width:calc(100% + 20px);margin:0 0 -40px -38px;height:410px;border-radius:22px;overflow:hidden;box-shadow:0 28px 55px -20px #404c3c69,0 3px 12px #404c3c12}.hero-art .hero-photo img,.hero-art .hero-photo img:hover{display:block;width:100%;max-width:100%;height:100%;min-height:0;margin:0;border-radius:0;box-shadow:none;object-fit:cover;object-position:35% center;transform:scale(1.075);transition:transform 1.2s cubic-bezier(.2,.65,.25,1)}.hero-art .hero-photo:hover img{transform:scale(1)}.hero-note{margin:0;padding:35px 26px 45px 42px;max-width:540px;font-size:clamp(2.3rem,3.5vw,4rem);line-height:1.17;letter-spacing:-.02em}.hero-note em{display:inline;background:linear-gradient(transparent 71%,#f6f1e875 71%,#f6f1e875 91%,transparent 91%)}.key-phrase{color:#935246;background:linear-gradient(transparent 76%,#bd716426 76%,#bd716426 96%,transparent 96%);box-decoration-break:clone;-webkit-box-decoration-break:clone}.key-benefit{font-weight:500;background:#7a846a24;padding:1px 3px;box-decoration-break:clone;-webkit-box-decoration-break:clone}.situations article h3{font-size:clamp(1.75rem,2.15vw,2.4rem)}.offer .offer-visual h3{font-size:clamp(2.2rem,3vw,3.5rem);line-height:1.06;overflow-wrap:normal;word-break:normal;hyphens:none;padding:22px 16px}.offer .offer-visual{container-type:inline-size}.offer .offer-visual h3{font-size:clamp(1.75rem,9cqw,3.5rem)}.offer-copy h4{font-size:clamp(2rem,2.65vw,2.85rem);overflow-wrap:normal;word-break:normal;hyphens:none}.offer-visual>img.offer-portrait-image{width:112%;height:112%;max-width:none;inset:-6%;object-fit:cover;object-position:center 35%}.founder-portrait{padding:0 24px 0 0}.founder-portrait:before{display:none}.portrait-frame{position:relative;width:100%;isolation:isolate}.portrait-frame:before{content:'';position:absolute;inset:24px -20px -20px 24px;border-radius:22px;background:var(--argile);z-index:-1}.portrait-crop{position:relative;aspect-ratio:2/3;overflow:hidden;border-radius:20px;background:var(--vanilla);box-shadow:0 20px 42px -28px #404c3c59}.founder-portrait .portrait-crop img{position:absolute;inset:-6%;width:112%;height:112%;max-width:none;max-height:none;object-fit:cover;object-position:center;margin:0;border-radius:0}.founder-portrait figcaption{margin:38px 0 0;padding:0;max-width:100%;font-size:14px;line-height:1.6;color:var(--ink);background:none}.founder-belief blockquote.lead{margin:0 0 20px;font-size:2.1rem;line-height:1.17}.human blockquote.closing{display:block;max-width:750px;margin:15px auto 0;padding:28px 25px;line-height:1.19;font-size:clamp(2.3rem,3.5vw,3.7rem);font-style:italic;text-wrap:balance;border:0;background:radial-gradient(ellipse at center,#bd716412,transparent 72%)}
.contact{padding-bottom:90px}.contact form{border:1px solid #ffffff91;border-radius:24px;background:#f6f1e830;box-shadow:inset 0 1px 0 #ffffff80,0 24px 50px -35px #6b4e3d55}.contact .booking-link{background:var(--vanilla);border-radius:999px;color:#251d18;padding:15px 23px}.site-footer{display:grid;grid-template-columns:1.05fr 1fr 1.25fr;gap:50px;background:var(--vanilla);color:var(--ink);padding:66px max(6%,calc((100vw - 1320px)/2)) 26px;border-top:0;font-size:15px}.footer-identity .footer-brand{display:block;width:160px;margin-bottom:18px}.footer-identity>p{font-size:14px}.footer-links{display:flex;flex-direction:column;align-items:flex-start;gap:10px}.footer-heading{font-size:13px;font-family:var(--sans);font-weight:500;letter-spacing:.11em;text-transform:uppercase;margin-bottom:10px;color:#935246}.footer-links a{text-decoration:none}.footer-links a:hover{text-decoration:underline}.footer-bottom{grid-column:1/-1;border-top:1px solid var(--line);padding-top:23px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:22px;align-items:start}.footer-bottom details{padding:0;border:0;max-width:780px}.footer-bottom summary{display:inline-flex;justify-content:flex-start;align-items:center;gap:18px;font-size:14px}.footer-bottom>a{font-size:14px}.footer-bottom .credits{grid-column:1/-1;margin:0;color:var(--ink);font-size:12px}.legal-content{padding:20px 0 8px;max-width:740px}.legal-content p{font-size:14px;line-height:1.65;margin-bottom:17px;padding:0}
@media(min-width:761px) and (max-width:1100px){.hero-photo{width:100%;margin-left:-20px;height:390px}.site-footer{gap:30px;grid-template-columns:1fr 1fr}.footer-identity{grid-column:1/-1}.offer .offer-visual h3{padding:18px 12px}.founder-portrait{padding-right:20px}}
@media(max-width:760px){.hero-art{padding-right:22px}.hero-photo{height:250px;width:100%;margin:0 0 -24px 0;border-radius:16px;box-shadow:0 20px 36px -18px #404c3c80}.hero-note{margin:0;padding:0 12px 20px 0;font-size:1.85rem}.hero-art .hero-photo img{transform:scale(1.03)}.hero-art .hero-photo:hover img{transform:scale(1)}.situations article h3,.situations article:first-child h3{font-size:2.1rem}.offer .offer-visual h3{font-size:clamp(1.7rem,9cqw,2.7rem);line-height:1.08;padding:18px 14px}.offer-copy h4{font-size:2.1rem}.founder-portrait{padding:0 20px 0 0}.portrait-frame:before{inset:18px -16px -16px 18px;border-radius:18px}.portrait-crop{border-radius:16px}.founder-portrait figcaption{margin-top:31px;font-size:13px}.human blockquote.closing{font-size:2.45rem;padding:18px 0;line-height:1.2}.contact{padding-bottom:58px}.site-footer{grid-template-columns:1fr;gap:30px;padding:45px 6% 25px;font-size:15px}.footer-identity{grid-column:auto}.footer-identity .footer-brand{width:145px}.footer-identity>p{margin-bottom:0}.footer-bottom{grid-template-columns:minmax(0,1fr);gap:20px}.footer-bottom .credits{grid-column:auto}.footer-links a{overflow-wrap:anywhere}.footer-bottom>a{justify-self:start}.contact form{border-radius:20px}}@media(prefers-reduced-motion:reduce){.hero-art .hero-photo img,.hero-art .hero-photo img:hover{transform:none;transition:none}}
/* Photographic selection — each image has a distinct role. */
.case-photo-frame img{object-position:50% 55%}
#integration .offer-visual>img{object-position:66% 45%}
#communication .offer-visual>img{object-position:62% 46%}
#aparte .offer-visual>img{object-position:57% 44%}
@media(max-width:760px){#integration .offer-visual>img{object-position:64% 40%}#communication .offer-visual>img{object-position:58% 35%}#aparte .offer-visual>img{object-position:55% 33%}.case-photo-frame img{object-position:53% 50%}}
/* V6 — full composition and final editorial adjustments */
.hero-photo{height:auto;aspect-ratio:3/2;align-self:flex-end;transition:transform 1.1s cubic-bezier(.2,.65,.25,1),box-shadow 1.1s;transform-origin:center center}.hero-art .hero-photo img,.hero-art .hero-photo img:hover,.hero-art .hero-photo:hover img{width:100%;height:100%;object-fit:contain;object-position:center;transform:none;transition:none}.hero-photo:hover{transform:scale(.975);box-shadow:0 20px 42px -20px #404c3c59}.hero-title-break{display:block}.useful-emphasis{color:#935246;background:linear-gradient(transparent 76%,#bd71642b 76%,#bd71642b 95%,transparent 95%)}.founder-belief{margin:30px 0 24px;padding:10px 0 0;border:0;border-radius:0;background:none;box-shadow:none}.founder-belief blockquote.lead{margin:0 0 26px;color:#935246;font-size:clamp(1.9rem,2.45vw,2.65rem);line-height:1.18;text-wrap:pretty}.quote-second-line{display:inline}.founder-belief p{padding:0;max-width:590px}.contact-studio{margin:35px 0 0;max-width:520px}.studio-image{position:relative;border-radius:20px;overflow:hidden;box-shadow:0 18px 35px -23px #6b4e3d66}.studio-image>img:first-child{width:100%;height:auto;aspect-ratio:3/2;object-fit:contain}.studio-image .studio-shell{position:absolute;right:20px;bottom:16px;width:90px;height:auto;opacity:.9;filter:drop-shadow(0 1px 4px #404c3c66);pointer-events:none}.contact-studio figcaption{font-size:12px;line-height:1.5;margin-top:12px;letter-spacing:.03em}.contact-copy{min-width:0}
@media(min-width:761px) and (max-width:1100px){.hero-photo{height:auto}.founder-belief blockquote.lead{font-size:2rem}}
@media(max-width:760px){.hero-art{display:flex;flex-direction:column;gap:22px;padding:26px 6% 0;min-height:0;align-items:stretch}.hero-note{align-self:flex-start;padding:0;font-size:2.1rem}.hero-photo{width:100%;height:auto;aspect-ratio:3/2;margin:0 0 -24px;align-self:stretch}.hero-art .hero-photo img{height:100%;transform:none}.founder-belief{padding:0;margin:0}.founder-belief blockquote.lead{font-size:2rem;line-height:1.2}.contact-studio{margin-top:28px;max-width:none}.studio-image{border-radius:16px}.studio-image .studio-shell{width:72px;right:14px;bottom:14px}.contact-studio figcaption{font-size:12px}}@media(prefers-reduced-motion:reduce){.hero-photo,.hero-photo:hover{transform:none;transition:none}}

/* Contact: photo and invitation share one compact horizontal composition. */
.contact{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:38px;padding-top:54px;padding-bottom:54px;align-items:start}
.contact-copy{position:relative;isolation:isolate;padding:28px 0 28px 20%;align-self:center}
.contact-copy .contact-studio{position:absolute;inset:0 22% 0 0;margin:0;max-width:none;z-index:-1;overflow:hidden;border-radius:24px}
.contact-studio .studio-image{height:100%}
.contact-studio .studio-image>img{width:100%;height:100%;object-fit:cover;object-position:38% center;border-radius:0}
.contact-studio figcaption{position:absolute;left:14px;bottom:12px;margin:0;max-width:78px;font-size:11px;color:var(--vanilla);text-shadow:0 1px 5px #251d18}
.contact-text{padding:30px;background:rgba(246,241,232,.94);border:1px solid #ffffffb0;border-radius:22px;backdrop-filter:blur(14px);box-shadow:0 20px 45px -30px #251d1850}
.contact .contact-text h2{font-size:clamp(2.7rem,3.35vw,3.65rem);margin-bottom:25px;line-height:1.03}
.contact-text>p{font-size:16px;margin-bottom:18px;max-width:none}
.contact-text .eyebrow{font-size:12px;margin-bottom:20px}
.contact-text .booking-note{font-size:12px;margin-bottom:15px}
.contact .contact-text .booking-link{background:var(--argile);margin-top:3px}
.contact-text .direct-email{font-size:14px;overflow-wrap:anywhere}
.contact form{align-self:start;padding:25px}
.contact form h3{margin-bottom:23px}
.contact form input,.contact form select,.contact form textarea{margin-bottom:16px;padding:10px 12px;min-height:45px}
.contact form label{margin-bottom:7px;font-size:14px}
@media(max-width:1050px){.contact{gap:25px}.contact-copy{padding-left:8%}.contact-text{padding:24px}.contact-text>p{font-size:15px}}
@media(max-width:780px){.contact{grid-template-columns:1fr;padding-top:40px;padding-bottom:40px;gap:28px}.contact-copy{padding:25px 0 25px 12%;width:100%}.contact .contact-text h2{font-size:clamp(2.6rem,7vw,3.6rem)}.contact form{margin:0}.contact-studio figcaption{display:none}}
@media(max-width:420px){.contact-copy{padding-left:7%}.contact-text{padding:21px}.contact form{padding:22px 18px}.contact-text .direct-email{font-size:13px}}

/* The office is the main visual; a narrower invitation overlaps its edge. */
.contact{grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);gap:30px}
.contact-copy{padding:30px 0 30px 55%}
.contact-copy .contact-studio{inset:0 28% 0 0}
.contact-studio .studio-image>img{object-position:48% center}
.contact-text{padding:24px;background:rgba(246,241,232,.88);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.contact .contact-text h2{font-size:clamp(2.2rem,2.5vw,2.8rem)}
.contact-text>p{font-size:15px;line-height:1.55}
.contact-studio figcaption{max-width:180px;padding:6px 8px;left:12px;bottom:12px;background:#404c3c99;border-radius:5px;font-size:11px;text-shadow:none}
@media(min-width:781px) and (max-width:1150px){.contact{grid-template-columns:1fr;gap:30px}.contact-copy{padding-left:55%}.contact-copy .contact-studio{right:28%}.contact .contact-text h2{font-size:2.8rem}}
@media(max-width:780px){.contact{grid-template-columns:1fr}.contact-copy{padding:255px 0 0 8%}.contact-copy .contact-studio{inset:0 4% auto 0;height:335px}.contact-studio .studio-image>img{object-position:50% 54%}.contact-text{padding:25px;position:relative}.contact .contact-text h2{font-size:2.6rem}.contact-studio figcaption{display:none}}
@supports not (backdrop-filter:blur(1px)){.offer .offer-visual h3{background:rgba(246,241,232,.9)}}

/* Offers: fine outlines, open copy and restrained color accents. */
.offer#integration{--offer-ink:#526047;--offer-line:#7a846a55}
.offer#communication{--offer-ink:#935246;--offer-line:#bd716455}
.offer#aparte{--offer-ink:#805822;--offer-line:#db9a4a66}
.offers .offer{background:transparent;border:1px solid var(--offer-line);border-radius:22px;box-shadow:none;padding:22px;gap:32px}
.offers .offer .offer-copy{background:transparent;border:0;border-radius:0;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;padding:24px 16px}
.offers .offer .offer-visual h3{color:var(--offer-ink);background:rgba(246,241,232,.84);border:1px solid #ffffff99;border-radius:12px;box-shadow:none;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.offers .offer .offer-copy summary,.offers .offer .offer-copy details[open] summary{background:transparent;color:var(--offer-ink);border:0;border-bottom:1px solid var(--offer-line);border-radius:0;padding:14px 0;box-shadow:none;transform:none;font-weight:500;transition:border-color .2s}
.offers .offer .offer-copy summary:hover{background:transparent;border-bottom-color:var(--offer-ink);text-decoration:underline;text-underline-offset:5px;box-shadow:none;transform:none}
@media(max-width:760px){.offers .offer{padding:14px;gap:8px;border-radius:18px}.offers .offer .offer-copy{padding:20px 8px 12px}.offers .offer .offer-visual h3{border-radius:10px}}
@supports not (backdrop-filter:blur(1px)){.offers .offer .offer-visual h3{background:rgba(246,241,232,.96)}}

/* Airy contact layout: narrow edge overlap and a separate questionnaire. */
.contact{padding-left:4%;padding-right:4%;grid-template-columns:minmax(0,1.85fr) minmax(330px,1fr);column-gap:clamp(48px,5vw,100px);padding-top:64px;padding-bottom:64px}
.contact-copy{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(275px,1fr);align-items:center;padding:0;isolation:auto}
.contact-copy .contact-studio{position:relative;inset:auto;z-index:auto;width:100%;height:auto;align-self:center;margin:0;overflow:hidden;border-radius:24px}
.contact-copy .contact-studio .studio-image{height:auto;aspect-ratio:4/5;box-shadow:none}
.contact-copy .contact-studio .studio-image>img{height:100%;width:100%;object-fit:cover;object-position:52% center}
.contact-copy .contact-text{position:relative;z-index:1;margin-left:-22px;padding:26px;background:rgba(246,241,232,.9);box-shadow:0 16px 35px -28px #251d1840}
.contact .contact-text h2{font-size:clamp(2.15rem,2.4vw,2.7rem)}
.contact form{min-width:0;margin:0;align-self:center}
@media(max-width:1200px){.contact{grid-template-columns:1fr;row-gap:48px;padding-left:6%;padding-right:6%}.contact-copy{grid-template-columns:minmax(0,1.3fr) minmax(300px,1fr)}.contact-copy .contact-studio .studio-image{aspect-ratio:1/1}.contact form{width:min(100%,620px);justify-self:end}}
@media(max-width:650px){.contact{padding-top:40px;padding-bottom:40px;row-gap:32px}.contact-copy{display:block}.contact-copy .contact-studio{width:100%;height:auto;inset:auto}.contact-copy .contact-studio .studio-image{aspect-ratio:3/2}.contact-copy .contact-text{margin:-20px 0 0 5%;padding:25px}.contact .contact-text h2{font-size:2.6rem}.contact form{width:100%;justify-self:stretch}}

/* Final proportions: lower landscape hero, balanced contact, centered footer signature. */
.hero-art .hero-photo{aspect-ratio:16/9;height:auto}
.hero-art .hero-photo img,.hero-art .hero-photo img:hover,.hero-art .hero-photo:hover img{object-fit:cover;object-position:50% 100%;height:100%;width:100%}
.contact-copy .contact-studio .studio-image{aspect-ratio:5/4;max-height:460px}
.contact-copy .contact-studio .studio-image>img{object-position:50% 85%}
.site-footer>.footer-identity{align-self:center}
.footer-identity>p{margin-bottom:0}
@media(max-width:1200px){.contact-copy .contact-studio .studio-image{aspect-ratio:5/4;max-height:430px}}
@media(max-width:650px){.contact-copy .contact-studio .studio-image{aspect-ratio:3/2;max-height:none}.hero-art .hero-photo{aspect-ratio:16/9}}

/* HaïLO emphasis: italic lettering and crisp brand-color underlines. */
.highlight,.useful-emphasis,.key-phrase,.concrete h2 em{color:var(--argile);font-style:italic;font-weight:300;background:linear-gradient(transparent 82%,var(--ochre) 82%,var(--ochre) 94%,transparent 94%);box-decoration-break:clone;-webkit-box-decoration-break:clone}
.key-benefit{color:var(--ink);font-style:italic;font-weight:500;padding:0 2px;background:linear-gradient(transparent 85%,var(--matcha) 85%,var(--matcha) 97%,transparent 97%);box-decoration-break:clone;-webkit-box-decoration-break:clone}
.hero-note em{font-style:italic;background:linear-gradient(transparent 82%,var(--vanilla) 82%,var(--vanilla) 94%,transparent 94%);box-decoration-break:clone;-webkit-box-decoration-break:clone}

/* Brand marker: a visible band behind italic words, not a thin underline. */
.highlight,.useful-emphasis,.key-phrase,.concrete h2 em,.brand-highlight{color:var(--argile);font-style:italic;font-weight:300;background:linear-gradient(transparent 62%,var(--ochre) 62%,var(--ochre) 95%,transparent 95%);box-decoration-break:clone;-webkit-box-decoration-break:clone;padding:0 .035em}
.key-benefit{color:var(--ink);font-style:italic;background:linear-gradient(transparent 42%,#db9a4aa6 42%,#db9a4aa6 95%,transparent 95%);padding:0 .1em;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.hero-note em{background:linear-gradient(transparent 60%,var(--vanilla) 60%,var(--vanilla) 95%,transparent 95%)}
.brand-highlight.highlight-on-color{color:var(--vanilla);background:linear-gradient(transparent 62%,var(--argile) 62%,var(--argile) 95%,transparent 95%)}
/* Contact: moderate landscape office, lower-right invitation, contrasting form. */
.contact{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:clamp(36px,5vw,80px);padding:60px max(6%,calc((100vw - 1400px)/2));align-items:center}
.contact-copy{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:auto;width:100%;padding:0;align-self:center;align-items:start;isolation:isolate}
.contact-copy .contact-studio{grid-column:1/12;grid-row:1;position:relative;inset:auto;width:100%;height:auto;align-self:start;margin:0;z-index:0;border-radius:22px}
.contact-copy .contact-studio .studio-image{width:100%;height:auto;aspect-ratio:3/2;max-height:350px;border-radius:22px}
.contact-copy .contact-studio .studio-image>img{width:100%;height:100%;object-fit:cover;object-position:50% 85%}
.contact-copy .contact-text{grid-column:4/-1;grid-row:1;position:relative;align-self:start;z-index:1;margin:225px 0 0;padding:27px;background:rgba(246,241,232,.93);border:1px solid #ffffffb3;box-shadow:0 18px 38px -28px #251d1860}
.contact .contact-text h2{font-size:clamp(2.25rem,2.8vw,2.8rem);margin-bottom:22px}
.contact-text>p{font-size:16px;line-height:1.55;margin-bottom:17px}
.contact-studio figcaption{display:none}
.contact form{width:100%;max-width:510px;justify-self:end;align-self:center;margin:0;padding:26px;background:var(--vanilla);color:var(--ink);border:1px solid #ffffffb3;box-shadow:0 20px 45px -30px #251d1866;border-radius:22px}
.contact form h3{color:var(--ink);font-size:1.9rem;margin-bottom:22px}
.contact form input,.contact form select,.contact form textarea{background:#ffffff80;color:var(--ink);border:1px solid #7a846a80;margin-bottom:14px;padding:10px 12px;min-height:44px}
.contact form label{font-size:14px;margin-bottom:6px}
.contact form textarea#need{min-height:84px}
.contact form button[type=submit]{background:var(--argile);color:#251d18}
@media(min-width:781px) and (max-width:1100px){.contact{grid-template-columns:1fr;gap:36px}.contact-copy{max-width:740px;justify-self:start}.contact-copy .contact-text{margin-top:240px;grid-column:5/-1}.contact form{max-width:600px;justify-self:end}}
@media(max-width:780px){.contact{grid-template-columns:1fr;gap:30px;padding:40px 6%}.contact-copy{display:grid;grid-template-columns:repeat(12,minmax(0,1fr))}.contact-copy .contact-studio{grid-column:1/12;grid-row:1}.contact-copy .contact-studio .studio-image{aspect-ratio:3/2;max-height:none}.contact-copy .contact-text{grid-column:2/-1;grid-row:2;margin:-26px 0 0;padding:24px}.contact .contact-text h2{font-size:2.5rem}.contact form{max-width:none;justify-self:stretch;padding:24px}}

/* Final restraint: retain italic color accents without marker bands in these blocks. */
.situations .key-phrase,.situations .key-benefit,.offers .brand-highlight,#commencer .brand-highlight{background:none;padding:0}

/* Final signature and contact emphasis approved for handoff. */
.contact-text .brand-highlight{background:none;padding:0}
.footer-identity .footer-brand{width:260px;max-width:100%;margin-bottom:14px}
.footer-identity .footer-brand img{width:100%;height:auto}
@media(max-width:760px){.footer-identity .footer-brand{width:230px}}

/* Regle generale du 2026-09-10 : aucun mot n'est jamais coupe dans les titres. */
h1,h2,h3,h4{overflow-wrap:normal;word-break:normal;hyphens:none}

/* SVG inline arrows — consistent rendering */
.arrow-icon, .arrow-icon-up {
  display: inline;
  width: 0.85em;
  height: 0.85em;
  vertical-align: -0.125em;
  margin-left: 3px;
  stroke: currentColor;
  color: inherit;
}
.arrow-icon line, .arrow-icon polyline,
.arrow-icon-up line, .arrow-icon-up polyline {
  stroke: currentColor;
}
/* Footer : deux depliables legaux cote a cote + bouton inactif sans JS */
.footer-legal{display:flex;flex-direction:column;gap:12px;max-width:820px}
.footer-legal details{padding:0;border:0;max-width:100%}
.footer-legal summary{font-weight:500}
.button[disabled]{opacity:.5;cursor:not-allowed}
.button[disabled]:hover{transform:none;box-shadow:none}
form .light[disabled]:hover{background:var(--vanilla)}
/* Logo : fichier officiel complet, claim compris (assets/logo-officiel.svg).
   Le claim y est converti en traces vectoriels : il ne depend plus d'une police
   que le SVG, charge via <img>, ne peut pas atteindre. Proportions, couleur
   (#7A846A) et espacement sont ceux du fichier de marque, inchanges.
   Largeurs choisies pour que le claim reste lisible sous le monogramme. */
.brand{width:230px}
.brand img{width:100%;height:auto;display:block}
.site-header{min-height:106px}
.footer-identity .footer-brand{width:250px;margin-bottom:14px}
.footer-identity .footer-brand img{width:100%;height:auto;display:block}
@media(max-width:760px){
  .brand{width:190px}
  .site-header{min-height:94px}
  .footer-identity .footer-brand{width:225px}
}
/* Mention commune des exemples : lisible sans dominer les cartes. */
.cases-note{grid-column:1/-1;margin:14px 0 0;padding-top:16px;border-top:1px solid var(--line);font-size:13px;line-height:1.6;color:var(--ink);max-width:720px}
@media(max-width:760px){.cases-note{margin-top:4px}}

/* Titres — regle generale (17/09, apres retour de Laurine) :
   aucun titre ne deborde de la colonne que la mise en page lui reserve,
   a toutes les tailles, y compris au zoom navigateur et au grossissement
   du texte seul. Plus aucun groupe en white-space:nowrap : un groupe
   insecable ne peut pas revenir a la ligne et finit par chevaucher la
   colonne voisine des que le texte grandit. Les coupures sont donc
   naturelles ; seul le Hero garde un retour force sur grand ecran —
   un <br> ne provoque jamais de debordement, chaque ligne continuant
   a se replier d'elle-meme si elle ne tient pas. */

/* Hero : deux lignes sur grand ecran quand la place le permet.
   Le titre reste dans sa colonne : aucune marge negative, aucun
   depassement dans la gouttiere. Taille calee pour que
   « L'IA doit vous faire gagner » tienne sur une ligne des 1100 px. */
.hero-copy h1{font-size:clamp(3.3rem,4.7vw,5.5rem)}

/* Titres : dernier recours contre le debordement.
   La regle du 2026-09-10 interdit de couper les mots dans les titres, et elle
   reste vraie a toutes les tailles normales : `overflow-wrap:break-word` ne
   coupe un mot que lorsqu'il ne tient pas, a lui seul, sur une ligne entiere.
   Ce cas n'arrive qu'a l'extreme — texte seul grossi a 200 % sur un telephone —
   ou l'alternative serait de pousser la page hors de l'ecran. Aucun trait
   d'union n'est ajoute (`hyphens:none` conserve). */
h1,h2,h3,h4,.offer-copy h4,.offer .offer-visual h3,.hero-note{overflow-wrap:break-word}

/* Blocs en grille et en flex : autoriser le retrecissement.
   Par defaut, un element de grille ou de flex refuse de descendre sous la
   largeur minimale de son contenu (`min-width:auto`). La piste qui le contient
   grandit alors avec lui et pousse la page au-dela de l'ecran des que le texte
   grandit — visible au grossissement du texte seul a 200 % sur telephone.
   `min-width:0` laisse le bloc retrecir, et le texte passe simplement a la ligne. */
.situations>article,.offer>*,.cases>*,.method ol>li,.contact-copy>*,.founder>*{min-width:0}

/* Les cinq etapes de la Methode : la grille figee a cinq colonnes
   (repeat(5, minmax(min-content,1fr))) ne pouvait pas se replier ; des que le
   texte grandissait — grossissement du texte seul à 200 %, par exemple — la
   cinquieme colonne sortait de la page. En flex avec retour a la ligne, les
   etapes restent sur une seule rangee tant que la place le permet, puis
   passent l'une sous l'autre au lieu de deborder. */
.method ol{display:flex;flex-wrap:wrap;align-items:flex-start}
.method ol>li{flex:1 1 168px}
@media(max-width:760px){.method ol{flex-direction:column;flex-wrap:nowrap}}

/* Section Methode : `.method p{margin-bottom:0}` s'appliquait aussi au
   sur-titre, qui perdait les 22 px que toutes les autres sections lui donnent.
   Son texte touchait alors celui du titre. Retabli a l'identique des autres. */
.method p.eyebrow{margin-bottom:22px}

/* Concretement : la colonne de titre etait trop etroite (30 %), le titre
   debordait volontairement dans la gouttiere et chevauchait les cas des que
   l'affichage grandissait. Colonne elargie, gouttiere reduite, et passage
   en une seule colonne des 1199 px au lieu de 1100 px. */
.concrete{grid-template-columns:40% minmax(0,1fr);gap:3%}
/* Aux tres grandes largeurs, la marge de la section grandit plus vite que
   la colonne de titre tandis que la taille du titre atteint son plafond :
   plafond abaisse pour que chaque ligne forcee tienne dans sa colonne. */
.concrete h2{font-size:clamp(3rem,4.7vw,4.7rem)}
/* Entre 1101 et 1199 px : la composition laterale est conservee — titre a
   gauche, exemples a droite — mais les retours forces du titre sont retires,
   la colonne ne pouvant plus les contenir. Le titre se replie alors tout seul
   dans sa colonne, sans jamais en sortir. */
@media(max-width:1199px){.concrete h2 br{display:none}}
/* En dessous de 1101 px seulement, les deux colonnes deviennent trop etroites :
   le titre passe au-dessus des exemples. Seuil d'origine du design. */
@media(max-width:1100px){
  .concrete{grid-template-columns:1fr;gap:0}
  .concrete .section-heading{position:static}
  .cases{padding-top:10px}
}

/* Questionnaire : une seule page de questions, puis le bouton vers la messagerie. */
.field-help{font-size:13px;line-height:1.55;margin:-4px 0 9px;opacity:.78;max-width:56ch}
#contact-form textarea{resize:vertical;min-height:88px}
.send-explain{margin-top:14px}
.mail-help{margin:6px 0 18px;padding:0;border:0}
.mail-help>summary{display:inline-flex;justify-content:flex-start;align-items:center;gap:0;
  min-height:40px;padding:0;border:0;border-radius:0;background:transparent;color:inherit;
  font-family:var(--sans);font-size:13px;font-weight:400;text-decoration:underline;
  text-underline-offset:4px;box-shadow:none;transform:none}
.mail-help>summary:hover{background:transparent;text-decoration-thickness:2px}
.mail-help>summary::after{content:none}
.mail-help[open]>summary::after{content:none}
.mail-help-content{padding:2px 0 6px;max-width:58ch}
.mail-help-content p{font-size:13px;line-height:1.6;margin-bottom:12px}
.mail-help-rappel{margin:0 0 14px;font-size:13px}
.mail-help-rappel dt{font-size:11px;letter-spacing:.08em;text-transform:uppercase;opacity:.7;margin-top:10px}
.mail-help-rappel dd{margin:2px 0 0;word-break:break-word}
.mail-help-actions{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:4px}
.status-line{font-size:13px;line-height:1.5;margin:10px 0 0}
.status-line:empty{margin:0}
#contact-form button[type=button]{background:transparent;border:1px solid #251d1859;border-radius:999px;padding:11px 16px;font-size:13px;color:inherit;min-height:42px;transition:background .2s,border-color .2s}
#contact-form button[type=button]:hover{background:#f6f1e859;border-color:#251d18a6}
/* Acces juridiques : les deux sur une meme ligne, petits et sans gras.
   Zone d'activation et contraste preserves ; a l'ouverture, le depliable
   prend toute la largeur et son contenu reste lisible. */
.footer-legal summary,.footer-bottom summary{font-family:var(--sans);font-size:13px;font-weight:400;min-height:36px;align-items:center}
.footer-bottom details[open] summary{font-weight:400}
.footer-legal{flex-direction:row;flex-wrap:wrap;align-items:baseline;column-gap:8px;row-gap:0}
.footer-legal>details{flex:0 0 auto;min-width:0}
.footer-legal>details[open]{flex:1 0 100%}
.footer-legal summary::after,.footer-legal details[open] summary::after{content:none}
.footer-legal summary{gap:0}
.footer-legal>details+details>summary::before{content:"·";margin-right:8px;opacity:.55}
.footer-legal:has(details[open])>details+details>summary::before{content:none}
.legal-content p{font-size:14px;line-height:1.72}
.legal-content strong{font-weight:500}
/* Bouton d'ouverture de la messagerie : traitement Argile
   (form .light le passait en Vanilla, invisible sur la carte creme). */
#contact-form #open-mail{display:inline-flex;background:var(--argile);color:#241c19}
#contact-form #open-mail:hover{background:#cc8a7f}