/* Élan Atelier — final visual cohesion pass
   Loaded after legacy and premium styles to resolve cascade conflicts. */

:root {
  --vf-paper: #f5f0e8;
  --vf-cream: #ece2d4;
  --vf-sand: #d7c4a8;
  --vf-gold: #bd9966;
  --vf-espresso: #211a16;
  --vf-ink: #181411;
  --vf-line: rgba(47, 37, 29, .16);
}

html, body { background: var(--vf-paper); }
body { color: var(--vf-ink); }
main { position: relative; overflow: clip; }
body:not([data-page="home"]) main {
  background:
    radial-gradient(circle at 92% 8%, rgba(189,153,102,.16), transparent 30rem),
    linear-gradient(180deg, #f7f3ec 0%, #eee5d8 58%, #f5f0e8 100%);
}
.ambient-cursor { display: none !important; }

/* Never let animation timing hide real content. */
.reveal, .reveal.is-visible { opacity: 1 !important; transform: none !important; }
.image-reveal::after { display: none !important; }
.image-reveal img { transform: none !important; }

/* Reviews: reset the legacy two-column section that created a huge empty half. */
section.premium-reviews.review-grid {
  display: block !important;
  grid-template-columns: none !important;
  gap: 0 !important;
}
.premium-reviews .section-heading {
  display: flex !important;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: 46px;
}
.premium-reviews .reviews-list {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 0 !important;
  border: 1px solid var(--vf-line);
  background: rgba(255,255,255,.3);
}
.premium-reviews .reviews-list blockquote,
.premium-reviews .reviews-list blockquote + blockquote {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 300px;
  margin: 0;
  padding: 34px 30px !important;
  border: 0 !important;
  border-right: 1px solid var(--vf-line) !important;
  background: transparent;
}
.premium-reviews .reviews-list blockquote:last-child { border-right: 0 !important; }
.premium-reviews .reviews-list blockquote p {
  min-height: 0;
  margin: 22px 0 30px;
  font: 400 clamp(1.35rem, 1.8vw, 2rem)/1.3 var(--serif);
}
.premium-reviews .reviews-list blockquote > footer {
  display: flex !important;
  grid-template-columns: none !important;
  align-items: center;
  gap: 10px;
  margin: auto 0 0 !important;
  padding: 20px 0 0 !important;
  background: transparent !important;
  color: var(--muted) !important;
  font: 600 8px/1.4 var(--sans) !important;
  letter-spacing: .12em;
  text-transform: uppercase;
}

/* Footer: complete reset of the legacy generic footer grid. */
footer.site-footer {
  display: block !important;
  grid-template-columns: none !important;
  gap: 0 !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden;
  border: 0;
  background:
    radial-gradient(circle at 12% 16%, rgba(189,153,102,.12), transparent 28rem),
    var(--vf-espresso) !important;
  color: #f6efe5 !important;
}
.site-footer .footer-main {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(520px, .92fr);
  gap: clamp(60px, 7vw, 120px);
  width: min(1440px, calc(100% - 96px));
  margin: 0 auto;
  padding: clamp(82px, 8vw, 125px) 0 70px;
}
.site-footer .footer-pitch {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-width: 0;
}
.site-footer .footer-pitch .eyebrow { color: #d5b985; }
.site-footer .footer-pitch h2 {
  max-width: 800px;
  margin: 0;
  color: #f6efe5 !important;
  font-size: clamp(4rem, 6.5vw, 7.2rem);
  line-height: .82;
  letter-spacing: -.055em;
}
.site-footer .footer-pitch h2 em { color: #c9a56e !important; }
.site-footer .footer-pitch-copy {
  max-width: 570px;
  margin: 38px 0 30px;
  color: rgba(255,255,255,.58);
  font-size: 14px;
  line-height: 1.75;
}
.site-footer a { width: auto; max-width: 100%; margin: 0; }
.site-footer .footer-booking-button {
  display: inline-flex;
  background: #f6efe5;
  color: var(--vf-espresso);
}
.site-footer .footer-directory {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-content: start;
  gap: 48px 34px;
  padding: 14px 0 0 clamp(34px, 4vw, 70px);
  border-left: 1px solid rgba(255,255,255,.13);
}
.site-footer .footer-brand-panel {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: 18px;
  padding-bottom: 32px;
  border-bottom: 1px solid rgba(255,255,255,.13);
}
.site-footer .footer-brand-panel .brand-mark { flex: 0 0 auto; margin: 0; }
.site-footer .footer-brand-panel h3 {
  margin: 0;
  color: #f6efe5 !important;
  font-size: 31px;
  line-height: 1;
}
.site-footer .footer-brand-panel p { margin: 7px 0 0; color: rgba(255,255,255,.45); }
.site-footer .footer-column { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; min-width: 0; }
.site-footer .footer-label { margin: 0 0 12px !important; color: #d5b985 !important; }
.site-footer .footer-column a,
.site-footer .footer-column p:not(.footer-label) {
  color: rgba(255,255,255,.66);
  font-size: 12px;
  line-height: 1.65;
  text-decoration: none;
}
.site-footer .footer-column a:hover { color: #fff; }
.site-footer .footer-inline-link { margin-top: 10px !important; padding-bottom: 4px; border-bottom: 1px solid currentColor; }
.site-footer .footer-bottom {
  display: grid !important;
  grid-template-columns: 1fr 1.3fr auto auto !important;
  align-items: center;
  gap: 28px;
  width: min(1440px, calc(100% - 96px));
  margin: 0 auto !important;
  padding: 25px 0 32px !important;
  border-top: 1px solid rgba(255,255,255,.13) !important;
  background: transparent !important;
  color: rgba(255,255,255,.36) !important;
}
.site-footer .footer-bottom a { display: inline; color: inherit; font-size: inherit; text-decoration: none; }

/* Journal: photographic, editorial and consistent with the dark/cream concept. */
body[data-page="journal"] main { background: var(--vf-cream); }
.journal-title {
  width: 100% !important;
  max-width: none !important;
  min-height: 490px !important;
  margin: 0 !important;
  padding: calc(var(--header-height) + 84px) max(48px, calc((100vw - var(--container)) / 2)) 82px !important;
  background:
    radial-gradient(circle at 75% 30%, rgba(189,153,102,.2), transparent 28rem),
    var(--vf-espresso);
  color: #f6efe5;
}
.journal-title .eyebrow { color: #d5b985; }
.journal-title h1 { color: #f6efe5; }
.journal-title h1 em { color: #c9a56e; }
.journal-title > span { color: rgba(255,255,255,.6); }
.journal-grid { padding-top: 76px; padding-bottom: 110px; }
.journal-grid article { overflow: hidden; }
.journal-grid article.featured {
  gap: clamp(42px, 6vw, 86px);
  padding: 34px;
  border: 1px solid var(--vf-line);
  background: rgba(255,255,255,.46);
}
.journal-cover { position: relative; margin: 0; overflow: hidden; background: #d9c9b5; }
.journal-cover img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .7s var(--ease-lux); }
.featured .journal-cover img { aspect-ratio: 16 / 10; }
.journal-cover > span {
  position: absolute;
  right: 0;
  bottom: 0;
  display: grid;
  place-items: center;
  width: 54px;
  height: 54px;
  background: var(--vf-espresso);
  color: #f6efe5;
  font: italic 500 20px var(--serif);
}
.journal-grid article:hover .journal-cover img { transform: scale(1.025); }
.journal-grid article:not(.featured) { padding-bottom: 28px; border-bottom: 1px solid var(--vf-line); }
.journal-empty { grid-column: 1 / -1; padding: 70px; background: rgba(255,255,255,.45); }

/* Login/code pages: replace the large empty white field with a composed split layout. */
body[data-page="login_request"] main,
body[data-page="login_code"] main,
body[data-page="login_expired"] main { background: var(--vf-cream); }
.auth-page.auth-layout {
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(420px, 1.08fr);
  align-items: center;
  gap: clamp(48px, 7vw, 110px);
  width: min(1380px, calc(100% - 80px));
  max-width: none;
  min-height: 860px;
  margin: 0 auto;
  padding: calc(var(--header-height) + 55px) 0 70px;
}
.auth-content { min-width: 0; }
.auth-content h1 { margin: 0; font-size: clamp(4.8rem, 7vw, 8rem); line-height: .8; }
.auth-content h1 em { color: var(--vf-gold); }
.auth-lead { max-width: 590px; margin: 34px 0; color: var(--muted); font-size: 16px; line-height: 1.75; }
.auth-layout .auth-card {
  max-width: 620px;
  margin: 0;
  padding: 34px;
  border: 1px solid var(--vf-line);
  background: rgba(255,255,255,.48);
  box-shadow: 0 25px 70px rgba(52,40,29,.07);
}
.auth-layout .auth-card form { max-width: none; margin-top: 24px; }
.auth-layout .auth-card form > p { margin: 0 0 24px; }
.auth-layout .auth-visual { position: relative; height: 690px; margin: 0; }
.auth-layout .auth-visual img { width: 100%; height: 100%; object-fit: cover; }
.auth-layout .auth-visual figcaption {
  position: absolute;
  right: 0;
  bottom: 0;
  padding: 16px 20px;
  background: var(--vf-espresso);
  color: #f6efe5;
  font-size: 8px;
  letter-spacing: .15em;
  text-transform: uppercase;
}

/* Booking: a warm atelier surface, stronger hierarchy and real photography. */
body[data-page="booking"] main {
  background:
    linear-gradient(135deg, rgba(189,153,102,.13), transparent 35rem),
    var(--vf-cream);
}
.booking-wizard {
  width: min(1320px, calc(100% - 80px)) !important;
  padding: calc(var(--header-height) + 48px) 0 92px !important;
}
.booking-wizard > header {
  display: grid !important;
  grid-template-columns: .9fr 1.1fr !important;
  gap: 30px 60px !important;
  margin: 0 !important;
  padding: 54px 58px 44px;
  background: var(--vf-espresso);
  color: #f6efe5;
}
.booking-wizard > header .eyebrow { grid-column: 1 / -1; margin: 0 !important; color: #d5b985; }
.booking-wizard > header h1 { color: #f6efe5; font-size: clamp(3.6rem, 5.4vw, 6.2rem); }
.booking-wizard .wizard-progress {
  grid-column: 1 / -1;
  margin-top: 22px;
  border-color: rgba(255,255,255,.28);
}
.booking-wizard .wizard-progress li { color: rgba(255,255,255,.53); }
.booking-wizard .wizard-progress li[aria-current="step"] { color: #fff; }
.booking-wizard form { padding: 0 58px 58px; background: rgba(255,255,255,.35); border: 1px solid var(--vf-line); border-top: 0; }
.booking-wizard .wizard-step {
  max-width: none;
  min-height: 430px;
  padding: 52px 0 0;
  border: 0;
  background: transparent;
}
.booking-wizard .wizard-step h2 { margin: 10px 0 30px; }
.booking-wizard .master-choice-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin: 18px 0;
}
.booking-wizard .master-choice-card {
  display: grid !important;
  grid-template-columns: 76px minmax(0, 1fr) !important;
  gap: 15px;
  min-height: 98px;
  padding: 10px;
  border: 1px solid var(--vf-line);
  border-radius: 0 !important;
  background: rgba(255,255,255,.45);
  color: var(--vf-ink);
  outline: 0 !important;
  transition: background .25s, color .25s, border-color .25s, transform .25s;
}
.booking-wizard .master-choice-card:hover { transform: translateY(-2px); border-color: var(--vf-gold); }
.booking-wizard .master-choice-card.selected,
.booking-wizard .master-choice-card[aria-pressed="true"] {
  border-color: var(--vf-espresso);
  background: var(--vf-espresso);
  color: #f6efe5;
}
.booking-wizard .master-choice-card img { width: 76px; height: 76px; border-radius: 0; object-fit: cover; }
.booking-wizard .master-choice-card small { color: var(--muted); line-height: 1.4; }
.booking-wizard .master-choice-card.selected small { color: rgba(255,255,255,.58); }
.booking-wizard input:not([type="hidden"]):not([type="checkbox"]),
.booking-wizard select,
.booking-wizard textarea {
  border: 1px solid rgba(57,44,33,.35) !important;
  background: rgba(255,255,255,.56) !important;
}

/* Other internal pages: keep the concept, avoid featureless white canvases. */
body[data-page="team"] main,
body[data-page="services"] main,
body[data-page="about"] main,
body[data-page="contacts"] main,
body[data-page="gallery"] main,
body[data-page="cabinet"] main,
body[data-page="booking_detail"] main,
body[data-page="booking_success"] main,
body[data-page="article"] main { background-color: var(--vf-cream); }
.page-title:not(.journal-title),
.page-hero,
.detail-hero,
.cabinet-page,
.booking-detail,
.success-page,
.legal-page,
.article-page { position: relative; }
.page-title:not(.journal-title)::before,
.page-hero::before {
  position: absolute;
  z-index: -1;
  inset: 36px -50vw 0;
  background: linear-gradient(100deg, rgba(255,255,255,.42), rgba(189,153,102,.1));
  content: "";
}
.team-title { min-height: 500px !important; }
.premium-team-page { padding-top: 50px; }
.premium-team-page article { padding-bottom: 28px; border-bottom: 1px solid var(--vf-line); }
.detail-hero { min-height: 820px; }
.detail-hero > div { padding: 34px; background: rgba(255,255,255,.34); border: 1px solid var(--vf-line); }
.service-detail-image { box-shadow: 28px 28px 0 rgba(189,153,102,.18); }
.cabinet-page, .booking-detail, .success-page, .legal-page, .article-page { padding-top: calc(var(--header-height) + 70px); }
.booking-detail-card, .success-card, .auth-card, .cabinet-empty, .booking-status-card {
  background: rgba(255,255,255,.48) !important;
  box-shadow: 0 18px 60px rgba(49,37,28,.05);
}

@media (max-width: 1180px) {
  .site-footer .footer-main { grid-template-columns: 1fr; }
  .site-footer .footer-directory { padding-left: 0; border-left: 0; border-top: 1px solid rgba(255,255,255,.13); padding-top: 50px; }
  .premium-reviews .reviews-list { grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
  .premium-reviews .reviews-list blockquote:nth-child(2) { border-right: 0 !important; }
  .premium-reviews .reviews-list blockquote:nth-child(-n+2) { border-bottom: 1px solid var(--vf-line) !important; }
  .auth-page.auth-layout { grid-template-columns: 1fr 1fr; gap: 45px; }
  .booking-wizard .master-choice-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}

@media (max-width: 820px) {
  .site-footer .footer-main,
  .site-footer .footer-bottom { width: calc(100% - 40px); }
  .site-footer .footer-main { padding: 72px 0 52px; }
  .site-footer .footer-pitch h2 { font-size: clamp(3.7rem, 15vw, 6rem); }
  .site-footer .footer-directory { grid-template-columns: 1fr 1fr; gap: 38px 22px; }
  .site-footer .footer-bottom { grid-template-columns: 1fr 1fr !important; align-items: start; }
  .journal-title { grid-template-columns: 1fr; min-height: auto !important; padding: calc(var(--header-height) + 70px) 20px 70px !important; }
  .journal-grid article.featured { grid-template-columns: 1fr; padding: 20px; }
  .auth-page.auth-layout { grid-template-columns: 1fr; width: calc(100% - 40px); min-height: auto; gap: 45px; padding-top: calc(var(--header-height) + 55px); }
  .auth-layout .auth-visual { height: 58svh; }
  .booking-wizard { width: calc(100% - 40px) !important; }
  .booking-wizard > header { grid-template-columns: 1fr !important; padding: 38px 24px 30px; }
  .booking-wizard form { padding: 0 24px 34px; }
  .booking-wizard .master-choice-grid { grid-template-columns: 1fr; }
  .premium-reviews .reviews-list { grid-template-columns: 1fr !important; }
  .premium-reviews .reviews-list blockquote { border-right: 0 !important; border-bottom: 1px solid var(--vf-line) !important; min-height: 240px; }
  .premium-reviews .reviews-list blockquote:last-child { border-bottom: 0 !important; }
}

@media (max-width: 480px) {
  .site-footer .footer-directory,
  .site-footer .footer-bottom { grid-template-columns: 1fr !important; }
  .site-footer .footer-brand-panel { align-items: flex-start; }
  .auth-content h1 { font-size: clamp(4rem, 18vw, 5.4rem); }
  .auth-layout .auth-card { padding: 24px 20px; }
  .booking-wizard .wizard-step { padding-top: 38px; }
  .booking-wizard .master-choice-card { grid-template-columns: 68px minmax(0,1fr) !important; }
  .booking-wizard .master-choice-card img { width: 68px; height: 68px; }
}


/* Small component polish */
.premium-services .service-icon span {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  color: #d5b985;
  font: 400 26px/1 var(--serif);
}
.premium-services .service-card:hover .service-icon span { color: #fff; }


/* One-line, seamless, full-width ticker */
.ticker {
  display: block !important;
  min-height: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  white-space: nowrap;
}
.ticker-track {
  display: flex !important;
  flex-flow: row nowrap !important;
  align-items: center;
  width: max-content !important;
  min-width: max-content !important;
  padding: 0 !important;
  will-change: transform;
  animation: elanTicker 36s linear infinite !important;
}
.ticker-group {
  display: block !important;
  flex: 0 0 auto !important;
  margin: 0 !important;
  padding: 0 !important;
  white-space: nowrap !important;
}
.ticker-group span {
  display: block !important;
  margin: 0 !important;
  padding: 20px 24px 20px 0 !important;
  color: var(--gold-light);
  font: italic 400 clamp(20px, 1.6vw, 27px)/1 var(--serif) !important;
  white-space: nowrap !important;
}
@keyframes elanTicker {
  from { transform: translate3d(0, 0, 0); }
  to { transform: translate3d(-50%, 0, 0); }
}
@media (max-width: 820px) {
  .ticker-track { animation-duration: 30s !important; }
  .ticker-group span { padding: 17px 20px 17px 0 !important; }
}


/* Cross-device vector arrows and final responsive audit */
.ui-arrow {
  position: relative;
  display: inline-block !important;
  flex: 0 0 15px;
  width: 15px;
  height: 15px;
  margin: 0;
  overflow: visible;
  color: currentColor;
  font-size: 0 !important;
  line-height: 0 !important;
  vertical-align: middle;
}
.ui-arrow::before {
  position: absolute;
  top: 1px;
  right: 1px;
  width: 7px;
  height: 7px;
  border-top: 1.4px solid currentColor;
  border-right: 1.4px solid currentColor;
  content: "";
}
.ui-arrow::after {
  position: absolute;
  top: 10px;
  left: 2px;
  width: 13px;
  height: 1.4px;
  background: currentColor;
  content: "";
  transform: rotate(-45deg);
  transform-origin: left center;
}
.button .ui-arrow,
.header-cta .ui-arrow,
.footer-booking-button .ui-arrow { margin-left: 2px; }
.premium-services b .ui-arrow { margin-left: auto; }
.premium-team figure > span {
  align-items: center;
  gap: 8px;
}
.premium-team figure > span .ui-arrow { width: 12px; height: 12px; flex-basis: 12px; }
.premium-team figure > span .ui-arrow::before { width: 6px; height: 6px; }
.premium-team figure > span .ui-arrow::after { top: 8px; width: 10px; }
.text-link,
.back-link,
.pagination a,
.footer-inline-link {
  font-family: var(--sans);
  font-variant-emoji: text;
}

@media (hover: none), (pointer: coarse) {
  a, button { -webkit-tap-highlight-color: transparent; }
  .premium-services .service-card:hover::before { height: 0; }
  .premium-services .service-card:hover .service-icon { background: transparent; transform: none; }
  .premium-services .service-card:hover b .ui-arrow { transform: none; }
  .premium-team figure::after { opacity: 1; }
  .premium-team figure > span {
    display: inline-flex;
    right: 12px;
    bottom: 12px;
    padding: 9px 11px;
    border: 1px solid rgba(255,255,255,.28);
    background: rgba(28,22,18,.64);
    opacity: 1;
    transform: none;
  }
}

@media (max-width: 820px) {
  html, body { overflow-x: clip; }
  .ui-arrow { width: 15px; height: 15px; flex-basis: 15px; }
  .contact-grid article {
    border-right: 1px solid var(--line) !important;
    border-bottom: 1px solid var(--line) !important;
  }
  .contact-grid article + article { border-top: 0; }
  .wizard-progress {
    scrollbar-width: none;
    scroll-snap-type: x proximity;
    overscroll-behavior-inline: contain;
  }
  .wizard-progress::-webkit-scrollbar { display: none; }
  .wizard-progress li { scroll-snap-align: start; }
  .service-detail-image { box-shadow: 14px 14px 0 rgba(189,153,102,.16); }
  .detail-hero > div { padding: 26px 22px; }
  .pagination { justify-content: space-between; width: 100%; }
  .pagination a { min-height: 44px; display: inline-flex; align-items: center; }
}

@media (max-width: 480px) {
  .premium-team figure > span { right: 9px; bottom: 9px; }
  .error-actions .ui-arrow { flex-basis: 14px; width: 14px; height: 14px; }
}
