:root { --agency-gold:#c9a45d; --agency-gold-deep:#8d672d; --agency-night:#0e0e0c; --agency-cream:#f7f3ea; --agency-white:#fff; }

.agency-home,.product-page { background:var(--agency-cream); }
.agency-home h1,.agency-home h2,.agency-home h3,.product-page h1,.product-page h2,.product-page h3 { overflow-wrap:break-word; }
.agency-home .eyebrow,.product-page .eyebrow { color:var(--agency-gold-deep); }
.agency-home .nav-shell,.product-page .nav-shell { background:rgba(247,243,234,.88); }
.nav-links .is-current { color:var(--ink); }

.home-mobile-menu { position:relative; z-index:3; display:none; margin-left:auto; }
.home-mobile-menu summary { display:flex; min-height:42px; align-items:center; gap:9px; padding:0 13px; color:#4e4942; border:1px solid rgba(17,16,14,.12); border-radius:11px; background:rgba(255,255,255,.62); cursor:pointer; font-size:13px; font-weight:700; list-style:none; }
.home-mobile-menu summary::-webkit-details-marker { display:none; }
.home-mobile-menu summary span { color:var(--agency-gold-deep); font-size:17px; line-height:1; transition:transform .2s ease; }
.home-mobile-menu[open] summary span { transform:rotate(45deg); }
.home-mobile-menu-panel { position:absolute; top:calc(100% + 11px); right:0; width:min(290px,calc(100vw - 34px)); display:grid; padding:8px; border:1px solid rgba(17,16,14,.11); border-radius:15px; background:rgba(250,247,240,.99); box-shadow:0 18px 42px rgba(17,16,14,.16); }
.home-mobile-menu-panel a { display:flex; justify-content:space-between; gap:18px; padding:12px 13px; color:#4f4941; border-radius:9px; font-size:14px; font-weight:650; }
.home-mobile-menu-panel a:hover,.home-mobile-menu-panel a:focus-visible { color:var(--ink); background:#eee6d8; }
.home-mobile-menu-panel a span { color:var(--agency-gold-deep); }

.agency-hero { padding:158px 0 92px; background:radial-gradient(circle at 3% 3%,#ead8ae 0,transparent 31rem),var(--agency-cream); }
.agency-hero-grid { display:grid; grid-template-columns:.95fr 1.05fr; gap:68px; align-items:center; }
.agency-kicker { width:max-content; display:inline-flex; align-items:center; gap:10px; margin:0; padding:8px 11px; color:#5e564c; border:1px solid rgba(17,16,14,.15); border-radius:999px; background:rgba(255,255,255,.44); font:500 10px var(--mono); letter-spacing:.075em; text-transform:uppercase; }
.agency-kicker i { width:6px; height:6px; border-radius:50%; background:var(--agency-gold); box-shadow:0 0 0 5px rgba(201,164,93,.14); }
.agency-hero h1 { max-width:680px; margin:24px 0 27px; font-size:clamp(61px,7vw,98px); font-weight:500; letter-spacing:-.065em; line-height:.91; }
.agency-hero h1 em,.agency-heading h2 em,.agency-europe h2 em,.agency-cta h2 em,.product-hero h1 em,.product-heading h2 em,.quote-price h2 em { color:var(--agency-gold-deep); font-family:var(--serif); font-weight:400; }
.agency-hero-copy > p:not(.agency-kicker) { max-width:590px; margin:0; color:var(--muted); font-size:18px; line-height:1.7; }
.agency-hero-actions { display:flex; gap:22px; align-items:center; margin-top:32px; }
.agency-hero-note { display:flex; gap:24px; margin-top:48px; padding-top:22px; border-top:1px solid var(--line); }
.agency-hero-note span { max-width:180px; color:var(--muted); font-size:11px; line-height:1.5; }
.agency-hero-note strong { display:block; margin-bottom:4px; color:var(--ink); font-size:13px; }
.agency-visual { position:relative; min-height:650px; margin:0; }
.agency-visual-main { position:absolute; inset:0 55px 70px 0; overflow:hidden; border-radius:5px 28px 5px 28px; background:#c9c1b5; box-shadow:24px 26px 0 #e5dac4; }
.agency-visual-main img { width:100%; height:100%; object-fit:cover; }
.agency-visual-main::after { content:""; position:absolute; inset:50% 0 0; background:linear-gradient(transparent,rgba(12,12,10,.72)); }
.agency-visual-main figcaption { position:absolute; z-index:1; right:25px; bottom:23px; left:25px; color:#fff; }
.agency-visual-main figcaption span { color:#e8cb8d; font:500 9px var(--mono); letter-spacing:.06em; text-transform:uppercase; }
.agency-visual-main figcaption strong { display:block; max-width:360px; margin-top:5px; font-size:17px; line-height:1.35; }
.agency-visual-card { position:absolute; right:0; bottom:0; width:245px; padding:19px; color:#f4efe5; border:1px solid rgba(201,164,93,.38); border-radius:19px 4px 19px 4px; background:var(--agency-night); box-shadow:0 20px 40px rgba(17,16,14,.24); }
.agency-visual-card span { color:var(--agency-gold); font:500 9px var(--mono); letter-spacing:.07em; text-transform:uppercase; }
.agency-visual-card strong { display:block; margin:28px 0 6px; font:400 31px/1 var(--serif); }
.agency-visual-card p { margin:0; color:#a9a296; font-size:12px; line-height:1.55; }

.agency-manifesto { padding:118px 0; color:#f3eee4; background:var(--agency-night); }
.agency-manifesto-grid { display:grid; grid-template-columns:.78fr 1.22fr; gap:100px; align-items:start; }
.agency-manifesto .eyebrow { color:var(--agency-gold); }
.agency-manifesto h2 { max-width:790px; margin:0; font-size:clamp(48px,5.8vw,78px); font-weight:500; letter-spacing:-.052em; line-height:1; }
.agency-manifesto h2 em { color:#e5c680; font-family:var(--serif); font-weight:400; }
.agency-manifesto-copy { display:grid; grid-template-columns:1fr 1fr; gap:34px; margin-top:62px; padding-top:31px; border-top:1px solid rgba(255,255,255,.14); }
.agency-manifesto-copy p { margin:0; color:#aaa397; font-size:15px; line-height:1.75; }
.agency-manifesto-copy strong { color:#fff; }

.agency-solutions { padding:124px 0; background:#fff; }
.agency-heading { display:grid; grid-template-columns:1.2fr .8fr; gap:70px; align-items:end; }
.agency-heading h2,.agency-europe h2,.agency-cta h2,.product-heading h2,.quote-price h2 { margin:14px 0 0; font-size:clamp(48px,5.5vw,74px); font-weight:500; letter-spacing:-.05em; line-height:1.01; }
.agency-heading > p { margin:0; color:var(--muted); font-size:16px; line-height:1.75; }
.solution-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:62px; }
.solution-card { overflow:hidden; border:1px solid var(--line); border-radius:23px; background:var(--agency-cream); transition:transform .25s var(--ease),box-shadow .25s; }
.solution-card:hover { transform:translateY(-7px); box-shadow:0 22px 42px rgba(17,16,14,.1); }
.solution-card figure { position:relative; height:430px; margin:0; overflow:hidden; background:#d5cfc5; }
.solution-card figure img { width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease); }
.solution-card:hover figure img { transform:scale(1.025); }
.solution-card figure span { position:absolute; top:18px; left:18px; padding:7px 9px; color:#fff; border:1px solid rgba(255,255,255,.28); border-radius:999px; background:rgba(10,10,9,.66); backdrop-filter:blur(10px); font:500 9px var(--mono); letter-spacing:.06em; text-transform:uppercase; }
.solution-card-body { padding:29px; }
.solution-card-body h3 { margin:0 0 12px; font-size:34px; letter-spacing:-.045em; line-height:1.05; }
.solution-card-body p { max-width:530px; margin:0 0 24px; color:var(--muted); font-size:14px; line-height:1.7; }
.solution-card-meta { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:26px; }
.solution-card-meta span { padding:7px 9px; color:#61594e; border-radius:999px; background:#eee5d6; font:500 9px var(--mono); text-transform:uppercase; }

.agency-europe { padding:126px 0; background:#ede6da; }
.agency-europe-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:88px; align-items:center; }
.agency-europe-map { position:relative; min-height:520px; overflow:hidden; border-radius:24px 5px 24px 5px; background:linear-gradient(145deg,#191816,#3a3226); }
.agency-europe-map::before,.agency-europe-map::after { content:""; position:absolute; border:1px solid rgba(201,164,93,.32); border-radius:50%; }
.agency-europe-map::before { width:430px; height:430px; top:45px; left:55px; box-shadow:0 0 0 53px rgba(201,164,93,.05),0 0 0 106px rgba(201,164,93,.025); }
.agency-europe-map::after { width:12px; height:12px; top:178px; left:222px; background:#e5c680; box-shadow:117px 166px 0 #e5c680; }
.agency-route { position:absolute; inset:0; display:grid; place-content:center; color:#f4efe5; text-align:center; }
.agency-route span { color:#d4b777; font:500 9px var(--mono); letter-spacing:.08em; text-transform:uppercase; }
.agency-route strong { margin:13px 0; font:400 48px/1 var(--serif); }
.agency-route small { color:#9d9589; font-size:12px; }
.agency-europe-copy > p:not(.eyebrow) { max-width:570px; margin:27px 0 0; color:var(--muted); font-size:16px; line-height:1.8; }
.agency-principles { display:grid; grid-template-columns:repeat(3,1fr); gap:13px; margin-top:32px; }
.agency-principles p { margin:0; padding:16px; border:1px solid rgba(17,16,14,.1); border-radius:12px; background:rgba(255,255,255,.48); }
.agency-principles strong { display:block; margin-bottom:5px; font-size:13px; }
.agency-principles span { color:var(--muted); font-size:11px; line-height:1.5; }

.agency-method { padding:116px 0; background:#fff; }
.method-grid { display:grid; grid-template-columns:repeat(3,1fr); margin-top:54px; padding:0; border-top:1px solid var(--line); list-style:none; }
.method-grid li { min-height:270px; padding:25px 34px 28px 0; }
.method-grid li + li { padding-left:34px; border-left:1px solid var(--line); }
.method-grid > li > span { color:var(--agency-gold-deep); font:500 10px var(--mono); }
.method-grid h3 { margin:65px 0 12px; font-size:25px; letter-spacing:-.035em; line-height:1.1; }
.method-grid p { margin:0; color:var(--muted); font-size:14px; line-height:1.7; }

.agency-cta { padding:0; color:#f3eee4; background:var(--agency-night); }
.agency-cta-inner { display:grid; grid-template-columns:1.2fr .8fr; gap:70px; align-items:end; padding:82px 0; }
.agency-cta .eyebrow { color:var(--agency-gold); }
.agency-cta h2 em { color:#e5c680; }
.agency-cta-copy p { margin:0 0 27px; color:#aaa397; font-size:15px; line-height:1.75; }

.product-hero { padding:154px 0 86px; background:radial-gradient(circle at 4% 2%,#ead8ae 0,transparent 31rem),var(--agency-cream); }
.product-hero-grid { display:grid; grid-template-columns:.92fr 1.08fr; gap:62px; align-items:center; }
.product-hero h1 { max-width:700px; margin:23px 0 25px; font-size:clamp(58px,6.7vw,91px); font-weight:500; letter-spacing:-.06em; line-height:.92; }
.product-hero-copy > p:not(.agency-kicker) { max-width:570px; margin:0; color:var(--muted); font-size:18px; line-height:1.7; }
.product-hero-actions { display:flex; gap:20px; align-items:center; margin-top:30px; }
.product-hero-facts { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:43px; padding-top:21px; border-top:1px solid var(--line); }
.product-hero-facts strong { display:block; font-size:13px; }
.product-hero-facts span { display:block; margin-top:4px; color:var(--muted); font-size:11px; line-height:1.4; }
.product-media { position:relative; min-height:590px; }
.product-media > img { width:100%; height:100%; min-height:590px; object-fit:cover; border-radius:5px 25px 5px 25px; box-shadow:22px 24px 0 #e5dac4; }
.product-media-caption { position:absolute; right:22px; bottom:20px; left:22px; padding:15px 17px; color:#fff; border:1px solid rgba(255,255,255,.18); border-radius:12px; background:rgba(12,12,10,.74); backdrop-filter:blur(10px); }
.product-media-caption strong { display:block; font-size:14px; }
.product-media-caption span { color:#d9d0c3; font-size:11px; }

.product-section { padding:120px 0; }
.product-section-white { background:#fff; }
.product-section-cream { background:#ede6da; }
.product-heading { max-width:870px; }
.product-heading > p:not(.eyebrow) { max-width:620px; margin:25px 0 0; color:var(--muted); font-size:16px; line-height:1.75; }
.product-feature-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:52px; }
.product-feature { min-height:260px; padding:25px; border:1px solid var(--line); border-radius:17px; background:var(--agency-cream); }
.product-feature > span { color:var(--agency-gold-deep); font:500 10px var(--mono); }
.product-feature h3 { margin:58px 0 11px; font-size:24px; letter-spacing:-.035em; line-height:1.1; }
.product-feature p { margin:0; color:var(--muted); font-size:14px; line-height:1.7; }
.media-gallery { display:grid; grid-template-columns:1.1fr .9fr; gap:18px; margin-top:52px; }
.media-gallery figure { position:relative; min-height:480px; margin:0; overflow:hidden; border-radius:18px; background:#d7d0c4; }
.media-gallery figure img,.media-gallery figure video { width:100%; height:100%; object-fit:cover; }
.media-gallery figure video { position:absolute; inset:0; }
.media-gallery figcaption { position:absolute; right:17px; bottom:16px; left:17px; padding:12px 14px; color:#fff; border-radius:10px; background:rgba(12,12,10,.72); font-size:12px; }

.quote-price { padding:112px 0; color:#f3eee4; background:var(--agency-night); }
.quote-price-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:82px; align-items:end; }
.quote-price .eyebrow { color:var(--agency-gold); }
.quote-price h2 em { color:#e5c680; }
.quote-price-card { padding:30px; border:1px solid rgba(201,164,93,.33); border-radius:20px; background:#191814; }
.quote-price-card > span { color:var(--agency-gold); font:500 9px var(--mono); letter-spacing:.07em; text-transform:uppercase; }
.quote-price-card strong { display:block; margin:18px 0 11px; font:400 52px/1 var(--serif); }
.quote-price-card p { margin:0 0 25px; color:#aaa397; font-size:14px; line-height:1.7; }
.quote-price-card ul { display:grid; gap:10px; margin:0 0 27px; padding:20px 0 0; border-top:1px solid rgba(255,255,255,.12); list-style:none; }
.quote-price-card li { color:#c9c1b6; font-size:12px; }
.quote-price-card li::before { content:"✦"; margin-right:9px; color:var(--agency-gold); }

.nfc-price-summary { display:grid; grid-template-columns:repeat(3,1fr); gap:13px; margin-top:52px; }
.nfc-price-summary article { min-height:230px; display:flex; flex-direction:column; padding:22px; border:1px solid var(--line); border-radius:16px; background:var(--agency-cream); }
.nfc-price-summary span { color:var(--agency-gold-deep); font:500 9px var(--mono); text-transform:uppercase; }
.nfc-price-summary strong { margin:auto 0 7px; font:400 38px/1 var(--serif); }
.nfc-price-summary p { margin:0; color:var(--muted); font-size:12px; line-height:1.5; }
.nfc-price-summary article:last-child { color:#f3eee4; border-color:#292722; background:var(--agency-night); }
.nfc-price-summary article:last-child span { color:var(--agency-gold); }
.nfc-price-summary article:last-child p { color:#aaa397; }
.nfc-price-footnote { max-width:930px; margin:22px 0 0; color:var(--muted); font-size:12px; line-height:1.7; }
.nfc-price-footnote strong { color:var(--ink); }
.nfc-price-actions { display:flex; align-items:center; gap:22px; margin-top:28px; }

@media (max-width:980px) {
  .agency-hero-grid,.agency-manifesto-grid,.agency-europe-grid,.product-hero-grid,.quote-price-grid { grid-template-columns:1fr; }
  .agency-hero-grid,.product-hero-grid { gap:52px; }
  .agency-manifesto-grid { gap:28px; }
  .agency-europe-grid,.quote-price-grid { gap:48px; }
  .agency-heading,.agency-cta-inner { grid-template-columns:1fr; gap:32px; }
  .product-media { max-width:760px; }
  .nfc-price-summary { grid-template-columns:1fr 1fr; }
}
@media (max-width:900px) { .home-mobile-menu { display:block; } }
@media (max-width:700px) {
  .agency-hero,.product-hero { padding:126px 0 70px; }
  .agency-hero h1,.product-hero h1 { font-size:clamp(52px,15vw,70px); line-height:.96; }
  .agency-hero-copy > p:not(.agency-kicker),.product-hero-copy > p:not(.agency-kicker) { font-size:16px; }
  .agency-hero-actions,.product-hero-actions,.nfc-price-actions { align-items:flex-start; flex-direction:column; }
  .agency-hero-note { display:grid; grid-template-columns:1fr 1fr; }
  .agency-visual { min-height:520px; }
  .agency-visual-main { inset:0 25px 60px 0; }
  .agency-visual-card { width:220px; }
  .agency-manifesto,.agency-solutions,.agency-europe,.agency-method,.product-section,.quote-price { padding:82px 0; }
  .agency-manifesto-copy,.solution-grid,.product-feature-grid,.media-gallery { grid-template-columns:1fr; }
  .solution-card figure { height:350px; }
  .agency-europe-map { min-height:430px; }
  .agency-principles { grid-template-columns:1fr; }
  .method-grid { grid-template-columns:1fr; }
  .method-grid li { min-height:auto; padding:25px 0 29px; }
  .method-grid li + li { padding-left:0; border-top:1px solid var(--line); border-left:0; }
  .method-grid h3 { margin-top:29px; }
  .agency-cta-inner { padding:70px 0; }
  .agency-heading h2,.agency-europe h2,.agency-cta h2,.product-heading h2,.quote-price h2 { font-size:46px; }
  .product-hero-facts { grid-template-columns:1fr; }
  .product-media,.product-media > img { min-height:460px; }
  .media-gallery figure { min-height:390px; }
}
@media (max-width:620px) {
  .agency-home .nav-shell,.product-page .nav-shell { gap:8px; }
  .agency-home .nav-actions,.product-page .nav-actions { margin-left:0; }
  .nfc-home.product-page .nav-actions { display:flex; }
  .agency-home .button-dark,.product-page .button-dark { padding:0 11px; }
  .nfc-price-summary { grid-template-columns:1fr; }
}
@media (max-width:430px) {
  .agency-home .nav-actions .button-dark,.product-page .nav-actions .button-dark { font-size:0; }
  .agency-home .nav-actions .button-dark::before,.product-page .nav-actions .button-dark::before { content:"Devis"; font-size:12px; }
  .agency-home .nav-actions .button-dark span,.product-page .nav-actions .button-dark span { display:none; }
  .agency-visual { min-height:470px; }
  .agency-visual-main { right:8px; bottom:82px; }
  .agency-visual-card { right:8px; width:205px; }
  .agency-hero-note { grid-template-columns:1fr; }
}
