


:root{
  --ink:#1C1712; --ink-2:#262019; --cream:#F3ECDD; --cream-muted:#A89C89;
  --clay:#E35336; --clay-deep:#C1371B; --paper:#F7F4EC; --paper-line:#DED6C3;
  --ink-on-paper:#2A241C; --ink-muted-on-paper:#6E6455;
}
/* Accessibilité - Focus visible */
*:focus-visible{outline:3px solid var(--clay);outline-offset:2px;}
/* Skip links */
.skip-link{position:absolute;top:-40px;left:0;background:var(--clay);color:#fff;padding:8px 16px;text-decoration:none;z-index:100;font-weight:600;}
.skip-link:focus-visible{top:0;}
/* Screen reader only content */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
/* Enhanced button focus states */
a:focus-visible,button:focus-visible{outline:3px solid var(--clay);outline-offset:2px;}
/* High contrast mode support */
@media (prefers-contrast: more) {
  *:focus-visible{outline-width:4px;}
  .skip-link{font-weight:700;text-decoration:underline;}
}
/* Reduced motion support */
@media (prefers-reduced-motion: reduce) {
  *{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important;}
}
.svc-split{padding:90px 0 40px;background:var(--paper);width:100vw;margin-right:calc(-50vw + 50%);}
.svc-split .wrap.svc-split-grid{display:grid;grid-template-columns:minmax(240px,.7fr) 1fr;border:1px solid var(--paper-line);overflow:hidden;padding:0;}
.svc-split-intro{display:flex;flex-direction:column;justify-content:space-between;padding:44px 36px;border-right:1px solid var(--paper-line);}
.svc-split-eyebrow{margin:0;font-family:'IBM Plex Mono',monospace;font-size:11px;font-weight:500;letter-spacing:.18em;line-height:1.7;text-transform:uppercase;color:var(--ink-muted-on-paper);}
.svc-split-eyebrow span{color:var(--clay);}
.svc-split-main{margin:auto 0;padding:46px 0;}
.svc-split-title{max-width:320px;margin:0;font-family:'Fraunces',serif;font-size:clamp(18px,2vw,28px);font-weight:400;letter-spacing:-.02em;line-height:.95;color:var(--ink-on-paper);}
.svc-split-title em{font-style:italic;}
.svc-split-line{width:40px;height:3px;margin:28px 0 26px;background:var(--clay);}
.svc-split-lede{max-width:300px;margin:0;font-family:'Fraunces',serif;font-size:17px;line-height:1.6;color:var(--ink-muted-on-paper);}
.svc-split-footer-row{padding-top:22px;border-top:1px solid var(--paper-line);}
.svc-split-footer p{margin:0;max-width:170px;font-family:'IBM Plex Mono',monospace;font-size:10px;font-weight:500;letter-spacing:.14em;line-height:1.7;text-transform:uppercase;color:var(--ink-muted-on-paper);}
.svc-split-cta{display:inline-flex;justify-content:space-between;align-items:center;width:100%;margin-top:32px;padding:18px 22px;border:1px solid var(--clay);background:var(--clay);color:#fff;font-family:'IBM Plex Mono',monospace;font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;transition:all .3s ease;box-shadow:0 4px 12px rgba(227,83,54,.2);cursor:pointer;}
.svc-split-cta:hover{background:var(--clay-deep);border-color:var(--clay-deep);box-shadow:0 6px 16px rgba(227,83,54,.3);transform:translateY(-2px);}
.svc-split-cta:focus-visible{outline:3px solid var(--clay);outline-offset:2px;}
.svc-split-cta-arrow{font-size:18px;line-height:0;margin-left:8px;}
.svc-split-list{display:grid;grid-template-columns:1fr;grid-auto-rows:280px;width:100%;}
.svc-split-item{display:grid;grid-template-columns:110px 1fr 1fr;align-items:stretch;border-bottom:1px solid var(--paper-line);transition:background .3s ease;}
.svc-split-item:last-child{border-bottom:0;}
.svc-split-item:hover{background:rgba(227,83,54,.05);}
.svc-split-num{display:flex;align-items:flex-start;justify-content:center;padding-top:30px;border-right:1px solid var(--paper-line);font-family:'Fraunces',serif;font-size:clamp(40px,4vw,58px);font-weight:400;letter-spacing:-.02em;line-height:.8;color:var(--clay);}
.svc-split-content{padding:30px clamp(18px,3vw,40px);}
.svc-split-content h3{margin:0 0 10px;font-family:'Fraunces',serif;font-size:clamp(24px,2.2vw,32px);font-weight:400;letter-spacing:-.01em;line-height:1;color:var(--ink-on-paper);}
.svc-split-cat{margin:0;font-family:'IBM Plex Mono',monospace;font-size:11px;font-weight:500;letter-spacing:.1em;line-height:1.4;text-transform:uppercase;color:var(--clay-deep);}
.svc-split-dash{width:24px;height:1px;margin:14px 0 12px;background:var(--ink-on-paper);opacity:.4;}
.svc-split-desc{max-width:400px;margin:0;font-family:'Fraunces',serif;font-size:14.5px;line-height:1.55;color:var(--ink-muted-on-paper);}
.svc-split-img{height:280px;overflow:hidden;display:flex;align-items:center;justify-content:center;}
.svc-split-img img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;filter:saturate(.92) contrast(.97);}
@media (max-width:900px){
.svc-split{padding-top:0;padding-bottom:0;}
.svc-split .wrap.svc-split-grid{grid-template-columns:1fr;border-bottom:0;}
.svc-split-intro{border-right:0;border-bottom:1px solid var(--paper-line);padding-top:20px;}
.svc-split-item{grid-template-columns:74px 1fr 1fr;}
.svc-split-num{padding-top:26px;font-size:44px;}
}
@media (max-width:640px){
.svc-split-list{grid-auto-rows:auto;}
.svc-split-item{grid-template-columns:1fr;align-items:start;gap:16px;}
.svc-split-num{padding-top:24px;font-size:24px;border-right:none;border-bottom:1px solid var(--paper-line);padding-bottom:12px;margin-bottom:12px;}
.svc-split-img{grid-column:1;height:200px;border-top:none;}
.svc-split-content{padding:0 20px 8px;}
.svc-split-content h3{font-size:18px;}
}
*{box-sizing:border-box;}
body{margin:0;background:var(--paper);color:var(--ink-on-paper);font-family:'Fraunces',serif;}

/* Custom scrollbar */
html{scrollbar-width:thin;scrollbar-color:var(--clay) var(--paper);}
::-webkit-scrollbar{width:12px;}
::-webkit-scrollbar-track{background:var(--paper);}
::-webkit-scrollbar-thumb{background:var(--clay);border-radius:7px;border:3px solid var(--paper);}
::-webkit-scrollbar-thumb:hover{background:var(--clay-deep);}
a{text-decoration:none;color:inherit;}
.wrap{max-width:1100px;margin:0 auto;padding:0 32px;}

/* Thai type overrides, scoped to the whole site wrapper */
.site[data-lang="th"]{font-family:'Noto Serif Thai', serif;}
.site[data-lang="th"] h1, .site[data-lang="th"] h2,
.site[data-lang="th"] .card-title, .site[data-lang="th"] .name{font-family:'Chakra Petch',sans-serif;text-transform:none;letter-spacing:0;}
.site[data-lang="th"] .nav-links a, .site[data-lang="th"] .mobile-menu a, .site[data-lang="th"] .eyebrow,
.site[data-lang="th"] .tag, .site[data-lang="th"] .card-meta, .site[data-lang="th"] .see-all,
.site[data-lang="th"] .btn, .site[data-lang="th"] footer, .site[data-lang="th"] .filter-btn,
.site[data-lang="th"] .count, .site[data-lang="th"] .role, .site[data-lang="th"] .date,
.site[data-lang="th"] .field label, .site[data-lang="th"] legend, .site[data-lang="th"] .form-note,
.site[data-lang="th"] .captcha-status, .site[data-lang="th"] .scope, .site[data-lang="th"] .num,
.site[data-lang="th"] .project-hero .tag{font-family:'IBM Plex Sans Thai',sans-serif;text-transform:none;letter-spacing:0;}
.site[data-lang="th"] p, .site[data-lang="th"] .lede, .site[data-lang="th"] .intro,
.site[data-lang="th"] .consent label, .site[data-lang="th"] .success p{font-family:'Noto Serif Thai',serif;line-height:1.9;}
.site[data-lang="th"] .hero .lede{font-family:'IBM Plex Sans Thai',sans-serif;text-transform:none;letter-spacing:0;}
.site[data-lang="th"] .mobile-menu a{text-transform:none;}

/* HEADER */
header{position:sticky;top:0;z-index:500;background:var(--ink);border-bottom:1px solid rgba(243,236,221,.08);isolation:isolate;}
.bar{max-width:1280px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:20px 32px;}
.logo{display:flex;align-items:center;gap:10px;color:var(--cream);}
.logo .mark{width:26px;height:18px;flex-shrink:0;}
.logo .word{font-family:'Archivo Expanded',sans-serif;font-weight:700;font-size:17px;letter-spacing:.03em;text-transform:uppercase;}
.logo .amp{color:var(--clay);margin:0 2px;}
.nav-links{display:flex;gap:32px;list-style:none;margin:0;padding:0;}
.nav-links a{font-family:'IBM Plex Mono',monospace;font-weight:500;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--cream);position:relative;padding-bottom:4px;}
.nav-links a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--clay);transition:width .2s ease;}
.nav-links a:hover{color:var(--clay);}
.nav-links a:hover::after{width:100%;}
.nav-links a.current{color:var(--clay);}
.nav-links a.current::after{width:100%;}
.bar-right{display:flex;align-items:center;gap:24px;}
.flags{display:flex;gap:8px;}
.lang-select{background:transparent;color:var(--cream);border:1px solid rgba(243,236,221,.35);border-radius:3px;font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.06em;text-transform:uppercase;padding:8px 30px 8px 12px;cursor:pointer;appearance:none;-webkit-appearance:none;-moz-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F3ECDD' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 8px center;background-size:14px 14px;
  transition:border-color .15s ease;}
.lang-select:hover, .lang-select:focus{border-color:var(--clay);outline:none;}
.lang-select option{background:var(--ink);color:var(--cream);}
/* Menu déroulant de langue personnalisé (remplace le <select> natif via JS pour éviter
   le picker/scroll natif du navigateur mobile — voir script.js) */
.lang-dd{position:relative;}
.lang-dd-toggle{position:relative;display:inline-flex;align-items:center;gap:8px;background:transparent;border:0;color:var(--cream);font-family:'IBM Plex Mono',monospace;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:8px 2px 9px;cursor:pointer;transition:color .15s ease;}
.lang-dd-toggle::after{content:"";position:absolute;left:0;right:0;bottom:3px;height:1px;background:var(--clay);}
.lang-dd-toggle:hover, .lang-dd-toggle:focus-visible{color:var(--clay);outline:none;}
.lang-dd-dots{display:flex;align-items:center;gap:4px;}
.lang-dd-dots i{width:4px;height:4px;border-radius:50%;background:rgba(243,236,221,.3);}
.lang-dd-dots i.selected{background:var(--clay);}
.lang-dd-menu{position:absolute;top:calc(100% + 8px);right:-2px;z-index:50;min-width:112px;margin:0;padding:5px 10px;list-style:none;background:var(--ink);border:1px solid rgba(243,236,221,.25);border-radius:5px;box-shadow:0 12px 28px rgba(0,0,0,.35);overflow:visible;max-height:none;touch-action:none;}
.lang-dd-menu[hidden]{display:none;}
.lang-dd-menu li{margin:0;}
.lang-dd-menu a{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 2px;font-family:'IBM Plex Mono',monospace;font-size:11px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:rgba(243,236,221,.55);text-decoration:none;white-space:nowrap;transition:color .15s ease;}
.lang-dd-menu a i{width:4px;height:4px;border-radius:50%;background:rgba(243,236,221,.3);flex-shrink:0;}
.lang-dd-menu a:hover, .lang-dd-menu a:focus-visible{color:var(--cream);outline:none;}
.lang-dd-menu li[aria-selected="true"] a{color:var(--cream);font-weight:800;}
.lang-dd-menu li[aria-selected="true"] a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--clay);}
.lang-dd-menu li[aria-selected="true"] a i{background:var(--clay);}
.ll-hero2-langbar .lang-dd-toggle{padding-left:10px;padding-right:10px;background:rgba(23,21,19,.45);border-radius:3px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);}
.ll-hero2-langbar .lang-dd-toggle::after{left:10px;right:10px;}
.call-btn{width:36px;height:36px;border-radius:50%;background:var(--clay);color:var(--ink);display:flex;align-items:center;justify-content:center;transition:background .2s ease, transform .2s ease;}
.call-btn svg{width:17px;height:17px;}
.call-btn:hover{background:var(--cream);transform:translateY(-2px);}
.burger{display:none;background:none;border:none;cursor:pointer;width:26px;height:20px;position:relative;padding:0;}
.burger span{position:absolute;left:0;width:100%;height:1.5px;background:var(--cream);transition:transform .25s ease, opacity .2s ease, top .25s ease;}
.burger span:nth-child(1){top:0;} .burger span:nth-child(2){top:9px;} .burger span:nth-child(3){top:18px;}
.burger.open span:nth-child(1){top:9px;transform:rotate(45deg);}
.burger.open span:nth-child(2){opacity:0;}
.burger.open span:nth-child(3){top:9px;transform:rotate(-45deg);}
.mobile-menu{position:fixed;inset:0;top:var(--mm-top,64px);background:var(--ink);display:flex;flex-direction:column;padding:0 32px 28px;transform:translateX(100%);transition:transform .4s cubic-bezier(.22,1,.36,1);z-index:40;overflow-y:auto;overscroll-behavior:contain;}
.mobile-menu.open{transform:translateX(0);}
.mm-hero{position:relative;flex:0 0 auto;margin:0 -32px 0;height:clamp(160px,42vw,300px);background-color:#4a453d;background-size:cover;background-position:center 55%;opacity:0;transition:opacity .5s cubic-bezier(.22,1,.36,1);}
/* L'image n'est chargée qu'à l'ouverture du menu (règle .open), pour ne pas alourdir le
   chargement des 60 pages avec une image qui n'est pas toujours visible. */
.mobile-menu.open .mm-hero{opacity:1;background-image:url('images/mm-menu-hero.webp');}
.mobile-menu ul{list-style:none;margin:auto 0;padding:0;display:flex;flex-direction:column;counter-reset:mm-count;flex:0 0 auto;}
.mobile-menu li{counter-increment:mm-count;border-top:1px solid rgba(243,236,221,.14);opacity:0;transform:translateY(22px);transition:opacity .55s cubic-bezier(.22,1,.36,1),transform .55s cubic-bezier(.22,1,.36,1);}
.mobile-menu li:first-child{border-top:none;}
.mobile-menu.open li{opacity:1;transform:translateY(0);}
.mobile-menu.open li:nth-child(1){transition-delay:.1s;}
.mobile-menu.open li:nth-child(2){transition-delay:.16s;}
.mobile-menu.open li:nth-child(3){transition-delay:.22s;}
.mobile-menu.open li:nth-child(4){transition-delay:.28s;}
.mobile-menu.open li:nth-child(5){transition-delay:.34s;}
.mobile-menu ul a{position:relative;display:flex;align-items:baseline;gap:18px;padding:14px 2px;font-family:'Archivo Expanded',sans-serif;font-weight:700;font-size:clamp(24px,7vw,40px);text-transform:uppercase;letter-spacing:.02em;color:var(--cream);background-image:linear-gradient(var(--clay),var(--clay));background-repeat:no-repeat;background-position:left bottom 8px;background-size:0 1px;transition:color .2s ease,padding-left .25s cubic-bezier(.22,1,.36,1),background-size .3s ease;}
.mobile-menu ul a::before{content:counter(mm-count,decimal-leading-zero);flex-shrink:0;font-family:'IBM Plex Mono',monospace;font-size:12px;font-weight:500;letter-spacing:.06em;color:var(--clay);}
.mobile-menu ul a::after{content:"↗";flex-shrink:0;margin-left:auto;color:var(--clay);font-size:.45em;opacity:0;transform:translate(-6px,6px);transition:opacity .2s ease,transform .2s ease;}
.mobile-menu ul a:hover,.mobile-menu ul a:focus-visible{color:var(--clay);background-size:100% 1px;}
.mobile-menu ul a:hover::after,.mobile-menu ul a:focus-visible::after{opacity:1;transform:translate(0,0);}
.mobile-menu ul a.current{color:var(--clay);background-size:100% 1px;}
.mobile-menu ul a.current::after{opacity:1;transform:translate(0,0);}
@media (hover:hover) and (pointer:fine){.mobile-menu ul a:hover{padding-left:6px;}}
.mm-social{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;text-align:center;opacity:0;transform:translateY(14px);transition:opacity .5s cubic-bezier(.22,1,.36,1) .3s,transform .5s cubic-bezier(.22,1,.36,1) .3s;}
.mobile-menu.open .mm-social{opacity:1;transform:translateY(0);}
/* Étiquette "Suivez-nous" : eyebrow épuré centré, filets fins de part et d'autre — même esprit discret que .ll-hero2-follow-label sur la landing */
.mm-social-label{display:flex;align-items:center;gap:14px;width:100%;max-width:230px;margin:0 0 22px;font-family:'IBM Plex Mono',monospace;font-size:10px;font-weight:500;letter-spacing:.26em;text-transform:uppercase;color:var(--clay);}
.mm-social-label::before,.mm-social-label::after{content:"";flex:1;height:1px;background:rgba(227,83,54,.3);}
.mm-social-links{display:flex;align-items:center;justify-content:center;gap:20px;width:auto;max-width:none;}
.mm-social-links a{display:flex;align-items:center;justify-content:center;width:clamp(40px,10.5vw,50px);height:clamp(40px,10.5vw,50px);color:var(--cream);opacity:.82;transition:color .2s ease,opacity .2s ease,transform .2s ease;}
.mm-social-links svg{display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;}
.mm-social-links svg .social-dot{fill:var(--clay);stroke:none;}
.mm-social-links svg .social-wordmark{fill:currentColor;stroke:none;font-family:Arial,Helvetica,sans-serif;font-weight:800;text-anchor:middle;}
.mm-social-links svg .line-wordmark{font-size:6.6px;letter-spacing:.2px;}
.mm-social-links a:hover,.mm-social-links a:focus-visible{color:var(--clay);opacity:1;transform:translateY(-2px) scale(1.06);}
.site[data-lang="th"] .mm-social-label{font-family:'IBM Plex Sans Thai',sans-serif;text-transform:none;letter-spacing:.12em;}
@media (prefers-reduced-motion: reduce){.mobile-menu li,.mm-hero,.mm-social{opacity:1;transform:none;transition:none;}}
/* Évite le doublon visuel avec l'icône LINE du nouveau pied du menu burger :
   on masque la bulle LINE flottante pendant qu'un menu (langue ou burger) est ouvert. */
body.ll-lock .line-float{opacity:0;pointer-events:none;transition:opacity .2s ease;}
@media (max-width:860px){.nav-links{display:none;} .burger{display:block;} .bar{padding:18px 20px;}}

.page-hero{position:relative;overflow:hidden;background:var(--ink);color:var(--cream);padding:0;margin:-70px -32px 0;min-height:0;display:flex;align-items:center;}
@media (max-width:700px){.page-hero{min-height:430px;}}
#page-services .page-hero-header{position:relative;overflow:hidden;width:100vw;margin-left:calc(-50vw + 50%);margin-right:calc(-50vw + 50%);margin-top:-70px;padding:0;height:390px!important;max-height:390px!important;min-height:390px!important;z-index:1;width:100%;}#page-studio .page-hero-header{position:relative;overflow:hidden;width:100vw;margin-left:calc(-50vw + 50%);margin-right:calc(-50vw + 50%);margin-top:-70px;padding:0;height:300px!important;max-height:300px!important;min-height:300px!important;z-index:1;width:100%;}#page-journal .page-hero-header{position:relative;overflow:hidden;width:100vw;margin-left:calc(-50vw + 50%);margin-right:calc(-50vw + 50%);margin-top:-70px;padding:0;height:300px!important;max-height:300px!important;min-height:300px!important;z-index:1;width:100%;}#page-contact .page-hero-header{position:relative;overflow:hidden;width:100vw;margin-left:calc(-50vw + 50%);margin-right:calc(-50vw + 50%);margin-top:-70px;padding:0;height:300px!important;max-height:300px!important;min-height:300px!important;z-index:1;width:100%;}#page-faq .page-hero-header{position:relative;overflow:hidden;width:100vw;margin-left:calc(-50vw + 50%);margin-right:calc(-50vw + 50%);margin-top:-70px;padding:0;height:300px!important;max-height:300px!important;min-height:300px!important;z-index:1;width:100%;}#page-faq .page-hero-image{display:block;width:100%;height:100%;max-height:300px!important;object-fit:cover;object-position:center;margin:0;padding:0;}#page-faq{padding-left:0!important;padding-right:0!important;padding-bottom:0!important;background:var(--paper);}#page-services .page-hero-image{display:block;width:100%;height:100%;max-height:390px!important;object-fit:cover;object-position:center;margin:0;padding:0;}#page-studio .page-hero-image{display:block;width:100%;height:100%;max-height:300px!important;object-fit:cover;object-position:center;margin:0;padding:0;}#page-journal .page-hero-image{display:block;width:100%;height:100%;max-height:300px!important;object-fit:cover;object-position:center;margin:0;padding:0;}#page-contact .page-hero-image{display:block;width:100%;height:100%;max-height:300px!important;object-fit:cover;object-position:center;margin:0;padding:0;}#page-services .page-hero-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:flex-start;padding:80px 32px 60px;color:var(--cream);background:linear-gradient(90deg, rgba(28,23,18,0.20) 0%, rgba(28,23,18,0.05) 50%, rgba(28,23,18,0) 100%);;max-height:390px!important;}#page-services .page-hero-overlay h1{color:var(--cream);font-weight:900;font-size:2rem;letter-spacing:0.05em;text-shadow:0 4px 8px rgba(0,0,0,0.25);}
#page-services .page-hero > .page-hero-grid, #page-services .cta-mark--hero{display:none;}
#page-studio .page-hero-overlay h1{display:none;}#page-studio .page-hero-overlay .eyebrow{display:none;}#page-studio .page-hero-overlay .hero-lede{display:none;}#page-studio .page-hero-overlay .hero-meta{display:none;}#page-studio .page-hero-header{position:relative;overflow:hidden;width:100vw;margin-left:calc(-50vw + 50%);margin-right:calc(-50vw + 50%);margin-top:-70px;padding:0;height:300px!important;max-height:300px!important;min-height:300px!important;z-index:1;width:100%;}#page-studio .page-hero-overlay h1{color:var(--cream);font-weight:900;font-size:2rem;letter-spacing:0.05em;text-shadow:0 4px 8px rgba(0,0,0,0.25);}#page-studio .page-hero > .page-hero-grid, #page-studio .cta-mark--hero{display:none;}#page-studio .page-hero-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:flex-start;padding:80px 32px 60px;color:var(--cream);background:linear-gradient(90deg, rgba(28,23,18,0.20) 0%, rgba(28,23,18,0.05) 50%, rgba(28,23,18,0) 100%);;max-height:300px!important;}@media (max-width:700px){#page-studio .page-hero-overlay{min-height:380px!important;padding:62px 20px 42px;}}
@media (max-width:700px){}
#page-studio{padding-left:0!important;padding-right:0!important;padding-bottom:0!important;background:var(--paper);}#page-contact{padding-left:0!important;padding-right:0!important;padding-bottom:0!important;background:var(--paper);}#page-journal{padding-left:0!important;padding-right:0!important;padding-bottom:0!important;background:var(--paper);}#page-contact .page-hero-header{position:relative;overflow:hidden;width:100vw;margin-left:calc(-50vw + 50%);margin-right:calc(-50vw + 50%);margin-top:-70px;padding:0;height:300px!important;max-height:300px!important;min-height:300px!important;z-index:1;width:100%;}#page-contact .page-hero-image{display:block;width:100%;height:100%;max-height:300px!important;object-fit:cover;object-position:center;margin:0;padding:0;}#page-contact .page-hero-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:flex-start;padding:80px 32px 60px;color:var(--cream);background:linear-gradient(90deg, rgba(28,23,18,0.20) 0%, rgba(28,23,18,0.05) 50%, rgba(28,23,18,0) 100%);;max-height:300px!important;}#page-contact .page-hero-overlay h1{color:var(--cream);font-weight:900;font-size:2rem;letter-spacing:0.05em;text-shadow:0 4px 8px rgba(0,0,0,0.25);}@media (max-width:700px){#page-contact .page-hero-overlay{min-height:380px!important;padding:62px 20px 42px;}}
#page-contact .page-hero > .page-hero-grid, #page-contact .cta-mark--hero{display:none;}
#page-journal .page-hero-header{position:relative;overflow:hidden;width:100vw;margin-left:calc(-50vw + 50%);margin-right:calc(-50vw + 50%);margin-top:-70px;padding:0;height:300px!important;max-height:300px!important;min-height:300px!important;z-index:1;width:100%;}#page-journal .page-hero > .page-hero-grid, #page-journal .cta-mark--hero{display:none;}#page-journal .page-hero-image{display:block;width:100%;height:100%;max-height:300px!important;object-fit:cover;object-position:center;margin:0;padding:0;}#page-journal .page-hero-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:flex-start;padding:80px 32px 60px;color:var(--cream);background:linear-gradient(90deg, rgba(28,23,18,0.20) 0%, rgba(28,23,18,0.05) 50%, rgba(28,23,18,0) 100%);;max-height:300px!important;}#page-journal .page-hero-overlay h1{color:var(--cream);font-weight:900;font-size:2rem;letter-spacing:0.05em;text-shadow:0 4px 8px rgba(0,0,0,0.25);}
#page-journal .page-hero-grid, #page-journal .journal-hero-press{display:none;}

/* CTA "Contactez le studio" + email — bas gauche des bannières Studio / Services / Journal, desktop uniquement */
.hero-contact-cta{position:absolute;left:40px;bottom:28px;z-index:3;display:flex;flex-direction:column;align-items:flex-start;gap:12px;}
.hero-contact-cta::before{content:'';position:absolute;left:-24px;right:-24px;top:-20px;bottom:-20px;z-index:-1;background:radial-gradient(ellipse at bottom left, rgba(20,16,12,.5) 0%, rgba(20,16,12,.22) 55%, rgba(20,16,12,0) 80%);pointer-events:none;}
.hero-contact-cta .hcc-btn{display:inline-flex;align-items:center;gap:10px;background:var(--clay);color:#fff;border:none;font-family:'IBM Plex Mono',monospace;font-size:11.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;padding:13px 22px;border-radius:30px;box-shadow:0 6px 16px rgba(0,0,0,.25);transition:background .2s ease,transform .2s ease,box-shadow .2s ease;}
.hero-contact-cta .hcc-btn:hover{background:var(--clay-deep);transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,0,0,.3);}
.hero-contact-cta .hcc-btn:focus-visible{outline:3px solid var(--cream);outline-offset:2px;}
.hero-contact-cta .hcc-email-row{display:flex;align-items:center;gap:8px;}
.hero-contact-cta .hcc-badge{width:22px;height:22px;border-radius:50%;background:rgba(243,236,221,.15);border:1px solid rgba(243,236,221,.5);display:flex;align-items:center;justify-content:center;flex:0 0 auto;}
.hero-contact-cta .hcc-badge svg{width:11px;height:11px;color:var(--cream);}
.hero-contact-cta .hcc-email{color:var(--cream);font-size:12px;text-decoration:none;opacity:.9;transition:opacity .2s ease;}
.hero-contact-cta .hcc-email:hover{opacity:1;text-decoration:underline;}
.site[data-lang="th"] .hero-contact-cta .hcc-btn{font-family:'IBM Plex Sans Thai',sans-serif;letter-spacing:0;}
@media (max-width:900px){.hero-contact-cta{display:none!important;}}

.page-hero-grid{position:absolute;inset:0;opacity:.16;
  background-image:linear-gradient(rgba(243,236,221,.5) 1px, transparent 1px),linear-gradient(90deg, rgba(243,236,221,.5) 1px, transparent 1px);
  background-size:40px 40px;
  animation:pageHeroGridDrift 60s linear infinite;
}
@keyframes pageHeroGridDrift{from{background-position:0 0;}to{background-position:400px 400px;}}
.page-hero-skyline{position:absolute;bottom:0;right:-4px;width:340px;height:150px;}

.journal-hero-press{position:absolute;bottom:24px;right:70px;width:290px;height:172px;z-index:1;}
.journal-hero-press .clip{position:absolute;border-radius:1px;box-shadow:0 16px 32px -10px rgba(0,0,0,.5), 0 3px 8px rgba(0,0,0,.3);}
.journal-hero-press .clip-3{width:160px;height:118px;top:10px;right:0;background:linear-gradient(150deg,#E9E0CB 0%,#DED2B7 100%);transform:rotate(9deg);}
.journal-hero-press .clip-2{width:168px;height:124px;top:2px;right:14px;background:linear-gradient(150deg,#F0E7D3 0%,#E4D8BE 100%);transform:rotate(-5deg);}
.journal-hero-press .clip-1{width:198px;height:140px;top:16px;right:36px;background:linear-gradient(150deg,#FAF6EC 0%,#EFE7D4 100%);transform:rotate(-2deg);padding:16px;box-sizing:border-box;box-shadow:0 20px 38px -8px rgba(0,0,0,.55), 0 4px 10px rgba(0,0,0,.35);}
.journal-hero-press .clip-tag{position:absolute;top:14px;left:14px;width:13px;height:13px;background:var(--clay);}
.journal-hero-press .clip-sketch{position:absolute;top:32px;left:14px;width:76px;height:60px;}
.journal-hero-press .clip-lines{position:absolute;top:34px;left:98px;right:14px;}
.journal-hero-press .clip-lines span{display:block;height:2.5px;background:#8A857A;margin-bottom:6px;border-radius:1px;}
.journal-hero-press .clip-lines span:nth-child(3){width:75%;}
.journal-hero-press .clip-lines span:nth-child(5){width:60%;}
.journal-hero-press .clip-caption{position:absolute;bottom:14px;left:14px;right:14px;}
.journal-hero-press .clip-caption span{display:block;height:2.5px;background:#A89C89;margin-bottom:5px;border-radius:1px;}
.journal-hero-press .clip-caption span:nth-child(1){width:85%;}
.journal-hero-press .clip-caption span:nth-child(2){width:55%;}
.journal-hero-press .clip-pin{position:absolute;top:-8px;left:40px;width:18px;height:30px;filter:drop-shadow(0 4px 4px rgba(0,0,0,.45));z-index:5;}
@media (max-width:700px){.journal-hero-press{width:190px;height:112px;right:40px;} .journal-hero-press .clip-1{width:130px;height:92px;padding:10px;} .journal-hero-press .clip-2{width:110px;height:82px;} .journal-hero-press .clip-3{width:105px;height:78px;} .journal-hero-press .clip-sketch{width:48px;height:38px;top:20px;left:10px;} .journal-hero-press .clip-lines{top:22px;left:64px;right:10px;} .journal-hero-press .clip-caption{bottom:8px;left:10px;right:10px;}}
.page-hero-inner{position:relative;z-index:1;width:100%;}
@media (max-width:700px){.page-hero-skyline{width:220px;height:97px;}}
@media (prefers-reduced-motion: reduce){.page-hero-grid{animation:none;}}
.page-hero .eyebrow{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--clay);margin:0 0 16px;}
.page-hero h1{font-family:'Archivo Expanded',sans-serif;font-weight:700;text-transform:uppercase;letter-spacing:.02em;font-size:clamp(28px,4vw,42px);line-height:1.15;margin:0;max-width:700px;}
.page-hero .lede{font-size:17px;line-height:1.8;color:var(--cream-muted);max-width:520px;margin:18px 0 0;}

section{padding:70px 32px;}
.section-head{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:20px;margin-bottom:44px;max-width:1100px;margin-left:auto;margin-right:auto;}
.section-head h2{font-family:'Archivo Expanded',sans-serif;font-weight:700;text-transform:uppercase;font-size:24px;margin:0;}
.see-all{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--clay-deep);border-bottom:1px solid var(--clay-deep);padding-bottom:2px;}

.grid{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:44px 32px;}
.card{display:block;transition:transform .45s cubic-bezier(.22,1,.36,1);}
.card:hover{transform:translateY(-10px);}
.frame{position:relative;width:100%;aspect-ratio:4/3;overflow:hidden;background:#D8CDBA;margin-bottom:18px;transition:box-shadow .45s ease;}
.card:hover .frame{box-shadow:0 24px 40px -18px rgba(28,23,18,.45);}
.frame img{width:100%;height:100%;object-fit:cover;display:block;filter:sepia(.12) contrast(1.02);transform:scale(1.04);transition:transform .6s cubic-bezier(.22,1,.36,1), filter .6s ease;}
.card:hover .frame img{transform:scale(1.24);filter:sepia(0) contrast(1.08) saturate(1.1);}
.lens{position:absolute;border:1.5px solid var(--cream);z-index:2;opacity:0;transition:opacity .45s ease, transform .55s cubic-bezier(.34,1.56,.64,1);transform:scale(.7) rotate(-10deg);}
.lens.circle{border-radius:50%;}
.card:hover .lens{opacity:1;transform:scale(1.06) rotate(0deg);}
.tag{position:absolute;top:14px;left:14px;z-index:2;font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--cream);background:rgba(28,23,18,.72);padding:6px 10px;transition:background .3s ease;}
.card:hover .tag{background:var(--clay);}
.card-title{font-family:'Archivo Expanded',sans-serif;font-weight:700;font-size:16px;letter-spacing:.02em;text-transform:uppercase;margin-bottom:6px;transition:color .3s ease, letter-spacing .3s ease;}
.card:hover .card-title{color:var(--clay-deep);letter-spacing:.05em;}
.card-meta{font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:.04em;color:var(--ink-muted-on-paper);}

.contact-cta{background:var(--ink);color:var(--cream);text-align:center;position:relative;overflow:hidden;}
.contact-cta .cta-mark{position:absolute;top:50%;left:50%;width:480px;height:480px;transform:translate(-50%,-50%);opacity:.06;pointer-events:none;}

.contact-cta--services{padding-bottom:190px;}
.contact-cta--services .page-hero-grid{opacity:.14;}
.page-hero .cta-mark--hero{position:absolute;top:65px;right:60px;width:218px;height:150px;opacity:.3;animation:markSpinInPlace 70s linear infinite;pointer-events:none;}
@keyframes markSpinInPlace{from{transform:rotate(0deg);}to{transform:rotate(360deg);}}
@media (max-width:700px){.page-hero .cta-mark--hero{width:130px;height:90px;top:auto;bottom:10px;right:8px;opacity:.18;}}
.contact-cta--services .page-hero-skyline{position:absolute;bottom:0;right:0;width:480px;height:212px;}
.btn--emphasis{padding:24px 48px;font-size:16px;box-shadow:0 0 0 1px var(--clay), 0 0 0 6px rgba(227,83,54,.2);}
.contact-cta--services{background-image:linear-gradient(180deg, var(--paper) 0, rgba(247,244,236,.75) 70px, rgba(247,244,236,.35) 150px, rgba(247,244,236,0) 260px), url("images/css-contact-cta--services-e3646730ab.webp");background-position:top, center;background-size:100% 100%, cover;background-repeat:no-repeat, no-repeat;color:var(--ink-on-paper);margin-left:-32px;margin-right:-32px;margin-bottom:-70px;padding-bottom:70px;}
.contact-cta--services p{color:var(--ink-muted-on-paper);}
.contact-cta--services .cta-mark,.contact-cta--services .page-hero-grid,.contact-cta--services .page-hero-skyline{display:none;}
.btn--emphasis .arrow{width:18px;height:18px;}
@media (max-width:600px){.contact-cta--services .page-hero-skyline{width:300px;height:132px;}.contact-cta--services{padding-bottom:150px;}}

.contact-cta--index{overflow:hidden;padding-bottom:190px;}
.contact-cta--index .page-hero-grid{opacity:.1;-webkit-mask-image:linear-gradient(180deg, transparent 0%, #000 160px);mask-image:linear-gradient(180deg, transparent 0%, #000 160px);}
.contact-cta--index .page-hero-skyline{position:absolute;bottom:0;right:0;width:480px;height:212px;}
@media (max-width:600px){.contact-cta--index .page-hero-skyline{width:300px;height:132px;}.contact-cta--index{padding-bottom:150px;}}
.contact-cta--index .cta-mark{top:14%;left:auto;right:6%;transform:none;width:220px;height:220px;opacity:.4;animation:markSpinInPlace 80s linear infinite;}
@media (max-width:700px){.contact-cta--index .cta-mark{width:140px;height:140px;right:4%;}}
.contact-cta .wrap{max-width:640px;position:relative;z-index:1;}
.contact-cta .eyebrow{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--clay);margin:0 0 16px;}
.contact-cta .cta-divider{width:36px;height:1px;background:var(--clay);margin:0 auto 26px;}
.contact-cta h2{font-family:'Archivo Expanded',sans-serif;font-weight:700;text-transform:uppercase;font-size:28px;margin:0 0 18px;}
.contact-cta p{color:var(--cream-muted);font-size:16px;line-height:1.8;margin:0 0 28px;}
.btn{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.1em;text-transform:uppercase;padding:15px 30px;border:1px solid var(--clay);background:var(--clay);color:var(--ink);cursor:pointer;transition:background .2s ease, border-color .2s ease;display:inline-flex;align-items:center;gap:9px;}
.btn .arrow{width:14px;height:14px;flex-shrink:0;transition:transform .25s ease;}
.btn:hover .arrow{transform:translateX(4px);}
.btn:hover{background:var(--clay-deep);border-color:var(--clay-deep);color:var(--cream);}

footer{background:var(--ink);color:var(--cream-muted);padding:36px 32px;font-family:'IBM Plex Mono',monospace;font-size:12px;}
.footer-inner{max-width:1100px;margin:0 auto;}
.footer-top{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:28px;border-top:1px solid rgba(243,236,221,.1);padding-top:28px;}
.footer-brand{display:flex;flex-direction:column;gap:6px;}
.footer-brand-name{font-family:'IBM Plex Mono',monospace;font-size:13px;font-weight:600;letter-spacing:.04em;color:var(--cream);}
.footer-brand-tag{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--cream-muted);}
.footer-coords{display:block;margin-top:2px;font-size:10.5px;letter-spacing:.08em;color:var(--clay);}
.footer-email{display:block;margin-top:6px;font-size:11.5px;letter-spacing:.02em;color:var(--cream-muted);text-decoration:none;transition:color .2s ease;}
.footer-email:hover{color:var(--cream);}
.footer-nav{display:flex;flex-wrap:wrap;gap:8px 24px;padding-top:4px;}
.footer-nav a{color:var(--cream-muted);text-decoration:none;font-size:12px;letter-spacing:.04em;transition:color .2s ease;}
.footer-nav a:hover{color:var(--cream);}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-top:24px;border-top:1px solid rgba(243,236,221,.08);padding-top:18px;font-size:10.5px;letter-spacing:.04em;color:var(--cream-muted);}
.footer-legal{display:flex;gap:20px;flex-wrap:wrap;}
.footer-legal a{color:var(--cream-muted);text-decoration:none;transition:color .2s ease;}
.footer-legal a:hover{color:var(--cream);}
@media(max-width:600px){.footer-top{flex-direction:column;gap:20px;}.footer-bottom{flex-direction:column;align-items:flex-start;gap:10px;}}
.footer-links{display:flex;gap:20px;}
.socials{display:flex;gap:16px;align-items:center;}
.socials-label{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--cream-muted);margin-right:2px;}
.socials a{
  color:var(--ink);width:46px;height:46px;border-radius:50%;
  background:var(--clay);border:1px solid var(--clay);display:flex;align-items:center;justify-content:center;
  box-shadow:0 4px 14px rgba(227,83,54,.35);
  transition:background .2s ease, border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.socials a svg{width:23px;height:23px;}
.socials a:hover{background:var(--cream);border-color:var(--cream);transform:translateY(-3px) scale(1.06);box-shadow:0 8px 20px rgba(243,236,221,.3);}

.line-float{position:fixed;bottom:24px;right:24px;z-index:200;display:flex;transition:transform .2s ease;}
.line-float img{width:56px;height:56px;border-radius:15px;box-shadow:0 8px 22px rgba(28,23,18,.35);display:block;}
.line-float:hover{transform:translateY(-3px);}
@media (max-width:600px){.line-float{bottom:16px;right:16px;}.line-float img{width:50px;height:50px;}}



/* PAGE SECTION SWITCHING */
.page{display:none;}.page.active{display:block;animation:fadeIn .5s ease-in-out;}@keyframes fadeIn{from{opacity:0;}to{opacity:1;}}.page.fade-out{animation:fadeOut .3s ease-in-out forwards;}@keyframes fadeOut{from{opacity:1;}to{opacity:0;}}
.page.active{display:block;}


.hero{position:relative;overflow:hidden;color:var(--cream);background:var(--ink);
  padding-top:170px;padding-bottom:130px;
  min-height:640px;}

.hero-photo{position:absolute;inset:0;overflow:hidden;}
.hero-photo img{width:100%;height:100%;object-fit:cover;transform:scale(1);animation:kenBurns 22s ease-in-out infinite alternate;}
@keyframes kenBurns{from{transform:scale(1) translate(0,0);}to{transform:scale(1.12) translate(-1%,-1%);}}

.hero-grid{position:absolute;inset:0;opacity:.22;mix-blend-mode:overlay;
  background-image:linear-gradient(rgba(243,236,221,.6) 1px, transparent 1px),linear-gradient(90deg, rgba(243,236,221,.6) 1px, transparent 1px);
  background-size:48px 48px;
  animation:gridDrift 50s linear infinite;
}
@keyframes gridDrift{from{background-position:0 0;}to{background-position:480px 480px;}}

.hero-mark{position:absolute;top:38%;right:-8%;width:560px;height:560px;transform:translateY(-50%);opacity:.8;animation:markSpin 70s linear infinite;}
@keyframes markSpin{from{transform:translateY(-50%) rotate(0deg);}to{transform:translateY(-50%) rotate(360deg);}}

.hero-scan{position:absolute;left:0;right:0;height:1px;background:linear-gradient(90deg, transparent, var(--clay) 20%, var(--cream) 50%, var(--clay) 80%, transparent);opacity:.65;animation:scanMove 7s ease-in-out infinite;box-shadow:0 0 14px 2px var(--clay);}
@keyframes scanMove{0%,100%{top:6%;opacity:0;}8%{opacity:.65;}50%{top:92%;opacity:.65;}92%{opacity:0;}}

.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg, rgba(28,23,18,.6) 0%, rgba(28,23,18,.42) 30%, rgba(28,23,18,.6) 60%, rgba(28,23,18,.82) 78%, rgba(28,23,18,.97) 92%, rgba(28,23,18,1) 100%);z-index:2;}
.hero-inner{max-width:1100px;margin:0 auto;padding-left:32px;padding-right:32px;position:relative;z-index:3;}
.hero .eyebrow{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--clay);margin:0 0 18px;
  clip-path:inset(0 100% 0 0);animation:wipeIn .7s .15s cubic-bezier(.16,1,.3,1) forwards;}
.hero h1{font-family:'Archivo Expanded',sans-serif;font-weight:700;text-transform:uppercase;letter-spacing:.02em;font-size:clamp(34px,5vw,56px);line-height:1.08;margin:0 0 26px;max-width:760px;
  clip-path:inset(0 100% 0 0);animation:wipeIn .8s .3s cubic-bezier(.16,1,.3,1) forwards;}
.hero .lede{font-family:'IBM Plex Mono',monospace;font-size:14px;line-height:1.9;letter-spacing:.06em;text-transform:uppercase;color:var(--cream);font-weight:500;max-width:520px;margin:0 0 8px;text-shadow:0 2px 12px rgba(28,23,18,.7);
  opacity:0;animation:fadeUp .7s .6s ease forwards;}
@keyframes wipeIn{to{clip-path:inset(0 0 0 0);}}
@keyframes fadeUp{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:translateY(0);}}
.coords{font-family:'IBM Plex Mono',monospace;font-size:13px;color:var(--cream);font-weight:500;margin-top:36px;letter-spacing:.05em;opacity:0;text-shadow:0 2px 10px rgba(28,23,18,.7);animation:fadeUp .7s .8s ease forwards;}

@media (max-width:760px){
  .hero{padding-top:130px;min-height:560px;}
}

@media (prefers-reduced-motion: reduce){
  .hero-photo img,.hero-grid,.hero-mark,.hero-scan,.hero .eyebrow,.hero h1,.hero .lede,.coords{animation:none !important;clip-path:none !important;opacity:1 !important;transform:none !important;}
}

.studio-teaser{background:#EFE7D4;width:100vw;margin-right:calc(-50vw + 50%);overflow:hidden;}
.studio-inner{max-width:100%;padding:0 32px;display:grid;grid-template-columns:1.1fr .9fr;gap:60px;align-items:center;}
.studio-inner p{font-size:20px;line-height:1.85;color:var(--ink-on-paper);margin:0 0 28px;}
.studio-inner img{width:100%;aspect-ratio:3/4;object-fit:cover;filter:sepia(.1) contrast(1.02);}
.studio-link{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--clay-deep);border-bottom:1px solid var(--clay-deep);padding-bottom:2px;}
@media (max-width:800px){.studio-inner{grid-template-columns:1fr;}.studio-inner .img-col{order:-1;}}

.studio-lede{max-width:640px;margin:0 auto;padding:70px 32px 20px;font-size:19px;line-height:1.9;color:var(--ink-muted-on-paper);}
.values{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:36px;padding:20px 32px 70px;}
.value-card{border-top:2px solid var(--clay);padding-top:18px;}
.value-card .num{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--clay-deep);margin-bottom:10px;}
.value-card h3{font-family:'Archivo Expanded',sans-serif;font-weight:700;text-transform:uppercase;font-size:15px;letter-spacing:.03em;margin:0 0 10px;}
.value-card p{font-size:15px;line-height:1.7;color:var(--ink-muted-on-paper);margin:0;}
.team{background:#EFE7D4;}
.team-grid{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:36px;}
.team-grid--solo{max-width:260px;}
.team-card--solo{text-align:center;padding:28px 20px;border:1px solid var(--paper-line);}
.proj-showcase{padding:150px 0 110px;width:100vw;margin-right:calc(-50vw + 50%);}
.proj-showcase .wrap{max-width:100%;padding:0 32px 0 32px;}
.proj-filters{display:flex;gap:12px;margin-bottom:48px;flex-wrap:wrap;align-items:center;}
.proj-filter-btn{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:10px 18px;border:1px solid var(--paper-line);background:transparent;color:var(--ink-on-paper);cursor:pointer;transition:all .3s ease;border-radius:3px;}
.proj-filter-btn:hover{border-color:var(--clay);color:var(--clay);}
.proj-filter-btn.active{background:var(--clay);color:var(--paper);border-color:var(--clay);}
.proj-showcase-head{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;margin-bottom:32px;flex-wrap:wrap;}
.proj-showcase-head .eyebrow{margin:0 0 14px;}
.proj-showcase-head h2{font:400 clamp(30px,4.2vw,52px)/1.1 'Cormorant Garamond',serif;color:var(--ink-on-paper);margin:0;flex:1 1 320px;}
.proj-showcase-head h2 em{color:var(--clay);font-style:italic;}
.proj-showcase-link{font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--clay-deep);border-bottom:1px solid currentColor;padding-bottom:3px;white-space:nowrap;}
.proj-carousel{display:flex;align-items:center;gap:14px;}
.proj-mosaic{display:flex;gap:22px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-ms-overflow-style:none;}
.proj-mosaic::-webkit-scrollbar{display:none;}
.proj-mosaic-item{display:block;flex:0 0 calc((100% - 44px)/2.2);scroll-snap-align:start;transition:opacity .4s ease;}
.proj-mosaic-link{display:contents;}
.proj-carousel-arrow{flex:0 0 auto;width:52px;height:52px;border-radius:50%;border:2px solid var(--clay);background:var(--paper);display:flex;align-items:center;justify-content:center;color:var(--clay-deep);cursor:pointer;transition:background .2s ease,border-color .2s ease,color .2s ease,box-shadow .2s ease;padding:0;box-shadow:0 4px 12px rgba(227,83,54,.15);}
.proj-carousel-arrow svg{width:22px;height:22px;}
.proj-carousel-arrow:hover{border-color:var(--clay-deep);background:var(--clay);color:var(--paper);box-shadow:0 6px 16px rgba(227,83,54,.25);}
.proj-carousel-arrow[disabled]{opacity:.3;cursor:default;pointer-events:none;}
.proj-mosaic-img{position:relative;overflow:hidden;aspect-ratio:4/3;background:#c9bca7;border-radius:4px;}
.proj-mosaic-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.22,1,.36,1);}
.proj-mosaic-img::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(227,83,54,.1) 0%,transparent 100%);opacity:0;transition:opacity .4s ease;z-index:1;pointer-events:none;}
.proj-mosaic-item:hover .proj-mosaic-img img{transform:scale(1.08);}
.proj-mosaic-item:hover .proj-mosaic-img::before{opacity:1;}
.proj-mosaic-cap{padding-top:14px;}
.proj-mosaic-title{display:block;font-family:'Cormorant Garamond',serif;font-size:19px;font-style:italic;color:var(--ink-on-paper);transition:color .3s ease;}
.proj-mosaic-item:hover .proj-mosaic-title{color:var(--clay);}
.proj-mosaic-loc{display:block;font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted-on-paper);margin-top:4px;}
@media(max-width:850px){.proj-mosaic-item{flex:0 0 82%;}.proj-showcase-head{align-items:flex-start;}.proj-carousel-arrow{width:38px;height:38px;}}
.team-card img{width:100%;aspect-ratio:4/5;object-fit:cover;filter:sepia(.1) contrast(1.02);margin-bottom:16px;}
.team-card .name{font-family:'Archivo Expanded',sans-serif;font-weight:700;text-transform:uppercase;font-size:14px;letter-spacing:.03em;}
.team-card .role{font-family:'IBM Plex Mono',monospace;font-size:11.5px;color:var(--ink-muted-on-paper);margin-top:4px;}


.line-float{position:fixed;bottom:24px;right:24px;z-index:200;display:flex;transition:transform .2s ease;}
.line-float img{width:56px;height:56px;border-radius:15px;box-shadow:0 8px 22px rgba(28,23,18,.35);display:block;}
.line-float:hover{transform:translateY(-3px);}
@media (max-width:600px){.line-float{bottom:16px;right:16px;}.line-float img{width:50px;height:50px;}}


.cat-row{max-width:760px;margin:0 auto 64px;}
.cat-row-title{font-family:'Archivo Expanded',sans-serif;font-weight:700;text-transform:uppercase;letter-spacing:.02em;font-size:15px;color:var(--clay-deep);margin:0 0 20px;padding-bottom:14px;border-bottom:1px solid var(--paper-line);}
.viewer{max-width:100%;margin:0;}
.viewer-frame{display:flex;align-items:center;gap:18px;}
.viewer-frame .frame{flex:1;margin-bottom:0;}
.viewer-arrow{width:52px;height:52px;border-radius:50%;background:var(--ink);color:var(--cream);border:none;cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:background .2s ease, transform .2s ease;}
.viewer-arrow svg{width:22px;height:22px;}
.viewer-arrow:hover{background:var(--clay-deep);transform:scale(1.06);}
.viewer-info{margin-top:22px;}
.viewer-info .card-title{font-size:20px;margin-bottom:10px;}
.viewer-info p{font-size:15.5px;line-height:1.75;color:var(--ink-muted-on-paper);margin:0 0 10px;max-width:560px;}
.viewer .v-lens{opacity:1;transform:none;}
@media (max-width:600px){.viewer-frame{flex-direction:column;}.viewer-arrow{align-self:center;}}


.line-float{position:fixed;bottom:24px;right:24px;z-index:200;display:flex;transition:transform .2s ease;}
.line-float img{width:56px;height:56px;border-radius:15px;box-shadow:0 8px 22px rgba(28,23,18,.35);display:block;}
.line-float:hover{transform:translateY(-3px);}
@media (max-width:600px){.line-float{bottom:16px;right:16px;}.line-float img{width:50px;height:50px;}}


.accordion{max-width:760px;margin:0 auto;padding:20px 32px 70px;}

.section-head{max-width:1100px;margin:0 auto;padding:70px 32px 10px;text-align:center;}
.section-head .eyebrow{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--clay-deep);margin:0 0 14px;}
.section-head h2{font-family:'Archivo Expanded',sans-serif;font-weight:700;text-transform:uppercase;letter-spacing:.02em;font-size:clamp(24px,3.4vw,34px);margin:0;color:var(--ink-on-paper);}

.services-categories{max-width:1100px;margin:40px auto 0;padding:0 32px;display:flex;flex-direction:column;gap:70px;}
.svc-card{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
.svc-card--reverse .svc-media{order:2;}
.svc-card--reverse .svc-content{order:1;}
.svc-media{aspect-ratio:4/3;border-radius:2px;overflow:hidden;position:relative;background:var(--ink);}
.svc-media img{width:100%;height:100%;object-fit:cover;filter:sepia(.1) contrast(1.02);}
.svc-media--pattern{display:flex;align-items:center;justify-content:center;}
.svc-media--pattern .page-hero-grid{opacity:.35;}
.svc-mark{width:56%;opacity:.5;position:relative;}
.svc-num{font-family:'IBM Plex Mono',monospace;font-size:13px;color:var(--clay-deep);display:block;margin-bottom:14px;}
.svc-content h2{font-family:'Archivo Expanded',sans-serif;font-weight:700;text-transform:uppercase;letter-spacing:.02em;font-size:26px;margin:0 0 16px;color:var(--ink-on-paper);}
.svc-content p{font-size:15.5px;line-height:1.75;color:var(--ink-muted-on-paper);margin:0 0 20px;}
.svc-scope{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.05em;color:var(--ink-muted-on-paper);line-height:2;}
@media (max-width:760px){.svc-card{grid-template-columns:1fr;gap:24px;}.svc-card--reverse .svc-media{order:1;}.svc-card--reverse .svc-content{order:2;}}

.process{padding-bottom:20px;}
.process-steps{max-width:1100px;margin:40px auto 0;padding:0 32px;display:grid;grid-template-columns:repeat(4,1fr);gap:36px;}
.process-step{border-top:2px solid var(--clay);padding-top:18px;}
.process-num{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--clay-deep);display:block;margin-bottom:10px;}
.process-step h3{font-family:'Archivo Expanded',sans-serif;font-weight:700;text-transform:uppercase;letter-spacing:.02em;font-size:15px;margin:0 0 10px;color:var(--ink-on-paper);}
.process-step p{font-size:13.5px;line-height:1.6;color:var(--ink-muted-on-paper);margin:0;}
@media (max-width:900px){.process-steps{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.process-steps{grid-template-columns:1fr;}}

.faq{padding-bottom:20px;}
.acc-item{border-bottom:1px solid var(--paper-line);}
.acc-header{width:100%;display:flex;align-items:center;gap:22px;background:none;border:none;padding:30px 0;cursor:pointer;text-align:left;}
.acc-num{font-family:'IBM Plex Mono',monospace;font-size:13px;color:var(--clay-deep);flex-shrink:0;width:26px;}
.acc-title{font-family:'Archivo Expanded',sans-serif;font-weight:700;text-transform:uppercase;font-size:19px;letter-spacing:.02em;flex:1;color:var(--ink-on-paper);transition:color .2s ease;}
.acc-header:hover .acc-title{color:var(--clay-deep);}
.acc-chevron{width:18px;height:18px;color:var(--ink-muted-on-paper);flex-shrink:0;transition:transform .3s ease;}
.acc-item.open .acc-chevron{transform:rotate(180deg);color:var(--clay-deep);}
.acc-panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .35s ease;}
.acc-item.open .acc-panel{grid-template-rows:1fr;}
.acc-panel-inner{overflow:hidden;}
.acc-panel-inner .inner-pad{padding:0 0 30px 48px;}
.acc-panel-inner p{font-size:15.5px;line-height:1.75;color:var(--ink-muted-on-paper);margin:0 0 16px;max-width:500px;}
.acc-panel-inner .scope{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.05em;color:var(--ink-muted-on-paper);line-height:2;}
@media (max-width:600px){.acc-panel-inner .inner-pad{padding-left:0;}}

/* ===== Services page — new design (approach / accordion / material / contact) ===== */
.svc-kicker{display:flex;align-items:baseline;gap:14px;margin:0 0 26px;font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.16em;text-transform:uppercase;}
.svc-kicker-num{color:#d97b49;}
.site[data-lang="th"] .svc-kicker{font-family:'IBM Plex Sans Thai',sans-serif;letter-spacing:0;}

.svc-approach{position:relative;overflow:hidden;background:var(--paper);color:var(--ink);padding:100px 0 20px;margin:0 -32px;}
.svc-approach>.wrap{position:relative;z-index:1;}
.svc-approach-watermark{position:absolute;z-index:0;right:2vw;bottom:4px;color:rgba(244,239,231,.09);font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:500;font-size:9vw;line-height:.7;white-space:nowrap;pointer-events:none;}
.svc-approach .svc-kicker{color:rgba(244,239,231,.7);}
.svc-approach-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:30px;padding-bottom:56px;border-bottom:1px solid rgba(244,239,231,.32);}
.svc-approach-head h2{margin:0;font-family:'Cormorant Garamond',serif;font-weight:400;font-size:clamp(46px,6.6vw,86px);line-height:.86;letter-spacing:-.03em;}
.svc-approach-head h2 em{color:#d97b49;font-style:italic;}
.svc-approach-head p{max-width:320px;margin:0 0 6px;color:var(--ink);font-weight:500;font-size:15px;line-height:1.75;}
.svc-accordion{border-top:1px solid rgba(255,252,247,.5);margin-top:8px;}
#page-services .svc-accordion .acc-item{border-bottom:1px solid rgba(255,252,247,.5);transition:background .3s ease,border-color .3s ease,transform .28s cubic-bezier(.23,1,.32,1);}
#page-services .svc-accordion .acc-header{gap:20px;padding:30px 0;}
#page-services .svc-accordion .acc-item:hover,#page-services .svc-accordion .acc-item.open{border-bottom-color:rgba(255,173,126,.98);background:linear-gradient(90deg, rgba(217,123,73,.2), rgba(217,123,73,.04) 58%, transparent 88%);transform:translateX(5px);}
.svc-row-num{font-family:'IBM Plex Mono',monospace;font-size:13px;font-weight:600;color:#ffd0b3;flex-shrink:0;width:30px;padding-top:4px;}
.svc-row-body{flex:1;display:flex;flex-direction:column;gap:6px;min-width:0;}
.svc-row-title{font-family:'Cormorant Garamond',serif;font-weight:600;font-size:clamp(24px,3.1vw,39px);line-height:1.05;color:var(--ink);transition:color .2s ease;}
.svc-row-intro{font-family:'Fraunces',serif;font-weight:500;font-size:15px;line-height:1.65;color:var(--ink);}
.site[data-lang="th"] .svc-row-intro{font-family:'Noto Serif Thai',serif;line-height:1.7;}
#page-services .svc-accordion .acc-header:hover .svc-row-title{color:#d97b49;}
#page-services .svc-accordion .acc-chevron{color:#ffd0b3;}
#page-services .svc-accordion .acc-item.open .acc-chevron{color:#d97b49;}
.svc-scope-grid{display:flex;flex-wrap:wrap;gap:9px 30px;padding:0 0 30px 48px;max-width:640px;}
.svc-scope-grid span{width:calc(50% - 15px);font-family:'IBM Plex Mono',monospace;font-weight:600;font-size:13px;letter-spacing:.02em;line-height:1.65;color:var(--ink);}
.svc-scope-grid span::before{content:'—';margin-right:8px;color:#d97b49;}
.site[data-lang="th"] .svc-scope-grid span{font-family:'IBM Plex Sans Thai',sans-serif;letter-spacing:0;}
@media (max-width:600px){.svc-scope-grid{padding-left:0;}.svc-scope-grid span{width:100%;}}
@media (max-width:700px){.svc-approach{padding-top:70px;}.svc-approach-head{display:block;padding-bottom:36px;}.svc-approach-head p{margin-top:22px;max-width:none;}}
.site[data-lang="th"] .svc-approach-head h2{font-size:clamp(34px,5vw,58px);line-height:1.2;letter-spacing:0;}

.svc-material{background:#2b2a27;color:var(--ink);padding:100px 0;margin:0 -32px;}
.svc-material-inner{display:grid;grid-template-columns:minmax(260px,45%) 1fr;gap:60px;align-items:center;}
.svc-material-image{position:relative;overflow:hidden;background:var(--paper-line);aspect-ratio:4/3;border-radius:2px;}
.svc-material-image img{width:100%;height:100%;object-fit:cover;display:block;filter:sepia(.08) contrast(1.02);}
.svc-material-note{position:absolute;left:20px;bottom:16px;font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.55);}
.site[data-lang="th"] .svc-material-note{font-family:'IBM Plex Sans Thai',sans-serif;letter-spacing:0;}
.svc-material-index{display:block;margin-bottom:24px;font-family:'IBM Plex Mono',monospace;font-size:12px;color:#d97b49;}
.svc-material-lead{font-family:'Cormorant Garamond',serif;font-weight:400;font-size:clamp(33px,4vw,54px);line-height:1.04;letter-spacing:-.02em;color:var(--ink);margin:0 0 22px;}
.svc-material-lead em{color:#d97b49;font-style:italic;}
.svc-material-body{max-width:380px;color:rgba(244,239,231,.7);font-size:15px;line-height:1.8;margin:0 0 26px;}
.svc-text-link{display:inline-block;font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#d97b49;border-bottom:1px solid #d97b49;padding-bottom:2px;transition:color .2s ease;}
.svc-text-link:hover{color:var(--ink);}
.site[data-lang="th"] .svc-text-link{font-family:'IBM Plex Sans Thai',sans-serif;letter-spacing:0;text-transform:none;}
.site[data-lang="th"] .svc-material-lead{font-size:clamp(26px,3.4vw,40px);line-height:1.4;letter-spacing:0;}
@media (max-width:760px){.svc-material{padding:70px 0;}.svc-material-inner{grid-template-columns:1fr;gap:28px;}}

.svc-contact{background:#b87560;color:#1C1712;padding:110px 32px 90px;margin:0 -32px -70px;}
.svc-contact-inner{max-width:1100px;margin:0 auto;}
.svc-contact-main{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;flex-wrap:wrap;}
.svc-contact-main-eyebrow{display:block;font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:rgba(28,23,18,.62);margin:0 0 12px;}
.site[data-lang="th"] .svc-contact-main-eyebrow{font-family:'IBM Plex Sans Thai',sans-serif;letter-spacing:0;}
.svc-contact-main h2{margin:0;font-family:'Cormorant Garamond',serif;font-weight:400;font-size:clamp(42px,6.6vw,82px);line-height:.9;letter-spacing:-.03em;}
.svc-contact-main h2 em{color:var(--ink);font-style:italic;}
.site[data-lang="th"] .svc-contact-main h2{font-size:clamp(30px,5vw,50px);line-height:1.2;letter-spacing:0;}
.svc-contact-pill{position:relative;isolation:isolate;overflow:hidden;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;gap:16px;min-width:230px;min-height:76px;padding:0 30px;background:#f4efe7;border:1px solid #f4efe7;border-radius:999px;color:#1C1712;font-family:'IBM Plex Mono',monospace;font-size:11px;font-weight:600;letter-spacing:.12em;line-height:1.4;text-transform:uppercase;box-shadow:0 10px 0 rgba(28,23,18,.1),0 18px 38px rgba(28,23,18,.14);transition:color .5s ease,border-color .4s ease,transform .35s ease,box-shadow .4s ease;}
.svc-contact-pill::before{content:'';position:absolute;z-index:-1;inset:0;background:#2b2a27;transform:translateX(-101%);transition:transform 1s cubic-bezier(.23,1,.32,1);}
.svc-contact-pill:hover::before{transform:translateX(0);}
.svc-contact-pill:hover{color:var(--ink);border-color:#2b2a27;transform:translateY(-3px);box-shadow:0 12px 0 rgba(28,23,18,.16),0 20px 34px rgba(28,23,18,.22);}
.svc-contact-pill svg{transition:transform .5s ease;}
.svc-contact-pill:hover svg{transform:translate(4px,-4px);}
.site[data-lang="th"] .svc-contact-pill{font-family:'IBM Plex Sans Thai',sans-serif;letter-spacing:0;}
@media (max-width:700px){.svc-contact{padding:80px 8vw 60px;}.svc-contact-main{display:block;}.svc-contact-pill{margin-top:34px;}}


.line-float{position:fixed;bottom:24px;right:24px;z-index:200;display:flex;transition:transform .2s ease;}
.line-float img{width:56px;height:56px;border-radius:15px;box-shadow:0 8px 22px rgba(28,23,18,.35);display:block;}
.line-float:hover{transform:translateY(-3px);}
@media (max-width:600px){.line-float{bottom:16px;right:16px;}.line-float img{width:50px;height:50px;}}


.journal-grid{max-width:1100px;margin:0 auto;padding:20px 32px 70px;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:44px 32px;}
.post-card{display:block;max-width:320px;position:relative;padding:14px;margin:-14px;transition:transform .3s ease;}
.post-card::before{content:'';position:absolute;inset:0;border:1px solid var(--clay);opacity:0;transition:opacity .35s ease;pointer-events:none;}
.post-card:hover::before{opacity:1;}
@media (max-width:600px){
  .journal-grid{grid-template-columns:1fr;padding:20px 20px 50px;gap:36px;}
  .post-card{max-width:100%;}
}
.post-card:hover{transform:translateY(-6px);}
.post-card:hover img{filter:sepia(.1) contrast(1.08) saturate(1.1);}
.post-card:hover h3{color:var(--clay-deep);}
.post-card img{width:100%;aspect-ratio:4/3;object-fit:cover;filter:sepia(.1) contrast(1.02);margin-bottom:16px;}
.post-card .date{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.05em;color:var(--clay-deep);text-transform:uppercase;margin-bottom:8px;}
.post-card h3{font-family:'Archivo Expanded',sans-serif;font-weight:700;text-transform:uppercase;font-size:16px;letter-spacing:.02em;margin:0 0 10px;}
.post-card p{font-size:14.5px;line-height:1.7;color:var(--ink-muted-on-paper);margin:0;}


.line-float{position:fixed;bottom:24px;right:24px;z-index:200;display:flex;transition:transform .2s ease;}
.line-float img{width:56px;height:56px;border-radius:15px;box-shadow:0 8px 22px rgba(28,23,18,.35);display:block;}
.line-float:hover{transform:translateY(-3px);}
@media (max-width:600px){.line-float{bottom:16px;right:16px;}.line-float img{width:50px;height:50px;}}


.project-hero{position:relative;height:60vh;min-height:420px;overflow:hidden;}
.project-hero img{width:100%;height:100%;object-fit:cover;}
.project-hero .overlay{position:absolute;inset:0;background:linear-gradient(0deg, rgba(28,23,18,.85) 0%, rgba(28,23,18,.1) 55%);}
.project-hero .info{position:absolute;bottom:0;left:0;right:0;padding:40px 32px;max-width:1100px;margin:0 auto;color:var(--cream);}
.project-hero .tag{font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--clay);margin-bottom:10px;}
.project-hero h1{font-family:'Archivo Expanded',sans-serif;font-weight:700;text-transform:uppercase;font-size:clamp(26px,4vw,42px);margin:0;}
.project-body{max-width:760px;margin:0 auto;padding:60px 32px;}
.project-body p{font-size:17px;line-height:1.85;color:var(--ink-on-paper);}
.project-body h2{font-family:'Archivo Expanded',sans-serif;font-weight:700;text-transform:uppercase;letter-spacing:.02em;font-size:20px;color:var(--clay-deep);margin:38px 0 16px;}
.project-body h3{font-family:'Archivo Expanded',sans-serif;font-weight:600;font-size:15px;letter-spacing:.01em;color:var(--ink-on-paper);margin:26px 0 10px;}
.project-body ul,.project-body ol{margin:0 0 18px;padding-left:22px;font-size:17px;line-height:1.85;color:var(--ink-on-paper);}
.project-body li{margin:0 0 8px;}
.project-body li::marker{color:var(--clay);}
.project-body strong{color:var(--ink-on-paper);font-weight:700;}
.project-body a{color:var(--clay-deep);text-decoration:underline;text-underline-offset:2px;}
.project-body .legal-meta{margin:0 0 30px;font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted-on-paper);}
.project-body.faq-page{max-width:820px;}
.faq-intro{font-size:17px;line-height:1.85;color:var(--ink-on-paper);margin:0 0 34px;}
/* CTA "Contactez le studio" + email — FAQ (pas de bannière photo), desktop uniquement */
.faq-hero-cta{display:none;}
@media (min-width:901px){.faq-hero-cta{display:flex;align-items:center;gap:22px;margin:-8px 0 36px;}}
.faq-hero-cta .hcc-btn{display:inline-flex;align-items:center;gap:10px;background:var(--clay);color:#fff;font-family:'IBM Plex Mono',monospace;font-size:11.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;padding:13px 22px;border-radius:30px;transition:background .2s ease,transform .2s ease,box-shadow .2s ease;}
.faq-hero-cta .hcc-btn:hover{background:var(--clay-deep);transform:translateY(-2px);}
.faq-hero-cta .hcc-btn:focus-visible{outline:3px solid var(--clay);outline-offset:2px;}
.faq-hero-cta .hcc-email-row{display:flex;align-items:center;gap:8px;}
.faq-hero-cta .hcc-badge{width:22px;height:22px;border-radius:50%;background:rgba(227,83,54,.1);border:1px solid var(--clay);display:flex;align-items:center;justify-content:center;flex:0 0 auto;}
.faq-hero-cta .hcc-badge svg{width:11px;height:11px;color:var(--clay-deep);}
.faq-hero-cta .hcc-email{color:var(--clay-deep);font-size:12px;text-decoration:underline;text-underline-offset:2px;}
.site[data-lang="th"] .faq-hero-cta .hcc-btn{font-family:'IBM Plex Sans Thai',sans-serif;letter-spacing:0;}
.faq-list{border-top:1px solid var(--paper-line);}
.faq-item{border-bottom:1px solid var(--paper-line);}
.faq-item summary{list-style:none;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-q{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 2px;font-family:'Archivo Expanded',sans-serif;font-weight:600;font-size:16px;line-height:1.4;letter-spacing:.01em;color:var(--ink-on-paper);}
.faq-q:hover{color:var(--clay-deep);}
.faq-q-icon{position:relative;flex:none;width:20px;height:20px;}
.faq-q-icon::before,.faq-q-icon::after{content:"";position:absolute;background:var(--clay-deep);transition:transform .25s ease;}
.faq-q-icon::before{left:0;top:50%;width:100%;height:2px;transform:translateY(-50%);}
.faq-q-icon::after{top:0;left:50%;width:2px;height:100%;transform:translateX(-50%);}
.faq-item[open] .faq-q-icon::after{transform:translateX(-50%) scaleY(0);}
.faq-a{padding:0 2px 24px;}
.faq-a p{margin:0;font-size:16px;line-height:1.8;color:var(--ink-muted-on-paper);}
.faq-a a{color:var(--clay-deep);text-decoration:underline;text-underline-offset:2px;}
.faq-cta{margin-top:34px;display:inline-flex;align-items:center;gap:10px;font-family:'Archivo Expanded',sans-serif;font-weight:600;font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:var(--clay-deep);text-decoration:none;}
.faq-cta span:last-child{transition:transform .2s ease;}
.faq-cta:hover span:last-child{transform:translateX(4px);}
.article-inline-img{margin:32px 0;}
.article-inline-img img{width:100%;aspect-ratio:16/9;object-fit:cover;filter:sepia(.05) contrast(1.02);border-radius:2px;}
.article-inline-img figcaption{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--ink-muted-on-paper);letter-spacing:.02em;margin-top:10px;}
.article-header{max-width:760px;margin:0 auto;padding:70px 32px 0;}
.article-header .eyebrow{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--clay-deep);margin:0 0 14px;}
.article-header h1{font-family:'Archivo Expanded',sans-serif;font-weight:700;text-transform:uppercase;letter-spacing:.02em;font-size:clamp(26px,4vw,38px);line-height:1.2;margin:0;color:var(--ink-on-paper);}
.article-thumb{max-width:760px;margin:32px auto 0;padding:0 32px;}
.article-thumb img{width:100%;aspect-ratio:16/9;object-fit:cover;filter:sepia(.05) contrast(1.02);border-radius:2px;}
@media (max-width:600px){.article-thumb{max-width:100%;}}
.project-nav{max-width:1100px;margin:0 auto;padding:0 32px 70px;display:flex;justify-content:space-between;font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.06em;text-transform:uppercase;}
.project-nav a{color:var(--clay-deep);border-bottom:1px solid var(--clay-deep);padding-bottom:2px;}
.not-found{max-width:600px;margin:0 auto;padding:100px 32px;text-align:center;display:none;}


.line-float{position:fixed;bottom:24px;right:24px;z-index:200;display:flex;transition:transform .2s ease;}
.line-float img{width:56px;height:56px;border-radius:15px;box-shadow:0 8px 22px rgba(28,23,18,.35);display:block;}
.line-float:hover{transform:translateY(-3px);}
@media (max-width:600px){.line-float{bottom:16px;right:16px;}.line-float img{width:50px;height:50px;}}


.btn:hover{background:var(--clay-deep);border-color:var(--clay-deep);color:var(--cream);}


/* ===== LANDING HOME (Tropical Modernism Editorial) ===== */
header.is-hidden-landing{display:none;}
#mobileMenu.is-hidden-landing{display:none;}
.line-float.is-hidden-landing{display:none;}
#siteFooter.is-hidden-landing{display:none;}
.ll-shell{--ll-ink:#181713;--ll-sand:#eee9e0;--ll-paper:#f6f3ed;--ll-copper:#E35336;--ll-line:rgba(24,23,19,.22);--ll-ease-out:cubic-bezier(.23,1,.32,1);
position:fixed;inset:0;z-index:10;overflow:hidden;background:var(--ll-ink);color:var(--ll-ink);font-family:'Manrope',sans-serif;margin:0;}
.ll-shell *{box-sizing:border-box;}
.ll-grain{position:absolute;inset:0;z-index:2;pointer-events:none;opacity:.04;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.95' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.3'/%3E%3C/svg%3E");}
.ll-header{position:absolute;z-index:20;top:0;left:0;right:0;display:flex;justify-content:flex-end;align-items:center;padding:30px clamp(20px,4vw,64px);color:#fff;opacity:0;transform:translateY(-12px);transition:opacity 900ms var(--ll-ease-out),transform 900ms var(--ll-ease-out);}
.ll-header.ll-header--visible{opacity:1;transform:translateY(0);}
.ll-header-right{display:flex;align-items:center;gap:18px;}
.ll-lang-select{appearance:none;-webkit-appearance:none;background:transparent;color:#fff;border:1px solid rgba(255,255,255,.4);border-radius:2px;padding:5px 8px;font-size:9px;letter-spacing:.1em;font-family:'Manrope',sans-serif;cursor:pointer;}
.ll-lang-select option{background:var(--ll-ink);color:#fff;}
.ll-floating-menu{position:absolute;z-index:25;top:82px;right:clamp(20px,4vw,64px);display:flex;flex-direction:column;min-width:220px;padding:12px;color:var(--ll-ink);background:rgba(246,243,237,.97);border:1px solid var(--ll-line);box-shadow:0 20px 50px rgba(24,23,19,.2);animation:llMenuIn 180ms var(--ll-ease-out) both;}
.ll-floating-menu[hidden]{display:none;}
.ll-floating-menu a{display:flex;justify-content:space-between;align-items:center;padding:14px 12px;font-size:11px;font-weight:600;letter-spacing:.08em;color:var(--ll-ink);border-bottom:1px solid rgba(24,23,19,.1);}
.ll-floating-menu a:last-child{border-bottom:0;}
.ll-floating-menu a:hover{color:var(--ll-copper);}
.ll-hero{position:relative;height:100vh;height:100svh;isolation:isolate;background:#756d64;color:#fff;}
.ll-hero-image-wrap{position:absolute;inset:0;overflow:hidden;}
.ll-hero-image-blur{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;filter:blur(70px);transform:scale(1.3);}
.ll-hero-photo{position:absolute;inset:0;overflow:hidden;}
.ll-hero-image{width:100%;height:100%;object-fit:contain;object-position:center;transform-origin:center;}
.ll-hero-brand{position:absolute;z-index:2;top:0;left:0;right:0;padding:clamp(20px,4vw,48px) 16px 0;text-align:center;color:#fff;}
.ll-hero-brand__row{display:flex;align-items:center;justify-content:center;gap:clamp(10px,1.8vw,18px);}
.ll-hero-brand__mark{width:clamp(20px,2.6vw,32px);height:auto;flex-shrink:0;}
.ll-hero-brand__word{font-family:'Archivo Expanded',sans-serif;font-weight:700;font-size:clamp(20px,3.4vw,42px);letter-spacing:.02em;text-transform:uppercase;text-shadow:0 2px 20px rgba(0,0,0,.32);white-space:nowrap;}
.ll-hero-brand__tag{margin:11px 0 0;color:#EC8C79;font-size:clamp(10px,1.4vw,16px);font-weight:700;letter-spacing:.34em;text-transform:uppercase;text-shadow:0 2px 16px rgba(0,0,0,.55),0 1px 4px rgba(0,0,0,.6);}
.ll-hero-shade{position:absolute;inset:0;z-index:1;background:
  linear-gradient(180deg, rgba(18,17,14,.52) 0%, rgba(18,17,14,.04) 31%, rgba(18,17,14,.04) 58%, rgba(18,17,14,.66) 100%);}
.ll-hero-frame{position:absolute;z-index:2;inset:104px 30px 28px;pointer-events:none;border:1px solid rgba(255,255,255,.24);}
.ll-hero-frame span{position:absolute;width:8px;height:8px;border-color:var(--ll-copper);border-style:solid;}
.ll-hero-frame span:nth-child(1){top:-1px;left:-1px;border-width:1px 0 0 1px;}
.ll-hero-frame span:nth-child(2){top:-1px;right:-1px;border-width:1px 1px 0 0;}
.ll-hero-frame span:nth-child(3){bottom:-1px;left:-1px;border-width:0 0 1px 1px;}
.ll-hero-frame span:nth-child(4){bottom:-1px;right:-1px;border-width:0 1px 1px 0;}
.ll-hero-copy{position:absolute;z-index:3;left:clamp(30px,8vw,126px);bottom:clamp(115px,16vh,190px);max-width:500px;}
.ll-hero-copy::before{display:none;}
.ll-eyebrow{display:flex;align-items:center;gap:14px;margin:0 0 18px;color:#fff;font-size:12px;font-weight:700;letter-spacing:.26em;text-shadow:0 2px 14px rgba(0,0,0,.5);}
.ll-eyebrow-line{display:inline-block;width:42px;height:2px;background:var(--ll-copper);}
.ll-hero h1{max-width:560px;margin:0 0 4px;font-family:'Cormorant Garamond',serif;font-size:clamp(48px,6.4vw,96px);font-weight:500;line-height:1.03;letter-spacing:-.02em;color:#fff;text-shadow:0 8px 40px rgba(0,0,0,.6);}
.ll-hero h1 em{color:#f2812f;font-weight:400;font-style:italic;}
.ll-studio-intro h2 em{color:#e8bb95;font-weight:400;font-style:italic;}
.ll-hero-description{max-width:390px;margin:22px 0 34px;color:#fff;font-size:17px;font-weight:500;line-height:1.75;text-shadow:0 3px 18px rgba(0,0,0,.5);}
.ll-discover-button{position:relative;display:inline-flex;align-items:center;gap:20px;padding:8px 30px 8px 8px;color:#fff;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.24);border-radius:999px;text-decoration:none;cursor:pointer;text-transform:uppercase;font-size:12px;font-weight:700;letter-spacing:.16em;backdrop-filter:blur(2px);transition:gap 280ms var(--ll-ease-out),transform 200ms var(--ll-ease-out),background 280ms ease,border-color 280ms ease,box-shadow 280ms ease;}
.ll-discover-button:hover{gap:28px;background:rgba(255,255,255,.13);border-color:rgba(255,255,255,.45);box-shadow:0 10px 30px rgba(0,0,0,.25);}
.ll-discover-button:active{transform:scale(.96);}
.ll-discover-button__circle{position:relative;overflow:hidden;display:grid;place-items:center;width:68px;height:68px;color:var(--ll-ink);background:var(--ll-copper);border-radius:50%;box-shadow:0 8px 20px rgba(24,17,10,.35);transition:background 280ms ease,transform 380ms var(--ll-ease-out),box-shadow 380ms ease;}
.ll-discover-button__circle::before{content:'';position:absolute;top:-60%;left:-70%;width:45%;height:220%;background:linear-gradient(115deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.9) 50%, rgba(255,255,255,0) 100%);transform:rotate(18deg) translateX(-260%);transition:transform 750ms cubic-bezier(.22,1,.36,1);pointer-events:none;}
.ll-discover-button:hover .ll-discover-button__circle::before{transform:rotate(18deg) translateX(430%);}
.ll-discover-button:hover .ll-discover-button__circle{background:#EF9C8B;transform:rotate(-45deg) scale(1.08);box-shadow:0 14px 32px rgba(24,17,10,.45);}
.ll-discover-button:active .ll-discover-button__circle{transform:rotate(-45deg) scale(.95);}
.ll-hero-meta{position:absolute;z-index:3;right:clamp(30px,8vw,126px);bottom:38px;display:flex;align-items:center;gap:14px;color:rgba(255,255,255,.68);font-size:9px;letter-spacing:.16em;}
.ll-hero-meta__rule{width:70px;height:1px;background:rgba(255,255,255,.4);}
.ll-scroll-cue{position:absolute;z-index:3;right:32px;top:48%;display:flex;flex-direction:column;align-items:center;gap:14px;color:rgba(255,255,255,.7);font-size:8px;letter-spacing:.18em;writing-mode:vertical-rl;}
.ll-scroll-cue__line{width:1px;height:64px;background:linear-gradient(var(--ll-copper), transparent);}
.ll-studio-section{display:grid;grid-template-columns:.7fr 1.4fr 1fr;gap:6vw;min-height:520px;padding:130px clamp(30px,8vw,126px);color:var(--ll-ink);background:var(--ll-paper);}
.ll-section-index{color:var(--ll-copper);font-size:10px;letter-spacing:.17em;}
.ll-section-index span{margin-left:16px;color:#8f8b82;}
.ll-studio-intro .ll-eyebrow--dark{color:#746e65;}
.ll-studio-intro h2{margin:0;font-family:'Cormorant Garamond',serif;font-size:clamp(56px,7vw,100px);font-weight:400;line-height:.85;letter-spacing:-.05em;}
.ll-studio-detail{align-self:end;max-width:280px;padding-bottom:8px;}
.ll-studio-detail p{margin:0 0 30px;color:#6e6a62;font-size:13px;line-height:1.9;}
.ll-text-link{display:inline-flex;align-items:center;gap:10px;padding-bottom:8px;color:var(--ll-ink);border-bottom:1px solid var(--ll-copper);font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;transition:gap 180ms var(--ll-ease-out);}
.ll-text-link:hover{gap:17px;}
.ll-contact-strip{display:flex;justify-content:space-between;padding:26px clamp(30px,8vw,126px);color:#6e6a62;border-top:1px solid var(--ll-line);font-size:9px;font-weight:600;letter-spacing:.12em;background:var(--ll-paper);}
.ll-contact-strip a{display:inline-flex;align-items:center;gap:7px;color:var(--ll-ink);}
@keyframes llMenuIn{from{opacity:0;transform:translateY(-8px) scale(.97);}to{opacity:1;transform:translateY(0) scale(1);}}
@media (max-width:720px){
.ll-header{padding:22px 20px;}
.ll-hero-frame{inset:82px 16px 16px;}
.ll-hero-copy{left:26px;right:26px;bottom:115px;}
.ll-hero-description{margin:22px 0 25px;font-size:14px;}
.ll-hero-meta{left:26px;right:auto;bottom:28px;}
.ll-scroll-cue{display:none;}
.ll-studio-section{display:block;min-height:auto;padding:90px 26px 105px;}
.ll-studio-intro{margin:0 0 72px;}
.ll-studio-detail{max-width:320px;}
.ll-contact-strip{flex-direction:column;gap:14px;padding:24px 26px;line-height:1.7;}
}
@media (max-width:400px){
.ll-discover-button{gap:14px;padding:6px 22px 6px 6px;font-size:11px;letter-spacing:.12em;white-space:nowrap;}
.ll-discover-button__circle{width:54px;height:54px;}
.ll-discover-button:hover{gap:18px;}
.ll-hero h1{font-size:clamp(34px,10vw,48px);}
}
@media (max-height:520px){
.ll-hero-copy{bottom:14px;max-width:56%;}
.ll-hero-description{margin:10px 0 14px;font-size:12px;line-height:1.5;}
.ll-hero h1{font-size:clamp(24px,5vw,36px);line-height:1.08;}
.ll-eyebrow{margin:0 0 8px;font-size:10px;}
.ll-discover-button{padding:4px 16px 4px 4px;gap:10px;font-size:10px;}
.ll-discover-button__circle{width:38px;height:38px;}
.ll-discover-button:hover{gap:12px;}
.ll-hero-meta{bottom:10px;}
.ll-hero-brand{padding-top:14px;}
.ll-hero-brand__word{font-size:clamp(16px,5vw,24px);}
.ll-hero-brand__tag{margin-top:4px;}
}
@media (max-height:520px) and (min-width:600px){
.ll-hero-copy{max-width:44%;}
}
@media (prefers-reduced-motion: reduce){
.ll-header,.ll-hero-image,.ll-hero-frame,.ll-hero-copy{transition-duration:.01ms !important;animation-duration:.01ms !important;}
}
.site[data-lang="th"] .ll-eyebrow,.site[data-lang="th"] .ll-hero-meta,
.site[data-lang="th"] .ll-scroll-cue,.site[data-lang="th"] .ll-discover-button,.site[data-lang="th"] .ll-text-link,
.site[data-lang="th"] .ll-floating-menu a,.site[data-lang="th"] .ll-contact-strip{font-family:'IBM Plex Sans Thai',sans-serif;text-transform:none;letter-spacing:0;}
.site[data-lang="th"] .ll-hero-description{font-family:'IBM Plex Sans Thai',sans-serif;text-transform:none;letter-spacing:0;}
.site[data-lang="th"] .ll-hero h1{font-size:clamp(42px,5.8vw,76px);line-height:1.25;letter-spacing:0;}
.site[data-lang="th"] .ll-studio-intro h2{font-size:clamp(36px,4.4vw,58px);line-height:1.25;letter-spacing:0;}
.ll-hero2{position:relative;width:100%;height:100%;isolation:isolate;--ll2-muted:#c9bfb2;--ll2-accent-light:#e4a185;}
.ll-hero2-langbar{position:absolute;z-index:4;top:clamp(24px,4vh,42px);right:clamp(24px,3.6vw,56px);}
.ll-hero2-langbar .lang-select{background:rgba(23,21,19,.45);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);}
.ll-hero2-panel{position:absolute;z-index:3;left:0;top:clamp(36px,7vh,90px);bottom:clamp(36px,7vh,90px);width:clamp(320px,32vw,460px);display:flex;flex-direction:column;justify-content:flex-start;overflow:hidden;padding:clamp(1rem,3.6vh,2.6rem) clamp(24px,3.6vw,56px);background:var(--ll-ink);box-shadow:40px 0 90px -30px rgba(0,0,0,.55);}
.ll-hero2-panel>div:last-child{margin-top:auto;}
.ll-hero2-top{display:flex;align-items:flex-start;justify-content:flex-start;gap:1.5rem;margin-bottom:clamp(12px,2vh,26px);}
.ll-hero2-brand{display:inline-flex;align-items:center;gap:.8rem;color:#fff;}
.ll-hero2-brand-mark{width:68px;height:auto;flex-shrink:0;transition:transform .25s ease;}
.ll-hero2-brand:hover .ll-hero2-brand-mark{transform:rotate(4deg);}
.ll-hero2-brand-word-img{width:210px;height:auto;display:block;flex-shrink:0;}
.ll-hero2-copy{max-width:29rem;padding:0;}
.ll-hero2-copy h1{margin:0 0 clamp(.5rem,1.5vh,1.1rem);font-family:'Cormorant Garamond',serif;font-size:clamp(34px,7vmin,84px);font-weight:500;line-height:.94;letter-spacing:-.03em;color:#fff;}
.ll-hero2-copy h1 em{color:var(--ll2-muted);font-style:italic;font-weight:400;}
.ll-hero2-copy h1 strong{color:var(--ll-copper);font-weight:400;}
.ll-hero2-copy .ll-hero-description{max-width:26rem;margin:clamp(8px,1.5vh,18px) 0 0;font-size:clamp(13px,1.7vmin,17px);line-height:1.65;text-shadow:none;}
.ll-hero2-copy .ll-eyebrow{margin:0 0 clamp(18px,3.4vh,38px);font-size:clamp(10px,1.3vmin,12px);text-shadow:none;}
.ll-hero2-bottom{display:flex;align-items:center;flex-wrap:wrap;gap:1rem clamp(1rem,2.5vmin,2rem);}
.ll-hero2-bottom .ll-discover-button{padding:clamp(3px,.8vh,8px) clamp(14px,2.6vmin,30px) clamp(3px,.8vh,8px) clamp(3px,.8vh,8px);gap:clamp(8px,1.8vmin,20px);font-size:clamp(10px,1.25vmin,12px);}
.ll-hero2-bottom .ll-discover-button__circle{width:clamp(38px,6.5vmin,68px);height:clamp(38px,6.5vmin,68px);}
.ll-hero2-location{font-family:'Cormorant Garamond',serif;font-size:clamp(12px,1.6vmin,14px);font-style:italic;color:rgba(243,236,221,.5);}
.ll-hero2-follow{display:flex;align-items:center;gap:26px;margin:clamp(22px,4.4vh,42px) calc(-1 * clamp(24px,3.6vw,56px)) 0;padding:22px clamp(24px,3.6vw,56px);background:rgba(243,236,221,.05);border-top:1px solid rgba(243,236,221,.12);border-bottom:1px solid rgba(243,236,221,.12);}
.ll-hero2-follow-label{display:inline-flex;align-items:center;gap:16px;margin:0;font-family:'Manrope',sans-serif;font-size:16px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:rgba(243,236,221,.55);white-space:nowrap;}
.ll-hero2-follow-chev{display:inline-flex;flex:0 0 auto;color:var(--ll-copper);font-size:26px;letter-spacing:-3px;}
.ll-hero2-follow-chev span{display:inline-block;animation:llFollowChevPulse 1.4s ease-in-out infinite;}
.ll-hero2-follow-chev span:nth-child(2){animation-delay:.15s;}
@keyframes llFollowChevPulse{0%,100%{opacity:.35;}50%{opacity:1;}}
.ll-hero2-follow-sep{width:1px;height:30px;background:rgba(243,236,221,.2);flex:0 0 auto;}
.ll-hero2-socials{display:flex;gap:1rem;justify-content:center;align-items:center;}
.ll-hero2-socials a{position:relative;overflow:hidden;display:grid;place-items:center;width:clamp(42px,6.4vmin,54px);height:clamp(42px,6.4vmin,54px);border:1px solid rgba(243,236,221,.3);border-radius:50%;color:var(--ll2-muted);transition:border-color .2s ease,color .2s ease,transform .2s ease;}
.ll-hero2-socials a:hover{border-color:var(--ll-copper);color:var(--ll2-accent-light);transform:translateY(-2px);}
.ll-hero2-socials a::before{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(115deg, transparent 30%, rgba(227,83,54,.55) 48%, rgba(228,161,133,.75) 52%, transparent 70%);transform:translateX(-140%);opacity:0;pointer-events:none;}
.ll-hero2-socials a:hover::before{animation:llSocialSweep .85s ease forwards;}
.ll-hero2-socials svg{position:relative;z-index:2;width:26px;height:26px;}
@keyframes llSocialSweep{0%{transform:translateX(-140%);opacity:1;}100%{transform:translateX(140%);opacity:1;}}
.ll-hero2-visual{position:absolute;inset:0;z-index:1;height:100%;overflow:hidden;background:#756d64;}
.ll-hero2-visual-img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;filter:saturate(.9) contrast(1.02);}
.ll-hero2-visual::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(23,21,19,.4),transparent 38%),linear-gradient(180deg,rgba(23,21,19,0) 62%,rgba(23,21,19,.55) 100%);pointer-events:none;}
.ll-hero2-visual-caption{position:absolute;z-index:2;bottom:4.6rem;right:2.4rem;left:auto;text-align:right;color:rgba(244,238,229,.75);font-family:'Manrope',sans-serif;font-size:9px;letter-spacing:.26em;text-transform:uppercase;}
.ll-hero2-visual-index{position:absolute;z-index:2;right:2.4rem;bottom:2.1rem;color:rgba(244,238,229,.85);font-family:'Cormorant Garamond',serif;font-size:20px;}
body.ll-lock{overflow:hidden;height:100%;overscroll-behavior:none;}
/* Volontairement pas de overflow:hidden sur html.ll-lock : le body passe en position:fixed
   (voir script.js) ce qui bloque déjà le scroll sans lui ; appliquer aussi overflow:hidden à
   <html> pendant que la page est scrollée casse le calcul de position du header sticky. La
   classe reste posée sur <html> (utilisée par script.js pour bloquer touchmove) mais n'a plus
   d'effet CSS ici. */
.ll-hero2{filter:blur(18px);opacity:0;transform:scale(1.025);transition:filter 1.3s cubic-bezier(.45,.05,.55,.95),opacity .7s ease-out,transform 1.3s cubic-bezier(.45,.05,.55,.95);}
.ll-hero2.is-ready{filter:blur(0);opacity:1;transform:scale(1);}
@media (max-width:900px){
.ll-shell{overflow-y:auto;-webkit-overflow-scrolling:touch;}
#page-index.active .ll-shell{overflow:hidden;height:100vh;height:100dvh;}
.ll-hero2{display:flex;flex-direction:column;height:100%;min-height:100vh;min-height:100dvh;overflow:hidden;padding-top:0;}
.ll-hero2::before{content:'';position:absolute;inset:0;z-index:0;background:url('../assets/images/hero-mobile-wood-house.webp') center/cover no-repeat;}
.ll-hero2::after{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,rgba(23,21,19,.7) 0%,rgba(23,21,19,.22) 22%,rgba(23,21,19,.32) 45%,rgba(23,21,19,.82) 70%,rgba(23,21,19,.94) 100%);}
.ll-hero2-langbar{position:absolute;z-index:5;top:16px;right:1.6rem;margin:0;}
.ll-hero2-panel{position:relative;z-index:2;order:0;top:0;bottom:auto;width:100%;height:auto;overflow:visible;padding:1.6rem 1.6rem calc(env(safe-area-inset-bottom,0px) + 1rem);gap:0;box-shadow:none;background:transparent;flex:1;display:flex;flex-direction:column;justify-content:flex-start;}
.ll-hero2-panel>div:last-child{margin-top:auto;}
.ll-hero2-top{position:static;z-index:5;margin-bottom:.6rem;}
.ll-hero2-copy{padding:0;}
.ll-hero2-copy .ll-eyebrow{margin:0 0 2.2rem;}
.ll-hero2-visual{display:none;}
.ll-hero2-visual-caption{bottom:auto;top:1.4rem;right:1.4rem;}
.ll-hero2-visual-index{bottom:1.15rem;right:1.4rem;}
.ll-hero2-brand-mark{width:34px;}
.ll-hero2-brand-word-img{width:104px;}
.ll-hero2-bottom .ll-discover-button{padding:10px 30px 10px 10px;gap:16px;font-size:13px;}
.ll-hero2-bottom .ll-discover-button__circle{width:56px;height:56px;}
.ll-hero2-follow-label{font-size:9.5px;gap:7px;}
.ll-hero2-follow{margin-top:1.2rem;gap:10px;padding:12px 1.6rem;}
.ll-hero2-follow-chev{font-size:14px;}
.ll-hero2-follow-sep{display:none;}
.ll-hero2-socials{gap:.55rem;justify-content:center;align-items:center;}
.ll-hero2-socials a{width:38px;height:38px;}
.ll-hero2-socials svg{width:18px;height:18px;}
}
@media (max-width:520px){
.ll-hero2-copy h1{font-size:clamp(38px,15vw,56px);}
.ll-hero2-bottom{align-items:flex-start;flex-direction:column;gap:1rem;}
.ll-hero2-visual-caption{top:1rem;right:1rem;}
.ll-hero2-visual-index{right:1rem;bottom:.9rem;}
}
@media (prefers-reduced-motion: reduce){
.ll-hero2-brand-mark,.ll-hero2-socials a,.ll-hero2-socials a::before,.ll-hero2-follow-chev span,.ll-discover-button,.ll-discover-button__circle,.ll-discover-button__circle::before{transition-duration:.01ms !important;animation-duration:.01ms !important;}
.ll-hero2{transition:none !important;filter:none !important;opacity:1 !important;transform:none !important;}
}
.site[data-lang="th"] .ll-hero2-location,
.site[data-lang="th"] .ll-hero2-follow-label{font-family:'IBM Plex Sans Thai',sans-serif;text-transform:none;letter-spacing:0;}
.site[data-lang="th"] .ll-hero2-copy h1{font-family:'Noto Serif Thai',serif;font-size:clamp(22px,4.2vmin,46px);line-height:1.3;letter-spacing:0;margin-top:clamp(24px,4.8vh,52px);}


@media (max-width:700px){#page-journal .page-hero-header{position:relative;overflow:hidden;width:100vw;margin-left:calc(-50vw + 50%);margin-right:calc(-50vw + 50%);margin-top:-70px;padding:0;height:300px!important;max-height:300px!important;min-height:300px!important;z-index:1;width:100%;}#page-journal .page-hero-image{display:block;width:100%;height:100%;max-height:300px!important;object-fit:cover;object-position:center;margin:0;padding:0;}#page-journal .page-hero-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:flex-start;padding:80px 32px 60px;color:var(--cream);background:linear-gradient(90deg, rgba(28,23,18,0.20) 0%, rgba(28,23,18,0.05) 50%, rgba(28,23,18,0) 100%);;max-height:300px!important;}}#page-journal .page-hero-overlay .eyebrow{display:none;}#page-contact .page-hero-overlay .eyebrow{display:none;}
/* SERVICES REDESIGN */
#page-services .svc-redesign{padding:108px 0 116px;background:var(--paper);position:relative;overflow:hidden;}
#page-services .svc-intro-grid{display:grid;grid-template-columns:1fr minmax(420px,1.55fr) 1fr;gap:48px;align-items:start;margin-bottom:112px;}
#page-services .svc-intro-kicker,.svc-label,.svc-intro-overline{font:500 11px/1.4 'IBM Plex Mono',monospace;text-transform:uppercase;letter-spacing:.14em;color:var(--clay-deep);margin:0;}
#page-services .svc-intro-kicker{display:flex;gap:18px;padding-top:11px;}#page-services .svc-intro-kicker span:first-child{color:var(--clay);}
#page-services .svc-intro-overline{margin:0 0 18px;}#page-services .svc-intro-copy h2{font:700 clamp(16px,2vw,28px)/.92 'Cormorant Garamond',serif;letter-spacing:-.045em;margin:0 0 24px;color:var(--ink);}.svc-intro-copy h2 em{color:var(--clay);font-style:italic;}
#page-services .svc-intro-lede{max-width:490px;margin:0;color:var(--ink-muted-on-paper);font-size:18px;line-height:1.65;}#page-services .svc-intro-note{border-top:1px solid var(--paper-line);padding-top:14px;margin-top:44px;}#page-services .svc-intro-note p{max-width:220px;margin:10px 0 0;color:var(--ink-muted-on-paper);font-size:13px;line-height:1.65;}.svc-rule{display:block;width:42px;height:2px;background:var(--clay);}
#page-services .svc-services-layout{display:grid;grid-template-columns:28% 1fr;gap:70px;align-items:start;}#page-services .svc-services-heading{padding-top:10px;border-top:1px solid var(--paper-line);}.svc-heading-caption{font:500 12px/1.6 'IBM Plex Mono',monospace;color:var(--ink-muted-on-paper);margin:24px 0 0;}
#page-services .svc-accordion-redesign{border-top:1px solid var(--ink);}.svc-accordion-redesign .acc-item{border-bottom:1px solid var(--paper-line);}.svc-accordion-redesign .acc-header{width:100%;display:grid;grid-template-columns:48px 1fr auto;gap:18px;align-items:center;text-align:left;padding:25px 0;background:transparent;border:0;color:var(--ink);cursor:pointer;}.svc-accordion-redesign .svc-row-num{font:500 11px 'IBM Plex Mono',monospace;color:var(--clay);}.svc-accordion-redesign .svc-row-title{display:block;font:700 19px 'Archivo Expanded',sans-serif;text-transform:uppercase;letter-spacing:.015em;}.svc-accordion-redesign .svc-row-intro{display:block;margin-top:6px;color:var(--ink-muted-on-paper);font-size:14px;line-height:1.45;}.svc-accordion-redesign .svc-row-action{display:flex;align-items:center;gap:12px;font:500 10px 'IBM Plex Mono',monospace;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted-on-paper);}.svc-accordion-redesign .acc-chevron{width:16px;height:16px;transition:transform .3s ease;color:var(--clay-deep);}.svc-accordion-redesign .acc-item.open .acc-chevron{transform:rotate(180deg);}.svc-accordion-redesign .acc-panel-inner{padding:0 0 22px 66px;}.svc-accordion-redesign .svc-scope-grid{padding:0;max-width:670px;gap:10px 26px;}.svc-accordion-redesign .svc-scope-grid span{font-size:12px;color:var(--ink-muted-on-paper);font-weight:400;}.svc-accordion-redesign .svc-scope-grid span::before{color:var(--clay);}
#page-services .svc-process{padding:112px 0;background:#e9e2d4;}.svc-process-head{display:grid;grid-template-columns:28% 1fr 1fr;gap:70px;align-items:start;margin-bottom:80px;}.svc-process-head h2{font:400 clamp(40px,5vw,64px)/.95 'Cormorant Garamond',serif;letter-spacing:-.04em;margin:0;color:var(--ink);}.svc-process-head h2 em{color:var(--clay-deep);}.svc-process-head>p:last-child{margin:5px 0 0;max-width:330px;color:var(--ink-muted-on-paper);font-size:15px;line-height:1.7;}.svc-process-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid #cfc4b1;}.svc-process-steps>div{padding:24px 28px 0 0;border-right:1px solid #cfc4b1;min-height:165px;}.svc-process-steps>div:not(:first-child){padding-left:28px;}.svc-process-steps>div:last-child{border-right:0;}.svc-process-steps span{font:500 11px 'IBM Plex Mono',monospace;color:var(--clay-deep);}.svc-process-steps h3{font:700 16px 'Archivo Expanded',sans-serif;text-transform:uppercase;margin:28px 0 10px;}.svc-process-steps p{margin:0;color:var(--ink-muted-on-paper);font-size:14px;line-height:1.55;}
#page-services .svc-material-redesign{margin:0;padding:112px 0;background:#292824;color:var(--cream);}.svc-material-redesign .svc-material-inner{gap:92px;}.svc-material-redesign .svc-material-image{border-radius:0;box-shadow:18px 18px 0 rgba(227,83,54,.28);}.svc-material-redesign .svc-material-copy{padding-right:36px;}.svc-material-redesign .svc-material-lead{color:var(--cream);font-size:clamp(42px,5vw,68px);line-height:.95;}.svc-material-redesign .svc-material-lead em{color:var(--clay);}
#page-services .svc-material-redesign .svc-material-body{color:rgba(243,236,221,.7);}.svc-material-redesign .svc-material-index{color:var(--clay);font:500 11px 'IBM Plex Mono',monospace;text-transform:uppercase;letter-spacing:.1em;}.svc-image-stamp{position:absolute;right:16px;top:16px;color:var(--cream);font:500 10px 'IBM Plex Mono',monospace;letter-spacing:.12em;background:rgba(28,23,18,.72);padding:7px 9px;}
#page-services .svc-contact-redesign{margin:0;padding:105px 0 95px;background:var(--clay);}.svc-contact-redesign .svc-contact-main h2{font-size:clamp(50px,7vw,92px);}.svc-contact-redesign .svc-contact-main-eyebrow{color:rgba(28,23,18,.66);}
@media(max-width:820px){#page-services .svc-intro-grid,#page-services .svc-services-layout,.svc-process-head{grid-template-columns:1fr;gap:26px;}#page-services .svc-intro-grid{margin-bottom:78px;}#page-services .svc-intro-note{margin-top:0;}#page-services .svc-intro-note p{max-width:360px;}#page-services .svc-services-layout{gap:48px;}.svc-process-head{margin-bottom:54px;}.svc-process-head>p:last-child{max-width:520px;}.svc-process-steps{grid-template-columns:repeat(2,1fr);}.svc-process-steps>div:nth-child(2){border-right:0;}.svc-process-steps>div:nth-child(n+3){border-top:1px solid #cfc4b1;padding-top:24px;}.svc-process-steps>div:nth-child(3){padding-left:0;}}
@media(max-width:600px){#page-services .svc-redesign,#page-services .svc-process,#page-services .svc-material-redesign{padding:76px 0;}#page-services .svc-accordion-redesign .acc-header{grid-template-columns:32px 1fr;gap:12px;padding:21px 0;}.svc-accordion-redesign .svc-row-action{grid-column:2;justify-content:flex-start;margin-top:3px;}.svc-accordion-redesign .acc-panel-inner{padding-left:44px;}.svc-process-steps{grid-template-columns:1fr;}.svc-process-steps>div,.svc-process-steps>div:not(:first-child){padding:22px 0;border-right:0!important;border-bottom:1px solid #cfc4b1;min-height:0;}.svc-process-steps>div:last-child{border-bottom:0;}.svc-process-steps>div:nth-child(n+3){border-top:0;}.svc-material-redesign .svc-material-copy{padding-right:0;}.svc-material-redesign .svc-material-inner{gap:48px;}.svc-contact-redesign{padding-left:32px!important;padding-right:32px!important;}}


/* SERVICES V2 — CLIENT JOURNEY */
#page-services .svc-needs{padding:108px 0 126px;background:var(--paper);}.svc-needs-intro{display:grid;grid-template-columns:1fr minmax(420px,1.5fr) 1fr;gap:54px;align-items:start;margin-bottom:92px;}.svc-kicker,.svc-label,.svc-overline{font:500 11px/1.4 'IBM Plex Mono',monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--clay-deep);}.svc-kicker{display:flex;gap:16px;padding-top:11px;}.svc-kicker span:first-child{color:var(--clay);}.svc-overline{margin:0 0 18px;}.svc-needs-intro h2{font:400 clamp(28px,3.8vw,48px)/.88 'Cormorant Garamond',serif;letter-spacing:-.05em;color:var(--ink);margin:0 0 26px;}.svc-needs-intro h2 em{color:var(--clay);font-style:italic;}.svc-lede{font-size:18px;line-height:1.65;color:var(--ink-muted-on-paper);max-width:470px;margin:0;}.svc-intro-aside{border-top:1px solid var(--paper-line);padding-top:14px;margin-top:42px;}.svc-intro-aside span{display:block;width:44px;height:2px;background:var(--clay);}.svc-intro-aside p{font-size:13px;line-height:1.65;color:var(--ink-muted-on-paper);max-width:220px;margin:12px 0 0;}.svc-need-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}.svc-need-card{background:#eae3d6;min-height:650px;display:flex;flex-direction:column;transition:transform .4s ease,box-shadow .4s ease;}.svc-need-card:hover{transform:translateY(-8px);box-shadow:0 26px 40px -24px rgba(28,23,18,.5);}.svc-need-visual{height:255px;position:relative;overflow:hidden;background:#b6a693;}
.svc-visual-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.svc-need-visual.has-photo::before,.svc-need-visual.has-photo::after{content:none !important;}
.svc-need-visual.has-photo{background:#2a261f;}
.svc-visual-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,17,13,.05) 0%,rgba(20,17,13,.05) 55%,rgba(20,17,13,.62) 100%);pointer-events:none;}
.svc-need-card:hover .svc-visual-img{transform:scale(1.045);}
.svc-visual-img{transition:transform .5s cubic-bezier(.22,1,.36,1);}.svc-need-card--build .svc-need-visual{background:linear-gradient(145deg,#b69b81,#51453b);}.svc-need-card--transform .svc-need-visual{background:linear-gradient(145deg,#d5c9b6,#776b5c);}.svc-need-card--fit .svc-need-visual{background:linear-gradient(145deg,#8c9a8d,#29322e);}.svc-need-visual:before,.svc-need-visual:after{content:'';position:absolute;border:1px solid rgba(247,244,236,.56);}.svc-need-card--build .svc-need-visual:before{width:170px;height:220px;right:52px;bottom:-56px;transform:skewY(-12deg);background:linear-gradient(90deg,transparent 48%,rgba(247,244,236,.55) 49%,transparent 50%);}.svc-need-card--build .svc-need-visual:after{width:230px;height:1px;left:-20px;top:98px;transform:rotate(-12deg);}.svc-need-card--transform .svc-need-visual:before{width:340px;height:150px;left:-58px;bottom:-38px;transform:rotate(-28deg);background:rgba(247,244,236,.1);}.svc-need-card--transform .svc-need-visual:after{width:150px;height:150px;border-radius:50%;right:32px;top:34px;background:rgba(28,23,18,.13);}.svc-need-card--fit .svc-need-visual:before{width:180px;height:180px;right:42px;top:34px;border-radius:50%;background:rgba(247,244,236,.18);}.svc-need-card--fit .svc-need-visual:after{width:250px;height:86px;left:-35px;bottom:22px;transform:skewX(-28deg);background:rgba(28,23,18,.2);}.svc-visual-index,.svc-visual-caption{position:absolute;z-index:1;color:var(--cream);font:500 10px 'IBM Plex Mono',monospace;letter-spacing:.1em;text-transform:uppercase;text-shadow:0 2px 8px rgba(0,0,0,.35);}.svc-visual-index{top:19px;left:20px;}.svc-visual-caption{bottom:18px;left:20px;}.svc-need-content{padding:25px 24px 26px;display:flex;flex-direction:column;flex:1;}.svc-need-top{display:flex;justify-content:space-between;color:var(--clay-deep);font:500 10px 'IBM Plex Mono',monospace;text-transform:uppercase;letter-spacing:.08em;}.svc-need-content h3{font:700 22px 'Archivo Expanded',sans-serif;text-transform:uppercase;margin:30px 0 13px;color:var(--ink);}.svc-need-content p{font-size:14px;line-height:1.65;color:var(--ink-muted-on-paper);margin:0;}.svc-deliverables{display:flex;flex-wrap:wrap;gap:7px;margin-top:24px;}.svc-deliverables span{border:1px solid #c9bca7;padding:6px 8px;color:var(--ink-muted-on-paper);font:500 9px 'IBM Plex Mono',monospace;letter-spacing:.04em;}.svc-need-link{display:flex;justify-content:space-between;align-items:center;margin-top:auto;padding-top:30px;border-top:1px solid #c9bca7;color:var(--clay-deep);font:500 10px 'IBM Plex Mono',monospace;text-transform:uppercase;letter-spacing:.07em;}.svc-need-link span{font-size:18px;transition:transform .3s ease;}.svc-need-link:hover span{transform:translate(4px,-4px);}
#page-services .svc-journey{padding:112px 0;background:#292824;color:var(--cream);}.svc-journey-intro{display:grid;grid-template-columns:28% 1fr 1fr;gap:70px;align-items:start;margin-bottom:74px;}.svc-journey .svc-label{color:var(--clay);}.svc-journey-intro h2{font:400 clamp(45px,5.8vw,72px)/.9 'Cormorant Garamond',serif;letter-spacing:-.04em;margin:0;color:var(--cream);}.svc-journey-intro h2 em{color:var(--clay);}.svc-journey-intro>p:last-child{max-width:330px;margin:4px 0;color:rgba(243,236,221,.66);font-size:15px;line-height:1.7;}.svc-journey-list{border-top:1px solid rgba(243,236,221,.25);}.svc-journey-list>div{display:grid;grid-template-columns:9% 1fr;gap:20px;align-items:start;padding:27px 0;border-bottom:1px solid rgba(243,236,221,.15);}.svc-journey-list>div>span{font:500 11px 'IBM Plex Mono',monospace;color:var(--clay);}.svc-journey-list h3{font:700 16px 'Archivo Expanded',sans-serif;text-transform:uppercase;margin:0 0 8px;color:var(--cream);}.svc-journey-list p{font-size:14px;line-height:1.55;color:rgba(243,236,221,.64);margin:0;}
#page-services .svc-proof{padding:105px 0 115px;background:#e9e2d4;}.svc-proof-head{display:grid;grid-template-columns:28% 1fr;gap:70px;margin-bottom:70px;}.svc-proof-head h2{font:400 clamp(44px,5.6vw,70px)/.9 'Cormorant Garamond',serif;letter-spacing:-.04em;color:var(--ink);margin:0;}.svc-proof-head h2 em{color:var(--clay-deep);}.svc-proof-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #c9bca7;}.svc-proof-grid>div{padding:23px 24px 0 0;border-right:1px solid #c9bca7;min-height:170px;}.svc-proof-grid>div:not(:first-child){padding-left:24px;}.svc-proof-grid>div:last-child{border-right:0;}.svc-proof-grid span{font:500 11px 'IBM Plex Mono',monospace;color:var(--clay-deep);}.svc-proof-grid h3{font:700 15px 'Archivo Expanded',sans-serif;text-transform:uppercase;margin:29px 0 11px;color:var(--ink);}.svc-proof-grid p{font-size:13px;line-height:1.6;color:var(--ink-muted-on-paper);margin:0;}
#page-services .svc-contact-redesign{margin:0;padding:105px 0 95px;background:var(--clay);}.svc-contact-redesign .svc-contact-main h2{font-size:clamp(52px,7vw,94px);}.svc-contact-redesign .svc-contact-main-eyebrow{color:rgba(28,23,18,.66);}
@media(max-width:850px){.svc-needs-intro,.svc-journey-intro,.svc-proof-head{grid-template-columns:1fr;gap:28px;}.svc-intro-aside{margin-top:0;}.svc-intro-aside p{max-width:360px;}.svc-need-grid{grid-template-columns:1fr;max-width:570px;}.svc-need-card{min-height:0;}.svc-need-visual{height:300px;}.svc-journey-intro>p:last-child{max-width:520px;}.svc-proof-grid{grid-template-columns:repeat(2,1fr);}.svc-proof-grid>div:nth-child(2){border-right:0;}.svc-proof-grid>div:nth-child(n+3){border-top:1px solid #c9bca7;}.svc-proof-grid>div:nth-child(3){padding-left:0;}}
@media(max-width:600px){#page-services .svc-needs,#page-services .svc-journey,#page-services .svc-proof{padding:76px 0 84px;}#page-services .svc-journey{padding-top:28px;}.svc-needs-intro{margin-bottom:64px;}.svc-needs-intro h2{font-size:56px;}.svc-need-visual{height:230px;}.svc-proof-grid{grid-template-columns:1fr;}.svc-proof-grid>div,.svc-proof-grid>div:not(:first-child){padding:22px 0;border-right:0;border-bottom:1px solid #c9bca7;min-height:0;}.svc-proof-grid>div:nth-child(n+3){border-top:0;}.svc-proof-grid>div:last-child{border-bottom:0;}.svc-journey-list>div{grid-template-columns:40px 1fr;gap:12px;}.svc-contact-redesign{padding-left:32px!important;padding-right:32px!important;}}


/* SERVICES FINAL POLISH — FULL BLEED + HIGH CONTRAST CTA */
html, html{overflow-x:hidden;}
#page-services{padding-left:0!important;padding-right:0!important;padding-bottom:0!important;background:var(--paper);}
#page-services .svc-needs,#page-services .svc-journey,#page-services .svc-proof{width:100%;}
#page-services .svc-contact-redesign{width:100%;margin-left:0!important;margin-right:0!important;margin-bottom:0!important;padding-left:0;padding-right:0;background:var(--clay);}
#page-services .svc-contact-redesign .svc-contact-inner{width:100%;max-width:1100px;box-sizing:border-box;}
#page-services .svc-contact-redesign .svc-contact-pill{background:#1C1712;color:#FFF9EF;border:2px solid #1C1712;box-shadow:0 9px 0 rgba(28,23,18,.24),0 18px 34px rgba(28,23,18,.18);}
#page-services .svc-contact-redesign .svc-contact-pill span{color:inherit;}
#page-services .svc-contact-redesign .svc-contact-pill svg{color:#E35336;}
#page-services .svc-contact-redesign .svc-contact-pill::before{background:#FFF9EF;}
#page-services .svc-contact-redesign .svc-contact-pill:hover{color:#1C1712;border-color:#FFF9EF;box-shadow:0 11px 0 rgba(28,23,18,.22),0 20px 34px rgba(28,23,18,.24);}
#page-services .svc-contact-redesign .svc-contact-pill:hover svg{color:#C1371B;}
@media(max-width:600px){#page-services .svc-contact-redesign .svc-contact-inner{padding-left:32px;padding-right:32px;}}


/* GLOBAL BANNER POLISH — REMOVE BOTTOM HAIRLINE */
.page-hero-header{border-bottom:0!important;width:100%;}
.page-hero-header .page-hero-image{display:block;}



/* JOURNAL — BREATHING ROOM AFTER HERO */
#page-journal .journal-grid{padding-top:88px;}
@media(max-width:700px){#page-journal .journal-grid{padding-top:64px;}}
@media(max-width:600px){#page-journal .journal-grid{padding-top:52px;}}


/* Studio Page Styles - Scoped */


#page-studio .intro-grid h2,



#page-studio .value+.value{padding-left:20px}
#page-studio .value:last-child{border:0}

#page-studio .value h3{font:400 14px/1.1 var(--serif);margin:14px 0 8px}
#page-studio .value p{font-size:9px;line-height:1.45;color:var(--muted);max-width:190px;margin:0}


#page-studio .method-head .section-title{max-width:470px}



#page-studio .step+.step{padding-left:18px}
#page-studio .step h3{font:400 17px var(--serif);margin:15px 0 8px}
#page-studio .step p{font-size:9px;line-height:1.5;color:#b8ae9d;margin:0;max-width:160px}
@media(max-width:700px){
  
  #page-studio .intro-section,
  
  
  #page-studio .values,
  #page-studio .value,
  #page-studio .value:last-child,#page-studio .step:last-child{border-bottom:0}
  #page-studio .value p,#page-studio .step p{max-width:270px}
  
  
  #page-studio .step h3{font-size:19px}
}


#page-studio :root {--ink:#1c1712;--cream:#f3ecdd;--paper:#f7f4ec;--line:#ded6c3;--clay:#e35336;--muted:#716657;--serif:'Fraunces',Georgia,serif;--mono:'IBM Plex Mono',monospace}
#page-studio * {box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--serif)}.wrap{max-width:1100px;margin:0 auto;padding:0 32px}/* 01 — Hero */
#page-studio .hero {
  min-height: 620px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  background-image: url('images/css-hero-c2d32e92a8.webp');
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  color: var(--sand);
  position: relative;
  width: 100%;
  margin-left: calc(-50vw + 50%);
  margin-right: calc(-50vw + 50%);
}.hero-content{width:100%;padding:70px 0 52px}.eyebrow{font:500 10px var(--mono);letter-spacing:.15em;line-height:1.5;text-transform:uppercase;color:var(--clay);margin:0 0 17px}.hero h1{font:400 clamp(47px,7vw,88px)/.88 var(--serif);letter-spacing:-.055em;margin:0 0 24px;max-width:690px}.hero h1 em,.section-title em{font-style:italic}.hero-lede{max-width:450px;font-size:14px;line-height:1.45;color:#e2d9ca;margin:0}.hero-meta{display:flex;gap:16px;margin-top:24px;font:500 8px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:#bfb4a2}.hero-meta span+span{border-left:1px solid rgba(243,236,221,.4);padding-left:16px}
/* 02 — Introduction + valeurs */
#page-studio .intro-section {background:var(--paper);padding:68px 0 60px;width:100%}.intro-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:72px;align-items:start}.intro-grid h2,.section-title{font:400 clamp(35px,4.8vw,57px)/.95 var(--serif);letter-spacing:-.045em;margin:0}.intro-copy{font-size:14px;line-height:1.6;color:#40372d;margin:0;max-width:380px}.values{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);margin-top:48px}.value{padding:19px 20px 0 0;border-right:1px solid var(--line)}.value+.value{padding-left:20px}.value:last-child{border:0}.num{font:400 29px var(--serif);line-height:1;color:var(--clay)}.value h3{font:400 14px/1.1 var(--serif);margin:14px 0 8px}.value p{font-size:9px;line-height:1.45;color:var(--muted);max-width:190px;margin:0}
/* 03 — Méthode */
#page-studio .method-section {background:var(--ink);color:var(--cream);padding:67px 0 74px;width:100%}.method-head{display:flex;justify-content:space-between;gap:35px;align-items:end;margin-bottom:42px}.method-head .section-title{max-width:470px}.method-note{font:500 8px/1.55 var(--mono);letter-spacing:.075em;text-transform:uppercase;color:#a99f8d;max-width:190px;margin:0}.steps{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(243,236,221,.28)}.step{padding:18px 18px 0 0;border-right:1px solid rgba(243,236,221,.28)}.step+.step{padding-left:18px}.step:last-child{border:0}.step h3{font:400 17px var(--serif);margin:15px 0 8px}.step p{font-size:9px;line-height:1.5;color:#b8ae9d;margin:0;max-width:160px}
#page-studio @media(max-width:700px) {.wrap{padding:0 20px}.hero{min-height:480px}.hero-content{padding:62px 0 42px}.hero h1{font-size:52px}.hero-lede{font-size:13px;max-width:340px}.hero-meta{font-size:7px;gap:10px}.hero-meta span+span{padding-left:10px}.intro-section,.method-section{padding:54px 0}.intro-grid{grid-template-columns:1fr;gap:25px}.intro-copy{font-size:14px}.values,.steps{grid-template-columns:1fr}.value,.step{border-right:0;border-bottom:1px solid var(--line);padding:18px 0!important}.value:last-child,.step:last-child{border-bottom:0}.value p,.step p{max-width:270px}.method-head{display:block;margin-bottom:30px}.method-note{margin-top:22px}.step h3{font-size:19px}}



#page-studio :root {--ink:#1c1712;--cream:#f3ecdd;--paper:#f7f4ec;--line:#ded6c3;--clay:#e35336;--muted:#716657;--serif:'Fraunces',Georgia,serif;--mono:'IBM Plex Mono',monospace}
#page-studio * {box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--serif)}.wrap{max-width:1100px;margin:0 auto;padding:0 32px}/* 01 — Hero */
#page-studio .hero {
  min-height: 620px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  background-image: url('images/css-hero-c2d32e92a8.webp');
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  color: var(--sand);
  position: relative;
  width: 100%;
  margin-left: calc(-50vw + 50%);
  margin-right: calc(-50vw + 50%);
}.hero-content{width:100%;padding:70px 0 52px}.eyebrow{font:500 10px var(--mono);letter-spacing:.15em;line-height:1.5;text-transform:uppercase;color:var(--clay);margin:0 0 17px}.hero h1{font:400 clamp(47px,7vw,88px)/.88 var(--serif);letter-spacing:-.055em;margin:0 0 24px;max-width:690px}.hero h1 em,.section-title em{font-style:italic}.hero-lede{max-width:450px;font-size:14px;line-height:1.45;color:#e2d9ca;margin:0}.hero-meta{display:flex;gap:16px;margin-top:24px;font:500 8px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:#bfb4a2}.hero-meta span+span{border-left:1px solid rgba(243,236,221,.4);padding-left:16px}
/* 02 — Introduction + valeurs */
#page-studio .intro-section {background:var(--paper);padding:68px 0 60px;width:100%}.intro-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:72px;align-items:start}.intro-grid h2,.section-title{font:400 clamp(35px,4.8vw,57px)/.95 var(--serif);letter-spacing:-.045em;margin:0}.intro-copy{font-size:14px;line-height:1.6;color:#40372d;margin:0;max-width:380px}.values{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);margin-top:48px}.value{padding:19px 20px 0 0;border-right:1px solid var(--line)}.value+.value{padding-left:20px}.value:last-child{border:0}.num{font:400 29px var(--serif);line-height:1;color:var(--clay)}.value h3{font:400 14px/1.1 var(--serif);margin:14px 0 8px}.value p{font-size:9px;line-height:1.45;color:var(--muted);max-width:190px;margin:0}
/* 03 — Méthode */
#page-studio .method-section {background:var(--ink);color:var(--cream);padding:67px 0 74px;width:100%}.method-head{display:flex;justify-content:space-between;gap:35px;align-items:end;margin-bottom:42px}.method-head .section-title{max-width:470px}.method-note{font:500 8px/1.55 var(--mono);letter-spacing:.075em;text-transform:uppercase;color:#a99f8d;max-width:190px;margin:0}.steps{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(243,236,221,.28)}.step{padding:18px 18px 0 0;border-right:1px solid rgba(243,236,221,.28)}.step+.step{padding-left:18px}.step:last-child{border:0}.step h3{font:400 17px var(--serif);margin:15px 0 8px}.step p{font-size:9px;line-height:1.5;color:#b8ae9d;margin:0;max-width:160px}
@media(max-width:700px) {.wrap{padding:0 20px}.hero{min-height:480px}.hero-content{padding:62px 0 42px}.hero h1{font-size:52px}.hero-lede{font-size:13px;max-width:340px}.hero-meta{font-size:7px;gap:10px}.hero-meta span+span{padding-left:10px}.intro-section,.method-section{padding:54px 0}.intro-grid{grid-template-columns:1fr;gap:25px}.intro-copy{font-size:14px}.values,.steps{grid-template-columns:1fr}.value,.step{border-right:0;border-bottom:1px solid var(--line);padding:18px 0!important}.value:last-child,.step:last-child{border-bottom:0}.value p,.step p{max-width:270px}.method-head{display:block;margin-bottom:30px}.method-note{margin-top:22px}.step h3{font-size:19px}}


/* PAGE STUDIO - IMPROVED VISUALS */
#page-studio .intro-section {
  padding: 80px 0 100px;
  background: var(--paper);
}

#page-studio .intro-grid {
  display: grid;
  grid-template-columns: 0.9fr 1.3fr;
  gap: 80px;
  align-items: start;
  margin-bottom: 80px;
}

#page-studio .intro-grid-left {
  position: sticky;
  top: 80px;
}

#page-studio .intro-grid-left .eyebrow {
  font: 500 11px var(--mono);
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--clay);
  margin: 0 0 20px;
}

#page-studio .intro-grid-left h2 {
  font: 400 clamp(36px, 5.5vw, 62px) / 1.1 var(--serif);
  letter-spacing: -0.045em;
  margin: 0;
  color: var(--ink);
  font-weight: 400;
}

#page-studio .intro-grid-left h2 em {
  font-style: italic;
  color: var(--clay);
}

#page-studio .intro-grid-right {
  display: flex;
  flex-direction: column;
}

#page-studio .intro-copy {
  font-size: 16px;
  line-height: 1.7;
  color: var(--ink-muted-on-paper);
  margin: 0;
  max-width: 520px;
}

#page-studio .values {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 60px;
  border-top: 1px solid var(--paper-line);
  padding-top: 60px;
  margin-top: 0;
}

#page-studio .value {
  padding: 0;
  border: 0;
  display: flex;
  flex-direction: column;
}

#page-studio .value .num {
  font: 400 48px var(--serif);
  line-height: 1;
  color: var(--clay);
  margin-bottom: 20px;
}

#page-studio .value h3 {
  font: 400 22px var(--serif);
  margin: 0 0 14px;
  color: var(--ink);
  line-height: 1.3;
}

#page-studio .value p {
  font-size: 14px;
  line-height: 1.6;
  color: var(--ink-muted-on-paper);
  margin: 0;
  max-width: 240px;
}

@media (max-width: 950px) {
  #page-studio .intro-grid {
    grid-template-columns: 1fr;
    gap: 50px;
  }
  
  #page-studio .intro-grid-left {
    position: static;
  }
  
  #page-studio .values {
    gap: 50px;
  }
}

@media (max-width: 640px) {
  #page-studio .intro-section {
    padding: 60px 0 80px;
  }
  
  #page-studio .intro-grid-left h2 {
    font-size: 32px;
  }
  
  #page-studio .intro-copy {
    font-size: 15px;
  }
  
  #page-studio .values {
    grid-template-columns: 1fr;
    gap: 40px;
    padding-top: 40px;
  }
  
  #page-studio .value .num {
    font-size: 40px;
  }
  
  #page-studio .value h3 {
    font-size: 18px;
  }
}

/* PAGE STUDIO - ALTERNATIVE DESIGN */
#page-studio {
  --night: #101313;
  --sand: #ebe5d9;
  --orange: #d85a38;
  --grey: #9e9f95;
  --line: rgba(235,229,217,.22);
  --sans: 'DM Sans', Arial, sans-serif;
  --serif: 'Playfair Display', Georgia, serif;
  --mono: 'DM Mono', monospace;
}

#page-studio .label {
  font: 500 10px var(--mono);
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

#page-studio .orange {
  color: var(--orange);
}

#page-studio .panel {
  padding: 0;
  background: var(--sand);
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  margin-right: calc(-50vw + 50%);
}

#page-studio .hero {
  min-height: 620px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  background-image: url('images/css-hero-c2d32e92a8.webp');
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  color: var(--sand);
  position: relative;
  width: 100%;
  margin-left: calc(-50vw + 50%);
  margin-right: calc(-50vw + 50%);
}

#page-studio .hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(16, 19, 19, 0.45);
  z-index: 1;
}

#page-studio .hero-copy {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: clamp(34px, 5vw, 76px);
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 600px;
  margin: 0 auto;
}

#page-studio .mark {
  display: flex;
  justify-content: space-between;
  align-items: center;
  color: var(--sand);
}

#page-studio .mark-name {
  font: 600 13px var(--sans);
  letter-spacing: 0.17em;
  text-transform: uppercase;
}

#page-studio .mark-dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--orange);
}

#page-studio .hero-main {
  max-width: 500px;
}

#page-studio .hero-main .label {
  color: var(--orange);
  margin-bottom: 26px;
}

#page-studio .hero h1 {
  font: 400 clamp(36px, 5vw, 72px) / 0.87 var(--serif);
  letter-spacing: -0.055em;
  margin: 0;
}

#page-studio .hero h1 em {
  font-style: italic;
  color: var(--orange);
}

#page-studio .hero-bottom {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 25px;
  color: var(--grey);
  font: 400 10px / 1.5 var(--mono);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

#page-studio .hero-index {
  font-size: 17px;
  color: var(--sand);
}

#page-studio .hero-index b {
  color: var(--orange);
  font-weight: 400;
}

#page-studio .hero-visual {
  display: none;
}

#page-studio .hero-visual::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(16, 19, 19, 0.16), transparent 42%, rgba(16, 19, 19, 0.42));
}

#page-studio .visual-tag {
  position: absolute;
  z-index: 1;
  bottom: 28px;
  left: 28px;
  color: #fff;
  font: 500 10px var(--mono);
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

#page-studio .visual-square {
  position: absolute;
  z-index: 1;
  top: 30px;
  right: 30px;
  width: 72px;
  height: 72px;
  border: 1px solid rgba(255, 255, 255, 0.65);
}

#page-studio .visual-square::after {
  content: '';
  position: absolute;
  width: 14px;
  height: 14px;
  right: -1px;
  bottom: -1px;
  background: var(--orange);
}

#page-studio .intro {
  background: var(--sand);
}

#page-studio .intro-top {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(60px, 8vw, 100px);
  padding: clamp(50px, 5vw, 70px) clamp(28px, 7vw, 110px);
  border-bottom: 1px solid rgba(16, 19, 19, 0.3);
  max-width: 1200px;
  margin: 0 auto;
  align-items: center;
}

#page-studio .intro h2 {
  font: 400 clamp(32px, 5vw, 65px) / 0.91 var(--serif);
  letter-spacing: -0.055em;
  margin: 0;
  text-align: right;
  padding-right: clamp(20px, 3vw, 40px);
}

#page-studio .intro h2 em {
  font-style: italic;
}

#page-studio .intro-copy {
  max-width: 500px;
  font-size: clamp(15px, 1.8vw, 20px);
  line-height: 1.45;
  margin: 0;
  padding-left: clamp(20px, 3vw, 40px);
  color: var(--night);
  text-align: left;
}

#page-studio .intro-copy strong {
  font-weight: 500;
  color: var(--orange);
}

#page-studio .principles {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  margin: 0 auto;
  padding: clamp(50px, 5vw, 70px) clamp(28px, 7vw, 110px) clamp(10px, 1.5vw, 20px);
  max-width: 1000px;
}

#page-studio .principle {
  padding: clamp(30px, 4vw, 45px);
  min-height: 180px;
  border-right: 1px solid rgba(16, 19, 19, 0.3);
  text-align: center;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

#page-studio .principle + .principle {
  border-left: 1px solid rgba(16, 19, 19, 0.3);
}

#page-studio .principle:last-child {
  border-right: 0;
}

#page-studio .principle .number {
  font: 400 52px var(--serif);
  color: var(--orange);
  line-height: 1;
}

#page-studio .principle h3 {
  font: 500 18px / 1.1 var(--sans);
  margin: 25px auto 15px;
  max-width: 180px;
  color: var(--night);
}

#page-studio .principle p {
  font-size: 14px;
  line-height: 1.55;
  color: #60645e;
  max-width: 220px;
  margin: 0 auto;
}

#page-studio .principle:nth-child(2) {
  background: rgba(216, 90, 56, 0.08);
}

#page-studio .method {
  background: var(--night);
  color: var(--sand);
  display: flex;
  justify-content: center;
  align-items: flex-start;
  gap: clamp(40px, 6vw, 100px);
  padding: clamp(50px, 5vw, 70px) clamp(28px, 7vw, 110px);
  padding-left: clamp(80px, 12vw, 150px);
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  margin-right: calc(-50vw + 50%);
}

#page-studio .method-intro {
  flex: 0 0 auto;
  min-width: clamp(250px, 25vw, 350px);
  text-align: center;
}

#page-studio .method-intro .label {
  color: var(--orange);
  margin-bottom: 18px;
}

#page-studio .method h2 {
  font: 400 clamp(24px, 3.5vw, 40px) / 0.88 var(--serif);
  letter-spacing: -0.055em;
  margin: 0 0 0 clamp(-30px, -3vw, -50px);
}

#page-studio .method h2 em {
  font-style: italic;
  color: var(--orange);
}

#page-studio .method-intro p {
  max-width: 220px;
  color: var(--grey);
  font: 400 11px / 1.55 var(--mono);
  margin: 12px auto 0;
}

#page-studio .steps {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
  max-width: 800px;
}

#page-studio .step {
  position: relative;
  min-height: 160px;
  padding: 20px 18px 20px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  transition: background 0.25s ease;
  text-align: center;
}

#page-studio .step:hover {
  background: rgba(216, 90, 56, 0.12);
}

#page-studio .step:nth-child(2),
#page-studio .step:nth-child(3) {
  background: rgba(235, 229, 217, 0.04);
}

#page-studio .step .n {
  font: 400 14px var(--mono);
  color: var(--orange);
}

#page-studio .step h3 {
  font: 400 clamp(22px, 2.8vw, 28px) var(--serif);
  margin: 20px auto 10px;
  color: var(--sand);
}

#page-studio .step p {
  font-size: 13px;
  line-height: 1.5;
  color: var(--grey);
  max-width: 170px;
  margin: 0 auto;
}

#page-studio .step .arrow {
  position: absolute;
  right: 22px;
  top: 22px;
  color: var(--orange);
  font-size: 20px;
}

@media (max-width: 850px) {
  #page-studio .hero {
    grid-template-columns: 1fr;
  }
  
  #page-studio .hero-copy {
    min-height: 590px;
  }
  
  #page-studio .hero-visual {
  display: none;
}
  
  #page-studio .intro-top,
  #page-studio .method {
    grid-template-columns: 1fr;
    gap: 38px;
    padding: 0 25px;
  }

  #page-studio .principles {
    padding: 0 25px;
  }
  
  #page-studio .method-intro {
    position: static;
  }
  
  #page-studio .method-intro p {
    margin-top: 20px;
  }
  
  #page-studio .panel {
    padding: 65px 0;
  }
  
  #page-studio .principles {
    grid-template-columns: 1fr;
  }
  
  #page-studio .principle,
  #page-studio .principle + .principle {
    min-height: auto;
    padding: 24px 0;
    border-right: 0;
    border-bottom: 1px solid rgba(16, 19, 19, 0.3);
  }
  
  #page-studio .principle:last-child {
    border-bottom: 0;
  }
  
  #page-studio .principle h3 {
    margin: 18px 0 10px;
  }
  
  #page-studio .steps {
    grid-template-columns: 1fr;
  }
  
  #page-studio .step {
    min-height: 185px;
  }
  
  #page-studio .step h3 {
    margin-top: 35px;
  }
}

@media (max-width: 520px) {
  #page-studio .hero-copy {
    min-height: 560px;
    padding: 28px 22px;
  }
  
  #page-studio .hero h1 {
    font-size: 56px;
  }
  
  #page-studio .hero-bottom {
    display: block;
  }
  
  #page-studio .hero-bottom span {
    display: block;
    margin-top: 12px;
  }
  
  #page-studio .hero-visual {
  display: none;
}
  
  #page-studio .panel {
    padding: 54px 0;
  }

  #page-studio .intro-top,
  #page-studio .principles,
  #page-studio .method {
    padding: 0 20px;
  }

  #page-studio .intro h2 {
    font-size: 48px;
  }
  
  #page-studio .method h2 {
    font-size: clamp(28px, 9vw, 38px);
    margin-left: 0;
  }
}

/* Override proj-showcase background for page-studio */
#page-studio .proj-showcase {
  background: var(--sand);
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  margin-right: calc(-50vw + 50%);
  padding: 60px 0 80px 0;
  margin-top: 0;
  margin-bottom: 0;
}


#page-studio .proj-mosaic-item {
  flex: 0 0 calc((100% - 44px)/1.6) !important;
}

@media(max-width:850px){
#page-studio .proj-mosaic-item {
  flex: 0 0 100% !important;
}
#page-studio .proj-mosaic-img {
  aspect-ratio: 4/3.4 !important;
}
}

#page-services {
  background: #ebe5d9;
  padding-top: 60px;
  margin-top: -80px;
}

/* PAGE STUDIO - BANNER (same as other pages) */
#page-studio .page-hero-header {
  position: relative;
  overflow: hidden;
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  margin-right: calc(-50vw + 50%);
  margin-top: -70px;
  padding: 0;
  height: 300px!important;
  z-index: 1;
}

#page-studio .page-hero-image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  margin: 0;
  padding: 0;
}

/* Hide old hero styles */
#page-studio .hero {
  display: none;
}

#page-studio .hero-copy {
  display: none;
}

#page-studio .hero-visual {
  display: none;
}

#page-studio .mark,
#page-studio .mark-name,
#page-studio .mark-dot,
#page-studio .hero-main,
#page-studio .hero-bottom,
#page-studio .hero h1 {
  display: none;
}

#page-studio > .studio-banner {
  margin-top: -20px !important;
}

/* PAGE STUDIO - FULL WIDTH */
#page-studio .intro,
#page-studio .method {
  width: 100%;
  margin-left: 0;
  margin-right: 0;
  padding-left: 0;
  padding-right: 0;
}

#page-studio .intro.panel {
  padding: clamp(30px, 5vw, 80px) 0;
  background: var(--sand);
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  margin-right: calc(-50vw + 50%);
}

#page-studio .method.panel {
  padding: clamp(30px, 5vw, 80px) 0 clamp(30px, 5vw, 80px) clamp(80px, 12vw, 180px);
  background: var(--night);
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  margin-right: calc(-50vw + 50%);
}

@media (max-width: 850px) {
  #page-studio .method.panel {
    flex-direction: column !important;
    padding: 50px 25px !important;
    gap: 36px !important;
  }

  #page-studio .method-intro {
    min-width: 0 !important;
    width: 100% !important;
  }

  #page-studio .steps {
    max-width: 100% !important;
  }
}




/* ============================================================
   UX IMPROVEMENTS — PREVIEW (scroll reveal, micro-interactions,
   loading states). Generated by Claude, additive only — nothing
   above this block was modified.
   ============================================================ */

/* --- 1) Scroll reveal --- */
.reveal{opacity:0;transform:translateY(40px);transition:opacity .6s cubic-bezier(.22,1,.36,1),transform .6s cubic-bezier(.22,1,.36,1);will-change:opacity,transform;}
.reveal.is-visible{opacity:1;transform:translateY(0);}
@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1;transform:none;transition:none;}
}

/* --- 2A) Accordéon --- */
.acc-item{transition:background-color .35s ease;}
.acc-item.open{background:rgba(227,83,54,.06);}
.acc-title{transition:color .2s ease,transform .3s ease;}
.acc-item.open .acc-title{transform:translateX(6px);}
.acc-num{display:inline-block;transition:color .2s ease;}
.acc-item.open .acc-num{animation:accNumPulse .45s ease;color:var(--clay-deep);}
@keyframes accNumPulse{0%{transform:scale(1);}45%{transform:scale(1.35);}100%{transform:scale(1);}}
.acc-panel-inner .inner-pad{opacity:0;transition:opacity .35s ease .05s;}
.acc-item.open .acc-panel-inner .inner-pad{opacity:1;}

/* --- 2B) Cartes portfolio --- */
.card-title{position:relative;}
.card-title::after{content:'';position:absolute;left:0;bottom:-4px;width:100%;height:1px;background:var(--clay-deep);transform:scaleX(0);transform-origin:left;transition:transform .35s ease .08s;}
.card:hover .card-title::after{transform:scaleX(1);}
.card-meta{transition:opacity .3s ease .06s,transform .3s ease .06s;}
.card:hover .card-meta{transform:translateY(2px);}
.card:hover .frame img{transition-delay:.05s;}

/* --- 2C) Boutons --- */
.btn,.svc-split-cta{position:relative;overflow:hidden;transition:background .2s ease,border-color .2s ease,transform .15s ease,box-shadow .2s ease;}
.btn:active,.svc-split-cta:active{transform:translateY(1px);box-shadow:none;}
.btn .ripple,.svc-split-cta .ripple{position:absolute;border-radius:50%;background:rgba(255,255,255,.5);transform:scale(0);animation:rippleAnim .55s ease-out;pointer-events:none;}
@keyframes rippleAnim{to{transform:scale(2.6);opacity:0;}}

/* --- 3) Loading bar (changement de page) --- */
#pageLoaderBar{position:fixed;top:0;left:0;height:3px;width:0;background:var(--clay,#e35336);z-index:9999;opacity:0;transition:width .35s cubic-bezier(.4,0,.2,1),opacity .2s ease;pointer-events:none;}
#pageLoaderBar.is-active{opacity:1;}



/* Réduction de l'espace entre la bannière et le texte d'intro (page Studio) */
#page-studio .intro-top{padding-top:clamp(10px,1.2vw,18px);}


/* =========================================================
   Contact wizard — formulaire de contact en 3 étapes
   Design fidèle au fichier fourni par le client (palette et
   typographies propres au widget, indépendantes de la charte
   du reste du site — scopées localement, aucune variable
   globale n'est redéfinie).
   ========================================================= */
.contact-wizard{
  --cwd-canvas:var(--paper); --cwd-paper:#faf9f5; --cwd-paper-2:#f2f0ea;
  --cwd-ink:#1d211e; --cwd-muted:#777a72; --cwd-line:#d9d7cf; --cwd-line-dark:#b8b7ae;
  --cwd-clay:#b5674e; --cwd-clay-dark:#8d4938; --cwd-sage:#68796c;
  --cwd-serif:'DM Serif Display',Georgia,serif; --cwd-sans:'DM Sans',Arial,sans-serif; --cwd-mono:'DM Mono',monospace;
  --cwd-ease:cubic-bezier(.23,1,.32,1);
}
#page-contact .contact-wizard{max-width:1180px;margin:0 auto;padding:56px 32px 120px;display:grid;grid-template-columns:minmax(300px,.68fr) minmax(560px,1.32fr);gap:0;align-items:stretch;background:var(--cwd-canvas);border:0;border-radius:4px;box-shadow:none;}
.contact-wizard *{box-sizing:border-box;}
.cw-photo{position:relative;isolation:isolate;overflow:hidden;min-height:640px;display:flex;flex-direction:column;justify-content:space-between;padding:clamp(32px,4vw,52px) clamp(24px,3vw,40px);background:var(--cwd-ink);color:var(--cwd-paper);}
.cw-photo-img{position:absolute;z-index:-2;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 30%;filter:saturate(.86) contrast(1.03);}
.cw-photo::before{content:'';position:absolute;z-index:-1;inset:0;background:linear-gradient(180deg,rgba(10,11,9,.32) 0%,rgba(10,11,9,.18) 32%,rgba(10,11,9,.5) 62%,rgba(10,11,9,.94) 100%),linear-gradient(90deg,rgba(10,11,9,.52) 0%,rgba(10,11,9,.06) 70%);}
.cw-photo::after{content:'';position:absolute;left:0;bottom:0;width:5px;height:31%;background:var(--cwd-clay);}
.cw-eyebrow{position:relative;z-index:1;margin:0 0 28px;font-family:var(--cwd-mono);font-size:10px;font-weight:500;letter-spacing:.19em;text-transform:uppercase;color:#e8a087;text-shadow:0 1px 8px rgba(0,0,0,.2);}
.cw-photo-title{position:relative;z-index:1;max-width:280px;margin:0;font-family:var(--cwd-serif);font-weight:400;font-size:clamp(28px,3.2vw,42px);line-height:1.05;letter-spacing:-.03em;color:#fffefb;text-shadow:0 2px 22px rgba(0,0,0,.26);}
.cw-photo-title em{color:#e8a087;font-style:italic;}
.cw-photo-copy{position:relative;z-index:1;max-width:250px;margin:20px 0 0;font-size:12.5px;line-height:1.75;color:rgba(255,254,251,.82);text-shadow:0 1px 10px rgba(0,0,0,.25);}
.cw-photo-bottom{position:relative;z-index:1;display:flex;flex-direction:column;align-items:flex-start;gap:14px;margin-top:32px;font-family:var(--cwd-mono);font-size:9.5px;line-height:1.7;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,254,251,.92);text-shadow:0 1px 3px rgba(0,0,0,.9),0 2px 10px rgba(0,0,0,.7);}
.cw-photo-bottom strong{display:block;margin-bottom:2px;color:#fffefb;font-size:10px;letter-spacing:.04em;text-shadow:0 1px 3px rgba(0,0,0,.95),0 2px 10px rgba(0,0,0,.7);}
.cw-mail{flex-shrink:0;display:inline-flex;align-items:center;gap:10px;margin-top:4px;border:1px solid var(--cwd-clay);border-radius:999px;padding:17px 30px;color:#fffefb;background:var(--cwd-clay);text-decoration:none;white-space:nowrap;font-family:var(--cwd-sans);font-size:14px;font-weight:700;letter-spacing:.01em;text-transform:none;box-shadow:0 10px 28px rgba(181,103,78,.45),0 3px 10px rgba(0,0,0,.35);text-shadow:none;transition:background .22s var(--cwd-ease),color .22s var(--cwd-ease),border-color .22s var(--cwd-ease),transform .16s var(--cwd-ease),box-shadow .22s var(--cwd-ease);}
.cw-mail:hover{color:var(--cwd-ink);background:#fffefb;border-color:#fffefb;transform:translateY(-3px) scale(1.02);box-shadow:0 16px 36px rgba(0,0,0,.4);}
.cw-panel{position:relative;display:flex;flex-direction:column;padding:clamp(32px,5vw,76px);background:var(--cwd-paper);}
.cw-panel-header{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:43px;}
.cw-panel-title{margin:0;font-family:var(--cwd-serif);font-weight:400;font-size:clamp(38px,4vw,60px);line-height:.95;letter-spacing:-.045em;color:var(--cwd-ink);}
.cw-panel-intro{max-width:190px;margin:0 0 2px;font-family:var(--cwd-sans);font-size:11px;font-weight:400;line-height:1.6;color:var(--cwd-muted);text-align:right;}
.cw-progress{position:relative;display:flex;justify-content:space-between;margin:0 0 46px;padding:0 12px;}
.cw-progress::before{content:'';position:absolute;z-index:0;top:15px;left:34px;right:34px;height:1px;background:var(--cwd-line);}
.cw-progress-line{position:absolute;z-index:0;top:15px;left:34px;height:1px;width:0;background:var(--cwd-clay);transition:width .55s var(--cwd-ease);}
.cw-step{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:10px;color:var(--cwd-muted);background:var(--cwd-paper);font-family:var(--cwd-mono);font-size:9px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;}
.cw-step-num{width:31px;height:31px;display:grid;place-items:center;border:1px solid var(--cwd-line-dark);border-radius:50%;color:var(--cwd-muted);background:var(--cwd-paper);transition:all .35s var(--cwd-ease);}
.cw-step.active{color:var(--cwd-ink);}
.cw-step.active .cw-step-num{border-color:var(--cwd-clay);color:var(--cwd-paper);background:var(--cwd-clay);box-shadow:0 0 0 5px rgba(181,103,78,.12);}
.cw-step.done .cw-step-num{border-color:var(--cwd-sage);color:var(--cwd-paper);background:var(--cwd-sage);}
.cw-panel-wrap{position:relative;min-height:352px;}
.cw-step-panel{display:none;opacity:0;transform:translateY(13px);}
.cw-step-panel.active{display:block;animation:cwPanelIn .45s var(--cwd-ease) forwards;}
@keyframes cwPanelIn{to{opacity:1;transform:translateY(0);}}
.cw-kicker{margin:0 0 10px;font-family:var(--cwd-mono);font-size:9px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--cwd-clay);}
.cw-panel-h{margin:0 0 28px;font-family:var(--cwd-serif);font-weight:400;font-size:28px;line-height:1.05;letter-spacing:-.03em;color:var(--cwd-ink);}
.cw-field-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px 18px;}
.cw-field{position:relative;}
.cw-field.full{grid-column:1/-1;}
.cw-field label{display:block;margin:0 0 9px;font-family:var(--cwd-mono);font-size:9px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--cwd-muted);transition:color .2s ease;}
.cw-field label span{color:var(--cwd-muted);}
.cw-field:focus-within label{color:var(--cwd-clay);}
.cw-field input,.cw-field textarea{width:100%;font-family:var(--cwd-sans);font-size:14px;color:var(--cwd-ink);background:#fffefb;border:1px solid var(--cwd-line);border-radius:10px;outline:none;padding:14px 15px;transition:border-color .2s var(--cwd-ease),box-shadow .2s var(--cwd-ease),background .2s var(--cwd-ease);}
.cw-field textarea{min-height:130px;line-height:1.65;resize:vertical;}
.cw-field input::placeholder,.cw-field textarea::placeholder{color:#aaa9a1;}
.cw-field input:hover,.cw-field textarea:hover{border-color:var(--cwd-line-dark);}
.cw-field input:focus,.cw-field textarea:focus{border-color:var(--cwd-clay);background:#fff;box-shadow:0 0 0 4px rgba(181,103,78,.1);}
.cw-field.invalid input,.cw-field.invalid textarea{border-color:#bb5e4a;background:#fff8f5;}
.cw-field-msg{display:none;margin:7px 0 0;font-family:var(--cwd-sans);font-size:10px;color:var(--cwd-clay-dark);}
.cw-field.invalid .cw-field-msg{display:block;}
.cw-consent{display:flex;align-items:flex-start;gap:12px;margin-top:6px;padding:16px;border:1px solid var(--cwd-line);border-radius:12px;background:var(--cwd-paper-2);cursor:pointer;transition:border-color .22s var(--cwd-ease),background .22s var(--cwd-ease),box-shadow .22s var(--cwd-ease),transform .16s var(--cwd-ease);}
.cw-consent:hover{border-color:var(--cwd-clay);background:#f7f4ee;}
.cw-consent:active{transform:scale(.995);}
.cw-consent.checked{border-color:var(--cwd-clay);background:#fcf5ef;box-shadow:0 0 0 4px rgba(181,103,78,.08);}
.cw-consent input[type="checkbox"]{appearance:none;-webkit-appearance:none;width:17px;height:17px;min-width:17px;margin:2px 0 0;border:0;border-radius:3px;accent-color:var(--cwd-clay);background:#fff;box-shadow:0 0 0 1.5px var(--cwd-line-dark) inset;cursor:pointer;position:relative;}
.cw-consent input[type="checkbox"]:checked{background:var(--cwd-clay);box-shadow:0 0 0 1.5px var(--cwd-clay) inset;}
.cw-consent input[type="checkbox"]:checked::after{content:'';position:absolute;left:5px;top:2px;width:4px;height:8px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg);}
.cw-consent.checked input{animation:cwCheckPop .25s var(--cwd-ease);}
@keyframes cwCheckPop{0%{transform:scale(.75);}65%{transform:scale(1.2);}100%{transform:scale(1);}}
.cw-consent label{color:var(--cwd-muted);font-family:var(--cwd-sans);font-size:10px;line-height:1.7;cursor:pointer;}
.cw-consent label a{color:var(--cwd-clay-dark);}
.cw-captcha{display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:16px;margin-top:22px;padding:16px 17px;border:1px solid var(--cwd-line);border-radius:12px;background:#e8e7e0;}
.cw-captcha-label{font-family:var(--cwd-mono);font-size:9px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--cwd-muted);}
.cw-captcha-eq{display:flex;align-items:center;gap:6px;font-family:var(--cwd-serif);font-size:20px;color:var(--cwd-ink);}
.cw-captcha-refresh{border:0;padding:0;color:var(--cwd-clay);background:transparent;font-size:18px;cursor:pointer;transition:transform .25s var(--cwd-ease);}
.cw-captcha-refresh:hover{transform:rotate(90deg);}
.cw-captcha input{width:55px;font-family:var(--cwd-sans);font-size:14px;color:var(--cwd-ink);background:transparent;border:0;border-bottom:1px solid var(--cwd-line-dark);border-radius:0;outline:none;padding:5px 1px;}
.cw-captcha input:focus{border-color:var(--cwd-clay);}
.cw-captcha-status{justify-self:end;font-family:var(--cwd-mono);font-size:9px;font-weight:500;color:var(--cwd-muted);}
.cw-captcha-status.ok{color:var(--cwd-sage);}
.cw-captcha-status.bad{color:var(--cwd-clay-dark);}
.cw-delivery-status{min-height:20px;margin:0 0 0;font-family:var(--cwd-mono);font-size:9px;line-height:1.5;letter-spacing:.08em;text-transform:uppercase;color:var(--cwd-muted);}
.cw-delivery-status.pending{color:var(--cwd-clay);}
.cw-actions{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:32px;}
.cw-btn{min-width:152px;text-align:center;border:1px solid var(--cwd-ink);border-radius:999px;padding:15px 23px;color:var(--cwd-paper);background:var(--cwd-ink);font-family:var(--cwd-mono);font-size:10px;font-weight:500;letter-spacing:.13em;text-transform:uppercase;cursor:pointer;transition:color .22s var(--cwd-ease),background .22s var(--cwd-ease),border-color .22s var(--cwd-ease),transform .16s var(--cwd-ease),box-shadow .22s var(--cwd-ease);}
.cw-btn:hover:not(:disabled){color:var(--cwd-ink);background:var(--cwd-paper);box-shadow:5px 5px 0 var(--cwd-clay);transform:translateY(-2px);}
.cw-btn:active:not(:disabled){transform:scale(.98);}
.cw-btn:disabled{cursor:not-allowed;opacity:.42;}
.cw-btn.secondary{min-width:auto;border-color:var(--cwd-line-dark);color:var(--cwd-muted);background:transparent;}
.cw-btn.secondary:hover{color:var(--cwd-ink);border-color:var(--cwd-ink);background:transparent;box-shadow:none;transform:none;}
.cw-step-note{flex:1;margin:0;font-family:var(--cwd-sans);font-size:10px;line-height:1.5;color:var(--cwd-muted);text-align:center;}
.cw-form-error{min-height:20px;margin:12px 0 0;font-family:var(--cwd-sans);font-size:11px;color:var(--cwd-clay-dark);}
.cw-confirmation{display:none;position:relative;min-height:470px;padding:clamp(28px,5vw,68px) clamp(22px,5vw,64px);overflow:hidden;background:var(--cwd-paper);}
.cw-confirmation.show{display:block;animation:cwConfirmIn .65s var(--cwd-ease) both;}
@keyframes cwConfirmIn{from{opacity:0;transform:translateY(18px);}to{opacity:1;transform:translateY(0);}}
.cw-confirmation::before{content:'03';position:absolute;top:20px;right:32px;color:#e9e6dd;font-family:var(--cwd-serif);font-size:130px;line-height:.8;letter-spacing:-.08em;pointer-events:none;}
.cw-confirm-head{position:relative;z-index:1;display:flex;align-items:flex-start;gap:18px;margin-bottom:34px;}
.cw-confirm-check{width:54px;height:54px;flex:0 0 54px;display:grid;place-items:center;border:1px solid var(--cwd-sage);border-radius:50%;color:var(--cwd-paper);background:var(--cwd-sage);font-size:24px;animation:cwCheckPop .5s var(--cwd-ease) .18s both;}
.cw-confirm-kicker{margin:3px 0 8px;font-family:var(--cwd-mono);font-size:9px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--cwd-clay);}
.cw-confirm-title{margin:0;font-family:var(--cwd-serif);font-weight:400;font-size:clamp(34px,4vw,53px);line-height:.95;letter-spacing:-.045em;color:var(--cwd-ink);}
.cw-confirm-intro{position:relative;z-index:1;max-width:470px;margin:0 0 27px;font-family:var(--cwd-sans);font-size:12px;line-height:1.7;color:var(--cwd-muted);}
.cw-summary-grid{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:30px;}
.cw-summary-card{padding:15px 16px;border:1px solid var(--cwd-line);border-radius:10px;background:#fffefb;}
.cw-summary-card.project{grid-column:1/-1;}
.cw-summary-label{display:block;margin-bottom:7px;font-family:var(--cwd-mono);font-size:8px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--cwd-muted);}
.cw-summary-value{display:block;overflow:hidden;font-family:var(--cwd-sans);color:var(--cwd-ink);font-size:13px;font-weight:600;text-overflow:ellipsis;white-space:nowrap;}
.cw-summary-card.project .cw-summary-value{white-space:normal;line-height:1.45;}
.cw-confirm-footer{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:22px;border-top:1px solid var(--cwd-line);}
.cw-confirm-ref{font-family:var(--cwd-mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--cwd-muted);}
.cw-confirm-ref strong{display:block;margin-top:6px;color:var(--cwd-ink);font-weight:500;letter-spacing:.03em;}
.cw-restart{border:1px solid var(--cwd-ink);border-radius:999px;padding:13px 19px;color:var(--cwd-paper);background:var(--cwd-ink);font-family:var(--cwd-mono);font-size:9px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:background .2s var(--cwd-ease),color .2s var(--cwd-ease),transform .16s var(--cwd-ease);}
.cw-restart:hover{color:var(--cwd-ink);background:var(--cwd-paper);transform:translateY(-2px);}
.site[data-lang="th"] .cw-photo-copy,.site[data-lang="th"] .cw-consent label,.site[data-lang="th"] .cw-confirm-intro{font-family:'Noto Serif Thai',serif;line-height:1.9;}
.site[data-lang="th"] .cw-panel-h,.site[data-lang="th"] .cw-confirm-title,.site[data-lang="th"] .cw-photo-title{font-family:'Chakra Petch',sans-serif;letter-spacing:0;}
@media(max-width:900px){#page-contact .contact-wizard{display:block;padding:24px 18px 30px;}.cw-photo{min-height:450px;}.cw-workspace,.cw-panel{min-height:auto;}}
@media(max-width:590px){#page-contact .contact-wizard{padding:14px 10px 22px;border-radius:3px;}.cw-photo{min-height:430px;padding:40px 28px;}.cw-mail{margin-top:2px;}.cw-panel{padding:34px 22px 30px;}.cw-panel-header{display:block;margin-bottom:35px;}.cw-panel-intro{max-width:260px;margin-top:14px;text-align:left;}.cw-progress{padding:0;}.cw-progress::before,.cw-progress-line{left:22px;right:22px;}.cw-step{font-size:8px;}.cw-step-num{width:27px;height:27px;}.cw-field-grid{grid-template-columns:1fr;gap:20px;}.cw-field.full{grid-column:auto;}.cw-captcha{grid-template-columns:1fr auto;gap:12px;}.cw-captcha-label{grid-column:1/-1;}.cw-captcha-status{grid-column:1/-1;justify-self:start;}.cw-actions{flex-direction:column-reverse;align-items:stretch;}.cw-btn{width:100%;}.cw-confirmation{min-height:540px;padding:34px 22px 28px;}.cw-confirmation::before{font-size:96px;right:15px;}.cw-summary-grid{grid-template-columns:1fr;}.cw-summary-card.project{grid-column:auto;}.cw-confirm-footer{display:block;}.cw-restart{width:100%;margin-top:18px;}.cw-confirm-ref{line-height:1.5;}}
@media (prefers-reduced-motion: reduce){.contact-wizard *,.contact-wizard *::before,.contact-wizard *::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;}}

/* --- Cookie consent modal (GA4 gate) --- */
.footer-cookie-link{font:inherit;font-size:inherit;letter-spacing:inherit;color:var(--cream-muted);background:none;border:none;padding:0;cursor:pointer;text-decoration:none;transition:color .2s ease;}
.footer-cookie-link:hover{color:var(--cream);}
.consent-overlay{position:fixed;inset:0;z-index:299;background:rgba(12,10,8,.6);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);opacity:0;transition:opacity .35s ease;}
.consent-overlay.is-visible{opacity:1;}
.consent-banner{position:fixed;left:50%;top:50%;z-index:300;width:min(560px,calc(100% - 48px));max-height:calc(100% - 48px);overflow-y:auto;background:var(--ink);border:1px solid rgba(243,236,221,.14);border-radius:14px;box-shadow:0 30px 70px rgba(0,0,0,.4);transform:translate(-50%,-50%) scale(.96);opacity:0;transition:transform .35s cubic-bezier(.22,1,.36,1),opacity .35s ease;}
.consent-banner.is-visible{transform:translate(-50%,-50%) scale(1);opacity:1;}
.consent-banner-inner{margin:0;padding:38px 38px 32px;display:flex;flex-direction:column;align-items:stretch;gap:24px;}
.consent-banner-text{margin:0;flex:none;font-family:'Fraunces',serif;font-size:16.5px;line-height:1.72;color:var(--cream-muted);}
.consent-banner-text a{color:var(--cream);text-decoration:underline;text-underline-offset:2px;}
.consent-banner-actions{display:flex;gap:12px;flex:none;justify-content:flex-end;}
.consent-btn{font-family:'IBM Plex Mono',monospace;font-size:11.5px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;padding:13px 26px;border-radius:999px;cursor:pointer;transition:transform .18s ease,background .2s ease,color .2s ease;white-space:nowrap;}
.consent-btn-decline{background:none;border:1px solid rgba(243,236,221,.35);color:var(--cream-muted);}
.consent-btn-decline:hover{border-color:var(--cream);color:var(--cream);}
.consent-btn-accept{background:var(--clay);border:1px solid var(--clay);color:var(--ink);}
.consent-btn-accept:hover{background:var(--clay-deep);border-color:var(--clay-deep);transform:translateY(-1px);}
@media(max-width:700px){.consent-banner{width:calc(100% - 32px);}.consent-banner-inner{padding:28px 22px 22px;gap:20px;}.consent-banner-actions{flex-direction:column-reverse;}.consent-btn{width:100%;text-align:center;}}
@media (prefers-reduced-motion: reduce){.consent-banner,.consent-overlay{transition:none;}}

/* Studio — visuels de la mosaïque réduits de 25 % (desktop) */
@media (min-width:851px){
#page-studio .proj-mosaic-item {
  flex: 0 0 calc((100% - 44px) * 0.46875) !important;
}
}

/* Contact : CTA e-mail — ajustement petits écrans (adresse e-mail plus longue que l’ancien libellé) */
@media (max-width:360px){.cw-mail{padding:15px 20px;font-size:13px;gap:8px;}}

/* Studio — CTA « Discuter d'un projet similaire » rendu plus visible (bouton plein) */
.proj-showcase-link{display:inline-flex;align-items:center;gap:10px;padding:16px 28px;border:1px solid var(--clay);border-radius:999px;background:var(--clay);color:#fffefb;font-family:'IBM Plex Mono',monospace;font-size:12.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;white-space:nowrap;box-shadow:0 10px 24px rgba(227,83,54,.28),0 2px 6px rgba(0,0,0,.08);transition:background .22s ease,border-color .22s ease,transform .16s ease,box-shadow .22s ease;}
.proj-showcase-link:hover,.proj-showcase-link:focus-visible{background:var(--clay-deep);border-color:var(--clay-deep);color:#fffefb;transform:translateY(-2px);box-shadow:0 14px 30px rgba(227,83,54,.36),0 3px 8px rgba(0,0,0,.1);}
@media(max-width:850px){.proj-showcase-link{padding:14px 22px;font-size:11.5px;}}

/* FAQ banner: CTA lisible sur image chargée */
#page-faq .hero-contact-cta::before{left:-60px;right:-90px;top:-60px;bottom:-60px;background:radial-gradient(ellipse 60% 60% at 30% 70%,rgba(20,16,12,.62) 0%,rgba(20,16,12,.32) 50%,rgba(20,16,12,0) 100%)}
#page-faq .hero-contact-cta .hcc-email{opacity:1;font-weight:500;text-shadow:0 1px 6px rgba(0,0,0,.65)}
/* FAQ banner: CTA aussi visible sur mobile/tablette (≤900px) */
@media (max-width:900px){
#page-faq .hero-contact-cta{display:flex!important;left:16px;bottom:14px;gap:8px}
#page-faq .hero-contact-cta .hcc-btn{font-size:10.5px;padding:10px 16px;letter-spacing:.08em}
#page-faq .hero-contact-cta .hcc-email{font-size:11.5px}
#page-faq .hero-contact-cta::before{left:-30px;right:-50px;top:-30px;bottom:-30px}
}
/* Landing mobile : barre « Suivez-nous » plus lisible (label, chevrons, icônes) */
@media (max-width:900px){
.ll-hero2-follow{padding:14px 1.2rem;gap:12px}
.ll-hero2-follow-label{font-size:11px;gap:8px;letter-spacing:.14em;color:rgba(243,236,221,.8)}
.ll-hero2-follow-chev{font-size:20px}
.ll-hero2-socials{gap:.55rem}
.ll-hero2-socials a{width:42px;height:42px}
.ll-hero2-socials svg{width:21px;height:21px}
}
@media (min-width:400px) and (max-width:900px){
.ll-hero2-follow{padding:16px 1.6rem;gap:14px}
.ll-hero2-follow-label{font-size:12px;gap:9px}
.ll-hero2-follow-chev{font-size:23px}
.ll-hero2-socials{gap:.7rem}
.ll-hero2-socials a{width:46px;height:46px}
.ll-hero2-socials svg{width:23px;height:23px}
}

/* ===== Mobile : zones de toucher ≥44px (zone invisible, sans changer l'aspect) ===== */
@media (max-width:900px){
.burger::before,.lang-dd-toggle::before,.logo::before,.ll-hero2-brand::before{content:"";position:absolute;pointer-events:auto}
.burger::before{inset:-12px -9px}
.lang-dd-toggle::before{inset:-8px -6px}
.logo{position:relative}
.logo::before{inset:-14px -6px}
.ll-hero2-brand{position:relative}
.ll-hero2-brand::before{inset:-10px -6px}
.footer-email{display:inline-block;padding:15px 0;margin:-9px 0}
.footer-nav a,.footer-legal a{display:inline-block;padding:12px 0}
.footer-cookie-link{padding:16px 0}
.socials a{min-width:44px;min-height:44px}
.proj-carousel-arrow{min-width:44px;min-height:44px}
.hero-contact-cta .hcc-btn{min-height:44px}
.hero-contact-cta .hcc-email{display:inline-block;padding:14px 0;margin:-14px 0}
.faq-cta a{display:inline-block;padding:14px 0}
}
/* ===== Mobile : textes plus lisibles (≥12px, 11px pour les libellés compacts du formulaire) ===== */
@media (max-width:900px){
.mm-social-label,.proj-mosaic-loc,.footer-coords,.cw-eyebrow,.footer-email,.footer-brand-tag,.socials-label,.svc-split-eyebrow,.svc-split-cat,.svc-label,.footer-cookie-link,.footer-bottom span,.footer-legal a,.method-intro p,.cw-panel-intro,.cw-btn,.hero-contact-cta .hcc-btn{font-size:12px}
.cw-kicker,.cw-step-note,.cw-progress .cw-step span,.cw-field label,.cw-photo-bottom span{font-size:11px}
}
/* ===== Studio : CTA + email visibles aussi sur mobile/tablette ===== */
@media (max-width:900px){
#page-studio .hero-contact-cta{display:flex!important;left:16px;bottom:14px;gap:8px}
#page-studio .hero-contact-cta .hcc-btn{padding:10px 16px;letter-spacing:.08em}
#page-studio .hero-contact-cta .hcc-email{font-size:12px;opacity:1;font-weight:500;text-shadow:0 1px 6px rgba(0,0,0,.65)}
#page-studio .hero-contact-cta::before{left:-30px;right:-50px;top:-30px;bottom:-30px;background:radial-gradient(ellipse 60% 60% at 30% 70%,rgba(20,16,12,.62) 0%,rgba(20,16,12,.32) 50%,rgba(20,16,12,0) 100%)}
}
/* ===== Mobile : compléments (menu, FAQ) ===== */
@media (max-width:900px){
.mm-social-links a{width:44px;height:44px}
.hero-contact-cta .hcc-email{padding:16px 0;margin:-16px 0}
a.faq-cta,.faq-cta{display:inline-block;padding:14px 0}
#page-faq .hero-contact-cta .hcc-btn{font-size:12px}
}
/* <picture> transparent pour la mise en page (images adaptées au mobile) */
picture{display:contents}

/* Contact wizard (desktop) : le texte et les champs s'alignent exactement sur les marges du footer (1100px) */
@media(min-width:901px){#page-contact .contact-wizard{--cw-l:0px;--cw-r:clamp(32px,5vw,76px);max-width:100%;width:calc(1100px + var(--cw-l) + var(--cw-r));padding-left:0;padding-right:0;margin-right:auto;margin-left:max(0px,min(calc((100% - 1100px)/2 - var(--cw-l)),calc(100% - 1100px - var(--cw-l) - var(--cw-r))));}#page-contact .contact-wizard .cw-step-panel{padding-left:0;padding-right:0;}#page-contact .contact-wizard .cw-photo{padding-left:20px;}}


/* ============================================================
   PAGE STUDIO — MOBILE (≤ 850px) : sections "Une pratique située"
   et "Une idée devient une décision". CSS uniquement, aucune
   modification HTML, le desktop n'est pas touché.
   ============================================================ */
@media (max-width: 850px) {

  /* ---------- 1. UNE PRATIQUE SITUÉE (fond sable) ---------- */
  #page-studio .intro.panel { padding: 44px 0 36px; }

  #page-studio .intro-top {
    display: block;
    padding: 0 24px 36px;
    border-bottom: 0;
  }

  #page-studio .intro h2 {
    text-align: left;
    padding: 0;
    font-size: clamp(38px, 11vw, 46px);
    line-height: .95;
    letter-spacing: -.045em;
  }
  #page-studio .intro h2 em { color: var(--orange); }

  /* Filet orange entre titre et texte */
  #page-studio .intro-top > div::after {
    content: "";
    display: block;
    width: 44px;
    height: 2px;
    margin: 26px 0 22px;
    background: var(--orange);
  }

  #page-studio .intro-copy {
    padding: 0;
    max-width: none;
    font-size: 16px;
    line-height: 1.6;
  }

  /* Principes : liste compacte numéro | texte */
  #page-studio .principles {
    display: block;
    padding: 0 24px;
    max-width: none;
  }
  #page-studio .principle,
  #page-studio .principle + .principle {
    display: grid;
    grid-template-columns: 52px 1fr;
    column-gap: 14px;
    min-height: 0;
    padding: 22px 0;
    text-align: left;
    background: none;
    border: 0;
    border-top: 1px solid rgba(16, 19, 19, .18);
  }
  #page-studio .principle:last-child { border-bottom: 1px solid rgba(16, 19, 19, .18); }

  #page-studio .principle .number {
    grid-row: 1 / span 2;
    font-size: 34px;
  }
  #page-studio .principle h3 {
    max-width: none;
    margin: 4px 0 8px;
    font-size: 17px;
  }
  #page-studio .principle p {
    max-width: none;
    margin: 0;
    font-size: 14px;
  }

  /* ---------- 2. UNE IDÉE DEVIENT UNE DÉCISION (fond nuit) ---------- */
  #page-studio .method.panel {
    flex-direction: column !important;
    align-items: stretch !important;   /* les étapes prennent toute la largeur */
    gap: 34px !important;
    padding: 56px 24px 60px !important;
  }

  #page-studio .method-intro { text-align: left; }
  #page-studio .method h2 {
    margin: 0;
    font-size: clamp(36px, 10.5vw, 44px);
    line-height: .95;
  }
  #page-studio .method-intro p {
    max-width: 300px;
    margin: 18px 0 0;
    line-height: 1.6;
  }

  /* Étapes : frise verticale reliée */
  #page-studio .steps {
    position: relative;
    display: block;
    border: 0;
    padding-left: 34px;
  }
  #page-studio .step,
  #page-studio .step:nth-child(2),
  #page-studio .step:nth-child(3) {
    min-height: 0;
    padding: 0 0 30px;
    text-align: left;
    background: none;
    border: 0;
  }
  #page-studio .step:last-child { padding-bottom: 0; }

  /* Pastille sur la frise */
  #page-studio .step::before {
    content: "";
    position: absolute;
    left: -34px;
    top: 0;
    width: 11px;
    height: 11px;
    border-radius: 50%;
    background: var(--night);
    border: 1px solid var(--orange);
  }
  #page-studio .step:first-child::before { background: var(--orange); }

  /* Trait reliant chaque pastille à la suivante */
  #page-studio .step:not(:last-child)::after {
    content: "";
    position: absolute;
    left: -29px;
    top: 12px;
    bottom: 0;
    width: 1px;
    background: rgba(235, 229, 217, .25);
  }

  #page-studio .step .n {
    display: block;
    font-size: 12px;
    line-height: 13px;
    letter-spacing: .08em;
  }
  #page-studio .step .arrow { display: none; }  /* décor sans fonction sur mobile */
  #page-studio .step h3 {
    margin: 6px 0 6px;
    font-size: 24px;
  }
  #page-studio .step p {
    max-width: none;
    margin: 0;
    font-size: 14px;
  }
}

/* FOOTER MOBILE — VARIANTE D « PLAN » : cartouche de dessin d'architecte sur trame */
@media (max-width: 600px) {
  #siteFooter {
    padding: 40px 20px 22px;
    background-color: var(--ink);
    background-image:
      linear-gradient(rgba(243,236,221,.045) 1px, transparent 1px),
      linear-gradient(90deg, rgba(243,236,221,.045) 1px, transparent 1px);
    background-size: 22px 22px;
  }
  #siteFooter .footer-top {
    position: relative;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 0;
    padding: 0;
    border: 1px solid rgba(243,236,221,.32);
    background: var(--ink);
  }
  /* Croix de repère aux angles */
  #siteFooter .footer-top::before,
  #siteFooter .footer-top::after {
    content: "+";
    position: absolute;
    font: 300 18px/1 'IBM Plex Mono', monospace;
    color: var(--clay);
  }
  #siteFooter .footer-top::before { top: -10px; left: -6px; }
  #siteFooter .footer-top::after  { bottom: -9px; right: -6px; }

  /* Marque, activité, coordonnées et e-mail : centrés */
  #siteFooter .footer-brand {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: 1fr;
    justify-items: center;
    gap: 7px;
    padding: 24px 18px 0;
    text-align: center;
  }
  #siteFooter .footer-brand-name {
    font: 300 32px/1 'Fraunces', Georgia, serif;
    letter-spacing: -.02em;
  }
  #siteFooter .footer-brand-tag { margin: 2px 0 0; font-size: 11px; letter-spacing: .05em; }
  #siteFooter .footer-coords { margin: 0; }
  #siteFooter .footer-email {
    justify-self: stretch;
    margin: 16px -18px 0;
    padding: 14px 18px;
    border-top: 1px solid rgba(243,236,221,.32);
    border-bottom: 1px solid rgba(243,236,221,.32);
    color: var(--cream);
    text-align: center;
  }
  #siteFooter .footer-email::after { content: " →"; color: var(--clay); }

  #siteFooter .footer-nav {
    flex-direction: column;
    flex-wrap: nowrap;
    gap: 0;
    padding: 6px 18px 10px;
    border-right: 1px solid rgba(243,236,221,.32);
    counter-reset: plan;
  }
  #siteFooter .footer-nav a { padding: 11px 0; counter-increment: plan; }
  #siteFooter .footer-nav a::before {
    content: "A" counter(plan) " ";
    display: inline-block;
    width: 34px;
    color: var(--clay);
    font-size: 10px;
  }

  #siteFooter .socials {
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 16px 20px;
  }
  #siteFooter .socials-label { margin: 0 0 2px; font-size: 10px; }


  #siteFooter .footer-bottom {
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    margin-top: 22px;
    padding-top: 0;
    border-top: 0;
  }
  #siteFooter .footer-legal { gap: 0 18px; }
}

/* FOOTER MOBILE — RÉSEAUX « VERRE AMBRÉ » : verre teinté terre cuite sur halo orange */
@media (max-width: 600px) {
  #siteFooter .socials a {
    --tint: 255,255,255;        /* teinte du verre */
    --glow: 227,83,54;          /* lumière derrière le verre */
    position: relative;
    overflow: hidden;
    width: 56px; height: 56px;
    border: 0;
    border-radius: 50%;
    color: var(--cream);
    background: linear-gradient(155deg, rgba(var(--tint),.24) 0%, rgba(var(--tint),.07) 42%, rgba(var(--tint),.03) 62%, rgba(var(--tint),.12) 100%);
    -webkit-backdrop-filter: blur(10px) saturate(160%);
            backdrop-filter: blur(10px) saturate(160%);
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.55),          /* arête lumineuse en haut */
      inset 0 0 0 1px rgba(255,255,255,.14),         /* tranche du verre */
      inset 0 -12px 18px -12px rgba(var(--glow),.45),/* réfraction chaude en bas */
      0 16px 28px -14px rgba(0,0,0,.95),
      0 2px 6px -2px rgba(0,0,0,.6);
    transform: none;
    transition: transform .4s cubic-bezier(.2,.8,.2,1), box-shadow .4s ease, color .3s ease;
  }
  /* Reflet spéculaire (demi-lune en haut) */
  #siteFooter .socials a::before {
    content: "";
    position: absolute;
    left: 16%; right: 16%; top: 6%;
    height: 40%;
    border-radius: 50% 50% 45% 45% / 70% 70% 30% 30%;
    background: linear-gradient(to bottom, rgba(255,255,255,.42), rgba(255,255,255,0));
    transform: none;
    animation: none;
    pointer-events: none;
  }
  /* Éclat qui traverse le verre au toucher */
  #siteFooter .socials a::after {
    content: "";
    position: absolute;
    inset: -20%;
    background: linear-gradient(115deg, transparent 40%, rgba(255,255,255,.35) 50%, transparent 60%);
    transform: translateX(-100%);
    pointer-events: none;
  }
  #siteFooter .socials a svg { position: relative; z-index: 1; width: 21px; height: 21px; stroke-width: 1.5; filter: drop-shadow(0 1px 1.5px rgba(0,0,0,.55)); }

  /* Halo terre cuite derrière les verres : c'est lui que le verre floute */
  #siteFooter .socials {
    background:
      radial-gradient(42% 22% at 50% 44%, rgba(227,83,54,.30), transparent 75%),
      radial-gradient(42% 22% at 50% 76%, rgba(227,83,54,.20), transparent 75%);
  }

  #siteFooter .socials a:hover,
  #siteFooter .socials a:active {
    background: linear-gradient(155deg, rgba(var(--tint),.30) 0%, rgba(var(--tint),.09) 42%, rgba(var(--tint),.04) 62%, rgba(var(--tint),.16) 100%);
    transform: translateY(-2px);
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.7),
      inset 0 0 0 1px rgba(255,255,255,.2),
      inset 0 -14px 20px -12px rgba(var(--glow),.7),
      0 20px 32px -14px rgba(0,0,0,.95),
      0 0 22px -6px rgba(var(--glow),.55);
  }
  #siteFooter .socials a:hover::before,
  #siteFooter .socials a:active::before { animation: none; }
  #siteFooter .socials a:hover::after,
  #siteFooter .socials a:active::after { animation: tfGlass .9s ease forwards; }
  @keyframes tfGlass { to { transform: translateX(100%); } }

  @media (prefers-reduced-motion: reduce) {
    #siteFooter .socials a, #siteFooter .socials a::after { transition: none; animation: none !important; }
  }
}
/* Teinte ambrée du verre */
@media (max-width: 600px) {
  #siteFooter .socials a { --tint: 240,120,88; color: #fff4ea; }
  #siteFooter .socials a[aria-label="Facebook"] svg path { fill: currentColor; stroke: none; }  /* « f » plein, plus net */
}

/* LANDING — RÉSEAUX « VERRE AMBRÉ » (mobile + desktop, même effet que les footers) */
@media all {
  .ll-hero2-socials {
    --s: 50px;                                   /* diamètre des galets */
    gap: 12px;
    /* halo terre cuite derrière chaque galet : c'est lui que le verre floute */
    background:
      radial-gradient(circle calc(var(--s) * .62) at calc(var(--s) / 2) 50%, rgba(227,83,54,.32), transparent),
      radial-gradient(circle calc(var(--s) * .62) at calc(100% - var(--s) / 2) 50%, rgba(227,83,54,.22), transparent);
  }
  .ll-hero2-socials a {
    width: var(--s); height: var(--s);
    border: 0;
    border-radius: 50%;
    color: #fff4ea;
    background: linear-gradient(155deg, rgba(240,120,88,.24) 0%, rgba(240,120,88,.07) 42%, rgba(240,120,88,.03) 62%, rgba(240,120,88,.12) 100%);
    -webkit-backdrop-filter: blur(10px) saturate(160%);
            backdrop-filter: blur(10px) saturate(160%);
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.55),
      inset 0 0 0 1px rgba(255,255,255,.14),
      inset 0 -12px 18px -12px rgba(227,83,54,.45),
      0 16px 28px -14px rgba(0,0,0,.95),
      0 2px 6px -2px rgba(0,0,0,.6);
    transition: transform .4s cubic-bezier(.2,.8,.2,1), box-shadow .4s ease;
  }
  /* Reflet spéculaire en demi-lune */
  .ll-hero2-socials a::before {
    inset: auto;
    left: 16%; right: 16%; top: 6%;
    height: 40%;
    border-radius: 50% 50% 45% 45% / 70% 70% 30% 30%;
    background: linear-gradient(to bottom, rgba(255,255,255,.42), rgba(255,255,255,0));
    transform: none;
    opacity: 1;
    animation: none;
  }
  /* Éclat qui traverse le verre au toucher */
  .ll-hero2-socials a::after {
    content: "";
    position: absolute;
    inset: -20%;
    z-index: 1;
    background: linear-gradient(115deg, transparent 40%, rgba(255,255,255,.35) 50%, transparent 60%);
    transform: translateX(-100%);
    pointer-events: none;
  }
  .ll-hero2-socials svg { width: 21px; height: 21px; stroke-width: 1.5; filter: drop-shadow(0 1px 1.5px rgba(0,0,0,.55)); }
  .ll-hero2-socials a[aria-label="Facebook"] svg path { fill: currentColor; stroke: none; }

  .ll-hero2-socials a:hover,
  .ll-hero2-socials a:active {
    color: #fff4ea;
    transform: translateY(-2px);
    background: linear-gradient(155deg, rgba(240,120,88,.30) 0%, rgba(240,120,88,.09) 42%, rgba(240,120,88,.04) 62%, rgba(240,120,88,.16) 100%);
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.7),
      inset 0 0 0 1px rgba(255,255,255,.2),
      inset 0 -14px 20px -12px rgba(227,83,54,.7),
      0 20px 32px -14px rgba(0,0,0,.95),
      0 0 22px -6px rgba(227,83,54,.55);
  }
  .ll-hero2-socials a:hover::before,
  .ll-hero2-socials a:active::before { animation: none; }
  .ll-hero2-socials a:hover::after,
  .ll-hero2-socials a:active::after { animation: tfGlassLanding .9s ease forwards; }
  @keyframes tfGlassLanding { to { transform: translateX(100%); } }
}
@media (min-width: 901px) {
  .ll-hero2-socials { --s: clamp(48px, 6.4vmin, 56px); gap: 14px; }
  .ll-hero2-socials svg { width: 22px; height: 22px; }
}
@media (max-width: 399px) {
  .ll-hero2-socials { --s: 46px; gap: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  .ll-hero2-socials a, .ll-hero2-socials a::after { transition: none; animation: none !important; }
}

/* FOOTER DESKTOP — RÉSEAUX « VERRE AMBRÉ » (même effet que le footer mobile) */
@media (min-width: 601px) {
  #siteFooter .socials a {
    --tint: 255,255,255;        /* teinte du verre */
    --glow: 227,83,54;          /* lumière derrière le verre */
    position: relative;
    overflow: hidden;
    width: 48px; height: 48px;
    min-width: 0; min-height: 0;
    border: 0;
    border-radius: 50%;
    color: var(--cream);
    background: linear-gradient(155deg, rgba(var(--tint),.24) 0%, rgba(var(--tint),.07) 42%, rgba(var(--tint),.03) 62%, rgba(var(--tint),.12) 100%);
    -webkit-backdrop-filter: blur(10px) saturate(160%);
            backdrop-filter: blur(10px) saturate(160%);
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.55),          /* arête lumineuse en haut */
      inset 0 0 0 1px rgba(255,255,255,.14),         /* tranche du verre */
      inset 0 -12px 18px -12px rgba(var(--glow),.45),/* réfraction chaude en bas */
      0 16px 28px -14px rgba(0,0,0,.95),
      0 2px 6px -2px rgba(0,0,0,.6);
    transform: none;
    transition: transform .4s cubic-bezier(.2,.8,.2,1), box-shadow .4s ease, color .3s ease;
  }
  /* Reflet spéculaire (demi-lune en haut) */
  #siteFooter .socials a::before {
    content: "";
    position: absolute;
    left: 16%; right: 16%; top: 6%;
    height: 40%;
    border-radius: 50% 50% 45% 45% / 70% 70% 30% 30%;
    background: linear-gradient(to bottom, rgba(255,255,255,.42), rgba(255,255,255,0));
    transform: none;
    animation: none;
    pointer-events: none;
  }
  /* Éclat qui traverse le verre au toucher */
  #siteFooter .socials a::after {
    content: "";
    position: absolute;
    inset: -20%;
    background: linear-gradient(115deg, transparent 40%, rgba(255,255,255,.35) 50%, transparent 60%);
    transform: translateX(-100%);
    pointer-events: none;
  }
  #siteFooter .socials a svg { position: relative; z-index: 1; width: 21px; height: 21px; stroke-width: 1.5; filter: drop-shadow(0 1px 1.5px rgba(0,0,0,.55)); }

  /* Halo terre cuite derrière les verres (icônes alignées à droite de la rangée) */
  #siteFooter .socials {
    gap: 14px;
    background:
      radial-gradient(circle 32px at calc(100% - 24px) 50%, rgba(227,83,54,.30), transparent),
      radial-gradient(circle 32px at calc(100% - 86px) 50%, rgba(227,83,54,.22), transparent);
  }

  #siteFooter .socials a:hover,
  #siteFooter .socials a:active {
    background: linear-gradient(155deg, rgba(var(--tint),.30) 0%, rgba(var(--tint),.09) 42%, rgba(var(--tint),.04) 62%, rgba(var(--tint),.16) 100%);
    transform: translateY(-2px);
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.7),
      inset 0 0 0 1px rgba(255,255,255,.2),
      inset 0 -14px 20px -12px rgba(var(--glow),.7),
      0 20px 32px -14px rgba(0,0,0,.95),
      0 0 22px -6px rgba(var(--glow),.55);
  }
  #siteFooter .socials a:hover::before,
  #siteFooter .socials a:active::before { animation: none; }
  #siteFooter .socials a:hover::after,
  #siteFooter .socials a:active::after { animation: tfGlassDesk .9s ease forwards; }
  @keyframes tfGlassDesk { to { transform: translateX(100%); } }

  @media (prefers-reduced-motion: reduce) {
    #siteFooter .socials a, #siteFooter .socials a::after { transition: none; animation: none !important; }
  }
}
/* Teinte ambrée du verre (desktop) */
@media (min-width: 601px) {
  #siteFooter .socials a { --tint: 240,120,88; color: #fff4ea; }
  #siteFooter .socials a svg { width: 19px; height: 19px; }
  #siteFooter .socials a[aria-label="Facebook"] svg path { fill: currentColor; stroke: none; }
}

/* FOOTER DESKTOP — D1 « PLAN » : cartouche d'architecte sur trame, cohérent avec le footer mobile */
@media (min-width: 901px) {
  #siteFooter {
    padding: 72px 48px 34px;
    background-color: var(--ink);
    background-image:
      linear-gradient(rgba(243,236,221,.04) 1px, transparent 1px),
      linear-gradient(90deg, rgba(243,236,221,.04) 1px, transparent 1px);
    background-size: 24px 24px;
  }
  #siteFooter .footer-top {
    position: relative;
    display: grid;
    grid-template-columns: 1.35fr 1fr auto;
    align-items: stretch;
    gap: 0;
    padding: 0;
    border: 1px solid rgba(243,236,221,.28);
    background: var(--ink);
  }
  #siteFooter .footer-top::before, #siteFooter .footer-top::after {
    content: "+"; position: absolute; font: 300 20px/1 'IBM Plex Mono', monospace; color: var(--clay);
  }
  #siteFooter .footer-top::before { top: -11px; left: -7px; }
  #siteFooter .footer-top::after  { bottom: -10px; right: -7px; }

  #siteFooter .footer-brand { padding: 34px 36px; gap: 8px; border-right: 1px solid rgba(243,236,221,.28); }
  #siteFooter .footer-brand-name { font: 300 40px/1 'Fraunces', Georgia, serif; letter-spacing: -.02em; margin-bottom: 6px; }
  #siteFooter .footer-email { margin-top: 18px; color: var(--cream); font-size: 13px; }
  #siteFooter .footer-email::after { content: "  →"; color: var(--clay); transition: margin .25s ease; }
  #siteFooter .footer-email:hover::after { margin-left: 6px; }

  #siteFooter .footer-nav {
    flex-direction: column; flex-wrap: nowrap; gap: 0;
    padding: 26px 36px; counter-reset: plan;
    border-right: 1px solid rgba(243,236,221,.28);
  }
  #siteFooter .footer-nav a { padding: 7px 0; counter-increment: plan; font-size: 13px; }
  #siteFooter .footer-nav a::before { content: "A" counter(plan); display: inline-block; width: 40px; color: var(--clay); font-size: 10px; }

  #siteFooter .socials {
    align-self: stretch; padding: 34px 36px; flex-direction: row; align-items: center;
    background:
      radial-gradient(circle 32px at calc(100% - 60px) 50%, rgba(227,83,54,.30), transparent),
      radial-gradient(circle 32px at calc(100% - 122px) 50%, rgba(227,83,54,.22), transparent);
  }

  #siteFooter .footer-bottom { margin-top: 26px; padding-top: 0; border-top: 0; }
}

/* LANDING — CTA « DÉCOUVREZ-NOUS » EN VERRE AMBRÉ (13/10/2026)
   Même matière et même survol que les boutons réseaux « verre ambré » (soulèvement 2 px,
   teinte, lueur, éclat 0,9 s) ; seule la flèche avance de 3 px au survol.
   Arrivée sur la page : le galet se dépose (1 s), le halo s'allume (1,25 s),
   le verre s'étire et remplit tout le bouton (1,9 s), un éclat traverse la capsule (2,65 s).
   Les animations d'arrivée sont en « backwards » : une fois jouées, le survol reprend la main. */
.ll-hero2-bottom .ll-discover-button {
  --cta-h: clamp(48px, 7.8vmin, 60px);
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 14px;
  height: var(--cta-h);
  padding: 0 28px 0 0;
  color: #fff4ea;
  background: transparent;
  border: 0;
  border-radius: 999px;
  box-shadow: none;
  -webkit-backdrop-filter: none;
          backdrop-filter: none;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  text-shadow: 0 1px 2px rgba(0,0,0,.45);
  white-space: nowrap;
  transition: transform .4s cubic-bezier(.2,.8,.2,1);
  animation: tfCtaSettle .9s 1s cubic-bezier(.2,.8,.2,1) backwards;
}
/* Halo terre cuite derrière le verre : rond derrière le galet, puis allongé derrière la capsule */
.ll-hero2-bottom .ll-discover-button__halo {
  position: absolute;
  inset: 0;
  pointer-events: none;
  animation: tfCtaHaloOn 1.4s 1.25s ease-out backwards;
}
.ll-hero2-bottom .ll-discover-button__halo::before {
  content: "";
  position: absolute;
  left: -26px; top: 50%;
  width: 108px; height: 108px;
  margin-top: -54px;
  border-radius: 50%;
  background: radial-gradient(closest-side, rgba(227,83,54,.34), rgba(227,83,54,0));
  opacity: 0;
  animation: tfCtaFadeOut .7s 1.9s ease backwards;
}
.ll-hero2-bottom .ll-discover-button__halo::after {
  content: "";
  position: absolute;
  inset: -30px -46px;
  background: radial-gradient(closest-side, rgba(227,83,54,.3), rgba(227,83,54,0));
  animation: tfCtaFadeIn .7s 1.9s ease backwards;
}
/* Le verre : valeurs identiques aux boutons réseaux */
.ll-hero2-bottom .ll-discover-button__glass {
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 100%;
  border-radius: 999px;
  overflow: hidden;
  background: linear-gradient(155deg, rgba(240,120,88,.24) 0%, rgba(240,120,88,.07) 42%, rgba(240,120,88,.03) 62%, rgba(240,120,88,.12) 100%);
  -webkit-backdrop-filter: blur(10px) saturate(160%);
          backdrop-filter: blur(10px) saturate(160%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.55),
    inset 0 0 0 1px rgba(255,255,255,.14),
    inset 0 -12px 18px -12px rgba(227,83,54,.45),
    0 16px 28px -14px rgba(0,0,0,.95),
    0 2px 6px -2px rgba(0,0,0,.6);
  transition: box-shadow .4s ease;
  animation: tfCtaFill .7s 1.9s cubic-bezier(.2,.8,.2,1) backwards;
}
/* Reflet spéculaire en bandeau */
.ll-hero2-bottom .ll-discover-button__glass::before {
  content: "";
  position: absolute;
  left: 10px; right: 10px; top: 3px;
  height: 44%;
  border-radius: 999px;
  background: linear-gradient(to bottom, rgba(255,255,255,.42), rgba(255,255,255,0));
  pointer-events: none;
}
/* Éclat au survol / toucher */
.ll-hero2-bottom .ll-discover-button__glass::after,
.ll-hero2-bottom .ll-discover-button__glint {
  content: "";
  position: absolute;
  inset: -20%;
  z-index: 1;
  background: linear-gradient(115deg, transparent 40%, rgba(255,255,255,.35) 50%, transparent 60%);
  transform: translateX(-100%);
  pointer-events: none;
}
/* Éclat d'accueil (une seule fois) */
.ll-hero2-bottom .ll-discover-button__glint {
  animation: tfCtaSweep .9s 2.65s ease backwards;
}
/* Flèche : l'ancien rond plein devient un simple emplacement dans le verre */
.ll-hero2-bottom .ll-discover-button .ll-discover-button__circle {
  position: relative;
  z-index: 1;
  flex: 0 0 auto;
  width: var(--cta-h);
  height: var(--cta-h);
  overflow: visible;
  color: #fff4ea;
  background: none;
  border-radius: 0;
  box-shadow: none;
  transform: none;
  transition: none;
}
.ll-hero2-bottom .ll-discover-button .ll-discover-button__circle::before { content: none; }
.ll-hero2-bottom .ll-discover-button__circle svg {
  width: 20px; height: 20px;
  stroke-width: 1.7;
  filter: drop-shadow(0 1px 1.5px rgba(0,0,0,.55));
  transition: transform .45s cubic-bezier(.2,.8,.2,1);
}
.ll-hero2-bottom .ll-discover-button__label { position: relative; z-index: 1; }

/* Survol (souris) et toucher / clavier : même effet que les boutons réseaux */
@media (hover: hover) {
  .ll-hero2-bottom .ll-discover-button:hover { transform: translateY(-2px); }
  .ll-hero2-bottom .ll-discover-button:hover .ll-discover-button__glass {
    background: linear-gradient(155deg, rgba(240,120,88,.30) 0%, rgba(240,120,88,.09) 42%, rgba(240,120,88,.04) 62%, rgba(240,120,88,.16) 100%);
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.7),
      inset 0 0 0 1px rgba(255,255,255,.2),
      inset 0 -14px 20px -12px rgba(227,83,54,.7),
      0 20px 32px -14px rgba(0,0,0,.95),
      0 0 22px -6px rgba(227,83,54,.55);
  }
  .ll-hero2-bottom .ll-discover-button:hover .ll-discover-button__glass::after { animation: tfCtaSweep .9s ease forwards; }
  .ll-hero2-bottom .ll-discover-button:hover .ll-discover-button__circle svg { transform: translateX(3px); }
}
.ll-hero2-bottom .ll-discover-button:active,
.ll-hero2-bottom .ll-discover-button:focus-visible { transform: translateY(-2px); }
.ll-hero2-bottom .ll-discover-button:active .ll-discover-button__glass,
.ll-hero2-bottom .ll-discover-button:focus-visible .ll-discover-button__glass {
  background: linear-gradient(155deg, rgba(240,120,88,.30) 0%, rgba(240,120,88,.09) 42%, rgba(240,120,88,.04) 62%, rgba(240,120,88,.16) 100%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.7),
    inset 0 0 0 1px rgba(255,255,255,.2),
    inset 0 -14px 20px -12px rgba(227,83,54,.7),
    0 20px 32px -14px rgba(0,0,0,.95),
    0 0 22px -6px rgba(227,83,54,.55);
}
.ll-hero2-bottom .ll-discover-button:active .ll-discover-button__glass::after,
.ll-hero2-bottom .ll-discover-button:focus-visible .ll-discover-button__glass::after { animation: tfCtaSweep .9s ease forwards; }
.ll-hero2-bottom .ll-discover-button:focus-visible .ll-discover-button__circle svg { transform: translateX(3px); }

/* Thaï : pas de capitales, police thaïe un peu plus grande */
.site[data-lang="th"] .ll-hero2-bottom .ll-discover-button { font-size: 14px; }

/* Mobile : bouton de 56 px, aussi large que le volet « Suivez-nous » en dessous (mêmes bords),
   libellé centré dans la capsule ; la flèche reste à gauche, là où le galet se dépose.
   Un espaceur à droite (::after) de la largeur de la flèche équilibre le centrage ; s'il manque
   de place (petits écrans), c'est lui qui rétrécit, jamais le libellé : il ne chevauche pas la flèche. */
@media (max-width: 900px) {
  .ll-hero2-bottom .ll-discover-button {
    --cta-h: 56px;
    --cta-bleed: clamp(24px, 3.6vw, 56px); /* même débord latéral que .ll-hero2-follow */
    flex: 0 0 auto;
    width: calc(100% + 2 * var(--cta-bleed));
    margin: 0 calc(-1 * var(--cta-bleed));
    padding: 0;
    gap: 0;
  }
  .ll-hero2-bottom .ll-discover-button::after {
    content: "";
    flex: 0 1 var(--cta-h);
  }
  .ll-hero2-bottom .ll-discover-button__label {
    flex: 1 0 auto;
    text-align: center;
  }
}
/* Fenêtres desktop très basses : bouton compact pour que la landing tienne sans scroll */
@media (max-height: 520px) and (min-width: 901px) {
  .ll-hero2-bottom .ll-discover-button { --cta-h: 44px; font-size: 11px; }
}

@keyframes tfCtaSettle { from { opacity: 0; transform: translateY(14px); filter: blur(6px); } to { opacity: 1; transform: none; filter: none; } }
@keyframes tfCtaHaloOn { 0% { opacity: 0; transform: scale(.7); } 16% { opacity: .6; } 24% { opacity: .22; } 100% { opacity: 1; transform: none; } }
@keyframes tfCtaFadeOut { from { opacity: 1; } to { opacity: 0; } }
@keyframes tfCtaFadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes tfCtaFill { from { width: var(--cta-h); } to { width: 100%; } }
@keyframes tfCtaSweep { from { transform: translateX(-100%); } to { transform: translateX(100%); } }

@media (prefers-reduced-motion: reduce) {
  .ll-hero2-bottom .ll-discover-button,
  .ll-hero2-bottom .ll-discover-button__halo,
  .ll-hero2-bottom .ll-discover-button__halo::before,
  .ll-hero2-bottom .ll-discover-button__halo::after,
  .ll-hero2-bottom .ll-discover-button__glass,
  .ll-hero2-bottom .ll-discover-button__glass::after,
  .ll-hero2-bottom .ll-discover-button__glint,
  .ll-hero2-bottom .ll-discover-button__circle svg { animation: none !important; transition: none !important; }
}

/* FOOTER — « & » de Terra & Form en terre cuite (toutes tailles d'écran) */
#siteFooter .footer-brand-name .footer-amp { color: var(--clay); }
