/* ARCELYS — styles autonomes, sans framework ni dépendance distante. */
*, *::before, *::after {
  box-sizing: border-box;
  border-width: 0;
  border-style: solid;
}
html {
  line-height: 1.5;
  -webkit-text-size-adjust: 100%;
  tab-size: 4;
}
body, figure {
  margin: 0;
}
button, input, select, textarea {
  font: inherit;
  color: inherit;
}
button {
  background: transparent;
}
svg {
  display: block;
  vertical-align: middle;
}
[hidden] {
  display: none !important;
}
:root {
  --background:#fff;
  --foreground:#202322;
  --card:#fff;
  --card-foreground:#202322;
  --popover:#fff;
  --popover-foreground:#202322;
  --primary:#202322;
  --primary-foreground:#fff;
  --secondary:#f5f5f2;
  --secondary-foreground:#202322;
  --muted:#f4f4f1;
  --muted-foreground:#656763;
  --accent:#f1eee6;
  --accent-foreground:#202322;
  --destructive:#a83731;
  --border:#e2e2dc;
  --input:#d7d7d0;
  --ring:#9a7b43;
  --radius:.3rem;
  --gold:#94733e;
  --gold-light:#cbb37c;
  --soft:#696b65;
}
* {
  box-sizing:border-box;
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:108px;
}
body {
  margin:0;
  background:#fff;
  color:var(--foreground);
  font-family:Arial,Helvetica,sans-serif;
  font-size:16px;
  -webkit-font-smoothing:antialiased;
}
button,input,textarea {
  font:inherit;
}
button,a,input,textarea {
  -webkit-tap-highlight-color:transparent;
}
button,a {
  touch-action:manipulation;
}
button {
  cursor:pointer;
  color:inherit;
}
button:disabled {
  cursor:wait;
}
a {
  text-decoration:none;
  color:inherit;
}
::selection {
  background:#e7dcc4;
  color:#202322;
}
img {
  display:block;
  width:100%;
  height:auto;
}
button:focus-visible,a:focus-visible {
  outline:2px solid var(--gold);
  outline-offset:5px;
}
h1,h2,h3,p {
  margin:0;
}
h1,h2,h3 {
  font-weight:400;
}
em {
  font-family:Georgia,'Times New Roman',serif;
  font-weight:400;
}
p {
  line-height:1.65;
}
.container {
  width:calc(100% - 120px);
  max-width:1360px;
  margin:0 auto;
}
.section-pad {
  padding-top:104px;
  padding-bottom:108px;
}
.eyebrow {
  font-size:.75rem;
  letter-spacing:.13em;
  font-weight:500;
  line-height:1.5;
}
.section-label {
  display:block;
  color:var(--gold);
  margin-bottom:24px;
}
.short-line {
  display:inline-block;
  width:26px;
  height:1px;
  background:var(--gold);
  margin-right:14px;
  vertical-align:middle;
}
.soft-text {
  color:#7a7c75;
}
.gold-dot {
  width:4px;
  height:4px;
  flex-shrink:0;
  border-radius:50%;
  background:var(--gold);
}
.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:25px;
  background:#232725;
  color:#fff;
  min-height:52px;
  padding:15px 24px;
  border:1px solid transparent;
  border-radius:3px;
  font-size:.875rem;
  font-weight:500;
  transition:background .25s,transform .25s;
}
.button:hover {
  background:#41483f;
  transform:translateY(-2px);
}
.button svg {
  flex-shrink:0;
  transition:transform .25s;
}
.button:hover svg {
  transform:translate(2px,-2px);
}
.button-small {
  min-height:44px;
  padding:11px 18px;
  gap:20px;
}
.button-gold {
  background:var(--gold);
  color:#fff;
}
.button-gold:hover {
  background:#806232;
}
.text-link {
  display:inline-flex;
  align-items:center;
  gap:12px;
  font-size:.875rem;
  background:none;
  border:0;
  padding:10px 0;
  position:relative;
}
.text-link:after {
  content:'';
  position:absolute;
  left:0;
  bottom:2px;
  width:0;
  height:1px;
  background:currentColor;
  transition:width .25s;
}
.text-link:hover:after {
  width:100%;
}
.skip-link {
  position:fixed;
  left:16px;
  top:-80px;
  background:#202322;
  color:white;
  padding:16px;
  z-index:200;
}
.skip-link:focus {
  top:12px;
}
.header {
  position:sticky;
  top:0;
  z-index:40;
  background:rgba(255,255,255,.96);
  backdrop-filter:blur(16px);
  border-bottom:1px solid #e8e8e3;
}
.header-inner {
  height:98px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px;
}
.brand {
  display:inline-flex;
  align-items:center;
  gap:14px;
  flex-shrink:0;
}
.brand-mark {
  height:45px;
  width:36px;
}
.brand strong {
  display:block;
  font-size:23px;
  font-weight:400;
  letter-spacing:.28em;
  line-height:1.2;
}
.brand small {
  display:block;
  font-size:9px;
  letter-spacing:.21em;
  margin-top:7px;
}
.desktop-nav {
  display:flex;
  gap:30px;
  align-items:center;
  margin-left:auto;
  margin-right:20px;
}
.desktop-nav a {
  font-size:.875rem;
  position:relative;
  padding:14px 0;
}
.desktop-nav a:after {
  content:'';
  height:1px;
  background:var(--gold);
  width:0;
  position:absolute;
  left:0;
  bottom:5px;
  transition:width .25s;
}
.desktop-nav a:hover:after,.desktop-nav a.active:after {
  width:100%;
}
.menu-toggle {
  display:none;
  background:none;
  border:0;
  padding:9px;
}
.mobile-nav {
  padding:12px 24px 22px;
  box-shadow:0 15px 22px #00000009;
}
.mobile-nav a {
  display:flex;
  justify-content:space-between;
  padding:16px 4px;
  border-bottom:1px solid var(--border);
  font-size:18px;
}
.hero {
  padding-top:39px;
}
.hero-top {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
}
.swiss-location {
  display:flex;
  align-items:center;
  gap:9px;
  font-size:.75rem;
  letter-spacing:.1em;
  color:#707269;
}
.swiss-location svg {
  color:var(--gold);
  flex-shrink:0;
}
.hero-grid {
  display:grid;
  grid-template-columns:1.08fr 1fr;
  align-items:center;
  min-height:560px;
  gap:0;
}
.hero-copy {
  position:relative;
  z-index:1;
  padding:40px 0 28px;
}
.hero h1 {
  font-size:clamp(55px,5.6vw,85px);
  line-height:1.07;
  letter-spacing:-.058em;
  white-space:nowrap;
}
.hero h1 em {
  display:inline-block;
  color:var(--gold);
  letter-spacing:-.065em;
  font-size:1.05em;
  margin-top:7px;
}
.hero-copy>p {
  font-size:1.0625rem;
  color:var(--soft);
  margin-top:29px;
  line-height:1.75;
}
.hero-actions {
  display:flex;
  align-items:center;
  gap:24px;
  margin-top:31px;
  flex-wrap:wrap;
}
.hero-actions .button {
  padding:15px 20px;
  gap:20px;
}
.hero-actions .text-link {
  gap:10px;
}
.hero-note {
  font-size:.75rem;
  letter-spacing:.09em;
  color:#75786e;
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:43px;
}
.tiny-cross {
  color:var(--gold);
  font-size:20px;
  line-height:1;
}
.hero-visual {
  position:relative;
  align-self:stretch;
  display:flex;
  align-items:center;
  min-width:0;
}
.hero-image-wrap {
  width:115%;
  margin-left:-8%;
  position:relative;
  aspect-ratio:1.12;
  flex-shrink:0;
}
.hero-image-wrap img {
  width:100%;
  height:100%;
  object-fit:contain;
  mix-blend-mode:multiply;
  animation:art-enter 1.5s ease both;
}
.art-corner {
  width:13px;
  height:13px;
  position:absolute;
  opacity:.45;
}
.art-corner-top {
  top:49px;
  right:5px;
  border-top:1px solid var(--gold);
  border-right:1px solid var(--gold);
}
.art-corner-bottom {
  bottom:65px;
  left:24px;
  border-bottom:1px solid var(--gold);
  border-left:1px solid var(--gold);
}
.art-caption {
  position:absolute;
  bottom:33px;
  left:25px;
  right:0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  font-size:.75rem;
  letter-spacing:.07em;
  color:#73776c;
}
.hero-bottom {
  border-top:1px solid var(--border);
  display:flex;
  justify-content:space-between;
  align-items:center;
  min-height:86px;
  gap:25px;
  font-size:.875rem;
  color:#666963;
}
.hero-bottom>span {
  font-family:Georgia,serif;
  font-style:italic;
  font-size:17px;
  color:#45483f;
}
.hero-bottom>div {
  display:flex;
  align-items:center;
  gap:20px;
}
.hero-bottom>a {
  width:38px;
  height:38px;
  flex-shrink:0;
  display:grid;
  place-items:center;
  border:1px solid #dadbd3;
  border-radius:50%;
  transition:background .2s;
}
.hero-bottom>a:hover {
  background:var(--accent);
}
.expertise-section {
  background:#f6f6f3;
  border-top:1px solid #eeeeea;
  border-bottom:1px solid #eaeae5;
}
.section-heading {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:35px;
  margin-bottom:54px;
}
.section-heading h2 {
  font-size:clamp(36px,3.7vw,54px);
  letter-spacing:-.045em;
  line-height:1.1;
}
.section-heading h2 em {
  color:var(--gold);
}
.section-heading>p {
  font-size:1rem;
  line-height:1.8;
  color:var(--soft);
  padding-bottom:4px;
  max-width:365px;
}
.services-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  border-left:1px solid #ddded5;
}
.service-card {
  background:none;
  border:0;
  border-right:1px solid #ddded5;
  text-align:left;
  padding:0 27px;
  display:flex;
  flex-direction:column;
  min-height:315px;
}
.service-top {
  display:flex;
  justify-content:space-between;
  align-items:center;
  color:var(--gold);
  margin-bottom:31px;
}
.service-top>span {
  font-size:.75rem;
  letter-spacing:.08em;
  color:#787d6d;
}
.service-card h3 {
  font-size:22px;
  letter-spacing:-.04em;
  margin-bottom:12px;
  line-height:1.25;
}
.service-card p {
  font-size:1rem;
  color:#666b60;
  line-height:1.7;
  max-width:235px;
}
.service-tags {
  font-size:.75rem;
  line-height:1.7;
  letter-spacing:.025em;
  color:#74796b;
  display:block;
  margin-top:20px;
}
.service-link {
  font-size:.875rem;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding-top:26px;
  margin-top:auto;
}
.service-link svg {
  color:var(--gold);
  transition:transform .25s;
}
.service-card:hover .service-link svg {
  transform:translate(3px,-3px);
}
.service-card:hover h3 {
  color:var(--gold);
}
.projects-section {
  padding-bottom:114px;
}
.projects-grid {
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:35px;
  align-items:start;
}
.project-card {
  padding:0;
  border:0;
  background:none;
  text-align:left;
  min-width:0;
}
.project-card:nth-child(2) {
  margin-top:75px;
}
.project-image {
  aspect-ratio:1.4;
  position:relative;
  background:#efeee9;
  overflow:hidden;
  border-radius:2px;
}
.project-image img {
  height:100%;
  object-fit:cover;
  transition:transform .9s cubic-bezier(.2,.6,.3,1);
}
.project-card:hover img {
  transform:scale(1.045);
}
.project-image:after {
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,#0000000a 35%,#0000003d);
  pointer-events:none;
}
.concept-label {
  position:absolute;
  top:22px;
  left:22px;
  background:#ffffffed;
  color:#41443c;
  font-size:.75rem;
  letter-spacing:.06em;
  padding:8px 11px;
  border-radius:1px;
  z-index:1;
}
.project-open {
  position:absolute;
  top:22px;
  right:22px;
  width:41px;
  height:41px;
  border-radius:50%;
  background:#ffffffef;
  display:grid;
  place-items:center;
  z-index:1;
  transition:transform .3s;
}
.project-card:hover .project-open {
  transform:rotate(45deg);
}
.project-wordmark {
  position:absolute;
  bottom:28px;
  left:30px;
  color:#fff;
  font-size:42px;
  letter-spacing:-.05em;
  z-index:1;
}
.origine .project-wordmark {
  font-family:Georgia,serif;
  letter-spacing:.21em;
  font-size:34px;
  text-transform:uppercase;
}
.origine .concept-label {
  background:#ffffff1a;
  border:1px solid #ffffff45;
  color:#fff;
}
.project-info {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:15px;
  padding:23px 0 0;
}
.project-info h3 {
  font-size:21px;
  letter-spacing:-.025em;
}
.project-info>div>span {
  font-size:.75rem;
  letter-spacing:.05em;
  color:var(--soft);
  display:block;
  margin-top:7px;
}
.project-type {
  font-size:.75rem;
  color:#707668;
}
.studio-section {
  background:#202622;
  color:#fff;
  position:relative;
  overflow:hidden;
  padding:105px 0 162px;
}
.studio-grid {
  display:grid;
  grid-template-columns:1.13fr 1fr;
  gap:70px;
  position:relative;
  z-index:1;
}
.studio-section .section-label {
  color:var(--gold-light);
}
.studio-left h2 {
  font-size:clamp(40px,4.6vw,66px);
  line-height:1.11;
  letter-spacing:-.047em;
  margin-top:48px;
}
.studio-left h2 em {
  color:#c9b27f;
  font-size:.99em;
}
.light-link {
  margin-top:38px;
  color:#e0d1b1;
}
.studio-right {
  padding-top:4px;
  position:relative;
  max-width:470px;
}
.swiss-seal {
  position:absolute;
  right:0;
  top:-4px;
  width:56px;
  height:56px;
  border:1px solid #aa95665c;
  color:var(--gold-light);
  display:grid;
  place-items:center;
}
.studio-intro {
  font-size:27px;
  letter-spacing:-.025em;
  line-height:1.4;
  margin-top:83px;
}
.studio-right>p:not(.studio-intro) {
  font-size:1rem;
  color:#bcc3b8;
  margin-top:22px;
  line-height:1.8;
}
.studio-values {
  margin-top:30px;
}
.studio-values>div {
  display:flex;
  gap:23px;
  border-top:1px solid #ffffff20;
  padding:17px 0;
}
.studio-values>div>span {
  font-size:.75rem;
  color:#cbb580;
  padding-top:3px;
}
.studio-values p {
  font-size:.875rem;
  color:#b9c1b5;
  line-height:1.6;
}
.studio-values strong {
  display:block;
  font-size:1rem;
  color:#f3f5ef;
  font-weight:400;
  margin-bottom:3px;
}
.studio-location {
  display:flex;
  gap:9px;
  align-items:center;
  font-size:.75rem;
  letter-spacing:.045em;
  color:#b4bda9;
  margin-top:23px;
}
.studio-location svg {
  flex-shrink:0;
}
.studio-watermark {
  position:absolute;
  bottom:-4.7vw;
  left:50%;
  transform:translateX(-50%);
  font-size:21vw;
  letter-spacing:.11em;
  line-height:1;
  color:#ffffff04;
  white-space:nowrap;
  font-weight:500;
  pointer-events:none;
}
.steps-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:38px;
  margin-top:20px;
}
.step-line {
  display:flex;
  align-items:center;
  gap:20px;
  color:var(--gold);
  margin-bottom:29px;
}
.step-line>span:first-child {
  font-family:Georgia,serif;
  font-size:30px;
  font-style:italic;
}
.step-track {
  height:1px;
  background:#dddccf;
  flex:1;
}
.step h3 {
  font-size:23px;
  letter-spacing:-.035em;
  margin-bottom:13px;
}
.step p {
  font-size:1rem;
  color:var(--soft);
  line-height:1.8;
  max-width:250px;
}
.faq-grid {
  display:grid;
  grid-template-columns:1fr 1.4fr;
  gap:70px;
  border-top:1px solid var(--border);
  padding-top:64px;
  margin-top:86px;
}
.faq-grid h3 {
  font-size:32px;
  letter-spacing:-.035em;
  line-height:1.2;
}
.faq-grid h3 em {
  color:var(--gold);
}
.faq-grid .section-label {
  margin-bottom:18px;
}
.faq-list [data-slot=accordion-trigger] {
  font-size:1rem;
  font-weight:400;
  padding:21px 0;
  line-height:1.5;
  border-radius:0;
}
.faq-list [data-slot=accordion-trigger]:hover {
  text-decoration:none;
  color:var(--gold);
}
.faq-list [data-slot=accordion-content]>div {
  font-size:1rem;
  color:var(--soft);
  line-height:1.85;
  padding-bottom:22px;
  padding-right:35px;
}
.faq-list [data-slot=accordion-item] {
  border-bottom:1px solid var(--border);
}
.contact-section {
  background:#f4f3ef;
  border-top:1px solid #e7e5dd;
  border-bottom:1px solid #e7e5dd;
}
.contact-grid {
  display:grid;
  grid-template-columns:1.02fr 1fr;
  gap:85px;
}
.contact-copy h2 {
  font-size:clamp(37px,3.6vw,53px);
  line-height:1.14;
  letter-spacing:-.047em;
}
.contact-copy h2 em {
  color:var(--gold);
}
.contact-copy>p {
  color:var(--soft);
  font-size:1rem;
  line-height:1.9;
  margin-top:28px;
}
.contact-footnote {
  display:flex;
  gap:20px;
  align-items:flex-start;
  margin-top:64px;
  font-size:.875rem;
  line-height:1.9;
  color:#72776a;
}
.gold-rule {
  width:35px;
  height:1px;
  background:var(--gold);
  margin-top:10px;
  flex-shrink:0;
}
fieldset {
  border:0;
  margin:0;
  padding:0;
  min-width:0;
}
legend {
  font-size:.875rem;
  margin-bottom:14px;
}
.need-options {
  display:flex!important;
  flex-wrap:wrap;
  gap:8px!important;
  margin-bottom:28px;
}
.contact-form-wrap .need-label {
  position:relative;
  border:1px solid #d6d5ca;
  background:transparent;
  border-radius:3px;
  padding:10px 12px;
  font-size:.875rem;
  transition:background .2s;
  cursor:pointer;
  line-height:1.4;
}
.need-label.selected {
  background:#232725!important;
  color:#fff!important;
  border-color:#232725!important;
}
.need-label:hover:not(.selected) {
  border-color:var(--gold);
  background:#eeeadf;
}
.need-radio {
  position:absolute!important;
  opacity:0!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  margin:0!important;
  border:0!important;
  cursor:pointer;
}
.need-label:focus-within {
  outline:2px solid var(--gold);
  outline-offset:3px;
}
.contact-form-wrap label {
  display:block;
  font-size:.875rem;
  color:#30352e;
}
.contact-form-wrap label>span:not(.optional) {
  color:var(--gold);
}
.optional {
  color:#727869;
  font-size:.75rem;
}
.form-row {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:23px;
}
.contact-form-wrap input,.contact-form-wrap textarea {
  display:block;
  width:100%;
  border:0;
  border-bottom:1px solid #cccec2;
  border-radius:0;
  background:transparent;
  padding:12px 0;
  font-size:1rem;
  color:#30352e;
  outline:none;
  margin-bottom:25px;
  transition:border-color .2s;
}
.contact-form-wrap input::placeholder,.contact-form-wrap textarea::placeholder {
  color:#858d7c;
}
.contact-form-wrap textarea {
  resize:vertical;
  min-height:96px;
  max-height:300px;
  line-height:1.8;
}
.contact-form-wrap input:focus,.contact-form-wrap textarea:focus {
  border-color:#826631;
  box-shadow:0 1px 0 #826631;
}
.consent-row {
  display:flex;
  gap:11px;
  align-items:flex-start;
  margin-top:1px;
}
.consent-row [data-slot=checkbox] {
  width:18px;
  height:18px;
  flex-shrink:0;
  border-radius:2px;
  margin-top:3px;
}
.consent-row label {
  font-size:.75rem;
  line-height:1.85;
  color:#6b7160;
}
.consent-row a {
  text-decoration:underline;
  text-underline-offset:3px;
}
.form-submit {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:15px;
  margin-top:27px;
}
.form-submit>span {
  font-size:.75rem;
  color:#747969;
}
.form-submit .button {
  gap:24px;
}
.form-submit .button:disabled {
  opacity:.5;
  transform:none;
  cursor:not-allowed;
}
.form-error {
  color:#9c342d;
  font-size:.875rem;
  padding:15px 0;
}
.honeypot {
  position:absolute;
  left:-10000px;
  width:1px;
  height:1px;
  overflow:hidden;
}
.success-panel {
  padding:48px 35px;
  border:1px solid #d7d1c0;
  min-height:415px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  background:#fcfcf8;
}
.success-panel>svg {
  color:var(--gold);
  margin-bottom:24px;
}
.success-panel h3 {
  font-size:30px;
  letter-spacing:-.04em;
}
.success-panel>p {
  color:var(--soft);
  font-size:1rem;
  margin-top:17px;
}
.reference {
  font-size:.75rem;
  letter-spacing:.1em;
  color:#757765;
  margin:27px 0;
}
.reference strong {
  font-size:1rem;
  letter-spacing:.03em;
  color:#333b30;
  display:block;
  margin-top:8px;
  font-weight:400;
}
.footer {
  padding:51px 0 24px;
}
.footer-top {
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding-bottom:42px;
  gap:25px;
}
.footer-top>span {
  font-family:Georgia,serif;
  font-size:16px;
  font-style:italic;
  line-height:1.6;
  color:#747768;
}
.back-top {
  display:flex;
  align-items:center;
  gap:17px;
  font-size:.875rem;
}
.footer-bottom {
  display:flex;
  justify-content:space-between;
  gap:20px;
  border-top:1px solid var(--border);
  padding-top:24px;
  color:#717763;
  font-size:.75rem;
}
.footer-bottom>div {
  display:flex;
  gap:24px;
}
.footer-swiss {
  display:flex;
  align-items:center;
  gap:8px;
  font-size:.75rem;
  letter-spacing:.03em;
}
.footer-swiss svg {
  color:var(--gold);
}
.footer-bottom a:hover {
  color:var(--gold);
}
.detail-dialog,.project-dialog {
  max-width:min(620px,calc(100% - 32px))!important;
  max-height:90dvh;
  overflow-y:auto;
  border-radius:3px!important;
  border:0!important;
  gap:0!important;
  padding:42px!important;
  z-index:70!important;
}
.detail-dialog>.eyebrow {
  color:var(--gold);
  margin-bottom:28px;
}
.detail-icon {
  color:var(--gold);
  margin-bottom:24px;
}
.close-dialog {
  position:absolute;
  top:17px;
  right:17px;
  display:grid;
  place-items:center;
  width:36px;
  height:36px;
  background:#ffffffed;
  border:1px solid #e4e4db;
  border-radius:50%;
  z-index:2;
}
.detail-title {
  font-size:34px!important;
  letter-spacing:-.04em!important;
  font-weight:400!important;
  line-height:1.15!important;
  margin-bottom:20px!important;
}
.detail-description {
  font-size:1rem!important;
  line-height:1.75!important;
  color:var(--soft)!important;
}
.detail-list {
  list-style:none;
  margin:25px 0;
  padding:0;
  display:grid;
  gap:14px;
}
.detail-list li {
  display:flex;
  align-items:flex-start;
  gap:13px;
  font-size:1rem;
  line-height:1.65;
}
.detail-list svg {
  color:var(--gold);
  flex-shrink:0;
  margin-top:3px;
}
.detail-note {
  font-size:.875rem;
  color:#727765;
  line-height:1.8;
  margin-bottom:25px;
}
.detail-dialog .button,.project-dialog .button {
  margin-top:5px;
  width:fit-content;
}
.project-dialog {
  max-width:min(760px,calc(100% - 32px))!important;
  padding:0!important;
}
.project-detail-img {
  width:100%;
  height:265px;
  object-fit:cover;
}
.project-detail-copy {
  padding:35px 40px 40px;
}
.project-detail-copy>.eyebrow {
  display:block;
  color:var(--gold);
  margin-bottom:18px;
}
.legal-page {
  max-width:800px;
  padding:60px 24px 100px;
  margin:auto;
}
.legal-page h1 {
  font-size:45px;
  letter-spacing:-.04em;
  line-height:1.15;
  margin:45px 0 25px;
}
.legal-page h2 {
  font-size:23px;
  margin:32px 0 13px;
}
.legal-page p {
  font-size:16px;
  color:var(--soft);
  margin:12px 0;
}
.legal-page a {
  text-decoration:underline;
  text-underline-offset:4px;
  color:var(--gold);
}
.legal-page .back-home {
  display:inline-flex;
  gap:10px;
  font-size:14px;
}
.legal-note {
  border-left:2px solid var(--gold);
  padding:15px 20px;
  background:#f5f4ef;
  margin:30px 0;
}
.spin {
  animation:spin 1s linear infinite;
}
@keyframes spin {
  to {
    transform:rotate(360deg);
  }
}
@keyframes art-enter {
  from {
    opacity:0;
    transform:translateY(15px);
  }
  to {
    opacity:1;
    transform:translateY(0);
  }
}
.reveal {
  opacity:1;
  transform:none;
}
.reveal.is-visible {
  animation:reveal-in .7s ease both;
}
@keyframes reveal-in {
  from {
    opacity:.15;
    transform:translateY(16px);
  }
  to {
    opacity:1;
    transform:none;
  }
}
@media(min-width:1550px) {
  .hero-grid {
    min-height:645px;
  }
  .hero h1 {
    font-size:91px;
  }
  .hero-copy>p {
    font-size:18px;
  }
  .hero-actions {
    gap:32px;
  }
}
@media(max-width:1190px) {
  .container {
    width:calc(100% - 80px);
  }
  .header-inner {
    gap:20px;
  }
  .desktop-nav {
    gap:20px;
    margin-right:0;
  }
  .header-cta {
    gap:12px;
    padding:12px 14px;
  }
  .brand strong {
    font-size:20px;
  }
  .brand small {
    font-size:8px;
  }
  .hero-grid {
    min-height:545px;
  }
  .hero h1 {
    font-size:6vw;
  }
  .hero-actions {
    align-items:flex-start;
    flex-direction:column;
    gap:8px;
    margin-top:24px;
  }
  .hero-note {
    margin-top:26px;
  }
  .service-card {
    padding-left:20px;
    padding-right:20px;
  }
  .service-card h3 {
    font-size:21px;
  }
  .service-tags {
    font-size:.75rem;
  }
  .project-type {
    display:none;
  }
  .contact-grid {
    gap:48px;
  }
  .studio-grid {
    gap:40px;
  }
  .section-pad {
    padding-top:85px;
    padding-bottom:88px;
  }
  .hero-bottom>div {
    gap:12px;
  }
  .hero-bottom>span {
    font-size:16px;
  }
}
@media(max-width:930px) {
  .container {
    width:calc(100% - 64px);
  }
  .header-inner {
    height:82px;
  }
  .desktop-nav {
    gap:23px;
    margin-left:0;
  }
  .header-cta {
    display:none;
  }
  .hero {
    padding-top:29px;
  }
  .hero-grid {
    min-height:505px;
    grid-template-columns:1.1fr 1fr;
  }
  .hero h1 {
    font-size:6.4vw;
  }
  .hero-copy>p {
    font-size:16px;
    margin-top:23px;
  }
  .hero-note {
    font-size:.75rem;
    max-width:290px;
    line-height:1.8;
  }
  .hero-image-wrap {
    width:120%;
    margin-left:-10%;
  }
  .art-caption {
    font-size:.75rem;
    bottom:34px;
    left:10px;
  }
  .art-caption span:first-child {
    max-width:180px;
  }
  .art-corner-top {
    top:40px;
  }
  .hero-bottom {
    font-size:.75rem;
    min-height:79px;
    gap:15px;
  }
  .hero-bottom>div {
    gap:12px;
  }
  .hero-bottom>span {
    font-size:14px;
    max-width:120px;
  }
  .services-grid {
    grid-template-columns:repeat(2,1fr);
    row-gap:42px;
  }
  .service-card {
    min-height:283px;
    padding:0 30px;
  }
  .service-card h3 {
    font-size:24px;
  }
  .service-card p {
    max-width:300px;
  }
  .section-heading h2 {
    font-size:43px;
  }
  .section-heading>p {
    max-width:275px;
  }
  .studio-left h2 {
    font-size:48px;
  }
  .studio-grid {
    grid-template-columns:1fr 1fr;
    gap:35px;
  }
  .studio-intro {
    font-size:25px;
  }
  .steps-grid {
    gap:24px;
  }
  .step h3 {
    font-size:21px;
  }
  .contact-grid {
    grid-template-columns:1fr 1.1fr;
    gap:40px;
  }
  .contact-copy h2 {
    font-size:40px;
  }
  .form-row {
    grid-template-columns:1fr;
    gap:0;
  }
  .form-submit>span {
    display:none;
  }
  .form-submit {
    justify-content:flex-end;
  }
  .faq-grid {
    gap:30px;
  }
  .project-wordmark {
    font-size:34px;
    left:23px;
    bottom:23px;
  }
  .project-card:nth-child(2) {
    margin-top:52px;
  }
  .concept-label {
    top:16px;
    left:16px;
    font-size:.75rem;
  }
  .project-open {
    top:16px;
    right:16px;
    width:35px;
    height:35px;
  }
  .project-open svg {
    width:20px;
  }
  .project-image {
    aspect-ratio:1.12;
  }
  .footer-bottom {
    flex-wrap:wrap;
  }
  .studio-location {
    line-height:1.6;
  }
}
@media(max-width:680px) {
  html {
    scroll-padding-top:82px;
  }
  .container {
    width:calc(100% - 40px);
  }
  .section-pad {
    padding-top:65px;
    padding-bottom:70px;
  }
  .header-inner {
    height:77px;
  }
  .brand-mark {
    height:38px;
    width:30px;
  }
  .brand {
    gap:11px;
  }
  .brand strong {
    font-size:21px;
  }
  .brand small {
    font-size:8px;
    margin-top:5px;
  }
  .desktop-nav {
    display:none;
  }
  .menu-toggle {
    display:grid;
    place-items:center;
  }
  .hero {
    padding-top:25px;
  }
  .eyebrow {
    font-size:.75rem;
    letter-spacing:.06em;
  }
  .short-line {
    width:16px;
    margin-right:8px;
  }
  .hero-top .eyebrow {
    max-width:210px;
  }
  .swiss-location {
    font-size:.75rem;
    letter-spacing:0;
    gap:5px;
    max-width:91px;
    line-height:1.4;
  }
  .swiss-location svg {
    width:13px;
  }
  .hero-grid {
    display:flex;
    flex-direction:column;
    gap:0;
  }
  .hero-copy {
    width:100%;
    padding:40px 0 0;
  }
  .hero h1 {
    font-size:clamp(39px,10.6vw,70px);
    letter-spacing:-.061em;
  }
  .hero h1 em {
    margin-top:5px;
  }
  .hero-copy>p {
    font-size:16px;
    line-height:1.8;
    margin-top:24px;
  }
  .hero-actions {
    flex-direction:row;
    flex-wrap:wrap;
    align-items:center;
    gap:12px 22px;
    margin-top:24px;
  }
  .hero-actions .button {
    font-size:.875rem;
    min-height:50px;
    padding:14px 17px;
    gap:19px;
  }
  .hero-actions .text-link {
    font-size:.875rem;
  }
  .hero-note {
    margin-top:24px;
    max-width:100%;
    font-size:.75rem;
    letter-spacing:.015em;
  }
  .hero-visual {
    width:100%;
    height:312px;
    margin-top:4px;
  }
  .hero-image-wrap {
    width:100%;
    height:100%;
    margin:0;
    aspect-ratio:auto;
  }
  .hero-image-wrap img {
    height:100%;
    width:100%;
    object-fit:contain;
  }
  .art-corner-top {
    top:18px;
    right:0;
  }
  .art-corner-bottom {
    bottom:48px;
    left:0;
  }
  .art-caption {
    bottom:10px;
    left:0;
    right:0;
    font-size:.75rem;
    letter-spacing:.02em;
  }
  .art-caption span:first-child {
    max-width:220px;
  }
  .hero-bottom {
    min-height:82px;
    display:block;
    padding:20px 0 22px;
    position:relative;
  }
  .hero-bottom>span {
    display:none;
  }
  .hero-bottom>div {
    gap:8px;
    flex-wrap:wrap;
    padding-right:42px;
    font-size:.75rem;
    line-height:1.8;
  }
  .hero-bottom>a {
    position:absolute;
    right:0;
    top:20px;
    width:34px;
    height:34px;
  }
  .gold-dot {
    width:3px;
    height:3px;
  }
  .section-heading {
    display:block;
    margin-bottom:37px;
  }
  .section-label {
    margin-bottom:18px;
  }
  .section-heading h2 {
    font-size:38px;
    line-height:1.14;
    letter-spacing:-.047em;
  }
  .section-heading>p {
    margin-top:23px;
    max-width:100%;
    font-size:1rem;
  }
  .desktop-br {
    display:none;
  }
  .services-grid {
    grid-template-columns:1fr 1fr;
    row-gap:34px;
  }
  .service-card {
    padding:0 16px;
    min-height:326px;
  }
  .service-top {
    margin-bottom:23px;
  }
  .service-top>svg {
    width:25px;
    height:25px;
  }
  .service-card h3 {
    font-size:21px;
    line-height:1.27;
    min-height:54px;
    margin-bottom:10px;
  }
  .service-card p {
    font-size:1rem;
    line-height:1.65;
  }
  .service-tags {
    font-size:.75rem;
    letter-spacing:0;
    margin-top:16px;
    line-height:1.5;
  }
  .service-link {
    font-size:.875rem;
    padding-top:24px;
  }
  .projects-grid {
    display:block;
  }
  .project-image {
    aspect-ratio:1.16;
  }
  .project-card {
    width:100%;
    display:block;
  }
  .project-card:nth-child(2) {
    margin-top:37px;
  }
  .project-info {
    padding-top:18px;
  }
  .project-info h3 {
    font-size:22px;
  }
  .project-info>div>span {
    font-size:.75rem;
  }
  .project-type {
    display:none;
  }
  .project-wordmark {
    font-size:39px;
    left:24px;
    bottom:24px;
  }
  .origine .project-wordmark {
    font-size:29px;
  }
  .concept-label {
    font-size:.75rem;
    top:18px;
    left:18px;
  }
  .project-open {
    top:18px;
    right:18px;
  }
  .studio-section {
    padding-top:65px;
    padding-bottom:94px;
  }
  .studio-grid {
    display:block;
  }
  .studio-left h2 {
    font-size:46px;
    margin-top:25px;
    line-height:1.15;
  }
  .light-link {
    margin-top:27px;
    font-size:1rem;
  }
  .studio-right {
    margin-top:49px;
    padding-top:0;
    max-width:100%;
    border-top:1px solid #ffffff20;
  }
  .swiss-seal {
    right:0;
    top:29px;
    width:44px;
    height:44px;
  }
  .swiss-seal svg {
    width:28px;
  }
  .studio-intro {
    font-size:25px;
    margin-top:34px;
    padding-right:40px;
  }
  .studio-right>p:not(.studio-intro) {
    font-size:1rem;
    max-width:430px;
    margin-top:24px;
  }
  .studio-values {
    margin-top:27px;
  }
  .studio-location {
    font-size:.75rem;
    margin-top:22px;
  }
  .studio-watermark {
    font-size:22vw;
    bottom:-3vw;
  }
  .steps-grid {
    grid-template-columns:1fr 1fr;
    gap:34px 24px;
  }
  .step-line {
    gap:18px;
    margin-bottom:20px;
  }
  .step-line>span:first-child {
    font-size:28px;
  }
  .step h3 {
    font-size:22px;
  }
  .step p {
    font-size:1rem;
    line-height:1.75;
  }
  .faq-grid {
    display:block;
    padding-top:44px;
    margin-top:52px;
  }
  .faq-grid h3 {
    font-size:31px;
  }
  .faq-list {
    margin-top:25px;
  }
  .faq-list [data-slot=accordion-trigger] {
    font-size:1rem;
    padding:22px 0;
  }
  .faq-list [data-slot=accordion-content]>div {
    font-size:1rem;
    padding-right:12px;
  }
  .contact-grid {
    display:block;
  }
  .contact-copy h2 {
    font-size:40px;
    line-height:1.15;
  }
  .contact-copy>p {
    font-size:1rem;
    margin-top:25px;
  }
  .contact-footnote {
    margin-top:25px;
    font-size:.875rem;
    gap:14px;
  }
  .contact-form-wrap {
    margin-top:40px;
  }
  .need-options {
    gap:8px;
    margin-bottom:29px;
  }
  .form-row {
    grid-template-columns:1fr;
    gap:0;
  }
  .consent-row label {
    font-size:.75rem;
  }
  .form-submit {
    justify-content:space-between;
    flex-wrap:wrap;
  }
  .form-submit>span {
    display:block;
    font-size:.75rem;
  }
  .form-submit .button {
    font-size:.875rem;
    gap:20px;
    padding:14px 17px;
    min-height:49px;
  }
  .footer {
    padding-top:34px;
  }
  .footer-top {
    flex-wrap:wrap;
    padding-bottom:28px;
    gap:25px;
  }
  .footer-top>span {
    display:none;
  }
  .back-top {
    font-size:.75rem;
    gap:8px;
  }
  .footer-bottom {
    flex-wrap:wrap;
    gap:20px 15px;
    padding-top:22px;
  }
  .footer-swiss {
    font-size:.75rem;
  }
  .footer-bottom>div {
    width:100%;
    justify-content:space-between;
    font-size:.75rem;
  }
  .detail-dialog {
    padding:35px 25px!important;
  }
  .detail-title {
    font-size:30px!important;
  }
  .project-detail-img {
    height:220px;
  }
  .project-detail-copy {
    padding:29px 25px;
  }
  .project-detail-copy .button {
    width:100%;
    font-size:.875rem;
    gap:15px;
    padding:14px 16px;
  }
  .success-panel {
    padding:32px 24px;
  }
  .legal-page h1 {
    font-size:36px;
  }
}
@media(max-width:370px) {
  .hero-note {
    font-size:.75rem;
    letter-spacing:0;
  }
  .service-card {
    padding-left:12px;
    padding-right:12px;
  }
  .service-card h3 {
    font-size:19px;
  }
  .studio-left h2 {
    font-size:39px;
  }
  .contact-copy h2 {
    font-size:35px;
  }
  .step h3 {
    font-size:20px;
  }
}
@media(prefers-reduced-motion:reduce) {
  html:not([data-motion="running"]) {
    scroll-behavior:auto;
  }
  html:not([data-motion="running"]) *,html:not([data-motion="running"]) *:before,html:not([data-motion="running"]) *:after {
    animation:none!important;
    transition:none!important;
  }
  html:not([data-motion="running"]) .reveal {
    opacity:1;
    transform:none;
  }
}
/* Multipage navigation and editorial detail pages */
.breadcrumbs {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:12px;
  padding-top:32px;
  padding-bottom:30px;
  font-size:.75rem;
  color:var(--soft);
}
.breadcrumbs>a:hover {
  color:var(--gold);
}
.breadcrumbs>span:last-child {
  color:var(--foreground);
}
.view-expertises .expertise-section {
  background:#fff;
  border-top:0;
}
.view-expertises .section-pad,.view-realisations .section-pad,.view-approche .section-pad,.view-contact .section-pad {
  padding-top:42px;
}
.section-heading h1 {
  font-size:clamp(44px,5vw,72px);
  letter-spacing:-.05em;
  line-height:1.08;
}
.section-heading h1 em {
  color:var(--gold);
}
.view-studio .studio-left h1 {
  font-size:clamp(44px,5vw,72px);
  line-height:1.11;
  letter-spacing:-.047em;
  margin-top:40px;
}
.view-studio .studio-left h1 em {
  color:#c9b27f;
}
.view-contact .contact-copy h1 {
  font-size:clamp(42px,4.6vw,66px);
  line-height:1.12;
  letter-spacing:-.047em;
}
.view-contact .contact-copy h1 em {
  color:var(--gold);
}
.view-contact .contact-section {
  padding-top:78px;
  background:#f4f3ef;
}
.view-contact .contact-grid {
  grid-template-columns:1fr 1fr;
}
.expertise-note {
  border-top:1px solid var(--border);
  margin-top:65px;
  padding-top:35px;
  display:grid;
  grid-template-columns:1fr 1.35fr;
  gap:20px 60px;
}
.expertise-note>.eyebrow {
  color:var(--gold);
}
.expertise-note p {
  font-size:18px;
  max-width:630px;
  color:var(--soft);
}
.expertise-note .text-link {
  grid-column:2;
  justify-self:start;
}
.page-cta {
  background:#f4f3ef;
  padding:69px 0;
  border-top:1px solid #e7e5dd;
  border-bottom:1px solid #e7e5dd;
}
.page-cta>.container {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:35px;
}
.page-cta .section-label {
  margin-bottom:18px;
}
.page-cta h2 {
  font-size:44px;
  letter-spacing:-.045em;
  line-height:1.13;
}
.page-cta h2 em {
  color:var(--gold);
}
.footer-navigation {
  display:flex;
  gap:30px;
  flex-wrap:wrap;
  margin-bottom:30px;
  font-size:.875rem;
}
.footer-navigation a:hover {
  color:var(--gold);
}
.desktop-nav {
  gap:23px;
  margin-right:5px;
}
.service-page-head {
  display:grid;
  grid-template-columns:1.4fr .6fr;
  gap:60px;
  align-items:center;
  padding-top:42px;
  padding-bottom:83px;
}
.service-page-head h1,.concept-head h1 {
  font-size:clamp(45px,5.7vw,82px);
  letter-spacing:-.058em;
  line-height:1.08;
}
.gold-period {
  color:var(--gold);
}
.service-page-head p {
  font-size:19px;
  max-width:660px;
  color:var(--soft);
  margin-top:30px;
  line-height:1.8;
}
.service-page-head .button {
  margin-top:32px;
}
.service-emblem {
  aspect-ratio:1;
  max-width:315px;
  display:flex;
  flex-direction:column;
  gap:24px;
  align-items:center;
  justify-content:center;
  border:1px solid var(--border);
  background:#f6f6f3;
  color:var(--gold);
  position:relative;
}
.service-emblem>span {
  font:italic 24px Georgia,serif;
  position:absolute;
  bottom:22px;
  left:25px;
}
.service-body {
  background:#f6f6f3;
  padding:78px 0;
}
.service-body-grid {
  display:grid;
  grid-template-columns:1fr 1.15fr;
  gap:100px;
}
.service-body h2,.related-services h2,.concept-story h2 {
  font-size:43px;
  letter-spacing:-.04em;
  line-height:1.15;
}
.service-body h2 em,.related-services h2 em {
  color:var(--gold);
}
.service-body p {
  font-size:16px;
  color:var(--soft);
  margin-top:25px;
  max-width:420px;
}
.deliverables>div {
  display:grid;
  grid-template-columns:25px 1fr 20px;
  gap:20px;
  padding:25px 0;
  border-bottom:1px solid #dcded4;
  align-items:center;
}
.deliverables>div:first-child {
  border-top:1px solid #dcded4;
}
.deliverables>div>span {
  color:var(--gold);
  font-size:12px;
}
.deliverables h3 {
  font-size:19px;
  line-height:1.5;
  letter-spacing:-.02em;
}
.deliverables svg {
  color:var(--gold);
}
.related-services {
  padding-top:83px;
  padding-bottom:85px;
}
.related-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:30px;
}
.related-grid>a {
  border-top:1px solid var(--border);
  padding:27px 0;
  display:grid;
  grid-template-columns:1fr 22px;
  gap:25px;
}
.related-grid>a>svg:first-child {
  color:var(--gold);
  grid-column:1/-1;
}
.related-grid h3 {
  font-size:22px;
  letter-spacing:-.025em;
}
.related-grid>a:hover h3 {
  color:var(--gold);
}
.concept-head {
  display:flex;
  gap:45px;
  align-items:flex-end;
  justify-content:space-between;
  padding-top:36px;
  padding-bottom:45px;
}
.concept-head>p {
  font:italic 26px/1.4 Georgia,serif;
  color:var(--gold);
  max-width:300px;
}
.concept-cover img {
  height:clamp(280px,47vw,650px);
  object-fit:cover;
}
.concept-story {
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:110px;
  padding-top:72px;
  padding-bottom:85px;
}
.concept-story p {
  font-size:18px;
  color:var(--soft);
  line-height:1.8;
  margin-top:22px;
}
.concept-story .concept-disclaimer {
  font-size:13px;
  padding-top:22px;
  border-top:1px solid var(--border);
  margin-top:30px;
}
.concept-story .detail-list {
  margin-top:28px;
}
.concept-story .text-link {
  margin-top:28px;
}
.service-card {
  cursor:pointer;
}
.view-studio .studio-section {
  padding-top:70px;
}
.footer {
  clear:both;
}
@media(max-width:1100px) {
  .desktop-nav {
    gap:17px;
  }
  .header-cta {
    display:none;
  }
  .desktop-nav {
    margin-left:auto;
  }
  .service-body-grid {
    gap:50px;
  }
  .concept-story {
    gap:65px;
  }
  .view-contact .contact-copy h1 {
    font-size:46px;
  }
}
@media(max-width:680px) {
  .breadcrumbs {
    padding-top:22px;
    padding-bottom:23px;
    gap:9px;
  }
  .section-heading h1 {
    font-size:43px;
  }
  .view-studio .studio-left h1 {
    font-size:44px;
    margin-top:27px;
  }
  .view-contact .contact-copy h1 {
    font-size:42px;
  }
  .view-contact .contact-section {
    padding-top:46px;
  }
  .expertise-note {
    display:block;
    padding-top:29px;
    margin-top:38px;
  }
  .expertise-note p {
    margin-top:19px;
    font-size:16px;
  }
  .expertise-note .text-link {
    margin-top:20px;
  }
  .page-cta {
    padding:49px 0;
  }
  .page-cta>.container {
    display:block;
  }
  .page-cta h2 {
    font-size:37px;
  }
  .page-cta .button {
    margin-top:29px;
  }
  .footer-navigation {
    gap:18px 24px;
    font-size:.875rem;
    margin-bottom:27px;
  }
  .service-page-head {
    display:block;
    padding-top:25px;
    padding-bottom:49px;
  }
  .service-page-head h1,.concept-head h1 {
    font-size:47px;
    overflow-wrap:anywhere;
  }
  .service-page-head p {
    font-size:17px;
    margin-top:24px;
  }
  .service-page-head .section-label {
    font-size:12px;
    line-height:1.8;
  }
  .service-emblem {
    display:none;
  }
  .service-body {
    padding:50px 0;
  }
  .service-body-grid {
    display:block;
  }
  .service-body h2,.related-services h2,.concept-story h2 {
    font-size:36px;
  }
  .service-body p {
    margin-bottom:30px;
  }
  .deliverables>div {
    gap:15px;
    padding:21px 0;
  }
  .deliverables h3 {
    font-size:17px;
  }
  .related-services {
    padding-top:51px;
    padding-bottom:40px;
  }
  .related-grid {
    grid-template-columns:1fr;
    gap:0;
  }
  .related-grid>a {
    padding:22px 0;
    grid-template-columns:30px 1fr 20px;
    align-items:center;
    gap:15px;
  }
  .related-grid>a>svg:first-child {
    grid-column:auto;
  }
  .related-grid h3 {
    font-size:20px;
  }
  .concept-head {
    display:block;
    padding-top:20px;
    padding-bottom:30px;
  }
  .concept-head>p {
    font-size:23px;
    margin-top:24px;
  }
  .concept-cover {
    width:100%;
  }
  .concept-cover img {
    height:330px;
  }
  .concept-story {
    display:block;
    padding-top:43px;
    padding-bottom:51px;
  }
  .concept-story>div+div {
    margin-top:37px;
  }
  .concept-story p {
    font-size:16px;
  }
  .view-studio .studio-section {
    padding-top:49px;
  }
}
/* Horological identity: fine construction lines, a live Swiss-time instrument,
   deliberate reveals, and an accessible global motion preference. */
main {
  position:relative;
  isolation:isolate;
}
main:before {
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background-image:linear-gradient(to right,transparent calc(100% - 1px),#e5e5dd70 1px);
  background-size:25% 100%;
}
.reading-progress {
  height:2px;
  position:fixed;
  inset:0 0 auto;
  background:var(--gold);
  transform:scaleX(0);
  transform-origin:left;
  z-index:110;
  pointer-events:none;
}
.motion-toggle {
  position:fixed;
  right:18px;
  bottom:16px;
  z-index:45;
  display:flex;
  gap:8px;
  align-items:center;
  min-height:35px;
  border:1px solid #c5bdac;
  background:#ffffffed;
  backdrop-filter:blur(9px);
  padding:9px 12px;
  color:#605337;
  font-size:12px;
  border-radius:2px;
  box-shadow:0 2px 12px #00000006;
}
.motion-toggle:hover {
  background:#f2eee5;
}
.motion-toggle svg {
  flex-shrink:0;
}
.footer {
  padding-bottom:68px;
}
.horology-hero {
  padding:28px 0 22px 18px;
}
.hero-grid {
  grid-template-columns:1.03fr 1fr;
  min-height:624px;
}
.hero-copy {
  padding-top:36px;
}
.hero h1 {
  font-size:clamp(55px,5.3vw,82px);
}
.hero h1 em {
  letter-spacing:-.059em;
}
.hero-note {
  font-size:12px;
  letter-spacing:.06em;
}
.hero-bottom {
  font-size:13px;
}
.hero-bottom>span {
  font-size:16px;
}
.swiss-clock {
  --dial-ink:#252b27;
  --dial-gold:#a18045;
  --dial-rule:#d7d8ce;
  --dial-minor:#b2b6a7;
  --dial-face:#fbfbf7;
  --dial-label:#707664;
  --tilt-x:0deg;
  --tilt-y:0deg;
  width:100%;
  margin:0;
  min-width:0;
  perspective:1000px;
}
.instrument-top {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  font-family:ui-monospace,SFMono-Regular,monospace;
  font-size:12px;
  letter-spacing:.035em;
  color:var(--dial-label);
  padding:0 15px;
}
.precision-instrument {
  transform:rotateX(var(--tilt-x)) rotateY(var(--tilt-y));
  transition:transform .6s cubic-bezier(.2,.65,.3,1);
  transform-origin:center;
  will-change:transform;
}
.clock-svg {
  width:100%;
  height:auto;
  overflow:visible;
  display:block;
  margin:10px auto 6px;
}
.instrument-construction {
  stroke:var(--dial-rule);
  stroke-width:.65;
}
.instrument-construction>path:first-child {
  opacity:.55;
  stroke-dasharray:2 5;
}
.dial-surface {
  fill:var(--dial-face);
  stroke:var(--dial-rule);
  stroke-width:.9;
}
.dial-inner-rule {
  stroke:var(--dial-rule);
  stroke-width:.5;
}
.dial-ticks .minor-tick {
  stroke:var(--dial-minor);
  stroke-width:.8;
}
.dial-ticks .major-tick {
  stroke:var(--dial-gold);
  stroke-width:2.3;
}
.dial-numbers {
  font-family:Georgia,serif;
  font-size:24px;
  fill:var(--dial-ink);
}
.dial-wordmark {
  fill:var(--dial-ink);
  font-size:18px;
  letter-spacing:5px;
}
.dial-subtitle {
  fill:var(--dial-label);
  font-size:9px;
  letter-spacing:1.8px;
}
.date-window path {
  fill:none;
  stroke:var(--dial-rule);
  stroke-width:.7;
}
.date-window text {
  fill:var(--dial-label);
  font-size:12px;
  font-family:ui-monospace,monospace;
}
.sub-dial {
  stroke:var(--dial-rule);
  stroke-width:.8;
}
.sub-dial text {
  stroke:none;
  fill:var(--dial-gold);
  font-size:12px;
  letter-spacing:2px;
}
.clock-hand {
  transform-origin:280px 280px;
  will-change:transform;
}
.hour-hand {
  transform:rotate(var(--hours,305deg));
  fill:var(--dial-ink);
}
.minute-hand {
  transform:rotate(var(--minutes,60deg));
  fill:var(--dial-ink);
}
.second-hand {
  transform:rotate(var(--seconds,0deg));
  stroke:var(--dial-gold);
  stroke-width:1.1;
  fill:var(--dial-face);
}
.hand-pivot {
  fill:var(--dial-ink);
}
.hand-jewel {
  fill:var(--dial-gold);
}
.outer-coordinate {
  fill:var(--dial-label);
  font:10px ui-monospace,monospace;
  letter-spacing:1px;
}
.clock-caption {
  border-top:1px solid var(--dial-rule);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:17px 4px 0;
  color:var(--dial-label);
  font:12px ui-monospace,SFMono-Regular,monospace;
  letter-spacing:.025em;
  line-height:1.5;
}
.clock-caption>span:first-child {
  display:flex;
  align-items:center;
  gap:8px;
}
.clock-caption time {
  color:var(--dial-ink);
  font-size:17px;
  letter-spacing:.06em;
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}
.clock-country {
  color:var(--dial-gold);
  font-family:Arial,sans-serif;
  font-size:19px;
}
.hero-visual .swiss-clock {
  animation:instrument-arrival 1.25s cubic-bezier(.2,.6,.3,1) both;
}
.hero-copy h1 {
  animation:precision-type-in 1s cubic-bezier(.2,.6,.3,1) both;
}
.hero-copy>p,.hero-actions {
  animation:precision-type-in 1s .12s cubic-bezier(.2,.6,.3,1) both;
}
.hero-note {
  animation:precision-type-in 1s .24s cubic-bezier(.2,.6,.3,1) both;
}
.reveal.reveal-pending {
  opacity:0;
  transform:translateY(25px);
}
.reveal.is-visible {
  animation:precision-reveal .85s var(--reveal-delay,0ms) cubic-bezier(.2,.7,.3,1) both;
}
.service-card {
  position:relative;
  transition:transform .35s,background .35s;
}
.service-card:before {
  content:"";
  position:absolute;
  left:26px;
  right:26px;
  top:-18px;
  height:1px;
  background:var(--gold);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .5s cubic-bezier(.2,.7,.3,1);
}
.service-card:hover:before {
  transform:scaleX(1);
}
.service-top>svg {
  transition:transform .6s cubic-bezier(.2,.7,.3,1);
}
.service-card:hover .service-top>svg {
  transform:translateY(-4px);
}
.project-image:before {
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  box-shadow:inset 0 0 0 0 #cab88880;
  transition:box-shadow .5s;
  pointer-events:none;
}
.project-card:hover .project-image:before {
  box-shadow:inset 0 0 0 8px #cab88830;
}
.project-wordmark {
  transition:transform .6s cubic-bezier(.2,.7,.3,1);
}
.project-card:hover .project-wordmark {
  transform:translateX(5px);
}
.step-line {
  gap:20px;
  align-items:center;
}
.method-dial {
  width:76px;
  height:76px;
  flex-shrink:0;
  overflow:visible;
}
.method-dial-track {
  stroke:var(--border);
  fill:none;
  stroke-width:1;
}
.method-dial-progress {
  fill:none;
  stroke:var(--gold);
  stroke-width:1.6;
  stroke-linecap:round;
}
.method-dial-ticks {
  fill:none;
  stroke:var(--gold);
  stroke-width:1;
}
.method-dial text {
  fill:var(--gold);
  font:italic 24px Georgia,serif;
}
.step.is-visible .method-dial-progress {
  animation:calibrate-ring 1.6s calc(var(--reveal-delay,0ms) + .15s) cubic-bezier(.2,.7,.3,1) both;
}
.step-track {
  transform-origin:left;
}
.step.is-visible .step-track {
  animation:draw-rule 1s .2s both;
}
.clock-compact {
  --dial-ink:#e4e6dc;
  --dial-gold:#cfb57c;
  --dial-rule:#65705e;
  --dial-minor:#74816c;
  --dial-face:#222a23;
  --dial-label:#b2bda5;
  max-width:330px;
  margin:52px 0 0;
}
.clock-compact .instrument-top {
  padding:0;
  font-size:12px;
}
.clock-compact .clock-caption {
  flex-wrap:wrap;
  gap:8px;
  padding-top:12px;
}
.clock-compact .clock-caption>span:last-child {
  display:none;
}
.clock-compact .dial-subtitle {
  font-size:10px;
}
.clock-compact .outer-coordinate {
  fill:#b2bda5;
}
.view-studio .studio-right {
  align-self:center;
  padding-top:0;
}
.view-studio .studio-intro {
  margin-top:68px;
}
.view-studio .studio-grid {
  align-items:start;
}
.view-studio .studio-watermark {
  color:#ffffff03;
}
.service-emblem {
  border-radius:50%;
  border:1px solid #d8d7c9;
  background:transparent;
  outline:1px solid #e7e6dd;
  outline-offset:10px;
}
.service-emblem:after {
  content:"";
  position:absolute;
  width:6px;
  height:6px;
  top:-3px;
  left:calc(50% - 3px);
  border-radius:50%;
  background:var(--gold);
  transform-origin:3px calc(157px + 3px);
  animation:slow-index 60s linear infinite;
}
.service-emblem>span {
  position:static;
}
.service-emblem>svg {
  margin-top:12px;
}
.breadcrumbs {
  animation:precision-type-in .7s ease both;
}
.service-page-head h1,.concept-head h1,.view-studio h1,.view-contact h1 {
  animation:precision-type-in .85s ease both;
}
@keyframes instrument-arrival {
  from {
    opacity:0;
    transform:translateY(18px) scale(.975);
  }
  to {
    opacity:1;
    transform:none;
  }
}
@keyframes precision-type-in {
  from {
    opacity:0;
    transform:translateY(16px);
  }
  to {
    opacity:1;
    transform:none;
  }
}
@keyframes precision-reveal {
  from {
    opacity:0;
    transform:translateY(25px);
  }
  to {
    opacity:1;
    transform:none;
  }
}
@keyframes calibrate-ring {
  from {
    stroke-dashoffset:100;
  }
  to {
    stroke-dashoffset:0;
  }
}
@keyframes draw-rule {
  from {
    transform:scaleX(0);
  }
  to {
    transform:scaleX(1);
  }
}
@keyframes slow-index {
  to {
    transform:rotate(360deg);
  }
}
html[data-motion="paused"] *,html[data-motion="paused"] *:before,html[data-motion="paused"] *:after {
  animation:none!important;
  transition:none!important;
  scroll-behavior:auto!important;
}
html[data-motion="paused"] .reveal {
  opacity:1;
  transform:none;
}
html[data-motion="paused"] .precision-instrument {
  transform:none;
}
html[data-motion="paused"] .second-hand {
  opacity:0;
}
@media(max-width:1190px) {
  .hero-grid {
    min-height:587px;
  }
  .horology-hero {
    padding-left:8px;
  }
  .clock-caption {
    font-size:12px;
    gap:8px;
    flex-wrap:wrap;
  }
  .clock-caption>span:last-child {
    display:none;
  }
  .hero h1 {
    font-size:6vw;
  }
  .hero-bottom>span {
    max-width:200px;
  }
}
@media(max-width:930px) {
  .hero-grid {
    min-height:560px;
    grid-template-columns:1.12fr 1fr;
  }
  .instrument-top {
    font-size:12px;
    padding:0;
    gap:10px;
  }
  .instrument-top>span:first-child {
    max-width:150px;
  }
  .hero h1 {
    font-size:6.3vw;
  }
  .horology-hero {
    padding-top:40px;
  }
  .hero-note {
    letter-spacing:.015em;
  }
  .hero-bottom>span {
    max-width:160px;
  }
  .clock-compact {
    max-width:285px;
  }
  .view-studio .studio-right {
    align-self:start;
  }
  .service-emblem:after {
    animation:none;
  }
}
@media(max-width:680px) {
  .hero-grid {
    display:flex;
    min-height:0;
  }
  .hero h1 {
    font-size:clamp(39px,10.6vw,70px);
  }
  .hero-note {
    font-size:12px;
    letter-spacing:0;
    max-width:335px;
    line-height:1.7;
  }
  .hero-visual.horology-hero {
    height:auto;
    padding:40px 5px 26px;
    margin:0;
  }
  .hero-visual .swiss-clock {
    max-width:440px;
    margin:auto;
  }
  .instrument-top {
    font-size:12px;
  }
  .instrument-top>span:first-child {
    max-width:none;
  }
  .clock-svg {
    margin-top:15px;
    margin-bottom:7px;
  }
  .clock-caption {
    font-size:12px;
    padding-top:14px;
    gap:10px;
  }
  .clock-caption time {
    font-size:16px;
  }
  .hero-bottom>div {
    font-size:12px;
  }
  .hero-bottom>span {
    display:none;
  }
  .clock-compact {
    margin:38px auto 0;
    max-width:310px;
  }
  .view-studio .studio-right {
    margin-top:43px;
  }
  .view-studio .studio-intro {
    margin-top:34px;
  }
  .view-studio .studio-left h1 {
    font-size:44px;
  }
  .method-dial {
    width:66px;
    height:66px;
  }
  .step-line {
    gap:13px;
  }
  .motion-toggle {
    right:12px;
    bottom:12px;
    font-size:12px;
    padding:8px 10px;
  }
  .service-card:before {
    left:16px;
    right:16px;
  }
  .footer {
    padding-bottom:72px;
  }
  main:before {
    background-size:50% 100%;
  }
}
@media(prefers-reduced-motion:reduce) {
  html:not([data-motion="running"]) .reveal.reveal-pending {
    opacity:1;
    transform:none;
  }
  html:not([data-motion="running"]) .precision-instrument {
    transform:none;
  }
  html:not([data-motion="running"]) .second-hand {
    opacity:0;
  }
}
/* Swiss editorial details and responsive finishing. */
:root {
  --gold: #896b38;
  --page-gutter: 60px;
}
body {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.container {
  width: calc(100% - var(--page-gutter) * 2);
}
main:before {
  inset: 0 auto 0 50%;
  width: calc(100% - var(--page-gutter) * 2);
  max-width: 1360px;
  transform: translateX(-50%);
  border-left: 1px solid #e5e5dd60;
  background-image: linear-gradient(to right, transparent calc(100% - 1px), #e5e5dd60 1px);
}
h1, h2 {
  text-wrap: balance;
}
p {
  text-wrap: pretty;
}
.hero h1 {
  white-space: normal;
}
.brand small {
  font-size: 10px;
  letter-spacing: .14em;
}
.eyebrow, .service-top>span, .service-tags {
  font-variant-numeric: tabular-nums;
}
.service-tags, .project-type, .project-info>div>span {
  color: #62675d;
}
.breadcrumbs {
  font-size: .875rem;
}
.consent-row label {
  font-size: .875rem;
  line-height: 1.65;
}
.contact-form-wrap input::placeholder, .contact-form-wrap textarea::placeholder {
  color: #6d7365;
}
.button, .text-link, .back-top, .menu-toggle {
  min-height: 44px;
}
.menu-toggle {
  min-width: 44px;
}
.motion-toggle {
  min-height: 44px;
  font-size: .875rem;
  padding: 10px 13px;
}
.motion-toggle svg {
  width: 14px;
  height: 14px;
}
.footer-navigation a, .footer-bottom a {
  padding-block: 10px;
}
.swiss-cross {
  position: relative;
  display: inline-block;
  width: 15px;
  height: 15px;
  flex: 0 0 15px;
  color: var(--gold);
}
.swiss-cross:before, .swiss-cross:after {
  content: "";
  background: currentColor;
  position: absolute;
}
.swiss-cross:before {
  width: 100%;
  height: 30%;
  top: 35%;
  left: 0;
}
.swiss-cross:after {
  height: 100%;
  width: 30%;
  top: 0;
  left: 35%;
}
.swiss-location {
  min-height: 44px;
  padding: 9px 12px;
  border: 1px solid #deded4;
  gap: 12px;
  color: #535a4e;
  transition: border-color .25s, background .25s;
}
.swiss-location:hover {
  border-color: var(--gold);
  background: #faf9f5;
}
.country-code {
  font: 12px ui-monospace, monospace;
  border-left: 1px solid #deded4;
  margin-left: 6px;
  padding-left: 13px;
  color: var(--gold);
}
.hero-note .swiss-cross {
  width: 10px;
  height: 10px;
  flex-basis: 10px;
}
.hero-bottom {
  position: relative;
}
.hero-bottom:before {
  content: "";
  position: absolute;
  top: -5px;
  left: 0;
  right: 0;
  height: 5px;
  background: repeating-linear-gradient(90deg,#9e875a66 0 1px,transparent 1px 16px);
  pointer-events: none;
}
.hero-bottom>a {
  width: 44px;
  height: 44px;
}
.swiss-seal .swiss-cross {
  width: 25px;
  height: 25px;
  flex-basis: 25px;
  color: var(--gold-light);
}
.service-emblem:after {
  inset: -4px;
  width: auto;
  height: auto;
  border-radius: 50%;
  background: radial-gradient(circle at 50% 4px,var(--gold) 0 3px,transparent 3.5px);
  transform-origin: center;
}
.swiss-atlas {
  max-width: 550px;
  margin: 52px 0 0;
}
.atlas-heading {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  color: #b7bda9;
  font: 12px/1.5 ui-monospace, monospace;
  letter-spacing: .04em;
}
.swiss-atlas svg {
  display: block;
  width: 100%;
  height: auto;
  margin: 26px 0 10px;
  overflow: visible;
}
.atlas-grid {
  stroke: #bdc7b5;
  stroke-width: .65;
  opacity: .18;
  fill: none;
}
.atlas-grid line {
  stroke-dasharray: 2 5;
}
.atlas-country {
  fill: #d5c19309;
  stroke: #c9b27f;
  stroke-width: 1.2;
  stroke-linejoin: round;
}
.atlas-coordinates {
  fill: #adb5a5;
  font: 12px ui-monospace, monospace;
}
.atlas-region {
  stroke: #c9b27f;
  fill: none;
  stroke-width: .9;
}
.atlas-region circle:first-child {
  stroke-dasharray: 2 4;
}
.atlas-region circle:nth-child(2) {
  fill: #c9b27f;
  stroke: none;
}
.atlas-region text {
  fill: #ded8c6;
  stroke: none;
  font: 12px ui-monospace, monospace;
  letter-spacing: 1.1px;
}
.atlas-scale {
  stroke: #9ca68e;
  stroke-width: .8;
  fill: none;
}
.atlas-scale text {
  fill: #adb5a5;
  stroke: none;
  font: 12px ui-monospace, monospace;
}
.swiss-atlas figcaption {
  border-top: 1px solid #ffffff24;
  padding-top: 22px;
  font-size: 18px;
  line-height: 1.6;
  color: #d7dccf;
}
.swiss-atlas figcaption em {
  color: #c9b27f;
  font-size: 20px;
}
.view-studio .studio-right {
  align-self: start;
  padding-top: 65px;
}
.view-studio .studio-intro {
  margin-top: 60px;
}
.swiss-signature {
  display: flex;
  align-items: center;
  gap: clamp(18px,2.4vw,38px);
  border-bottom: 1px solid var(--border);
  padding-bottom: 28px;
  margin-bottom: 40px;
  font-size: .875rem;
  color: #51594c;
}
.signature-origin {
  display: flex;
  align-items: center;
  gap: 13px;
  padding-right: 24px;
  border-right: 1px solid var(--border);
  color: var(--gold);
  font: 14px ui-monospace, monospace;
}
.signature-caption {
  margin-left: auto;
  font: 12px ui-monospace, monospace;
  letter-spacing: .06em;
  color: #6c725f;
}
.footer-swiss .swiss-cross {
  width: 11px;
  height: 11px;
  flex-basis: 11px;
}
.mobile-nav {
  max-height: calc(100dvh - 82px);
  overflow-y: auto;
  overscroll-behavior: contain;
  background: #fff;
  animation: menu-enter .25s ease both;
}
.mobile-nav a {
  justify-content: flex-start;
  align-items: center;
  gap: 20px;
}
.mobile-nav a>svg {
  margin-left: auto;
  color: var(--gold);
}
.mobile-nav a.active {
  color: var(--gold);
}
.mobile-index {
  font: 12px ui-monospace, monospace;
  color: var(--gold);
}
.mobile-signature {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 28px 4px 5px;
  color: #656d5d;
  font-size: 12px;
  letter-spacing: .07em;
}
@keyframes menu-enter {
  from {
    opacity: 0;
    transform: translateY(-8px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@media(max-width:1190px) {
  :root {
    --page-gutter: 40px;
  }
}
@media(max-width:930px) {
  :root {
    --page-gutter: 32px;
  }
  .signature-caption {
    display: none;
  }
  .view-studio .studio-right {
    padding-top: 30px;
  }
}
@media(max-width:900px) {
  .desktop-nav {
    display: none;
  }
  .menu-toggle {
    display: grid;
    place-items: center;
  }
}
@media(min-width:901px) {
  .mobile-nav {
    display: none;
  }
}
@media(max-width:680px) {
  :root {
    --page-gutter: 20px;
  }
  .brand small {
    font-size: 9px;
  }
  .swiss-location {
    max-width: none;
    padding: 8px;
    gap: 8px;
    font-size: 11px;
    max-width: 140px;
  }
  .country-code {
    display: none;
  }
  .hero-top {
    gap: 16px;
  }
  .hero-top .eyebrow {
    max-width: 185px;
    line-height: 1.65;
  }
  .hero-top .short-line {
    display: none;
  }
  .hero h1 {
    font-size: clamp(36px,10.6vw,70px);
    letter-spacing: -.045em;
  }
  .hero h1 em {
    letter-spacing: -.047em;
  }
  .hero-bottom>a {
    top: 18px;
  }
  .hero-bottom>div {
    padding-right: 54px;
  }
  .section-heading h1, .view-studio .studio-left h1, .view-contact .contact-copy h1 {
    font-size: clamp(35px,10.5vw,44px);
  }
  .swiss-atlas {
    margin: 39px auto 0;
    max-width: 500px;
  }
  .atlas-heading {
    font-size: 12px;
  }
  .atlas-coordinates, .atlas-scale, .atlas-region text, .atlas-region path {
    display: none;
  }
  .atlas-country {
    vector-effect: non-scaling-stroke;
  }
  .view-studio .studio-right {
    padding-top: 0;
  }
  .view-studio .studio-intro {
    margin-top: 34px;
  }
  .swiss-signature {
    flex-wrap: wrap;
    gap: 18px;
    font-size: 13px;
    margin-bottom: 30px;
    padding-bottom: 27px;
  }
  .signature-origin {
    padding-right: 18px;
    gap: 10px;
  }
  .motion-toggle {
    bottom: 12px;
    right: 12px;
  }
  .footer {
    padding-bottom: 82px;
  }
  .concept-cover {
    width: 100%;
  }
}
@media(max-width:520px) {
  .services-grid {
    grid-template-columns: 1fr;
    border-left: 0;
    gap: 0;
  }
  .service-card {
    display: grid;
    grid-template-columns: 38px minmax(0,1fr);
    gap: 0 20px;
    min-height: 0;
    padding: 28px 0;
    border-right: 0;
    border-bottom: 1px solid #ddded5;
  }
  .service-card:first-child {
    padding-top: 0;
  }
  .service-card:last-child {
    border-bottom: 0;
    padding-bottom: 0;
  }
  .service-top {
    grid-column: 1;
    grid-row: 1/5;
    flex-direction: column;
    justify-content: flex-start;
    gap: 19px;
    margin: 3px 0 0;
  }
  .service-card h3, .service-card p, .service-tags, .service-link {
    grid-column: 2;
  }
  .service-card h3 {
    font-size: 24px;
    min-height: 0;
    margin-bottom: 10px;
  }
  .service-card p {
    max-width: none;
  }
  .service-tags {
    margin-top: 14px;
  }
  .service-link {
    padding-top: 19px;
    margin-top: 0;
  }
  .service-card:before {
    display: none;
  }
  .swiss-signature {
    display: grid;
    grid-template-columns: 64px 1fr 1fr;
    column-gap: 20px;
    row-gap: 13px;
  }
  .signature-origin {
    grid-row: 1/3;
    align-self: stretch;
    padding: 0;
    border: 0;
    border-right: 1px solid var(--border);
  }
  .steps-grid {
    column-gap: 20px;
  }
  .step-line {
    gap: 10px;
  }
  .method-dial {
    width: 57px;
    height: 57px;
  }
  .step h3 {
    font-size: 21px;
  }
  .atlas-heading span:first-child {
    max-width: 80px;
  }
}
@media(max-width:360px) {
  .hero-top {
    gap: 12px;
  }
  .hero-top .eyebrow {
    max-width: 150px;
  }
  .swiss-location {
    max-width: 121px;
  }
  .hero-note {
    font-size: 11px;
  }
  .instrument-top {
    font-size: 11px;
  }
  .steps-grid {
    grid-template-columns: 1fr;
  }
  .step-line {
    max-width: 200px;
  }
}
/* Composants HTML natifs : FAQ, choix du besoin et consentement. */
.faq-item {
  border-bottom: 1px solid var(--border);
}
.faq-item:last-child {
  border-bottom: 0;
}
.faq-item summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: start;
  gap: 24px;
  padding: 21px 0;
  font-size: 1rem;
  line-height: 1.5;
}
.faq-item summary::-webkit-details-marker {
  display: none;
}
.faq-item summary:hover {
  color: var(--gold);
}
.faq-item summary:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 5px;
}
.faq-item summary svg {
  flex-shrink: 0;
  margin-top: 4px;
  transition: transform .25s;
}
.faq-item[open] summary svg {
  transform: rotate(180deg);
}
.faq-answer {
  font-size: 1rem;
  color: var(--soft);
  line-height: 1.85;
  padding: 0 35px 22px 0;
}
.faq-answer p {
  line-height: inherit;
}
.contact-form-wrap .consent-row input {
  appearance: auto;
  width: 18px;
  height: 18px;
  margin: 3px 0 0;
  padding: 0;
  flex: 0 0 18px;
  accent-color: var(--gold);
}
.contact-form-wrap .need-radio {
  padding: 0;
  box-shadow: none;
}
.need-label:has(input:checked) {
  background: #232725;
  color: #fff;
  border-color: #232725;
}
.motion-toggle svg {
  flex-shrink: 0;
}
.no-js .motion-toggle, .no-js .menu-toggle {
  display: none;
}
.no-js .reveal {
  opacity: 1;
  transform: none;
}
@media(max-width:900px) {
  .no-js .mobile-nav[hidden] {
    display: block !important;
  }
}
@media(max-width:680px) {
  .faq-item summary {
    padding: 22px 0;
  }
  .faq-answer {
    padding-right: 12px;
  }
}

/* Identité ARCELYS : déclinaison horizontale du logo approuvé. */
.legal-brand { display:flex; width:256px; margin-bottom:28px; }
.brand { gap:0; max-width:100%; }
.brand-logo { display:block; width:256px; height:auto; flex-shrink:0; }
.footer .brand-logo { width:290px; }
@media (max-width:1200px) {
  .header .brand-logo { width:226px; }
}
@media (max-width:767px) {
  .header .brand-logo { width:216px; }
  .footer .brand-logo { width:260px; max-width:100%; }
}
@media (max-width:360px) {
  .header .brand-logo { width:195px; }
  .header-inner { gap:12px; }
}

/* Réalisation client : La Taverne du Château. */
.client-feature { display:grid; grid-template-columns:1.3fr 1fr; gap:clamp(28px,4vw,64px); align-items:center; padding:34px; background:#f4f2ed; border:1px solid #e6e1d8; margin-bottom:80px; }
.client-preview { display:block; min-width:0; background:white; border:1px solid #dcd7cd; box-shadow:0 18px 45px #2521180c; transition:transform .35s; }
.client-preview:hover { transform:translateY(-5px); }
.browser-bar { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:11px 14px; background:#fff; border-bottom:1px solid #e8e5de; color:#777264; font:10px Arial,sans-serif; letter-spacing:.05em; }
.browser-dots { color:#b9b1a1; letter-spacing:3px; }
.client-preview img,.client-showcase img { display:block; width:100%; height:auto; }
.client-copy { padding:12px 0; }
.client-status { display:flex; align-items:center; gap:9px; font-size:10px; letter-spacing:.12em; line-height:1.7; color:#716044; }
.client-status i { display:block; width:6px; height:6px; border-radius:50%; background:#ab8c55; flex-shrink:0; }
.client-location { display:block; margin:27px 0 12px; font-size:9px; color:#74766e; }
.client-copy h2 { font-size:clamp(32px,3.5vw,50px); line-height:1.1; letter-spacing:-.04em; font-weight:400; }
.client-copy h2 em,.client-hero h1 em,.concepts-heading h2 em,.client-story h2 em { font-family:Georgia,serif; font-weight:400; color:var(--gold); }
.client-copy p { font-size:14px; line-height:1.8; color:var(--soft); margin:22px 0; max-width:440px; }
.project-tags { display:flex; gap:8px; flex-wrap:wrap; list-style:none; margin:0 0 24px; padding:0; }
.project-tags li { font-size:10px; padding:7px 10px; border:1px solid #dad3c6; color:#68685e; }
.client-copy .text-link { display:flex; width:fit-content; }
.client-live { display:inline-flex; align-items:center; gap:12px; font-size:12px; margin-top:17px; color:#6c7065; text-decoration:underline; text-underline-offset:5px; }
.concepts-heading { padding-top:30px; border-top:1px solid var(--border); margin-bottom:35px; }
.concepts-heading h2 { font-size:clamp(27px,3vw,40px); line-height:1.2; font-weight:400; letter-spacing:-.03em; }
.concepts-heading p { margin-top:15px; font-size:14px; color:var(--soft); }
.client-hero { display:grid; grid-template-columns:1.4fr 1fr; gap:60px; align-items:end; padding-top:55px; padding-bottom:65px; }
.client-hero h1 { font-size:clamp(46px,6.8vw,94px); font-weight:400; line-height:1.02; letter-spacing:-.05em; margin:25px 0; }
.client-hero p { color:var(--soft); font-size:18px; line-height:1.6; }
.client-hero-aside dl { margin:0 0 30px; }
.client-hero-aside dl>div { border-bottom:1px solid var(--border); padding:15px 0; }
.client-hero-aside dt { font-size:10px; letter-spacing:.12em; color:var(--gold); margin-bottom:7px; }
.client-hero-aside dd { font-size:14px; margin:0; }
.client-showcase { padding:clamp(14px,4vw,55px); background:#f1eee7; border:1px solid #e7e2d8; }
.client-showcase figcaption { font-size:11px; letter-spacing:.02em; margin-top:16px; color:#777367; }
.client-story h2 { line-height:1.2; }
.client-detail { display:flex; gap:20px; padding:22px 0; border-bottom:1px solid var(--border); }
.client-detail>span { font-size:12px; color:var(--gold); padding-top:4px; }
.client-detail h3 { font-size:18px; font-weight:400; }
.client-detail p { font-size:14px; margin-top:9px; }
.client-return { display:flex; justify-content:space-between; gap:25px; margin-bottom:75px; }
@media(max-width:1000px) { .client-feature { grid-template-columns:1fr; padding:25px; gap:20px; } .client-copy { padding:10px; } .client-copy p { max-width:650px; } .client-hero { gap:30px; } }
@media(max-width:600px) { .client-feature { padding:14px; margin-bottom:55px; } .client-copy { padding:14px 5px; } .client-copy h2 { font-size:38px; } .client-location { margin-top:20px; } .client-hero { grid-template-columns:1fr; padding-top:25px; padding-bottom:40px; gap:20px; } .client-hero h1 { font-size:52px; } .client-return { flex-direction:column; margin-bottom:45px; } .browser-bar { font-size:8px; padding:9px; gap:6px; } }

.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; }

@media (prefers-reduced-motion:reduce) { .client-preview { transition:none; } .client-preview:hover { transform:none; } }

/* Ouverture horlogère ARCELYS — contenu accessible sans JavaScript. */
.site-intro { display:none; }
html.intro-active { overflow:hidden; }
html.intro-active .site-intro { display:grid; }
html.intro-active .site-intro[hidden] { display:grid!important; }
.site-intro {
  position:fixed; inset:0; z-index:10000; overflow:auto;
  grid-template-rows:auto 1fr auto; min-height:100svh;
  background:transparent; color:#252a27;
  padding:clamp(22px,4vw,48px); isolation:isolate;
  transition:opacity .45s ease,visibility .45s;
}
.site-intro.intro-leaving { overflow:hidden; }
.intro-frame { position:absolute; inset:18px; border:1px solid #ab8c5525; pointer-events:none; z-index:-1; }
.intro-frame::before,.intro-frame::after { content:''; position:absolute; background:#ab8c55; width:24px; height:1px; top:-1px; }
.intro-frame::before { left:0; } .intro-frame::after { right:0; }
.intro-top,.intro-bottom { display:flex; justify-content:space-between; align-items:center; gap:18px; }
.intro-top { font:10px ui-monospace,SFMono-Regular,monospace; letter-spacing:.13em; color:#7a7467; }
.intro-top b { color:#a18045; font-size:17px; vertical-align:middle; margin-right:9px; }
.intro-center { align-self:center; justify-self:center; text-align:center; padding:12px 0 18px; width:min(100%,420px); }
.intro-logo { width:260px; height:auto; margin:0 auto 3px; animation:intro-appear .6s ease both; }
.intro-clock {
  --dial-ink:#252b27; --dial-gold:#a18045; --dial-rule:#d7d4cb;
  --dial-minor:#b2aea2; --dial-face:#fbfaf7; --dial-label:#707064;
  width:min(330px,42svh,80vw); margin:0 auto;
}
.intro-clock .clock-svg { margin:0; animation:intro-appear .85s .1s both; }
.intro-clock .instrument-construction { animation:intro-assembly 1.8s cubic-bezier(.16,1,.3,1) both; transform-origin:280px 280px; }
.intro-clock .clock-hand { transform-origin:280px 280px; }
.intro-clock .hour-hand { animation:intro-hour 1.6s cubic-bezier(.16,1,.3,1) both; }
.intro-clock .minute-hand { animation:intro-minute 1.8s cubic-bezier(.16,1,.3,1) both; }
.intro-clock .second-hand { animation:intro-seconds 60s linear infinite; }
.intro-clock .intro-trace { stroke:#ab8c55; stroke-width:1.5; stroke-dasharray:100; stroke-dashoffset:100; transform:rotate(-90deg); transform-origin:280px 280px; animation:intro-trace 3s cubic-bezier(.35,0,.2,1) forwards; }
.intro-time { display:flex; justify-content:center; align-items:center; gap:14px; margin:13px 0 22px; font:8px ui-monospace,SFMono-Regular,monospace; letter-spacing:.08em; color:#8a806d; }
.intro-time time { font-size:11px; color:#4c5148; font-variant-numeric:tabular-nums; }
.intro-signature { font-size:25px; line-height:1.35; font-weight:400; letter-spacing:-.035em; animation:intro-appear .8s .2s both; }
.intro-signature em { font-family:Georgia,serif; color:#a18045; font-weight:400; }
.intro-bottom>span { font-size:9px; letter-spacing:.13em; color:#79796c; }
.intro-skip { display:inline-flex; align-items:center; gap:25px; background:transparent; border:0; border-bottom:1px solid #c4b497; border-radius:0; padding:12px 0; font:inherit; font-size:12px; color:#5d563f; cursor:pointer; min-height:44px; }
.intro-skip span { font-size:19px; }
.intro-skip:hover { color:#1d2229; border-color:#1d2229; }
.intro-skip:focus-visible { outline:2px solid #a18045; outline-offset:5px; }
@keyframes intro-appear { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
@keyframes intro-assembly { from { opacity:0; transform:rotate(-25deg) scale(.93); } to { opacity:1; transform:rotate(0) scale(1); } }
@keyframes intro-hour { from { transform:rotate(calc(var(--hours) - 55deg)); } to { transform:rotate(var(--hours)); } }
@keyframes intro-minute { from { transform:rotate(calc(var(--minutes) - 160deg)); } to { transform:rotate(var(--minutes)); } }
@keyframes intro-seconds { from { transform:rotate(var(--seconds)); } to { transform:rotate(calc(var(--seconds) + 360deg)); } }
@keyframes intro-trace { to { stroke-dashoffset:0; } }
@media(max-width:600px) {
  .site-intro { padding:26px 24px 22px; }
  .intro-frame { inset:12px; }
  .intro-top { font-size:8px; letter-spacing:.055em; gap:8px; }
  .intro-top b { margin-right:3px; }
  .intro-logo { width:240px; max-width:85%; }
  .intro-signature { font-size:23px; }
  .intro-bottom { flex-direction:column; gap:9px; }
  .intro-bottom>span { font-size:8px; }
  .intro-time { gap:10px; font-size:7px; }
}
@media(max-height:580px) and (min-width:601px) {
  .site-intro { padding:25px 35px; }
  .intro-logo { width:190px; }
  .intro-clock { width:190px; }
  .intro-time { margin:5px 0 10px; }
  .intro-signature { font-size:20px; }
  .intro-center { padding:0; }
}
@media(prefers-reduced-motion:reduce) {
  html.intro-active { overflow:auto; }
  html.intro-active .site-intro,html.intro-active .site-intro[hidden] { display:none!important; }
  .site-intro,.site-intro * { animation:none!important; transition:none!important; }
}

/* Le cadran s’ouvre sur la page : un masque circulaire révèle le contenu réel. */
.site-intro::before { content:''; position:absolute; inset:0; z-index:-2; background:#fbfaf7; pointer-events:none; }
.site-intro.intro-leaving::before {
  -webkit-mask-image:radial-gradient(circle at var(--intro-origin-x,50%) var(--intro-origin-y,50%), transparent var(--intro-radius,0px), #000 calc(var(--intro-radius,0px) + 2px));
  mask-image:radial-gradient(circle at var(--intro-origin-x,50%) var(--intro-origin-y,50%), transparent var(--intro-radius,0px), #000 calc(var(--intro-radius,0px) + 2px));
}
.intro-clock { position:relative; z-index:2; transform-origin:center; }
.intro-leaving .intro-clock { transform:scale(var(--intro-clock-scale,1)); opacity:var(--intro-clock-opacity,1); will-change:transform,opacity; }
.intro-leaving .dial-surface { fill:transparent; transition:fill .25s ease; }
.intro-leaving .intro-logo,.intro-leaving .intro-signature,.intro-leaving .intro-time,.intro-leaving .intro-top,.intro-leaving .intro-bottom>span,.intro-leaving .intro-frame { animation:none; opacity:0; transition:opacity .2s ease; }
.intro-leaving .intro-bottom { position:relative; z-index:3; }
.intro-leaving .intro-skip { opacity:.5; transition:opacity .2s; }
@media(max-width:600px) {
  .site-intro .intro-signature,.site-intro .intro-time,.site-intro .intro-bottom>span { display:none; }
  .site-intro .intro-center { padding:20px 0; }
  .site-intro .intro-logo { margin-bottom:22px; }
}
@supports not (mask-image:radial-gradient(circle,transparent 0px,#000 1px)) {
  .site-intro.intro-leaving::before { opacity:0; transition:opacity 1s ease; }
}

/* Tarifs — une collection d’offres, un suivi dans la durée. */
.price-hero { display:grid; grid-template-columns:1.45fr 1fr; gap:55px; align-items:end; padding-top:50px; padding-bottom:75px; }
.price-hero h1 { font-size:clamp(45px,5.4vw,78px); line-height:1.08; font-weight:400; letter-spacing:-.055em; }
.view-pricing em { font-family:Georgia,serif; font-weight:400; color:#a38656; }
.price-hero-side>p { color:#74796d; font-size:15px; line-height:1.85; margin-bottom:24px; }
.price-hero-side .text-link { font-size:12px; }
.price-collection { border-top:1px solid #cdc8bb; }
.price-row { display:grid; grid-template-columns:1fr 1.1fr .8fr; gap:40px; align-items:start; padding:45px 0 48px; border-bottom:1px solid #dad7cd; scroll-margin-top:125px; }
.price-kicker { display:block; font-size:9px; line-height:1.6; letter-spacing:.16em; color:#9c835b; }
.price-identity h2 { font-size:clamp(27px,2.8vw,38px); line-height:1.17; font-weight:400; letter-spacing:-.04em; margin:14px 0; }
.price-identity>p { color:#8a8c7f; font-size:12px; line-height:1.7; max-width:240px; }
.price-scope { padding-top:27px; font-size:14px; color:#575e53; line-height:1.85; }
.price-scope .price-note { margin-top:15px; font-size:12px; color:#7d8074; }
.price-decision { text-align:right; }
.price-from { margin:0 0 10px; color:#6e624b; font-size:12px; line-height:1.5; letter-spacing:.03em; }
.price-amount { display:flex; align-items:baseline; justify-content:flex-end; gap:9px; color:#252b27; font-size:clamp(45px,4.5vw,65px); letter-spacing:-.06em; line-height:1.1; font-weight:300; font-variant-numeric:lining-nums tabular-nums; }
.price-amount>span { font-size:12px; letter-spacing:.05em; color:#9c835b; }
.price-frequency { display:block; font-size:8px; letter-spacing:.12em; margin-top:12px; color:#868778; }
.price-decision .text-link { margin-top:27px; font-size:12px; }
.price-inclusions { display:grid; grid-template-columns:1fr 1.5fr; gap:70px; padding-top:65px; padding-bottom:80px; }
.price-inclusions .section-label { font-size:9px; line-height:1.8; }
.price-inclusions h2,.price-boundaries h2 { font-size:34px; font-weight:400; letter-spacing:-.04em; line-height:1.2; }
.price-inclusions ul { display:grid; grid-template-columns:1fr 1fr; gap:0 30px; list-style:none; margin:0; padding:0; align-content:center; }
.price-inclusions li { display:flex; gap:12px; padding:18px 0; border-bottom:1px solid #e5e1d8; font-size:13px; line-height:1.6; color:#5d6557; }
.price-inclusions li::before { content:'+'; color:#a18558; flex-shrink:0; }
.subscription { background:#222923; color:#f7f5ef; padding:85px 0 90px; scroll-margin-top:95px; }
.subscription-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(45px,8vw,130px); }
.subscription .price-kicker { color:#c6ad82; }
.subscription h2 { font-size:clamp(44px,5.5vw,76px); line-height:1.08; letter-spacing:-.05em; font-weight:400; margin:25px 0; }
.subscription h2 em { color:#c6ad82; }
.subscription-grid>div>p { color:#b4bdaf; font-size:14px; line-height:1.85; max-width:380px; }
.subscription-price { display:flex; align-items:center; gap:20px; margin:30px 0 27px; }
.subscription-price>span { font-size:100px; font-weight:300; letter-spacing:-.065em; line-height:1; }
.subscription-price>div { font-size:15px; color:#c6ad82; line-height:1.7; }
.subscription-price>div>span { display:block; font-size:12px; color:#b4bdaf; }
.subscription .text-link { color:#f0e1c5; font-size:13px; }
.subscription-line { border-top:1px solid #545a4c; padding:25px 0; }
.subscription-line>span { font-size:9px; letter-spacing:.14em; color:#b5a583; }
.subscription-line h3 { font-size:23px; font-weight:400; line-height:1.3; letter-spacing:-.03em; margin:12px 0; }
.subscription-line p,.subscription-limit p { color:#b4bdaf; font-size:13px; line-height:1.85; }
.subscription-limit { border-left:1px solid #b99e70; padding:3px 0 3px 22px; margin:8px 0 25px; }
.subscription-limit h3 { color:#d9c5a0; font-size:15px; font-weight:400; margin-bottom:10px; }
.subscription-details .subscription-separate { font-size:11px; max-width:none; }
.price-boundaries { display:grid; grid-template-columns:1fr 1.3fr; gap:90px; padding-top:75px; padding-bottom:65px; border-bottom:1px solid #dedbd2; }
.price-boundaries .section-label { font-size:9px; line-height:1.8; }
.price-boundaries p { font-size:14px; line-height:1.85; color:#6c7466; margin-bottom:18px; }
.price-boundaries .text-link { margin-top:10px; font-size:12px; }
.price-closing { display:flex; align-items:center; justify-content:space-between; gap:30px; padding-top:40px; padding-bottom:65px; }
.price-closing p { font:italic 25px Georgia,serif; color:#85714f; }
.price-teaser { display:flex; justify-content:space-between; align-items:center; gap:35px; border-top:1px solid #dcd6c9; border-bottom:1px solid #dcd6c9; padding:38px 0; margin-top:55px; margin-bottom:55px; }
.price-teaser h2 { font-size:28px; font-weight:400; letter-spacing:-.035em; line-height:1.25; }
.price-teaser p { color:#727969; font-size:13px; line-height:1.8; margin-top:13px; }
.price-teaser .section-label { font-size:9px; margin-bottom:15px; }
.price-teaser .text-link { font-size:12px; flex-shrink:0; }
.price-teaser strong { display:block; font-size:48px; font-weight:300; letter-spacing:-.04em; white-space:nowrap; margin-bottom:12px; }
.price-teaser strong>span { font-size:12px; letter-spacing:0; color:#9c835b; }
.requested-offer { padding:15px 18px; background:#f4f1ea; border-left:2px solid #ab8c55; color:#62563f; font-size:13px; line-height:1.7; margin-bottom:25px; }
@media(min-width:1101px) { .desktop-nav { gap:clamp(16px,1.6vw,26px); margin-right:0; } .header-inner { gap:22px; } }
@media(max-width:1000px) {
  .price-hero { gap:35px; grid-template-columns:1.5fr 1fr; }
  .price-row { grid-template-columns:1fr 1.2fr; gap:20px 35px; }
  .price-decision { grid-column:1/-1; display:flex; align-items:center; justify-content:space-between; gap:20px; text-align:left; }
  .price-decision .text-link { margin-top:0; }
  .price-frequency { margin:0 auto 0 0; }
  .price-inclusions,.price-boundaries { gap:35px; }
}
@media(max-width:680px) {
  .price-hero { grid-template-columns:1fr; gap:25px; padding-top:30px; padding-bottom:45px; }
  .price-hero h1 { font-size:clamp(39px,8.8vw,55px); }
  .price-hero-side>p { font-size:14px; }
  .price-row { grid-template-columns:1fr; padding:30px 0; gap:17px; }
  .price-identity h2 { font-size:33px; }
  .price-identity>p { max-width:none; }
  .price-scope { padding-top:0; }
  .price-decision { flex-wrap:wrap; gap:12px; }
  .price-amount { font-size:51px; }
  .price-frequency { font-size:7px; }
  .price-decision .text-link { flex-basis:100%; margin-top:7px; }
  .price-inclusions,.subscription-grid,.price-boundaries { grid-template-columns:1fr; gap:30px; }
  .price-inclusions { padding-top:45px; padding-bottom:55px; }
  .price-inclusions ul { grid-template-columns:1fr; }
  .price-inclusions h2,.price-boundaries h2 { font-size:31px; }
  .subscription { padding:55px 0; }
  .subscription h2 { font-size:52px; }
  .subscription-price>span { font-size:88px; }
  .price-boundaries { padding-top:50px; padding-bottom:40px; }
  .price-closing,.price-teaser { flex-direction:column; align-items:flex-start; gap:25px; }
  .price-teaser { padding:30px 0; margin-top:35px; margin-bottom:35px; }
  .price-teaser h2 { font-size:26px; }
  .price-closing { padding-top:30px; padding-bottom:50px; }
}

/* Finition éditoriale : le texte guide, les détails s’effacent. */
.text-link { gap:0; }
.text-link::after { width:100%; opacity:.3; transition:opacity .22s ease; }
.text-link:hover::after,.text-link:focus-visible::after { opacity:1; }
.button { transition:background .25s ease,box-shadow .25s ease; }
.button:hover { transform:none; box-shadow:0 4px 16px #20232212; }
.service-link { align-self:flex-start; justify-content:flex-start; position:relative; padding-bottom:6px; color:var(--gold); }
.service-link::after { content:''; position:absolute; bottom:0; left:0; right:0; height:1px; background:currentColor; opacity:.35; transition:opacity .25s ease; }
.service-card:hover .service-link::after,.service-card:focus-visible .service-link::after { opacity:1; }
.service-card h3,.project-info h3 { transition:color .25s ease; }
.service-card:hover h3,.project-card:hover h3 { color:var(--gold); }
.deliverables>div { grid-template-columns:1fr 20px; }
.service-emblem>svg { margin-top:0; }
.method-section .step { border-top:1px solid #cec7b8; padding-top:28px; }
.method-section .step h3 { font-size:25px; font-weight:400; letter-spacing:-.035em; margin-bottom:16px; }
.client-live,.back-top,.back-home { text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:6px; text-decoration-color:#bca98480; }

/* Menu mobile : une page de navigation, sobre et respirante. */
.menu-toggle { gap:12px; padding:10px 0 10px 10px; flex-shrink:0; cursor:pointer; }
.menu-toggle-label { font-size:11px; letter-spacing:.08em; text-transform:uppercase; min-width:45px; text-align:left; }
.menu-toggle-mark { width:24px; height:18px; position:relative; }
.menu-toggle-mark>span { position:absolute; left:0; width:24px; height:1px; background:currentColor; transform-origin:center; transition:transform .3s ease,top .3s ease; }
.menu-toggle-mark>span:first-child { top:5px; }
.menu-toggle-mark>span:last-child { top:12px; }
.menu-toggle[aria-expanded="true"] .menu-toggle-mark>span:first-child { top:8px; transform:rotate(45deg); }
.menu-toggle[aria-expanded="true"] .menu-toggle-mark>span:last-child { top:8px; transform:rotate(-45deg); }
.menu-open { overflow:hidden; }
.menu-open .header { position:fixed; top:0; left:0; right:0; background:#faf9f6; backdrop-filter:none; }
.mobile-nav { padding:0; background:#faf9f6; box-shadow:none; animation:none; }
.mobile-menu-inner { width:min(100%,620px); min-height:100%; margin:0 auto; padding:clamp(24px,5vh,50px) var(--page-gutter) max(24px,env(safe-area-inset-bottom)); display:flex; flex-direction:column; }
.mobile-menu-caption { margin:0 0 22px; font-size:10px; letter-spacing:.15em; text-transform:uppercase; color:var(--gold); }
.mobile-menu-links { border-top:1px solid #dcd7cd; }
.mobile-menu-links>a { position:relative; display:block; width:100%; padding:14px 0; min-height:50px; border-bottom:1px solid #e6e1d7; font-size:clamp(25px,4.8vw,34px); line-height:1.3; font-weight:400; letter-spacing:-.04em; transition:color .2s ease; }
.mobile-menu-links>a:hover,.mobile-menu-links>a[aria-current="page"] { color:var(--gold); }
.mobile-menu-links>a[aria-current="page"]::after { content:''; position:absolute; bottom:-1px; left:0; width:40px; height:1px; background:var(--gold); }
.mobile-menu-bottom { margin-top:auto; padding-top:30px; }
.mobile-nav a.mobile-contact { display:inline-flex; justify-content:center; align-items:center; gap:0; min-height:48px; padding:14px 22px; border:1px solid #252b27; background:#252b27; color:#fff; font-size:13px; line-height:1.4; letter-spacing:.01em; transition:background .2s ease; }
.mobile-nav a.mobile-contact:hover { background:#41483f; }
.mobile-signature { margin:22px 0 0; font-size:11px; letter-spacing:.025em; color:#777568; }
.mobile-signature .swiss-cross { width:10px; height:10px; flex-basis:10px; }
@keyframes mobile-page-enter { from { opacity:0; transform:translateY(-10px); } to { opacity:1; transform:none; } }
@media(max-width:900px) {
  .menu-toggle { display:flex; align-items:center; justify-content:center; }
  .js .mobile-nav { position:absolute; top:100%; left:0; right:0; height:calc(100vh - var(--menu-header-height,82px)); height:calc(100dvh - var(--menu-header-height,82px)); max-height:none; overflow-y:auto; overscroll-behavior:contain; }
  .js .mobile-nav:not([hidden]) .mobile-menu-inner { animation:mobile-page-enter .4s cubic-bezier(.2,.65,.3,1) both; }
  .no-js .mobile-nav { max-height:none; }
}
@media(max-width:680px) {
  .header .brand-logo { width:clamp(154px,46vw,216px); }
  .header-inner { gap:12px; }
}
@media(max-height:650px) {
  .mobile-menu-inner { padding-top:18px; padding-bottom:20px; }
  .mobile-menu-caption { margin-bottom:14px; }
  .mobile-menu-links>a { font-size:25px; padding:10px 0; }
  .mobile-menu-bottom { padding-top:22px; }
}
@media(prefers-reduced-motion:reduce) {
  .js .mobile-nav:not([hidden]) .mobile-menu-inner { animation:none; }
  .menu-toggle-mark>span { transition:none; }
}
html[data-motion="paused"] .mobile-nav .mobile-menu-inner { animation:none; }
html[data-motion="paused"] .menu-toggle-mark>span { transition:none; }

/* Coordonnées du studio : un contact direct, toujours accessible. */
.contact-direct { margin-top:32px; }
.contact-direct>span { display:block; color:var(--soft); font-size:12px; letter-spacing:.025em; }
.contact-direct .text-link { font-size:clamp(24px,2.5vw,34px); letter-spacing:-.035em; color:var(--gold); overflow-wrap:anywhere; }
.footer-navigation .footer-email { margin-left:auto; color:var(--gold); text-decoration:underline; text-underline-offset:5px; text-decoration-thickness:1px; text-decoration-color:#bca98480; }
@media(max-width:680px) {
  .footer-navigation .footer-email { flex-basis:100%; margin-left:0; }
}

/* Contenus de service : une mise en page éditoriale, sans surcharge. */
.service-editorial,.service-questions { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.55fr); gap:clamp(30px,7vw,100px); padding-block:64px; border-top:1px solid #e2ddd2; }
.service-editorial h2,.service-questions h2 { font-size:clamp(30px,3vw,43px); line-height:1.15; letter-spacing:-.035em; font-weight:400; }
.service-editorial-copy { min-width:0; }
.service-editorial-copy article+article { margin-top:30px; }
.service-editorial-copy h3 { font-size:19px; line-height:1.4; font-weight:500; letter-spacing:-.02em; margin-bottom:11px; }
.service-editorial-copy p,.service-questions .faq-answer p { font-size:15px; line-height:1.85; color:#62685d; }
.service-editorial-copy a,.service-questions .faq-answer a { text-decoration:underline; text-underline-offset:4px; text-decoration-color:#ae956b; }
.editorial-proof { padding-bottom:25px; margin-bottom:25px; border-bottom:1px solid #e2ddd2; }
.faq-mark { flex-shrink:0; font-size:22px; font-weight:300; color:var(--gold); transition:transform .2s ease; }
.faq-item[open] .faq-mark { transform:rotate(45deg); }
.studio-team { color:#d7dccf; line-height:1.85; font-size:16px; margin-top:34px; }
.hero-copy>p { max-width:540px; }
@media(max-width:760px) { .service-editorial,.service-questions { grid-template-columns:1fr; gap:28px; padding-block:40px; } .service-editorial-copy p { font-size:15px; } }
@media(prefers-reduced-motion:reduce) { .faq-mark { transition:none; } }

/* Prestations actuelles : trois expertises et deux liens complémentaires. */
.related-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
@media (min-width:521px) and (max-width:1100px) {
  .services-grid { grid-template-columns:1fr; border-left:0; row-gap:0; }
  .service-card { min-height:0; padding:28px 0; border-right:0; border-bottom:1px solid var(--border); }
  .service-link { margin-top:24px; }
}
@media (max-width:600px) { .related-grid { grid-template-columns:1fr; } }

/* Information cookies : sans publicité, sans mesure d’audience. */
.cookie-notice {
  position:fixed; left:24px; bottom:24px; z-index:120;
  width:min(430px,calc(100vw - 48px)); padding:26px 28px;
  max-height:calc(100dvh - 48px); overflow:auto; overscroll-behavior:contain;
  background:#faf9f5; color:#202622; border:1px solid #ded9ce;
  box-shadow:0 16px 60px #2026221a; border-radius:3px;
  animation:cookie-arrive .35s ease-out both;
}
.cookie-notice[hidden] { display:none!important; }
.intro-active .cookie-notice, .menu-open .cookie-notice { visibility:hidden; }
.cookie-kicker { display:flex; align-items:center; gap:10px; color:#80672f; font-size:10px; letter-spacing:.17em; font-weight:600; text-transform:uppercase; }
.cookie-kicker::before { content:''; width:7px; height:7px; border:1px solid #9b8045; border-radius:50%; }
.cookie-notice h2 { font-family:Georgia,serif; font-size:26px; line-height:1.2; letter-spacing:-.025em; font-weight:400; margin:15px 0 12px; }
.cookie-notice p { font-size:13px; line-height:1.75; color:#62675d; margin:0; }
.cookie-actions { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-top:22px; }
.cookie-actions a { font-size:12px; text-decoration:underline; text-underline-offset:4px; }
.cookie-confirm { background:#202622; color:#fff; border:1px solid #202622; font:inherit; font-size:12px; min-height:44px; padding:10px 23px; cursor:pointer; border-radius:2px; }
.cookie-confirm:hover { background:#3a4238; }
.cookie-reopen { appearance:none; background:none; border:0; color:inherit; font:inherit; padding:0; cursor:pointer; text-align:left; }
.cookie-reopen:hover { color:#80672f; }
.cookie-notice :focus-visible, .cookie-reopen:focus-visible { outline:2px solid #8e733b; outline-offset:5px; }
.cookie-note-link { margin-top:24px; font-size:13px; }
@keyframes cookie-arrive { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:translateY(0); } }
@media (max-width:600px) {
  .cookie-notice { left:12px; bottom:calc(68px + env(safe-area-inset-bottom,0px)); width:calc(100vw - 24px); padding:20px 22px; max-height:calc(100dvh - 108px); }
  .cookie-notice h2 { font-size:23px; }
}
@media (prefers-reduced-motion:reduce) { .cookie-notice { animation:none; } }
