@font-face {
  font-family:Playfair;
  src:url('assets/playfair-regular.ttf') format('truetype');
  font-weight:400;
  font-style:normal;
  font-display:swap;
}
@font-face {
  font-family:Playfair;
  src:url('assets/playfair-italic.ttf') format('truetype');
  font-weight:400;
  font-style:italic;
  font-display:swap;
}
@font-face {
  font-family:DM;
  src:url('assets/dm-sans.woff2') format('woff2');
  font-weight:100 1000;
  font-style:normal;
  font-display:swap;
}
:root {
  --bg:#080808;
  --panel:#111;
  --ink:#f4f2ed;
  --muted:#aaa9a5;
  --line:#303030;
  --control:#737373;
  --serif:Playfair,Georgia,serif;
  --sans:DM,Arial,sans-serif;
  --radius:12px;
  --ease:cubic-bezier(.16,1,.3,1);
  color-scheme:dark;
  scroll-behavior:smooth;
  scroll-padding-top:110px;
}
* {
  box-sizing:border-box;
}
body {
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font:16px/1.65 var(--sans);
  -webkit-font-smoothing:antialiased;
}
::selection {
  background:var(--ink);
  color:var(--bg);
}
a {
  color:inherit;
  text-decoration:none;
  text-underline-offset:5px;
}
button {
  font:inherit;
  cursor:pointer;
}
a,button {
  touch-action:manipulation;
  -webkit-tap-highlight-color:#ffffff26;
}
a:focus-visible,button:focus-visible {
  outline:2px solid var(--ink);
  outline-offset:6px;
}
button:focus-visible {
  outline-offset:3px;
}
h1,h2,h3,p,figure {
  margin:0;
}
h1,h2,h3 {
  font-family:var(--serif);
  font-weight:400;
  text-wrap:balance;
}
h1 {
  font-size:clamp(64px,7.5vw,96px);
  line-height:1.07;
  letter-spacing:-.035em;
}
h2 {
  font-size:clamp(36px,4vw,52px);
  line-height:1.18;
  letter-spacing:-.025em;
}
em {
  color:var(--muted);
  font-weight:400;
}
p {
  color:var(--muted);
  text-wrap:pretty;
}
img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
svg.icon {
  width:20px;
  height:20px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.5;
  stroke-linecap:round;
  stroke-linejoin:round;
  flex-shrink:0;
}
svg.svg-library {
  position:absolute;
  width:0;
  height:0;
  overflow:hidden;
}
.wrap {
  width:min(1240px,calc(100% - 96px));
  margin-inline:auto;
}
[hidden] {
  display:none!important;
}
.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;
}
.skip-link {
  position:fixed;
  top:12px;
  left:16px;
  z-index:100;
  background:var(--ink);
  color:var(--bg);
  padding:12px 20px;
  transform:translateY(-180%);
}
.skip-link:focus {
  transform:translateY(0);
}
.section {
  padding-block:100px;
  scroll-margin-top:100px;
}
section[id] {
  scroll-margin-top:100px;
}
.site-header {
  position:sticky;
  top:0;
  z-index:20;
  background:var(--bg);
  border-bottom:1px solid var(--line);
}
.header-inner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:32px;
  min-height:98px;
}
.brand {
  display:flex;
  align-items:center;
  gap:13px;
  min-height:44px;
}
.brand-seal {
  display:block;
  flex-shrink:0;
  width:56px;
  height:56px;
  object-fit:contain;
}
.brand-name {
  display:block;
  font:24px/1.2 var(--serif);
  letter-spacing:.02em;
}
.brand-name>span {
  display:block;
  font:9px/1.5 var(--sans);
  letter-spacing:.22em;
  margin-top:7px;
  color:var(--muted);
}
.navigation {
  display:flex;
  gap:32px;
}
.navigation a {
  font-size:14px;
  min-height:44px;
  display:flex;
  align-items:center;
  color:var(--muted);
  transition:color 180ms;
}
.navigation a:hover {
  color:var(--ink);
}
.button {
  display:inline-flex;
  justify-content:center;
  align-items:center;
  gap:16px;
  min-height:56px;
  padding:15px 25px;
  background:var(--ink);
  color:var(--bg);
  font-size:14px;
  font-weight:600;
  border:1px solid var(--ink);
  border-radius:6px;
  transition:background-color 180ms,transform 180ms var(--ease);
  white-space:nowrap;
}
.button:hover {
  background:#d7d4cd;
  transform:translateY(-2px);
}
.button:active {
  transform:translateY(0);
}
.button-small {
  min-height:44px;
  padding:10px 19px;
  font-size:13px;
}
.text-link {
  display:inline-flex;
  align-items:center;
  gap:10px;
  min-height:44px;
  font-size:14px;
  font-weight:500;
  transition:color 180ms;
}
.text-link:hover {
  text-decoration:underline;
}
.text-link .icon {
  width:17px;
  height:17px;
}
.menu-toggle {
  background:transparent;
  color:var(--ink);
  border:1px solid var(--control);
  border-radius:6px;
  min-height:44px;
  padding:7px 12px;
}
.menu-toggle:hover {
  background:var(--panel);
  border-color:var(--ink);
}
.brand:hover .brand-seal {
  border-color:var(--ink);
}
.footer-brand:hover {
  color:var(--muted);
}
.hero {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:52px;
  align-items:center;
  padding-block:58px;
}
.hero-copy {
  padding-block:22px;
}
.hero-description {
  max-width:38ch;
  margin-top:27px;
  font-size:16px;
  line-height:1.8;
}
.hero-actions {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:18px;
  margin-top:34px;
}
.hero-actions .text-link {
  font-size:13px;
}
.hero-location {
  margin-top:45px;
  display:inline-flex;
  align-items:center;
  gap:10px;
  min-height:44px;
  color:var(--muted);
  font-size:12px;
}
.hero-location:hover {
  color:var(--ink);
}
.hero-location .icon {
  width:17px;
}
.hero-visual {
  position:relative;
  aspect-ratio:1.08;
  overflow:hidden;
  border-radius:var(--radius);
  background:var(--panel);
}
.hero-visual img {
  object-position:48% 50%;
  animation:photo-arrive 900ms var(--ease);
}
.hero-visual:after {
  content:"";
  position:absolute;
  inset:45% 0 0;
  background:linear-gradient(transparent,#000c);
  pointer-events:none;
}
.hero-visual figcaption {
  position:absolute;
  bottom:26px;
  left:28px;
  z-index:1;
  font:23px var(--serif);
}
.hero-visual figcaption span {
  display:block;
  font:10px var(--sans);
  letter-spacing:.06em;
  margin-top:9px;
  color:#d0d0ce;
}
.trust-strip {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:24px;
  padding-block:24px;
  border-block:1px solid var(--line);
}
.trust-strip>p {
  font-size:12px;
}
.rating-inline {
  display:flex;
  align-items:center;
  gap:12px;
  font-size:12px;
  min-height:44px;
}
.rating-inline strong {
  font-size:15px;
  font-weight:500;
}
.rating-inline span {
  color:var(--muted);
}
.rating-inline:hover span {
  color:var(--ink);
}
.rating-inline>.icon:last-child {
  width:15px;
  height:15px;
}
.star-icon {
  fill:var(--ink)!important;
  stroke:none!important;
}
.trust-strip .text-link {
  font-size:12px;
}
.section-heading {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:30px;
}
.section-heading p {
  margin-top:20px;
  font-size:14px;
  line-height:1.8;
}
.gallery-toolbar {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  margin-top:36px;
  margin-bottom:24px;
}
.gallery-toolbar>p {
  font-size:11px;
}
.gallery-filters {
  display:flex;
  gap:8px;
}
.gallery-filters button {
  background:transparent;
  color:var(--muted);
  border:1px solid var(--control);
  min-width:64px;
  min-height:44px;
  padding:10px 19px;
  border-radius:6px;
  font-size:12px;
  transition:color 180ms,background-color 180ms;
}
.gallery-filters button:hover {
  color:var(--ink);
  background:var(--panel);
}
.gallery-filters button[aria-pressed=true] {
  background:var(--ink);
  color:var(--bg);
  border-color:var(--ink);
}
.gallery {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
}
.gallery-image {
  height:340px;
  overflow:hidden;
  border-radius:var(--radius);
  background:var(--panel);
}
.gallery-image img {
  transition:transform 500ms var(--ease);
}
.gallery-item figcaption {
  padding-top:20px;
}
.gallery-item h3 {
  font-size:24px;
}
.gallery-item figcaption span {
  display:block;
  margin-top:7px;
  color:var(--muted);
  font-size:12px;
}
.reviews-section {
  padding-block:76px;
  background:var(--panel);
  border-block:1px solid var(--line);
  scroll-margin-top:98px;
}
.reviews-layout {
  display:grid;
  grid-template-columns:1.4fr 1fr;
  align-items:center;
  gap:40px;
}
.reviews-layout>div>p {
  font-size:14px;
  margin-top:23px;
}
.reviews-layout .text-link {
  margin-top:17px;
}
.review-score {
  text-align:center;
  border-left:1px solid var(--line);
  padding:12px;
}
.score-number {
  font:76px/1 var(--serif);
  letter-spacing:-.03em;
}
.score-number>span {
  font:20px var(--sans);
  color:var(--muted);
  margin-left:9px;
}
.stars {
  display:flex;
  justify-content:center;
  gap:6px;
  margin-top:22px;
}
.stars .icon {
  fill:var(--ink);
  stroke:none;
  width:17px;
  height:17px;
}
.review-score>p {
  margin-top:16px!important;
}
.review-score small {
  display:block;
  color:var(--muted);
  font-size:10px;
  margin-top:9px;
}
.visit-section {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:80px;
}
.visit-intro p {
  margin-top:24px;
  font-size:14px;
}
.visit-intro .text-link {
  margin-top:20px;
}
.detail-row {
  padding-block:24px;
  border-top:1px solid var(--line);
  display:grid;
  grid-template-columns:110px 1fr;
  gap:10px;
}
.detail-row h3 {
  font:14px var(--sans);
  padding-top:3px;
}
.detail-row address {
  font-style:normal;
  font-size:14px;
  color:var(--muted);
  line-height:1.8;
}
.hours {
  margin:0;
  font-size:14px;
  color:var(--muted);
  font-variant-numeric:tabular-nums;
}
.hours>div {
  display:flex;
  justify-content:space-between;
  gap:16px;
  margin-bottom:8px;
}
.hours dd {
  margin:0;
  color:var(--ink);
}
.small-note {
  grid-column:2;
  font-size:11px;
}
.phone-link {
  font:25px var(--serif);
  display:flex;
  gap:22px;
  align-items:center;
  min-height:44px;
}
.phone-link:hover {
  text-decoration:underline;
}
.social-link {
  grid-column:2;
  color:var(--muted);
  font-size:13px;
  min-height:44px;
  display:inline-flex;
  align-items:center;
}
.social-link:hover {
  color:var(--ink);
}
.booking-section {
  padding:55px 48px;
  background:var(--ink);
  color:var(--bg);
  border-radius:var(--radius);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:35px;
  scroll-margin-top:110px;
}
.booking-section h2 {
  font-size:36px;
}
.booking-section em {
  color:#5b5b58;
}
.booking-section p {
  color:#595957;
  font-size:13px;
  margin-top:21px;
  line-height:1.8;
}
.booking-section .button {
  background:var(--bg);
  color:var(--ink);
  border-color:var(--bg);
  flex-shrink:0;
}
.booking-section .button:hover {
  background:#303030;
}
.booking-section .button:focus-visible {
  outline-color:var(--bg);
}
.site-footer {
  padding-block:60px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:24px;
}
.footer-brand {
  display:flex;
  align-items:center;
  gap:16px;
  font:27px var(--serif);
  min-height:44px;
}
.footer-logo {
  width:112px;
  height:112px;
  flex-shrink:0;
  object-fit:contain;
}
.footer-wordmark>span {
  display:block;
  color:var(--muted);
  font:9px var(--sans);
  letter-spacing:.25em;
  margin-top:9px;
}
.site-footer p {
  font-size:11px;
}
.site-footer .text-link {
  font-size:12px;
}
.mobile-contact {
  display:none;
}
@keyframes photo-arrive {
  from {
    transform:scale(1.045);
  }
  to {
    transform:scale(1);
  }
}
@media(min-width:761px) {
  .menu-toggle {
    display:none;
  }
}
@media(max-width:1100px) {
  .wrap {
    width:calc(100% - 64px);
  }
  .hero {
    gap:28px;
  }
  .trust-strip>p {
    display:none;
  }
  .hero-actions {
    gap:12px;
  }
  .gallery-image {
    height:290px;
  }
  .booking-section {
    flex-direction:column;
    align-items:flex-start;
  }
  .navigation {
    gap:20px;
  }
  .header-inner {
    gap:20px;
  }
  .visit-section {
    gap:40px;
  }
  .detail-row {
    grid-template-columns:85px 1fr;
  }
}
@media(max-width:760px) {
  :root {
    scroll-padding-top:95px;
  }
  .wrap {
    width:calc(100% - 40px);
  }
  body {
    padding-bottom:calc(78px + env(safe-area-inset-bottom));
  }
  .header-inner {
    min-height:80px;
    gap:12px;
    flex-wrap:wrap;
    position:relative;
  }
  .brand-seal {
    width:44px;
    height:44px;
  }
  .brand-name {
    font-size:20px;
  }
  .brand-name>span {
    font-size:8px;
    letter-spacing:.14em;
  }
  .header-cta {
    display:none;
  }
  .navigation {
    width:100%;
    gap:8px;
    flex-wrap:wrap;
    padding-bottom:16px;
  }
  .navigation a {
    flex:1;
    justify-content:center;
    border:1px solid var(--control);
    border-radius:6px;
  }
  .hero {
    grid-template-columns:1fr;
    gap:26px;
    padding-block:32px;
  }
  .hero-copy {
    padding-block:4px;
  }
  h1 {
    font-size:68px;
  }
  .hero-description {
    font-size:15px;
    margin-top:22px;
    max-width:42ch;
  }
  .hero-actions {
    margin-top:25px;
    gap:19px;
  }
  .hero-actions .button {
    padding-inline:20px;
  }
  .hero-location {
    margin-top:21px;
    font-size:11px;
  }
  .hero-visual {
    aspect-ratio:1.25;
  }
  .hero-visual figcaption {
    font-size:22px;
    bottom:22px;
    left:22px;
  }
  .trust-strip {
    flex-direction:column;
    align-items:flex-start;
    gap:3px;
    padding-block:15px;
  }
  .rating-inline {
    font-size:11px;
  }
  .rating-inline strong {
    font-size:14px;
  }
  .section {
    padding-block:62px;
  }
  .section-heading {
    flex-direction:column;
    align-items:flex-start;
    gap:15px;
  }
  .section-heading p {
    margin-top:20px;
  }
  .desktop-break {
    display:none;
  }
  .gallery-toolbar {
    flex-direction:column;
    align-items:flex-start;
    gap:15px;
    margin-top:24px;
  }
  .gallery-toolbar>p {
    font-size:10px;
  }
  .gallery {
    grid-template-columns:1fr;
    gap:32px;
  }
  .gallery-image {
    height:auto;
    aspect-ratio:1.1;
  }
  .gallery-item figcaption {
    padding-top:17px;
  }
  .gallery-item h3 {
    font-size:25px;
  }
  .reviews-section {
    padding-block:55px;
  }
  .reviews-layout {
    grid-template-columns:1fr;
    gap:32px;
  }
  .review-score {
    border-left:0;
    border-top:1px solid var(--line);
    padding-top:30px;
  }
  .score-number {
    font-size:65px;
  }
  .visit-section {
    grid-template-columns:1fr;
    gap:35px;
  }
  .detail-row {
    grid-template-columns:90px 1fr;
  }
  .phone-link {
    font-size:24px;
  }
  .hours {
    font-size:12px;
  }
  .booking-section {
    padding:32px 24px;
    gap:25px;
  }
  .booking-section h2 {
    font-size:32px;
  }
  .booking-section .button {
    font-size:12px;
    width:100%;
    gap:10px;
    padding-inline:14px;
  }
  .site-footer {
    padding-block:38px;
    flex-direction:column;
    align-items:flex-start;
    gap:18px;
  }
  .mobile-contact {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    position:fixed;
    bottom:0;
    left:0;
    right:0;
    z-index:30;
    background:var(--bg);
    border-top:1px solid var(--line);
    padding:12px max(20px,env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));
  }
  .mobile-contact>span {
    font-size:12px;
    color:var(--muted);
  }
  a,button {
    scroll-margin-bottom:100px;
  }
}
@media(max-width:370px) {
  h1 {
    font-size:60px;
  }
  .brand-name {
    font-size:18px;
  }
  .hero-actions {
    gap:8px;
  }
  .hero-actions .text-link {
    font-size:12px;
  }
  .detail-row {
    grid-template-columns:1fr;
  }
  .small-note,.social-link {
    grid-column:1;
  }
  .gallery-toolbar>p {
    max-width:30ch;
  }
  .hours {
    font-size:14px;
  }
}
@media(prefers-reduced-motion:reduce) {
  :root {
    scroll-behavior:auto;
  }
  *,*::before,*::after {
    animation:none!important;
    transition:none!important;
  }
}
/* Editorial refinements from the second supplied reference. */
@font-face {
  font-family:Cormorant;
  src:url('assets/cormorant-italic.ttf') format('truetype');
  font-weight:400;
  font-style:italic;
  font-display:swap;
}
:root {
  --cursive:Cormorant,Playfair,Georgia,serif;
  scroll-padding-bottom:24px;
}
h1 em,h2 em {
  font-family:var(--cursive);
  font-size:1.12em;
  line-height:.95;
}
:focus-visible {
  outline:2px solid var(--ink);
  outline-offset:6px;
}
.hero-visual {
  aspect-ratio:4/5;
}
.hero-location {
  border-top:1px solid var(--line);
  padding-top:21px;
  width:100%;
  margin-top:35px;
}
.gallery-item {
  background:var(--panel);
  border-radius:var(--radius);
  overflow:hidden;
  display:flex;
  flex-direction:column;
}
.gallery-image {
  height:auto;
  aspect-ratio:4/5;
  border-radius:0;
}
.gallery-item figcaption {
  padding:23px;
  display:flex;
  flex-direction:column;
  flex:1;
}
.gallery-item h3 {
  font-size:25px;
}
.gallery-item figcaption p {
  font-size:14px;
  line-height:1.75;
  margin-top:12px;
  margin-bottom:24px;
}
.gallery-consult {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  min-height:48px;
  border:1px solid var(--control);
  border-radius:6px;
  font-size:13px;
  margin-top:auto;
  transition:background-color 180ms,color 180ms;
}
.gallery-consult:hover {
  background:var(--ink);
  color:var(--bg);
}
.services-section {
  padding-top:0;
}
.services-heading {
  text-align:center;
  max-width:640px;
  margin-inline:auto;
}
.services-heading>p {
  margin-top:22px;
  font-size:15px;
}
.service-list {
  margin-top:38px;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:0 48px;
}
.service-item {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:25px;
  padding-block:27px;
  border-bottom:1px solid var(--line);
  min-width:0;
}
.service-item>div {
  min-width:0;
}
.service-item h3 {
  font-size:24px;
}
.service-item p {
  font-size:14px;
  margin-top:9px;
}
.service-item .text-link {
  flex-shrink:0;
  font-size:13px;
}
.services-note {
  font-size:12px;
  text-align:center;
  margin-top:27px;
}
.booking-contact {
  width:310px;
  max-width:100%;
  flex-shrink:0;
}
.booking-contact .button {
  width:100%;
  gap:12px;
  font-size:13px;
  padding-inline:16px;
}
.consult-choice label {
  display:block;
  font-size:13px;
  font-weight:600;
  margin-bottom:9px;
}
.consult-choice select {
  font:14px var(--sans);
  background:var(--ink);
  color:var(--bg);
  width:100%;
  min-height:48px;
  border:1px solid #70706b;
  border-radius:6px;
  padding:10px 12px;
  cursor:pointer;
  scroll-margin-block:150px;
}
.consult-choice select:focus-visible {
  outline:2px solid var(--bg);
  outline-offset:3px;
}
.consult-choice p {
  font-size:12px;
  margin:10px 0 18px;
}
@media(min-width:1101px) {
  .navigation {
    gap:26px;
  }
}
@media(max-width:1100px) {
  .header-inner {
    gap:15px;
  }
  .navigation {
    gap:18px;
  }
  .navigation a {
    font-size:12px;
  }
  .brand-name {
    font-size:22px;
  }
  .brand-name>span {
    font-size:8px;
  }
  .hero-visual {
    aspect-ratio:4/5;
  }
  .gallery-item figcaption {
    padding:20px;
  }
  .gallery-item h3 {
    font-size:22px;
  }
  .service-list {
    gap:0 28px;
  }
  .service-item {
    gap:16px;
  }
}
@media(max-width:760px) {
  :root {
    scroll-padding-bottom:calc(96px + env(safe-area-inset-bottom));
  }
  .hero-visual {
    aspect-ratio:1.1;
  }
  .hero-location {
    padding-top:16px;
    margin-top:23px;
  }
  .navigation a {
    flex:1 1 42%;
    font-size:14px;
  }
  .brand-name {
    font-size:20px;
  }
  .gallery-image {
    aspect-ratio:4/3;
  }
  .gallery-item figcaption {
    padding:24px;
  }
  .service-list {
    grid-template-columns:1fr;
    margin-top:26px;
  }
  .service-item h3 {
    font-size:23px;
  }
  .service-item p {
    font-size:14px;
  }
  .services-heading {
    text-align:left;
  }
  .services-heading p {
    font-size:15px;
  }
  .services-note {
    text-align:left;
    font-size:12px;
  }
  .booking-contact {
    width:100%;
  }
  .booking-section h2 {
    font-size:30px;
  }
  .section-heading h2 {
    font-size:34px;
  }
  .hero-location {
    font-size:11px;
  }
}

/* Native adaptation of Magic UI's Bento Grid and Text Animate. */
.text-animate-word {
  display:inline-block;
}
.bento-grid {
  grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);
  grid-template-rows:repeat(2,310px);
  gap:20px;
}
.bento-grid .gallery-item {
  position:relative;
  isolation:isolate;
  border:1px solid #ffffff24;
}
.bento-grid[data-filter="todos"] .gallery-item:first-child {
  grid-row:span 2;
}
.bento-grid .gallery-image {
  position:absolute;
  inset:0;
  height:100%;
  aspect-ratio:auto;
  z-index:-2;
}
.bento-grid .gallery-image img {
  transition:transform 250ms var(--ease);
}
.bento-grid .gallery-item::after {
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(180deg,transparent 15%,#08080870 38%,#080808ed 78%);
}
.bento-grid .gallery-item figcaption {
  flex:0;
  margin-top:auto;
  padding:28px;
  position:relative;
  z-index:1;
  pointer-events:none;
}
.bento-grid .gallery-item h3 {
  color:#fff;
  font-size:28px;
}
.bento-grid .gallery-item figcaption p {
  color:#e0ded9;
  max-width:38ch;
  margin:10px 0 18px;
}
.bento-grid .gallery-consult {
  pointer-events:auto;
  color:#fff;
  background:#08080880;
  border-color:#ffffff80;
  justify-content:space-between;
  padding-inline:16px;
}
.bento-grid .gallery-consult:hover {
  color:#080808;
  background:#f4f2ed;
}
.bento-grid[data-filter="cortes"],
.bento-grid[data-filter="detalles"] {
  grid-template-rows:480px;
}
.bento-grid[data-filter="detalles"] {
  grid-template-columns:1fr;
}
.bento-grid .gallery-item:focus-within {
  outline:2px solid var(--ink);
  outline-offset:4px;
}
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  .bento-grid .gallery-item:hover img {
    transform:scale(1.035);
  }
}
@media(max-width:760px) {
  .bento-grid,
  .bento-grid[data-filter="cortes"],
  .bento-grid[data-filter="detalles"] {
    grid-template-columns:1fr;
    grid-template-rows:none;
    grid-auto-rows:minmax(400px,auto);
    gap:16px;
  }
  .bento-grid[data-filter="todos"] .gallery-item:first-child {
    grid-row:auto;
    min-height:460px;
  }
  .bento-grid .gallery-item figcaption {
    padding:24px;
  }
  .bento-grid .gallery-item h3 {
    font-size:26px;
  }
}

/* Four alternating vertical columns, adapted from Magic UI Marquee 3D. */
.reviews-with-marquee {
  grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);
  gap:56px;
}
.reviews-with-marquee .review-score {
  text-align:left;
  border:0;
  padding:0;
  margin-top:34px;
}
.reviews-with-marquee .score-number {
  font-size:64px;
}
.reviews-with-marquee .stars {
  justify-content:flex-start;
  margin-top:14px;
}
.reviews-motion {
  min-width:0;
}
.marquee-scene {
  height:420px;
  position:relative;
  overflow:hidden;
  perspective:300px;
  isolation:isolate;
}
.marquee-scene::after {
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(to bottom,var(--panel),transparent 22%,transparent 76%,var(--panel)),linear-gradient(to right,var(--panel),transparent 12%,transparent 88%,var(--panel));
}
.marquee-plane {
  position:absolute;
  left:50%;
  top:50%;
  display:flex;
  gap:16px;
  width:max-content;
  height:600px;
  transform:translate(-50%,-50%) translateZ(-100px) rotateX(20deg) rotateY(-10deg) rotateZ(20deg);
}
.marquee-column {
  width:172px;
  overflow:hidden;
}
.marquee-track {
  display:flex;
  flex-direction:column;
  width:100%;
  animation:marquee-vertical 20s linear infinite;
  animation-play-state:paused;
}
.marquee-column-reverse .marquee-track {
  animation-direction:reverse;
}
.marquee-group {
  display:flex;
  flex-direction:column;
  gap:16px;
  padding-bottom:16px;
}
.marquee-card {
  min-height:208px;
  padding:20px 16px;
  border:1px solid #4a4a46;
  border-radius:12px;
  background:#20201e;
  margin:0;
}
.marquee-card-source {
  display:flex;
  align-items:center;
  gap:7px;
  font-size:10px;
  color:#c7c5bf;
}
.marquee-card-source .icon {
  width:14px;
  height:14px;
  fill:var(--ink);
  stroke:none;
  flex-shrink:0;
}
.marquee-card figcaption {
  font:22px/1.2 var(--serif);
  margin-top:25px;
  color:var(--ink);
}
.marquee-card p {
  font-size:12px;
  line-height:1.65;
  color:#d4d1ca;
  margin-top:13px;
}
.reviews-motion[data-running="true"][data-paused="false"] .marquee-track {
  animation-play-state:running;
}
.reviews-motion:has(:focus-visible) .marquee-track {
  animation-play-state:paused;
}
.marquee-footer {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-top:12px;
}
.marquee-footer p {
  font-size:11px;
  line-height:1.7;
}
.marquee-toggle {
  flex-shrink:0;
  min-height:44px;
  padding:10px 12px;
  border:1px solid var(--control);
  border-radius:6px;
  color:var(--ink);
  font-size:11px;
  background:transparent;
  cursor:pointer;
}
.marquee-toggle:hover {
  background:var(--ink);
  color:var(--bg);
}
@keyframes marquee-vertical {
  from { transform:translateY(0); }
  to { transform:translateY(-50%); }
}
@media(hover:hover) and (pointer:fine) {
  .reviews-motion:hover .marquee-track { animation-play-state:paused; }
}
@media(max-width:1000px) {
  .reviews-with-marquee { gap:28px; }
}
@media(max-width:760px) {
  .reviews-with-marquee { grid-template-columns:1fr; gap:32px; }
  .marquee-scene { height:340px; }
  .marquee-plane { transform:translate(-50%,-50%) translateZ(-140px) rotateX(20deg) rotateY(-10deg) rotateZ(20deg); }
  .marquee-footer { flex-wrap:wrap; }
}
@media(prefers-reduced-motion:reduce) {
  .marquee-plane { transform:translate(-50%,-50%) translateZ(-100px); }
  .marquee-track { animation:none; }
  .marquee-toggle { display:none; }
}

/* Apple Cards treatment with native scrolling and an accessible image dialog. */
.photo-expand {
  position:absolute; inset:0; width:100%; color:#fff; background:transparent; border:0; cursor:zoom-in;
}
.photo-expand>.icon {
  position:absolute; top:20px; right:20px; width:44px; height:44px; padding:12px;
  background:#080808c9; border:1px solid #ffffff80; border-radius:50%;
}
.gallery-item:has(.photo-expand:focus-visible) { outline:2px solid var(--ink); outline-offset:4px; }
.photo-dialog {
  width:min(900px,calc(100% - 40px)); max-height:calc(100dvh - 48px); margin:auto;
  padding:40px; color:var(--ink); background:var(--panel); border:1px solid var(--line);
  border-radius:20px; overflow:auto; overscroll-behavior:contain;
}
.photo-dialog::backdrop { background:#000c; }
.photo-dialog[open] { animation:photo-dialog-in 200ms var(--ease); }
.photo-dialog-copy { padding-right:48px; }
.photo-dialog h2 { font-size:32px; line-height:1.25; }
.photo-dialog p { font-size:14px; margin-top:12px; }
.photo-dialog #photo-reference { font-size:12px; }
.photo-close {
  position:absolute; top:20px; right:20px; width:44px; height:44px; display:grid; place-items:center;
  border:1px solid var(--control); border-radius:50%; background:var(--bg); color:var(--ink); cursor:pointer;
}
.photo-full { width:100%; height:auto; max-height:65dvh; object-fit:contain; margin-top:28px; border-radius:12px; }
body.photo-open { overflow:hidden; }
@keyframes photo-dialog-in { from { opacity:0; transform:scale(.96); } to { opacity:1; transform:scale(1); } }
@media(max-width:760px) {
  .photo-dialog { width:calc(100% - 24px); padding:28px 20px; max-height:calc(100dvh - 24px); }
  .photo-dialog h2 { font-size:26px; }
}

/* Flow Button: native version of the supplied React component. */
.flow-button.flow-button {
  --flow-ink:#f4f2ed;
  --flow-surface:#111111;
  --flow-border:#858580;
  --flow-ease:cubic-bezier(.23,1,.32,1);
  position:relative;
  isolation:isolate;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  gap:0;
  min-height:48px;
  padding:12px 36px;
  border:1.5px solid var(--flow-border);
  border-radius:100px;
  background:transparent;
  color:var(--flow-ink);
  font-weight:600;
  text-decoration:none;
  cursor:pointer;
  transform:none;
  transition:border-color 600ms var(--flow-ease),border-radius 600ms var(--flow-ease),color 600ms var(--flow-ease),transform 160ms var(--flow-ease);
}
.flow-button.flow-button .flow-label {
  position:relative;
  display:block;
  z-index:1;
  margin:0;
  color:inherit;
  font-size:inherit;
  line-height:1.5;
  transform:translateX(-10px);
  transition:transform 800ms cubic-bezier(.19,1,.22,1);
}
.flow-button.flow-button .flow-bubble {
  position:absolute;
  top:50%;
  left:50%;
  display:block;
  z-index:0;
  margin:0;
  width:calc(100% + 80px);
  aspect-ratio:1;
  border-radius:50%;
  background:var(--flow-ink);
  opacity:0;
  pointer-events:none;
  transform:translate(-50%,-50%) scale(.04);
  transition:transform 800ms cubic-bezier(.19,1,.22,1),opacity 800ms cubic-bezier(.19,1,.22,1);
}
.flow-button.flow-button .flow-arrow {
  position:absolute;
  top:50%;
  width:16px;
  height:16px;
  z-index:2;
  fill:none;
  stroke:currentColor;
  pointer-events:none;
  transition:transform 800ms cubic-bezier(.34,1.56,.64,1),opacity 800ms var(--flow-ease);
}
.flow-button .flow-arrow-in {
  left:16px;
  opacity:0;
  transform:translate(-52px,-50%);
}
.flow-button .flow-arrow-out {
  right:16px;
  transform:translate(0,-50%);
}
.booking-section .flow-button {
  --flow-ink:#111111;
  --flow-surface:#ffffff;
  --flow-border:#73736e;
}
.flow-button.flow-button[aria-pressed="true"] {
  background:var(--flow-ink);
  color:var(--flow-surface);
  border-color:var(--flow-ink);
}
.flow-button.flow-button:active {
  transform:scale(.95);
}
@media(hover:hover) and (pointer:fine) {
  .flow-button.flow-button:hover {
    background:transparent;
    border-color:transparent;
    border-radius:12px;
    color:var(--flow-surface);
    transform:none;
    text-decoration:none;
  }
  .flow-button.flow-button:hover .flow-label { transform:translateX(10px); }
  .flow-button.flow-button:hover .flow-bubble { transform:translate(-50%,-50%) scale(1); opacity:1; }
  .flow-button.flow-button:hover .flow-arrow-in { transform:translate(0,-50%); opacity:1; }
  .flow-button.flow-button:hover .flow-arrow-out { transform:translate(52px,-50%); opacity:0; }
  .flow-button.flow-button:active { transform:scale(.95); }
}
@media(max-width:760px) {
  .flow-button.flow-button { padding-inline:30px; }
  .flow-button .flow-arrow-in { left:12px; }
  .flow-button .flow-arrow-out { right:12px; }
  .booking-contact .flow-button { font-size:12px; }
}
@media(prefers-reduced-motion:reduce) {
  .flow-button.flow-button:active { transform:none; }
  .flow-button.flow-button .flow-label { transform:none; }
  .flow-button.flow-button .flow-arrow-in { display:none; }
  .flow-button.flow-button .flow-arrow-out { transform:translate(0,-50%); opacity:1; }
  .flow-button.flow-button .flow-bubble { transition:none; }
}

.gallery-filters { flex-wrap:wrap; }
@media(min-width:761px) { .menu-toggle.flow-button { display:none; } }

@media(max-width:760px) {
  .header-cta.flow-button { display:none; }
  .menu-toggle.flow-button { padding-inline:25px; font-size:12px; }
}
@media(max-width:370px) {
  .header-inner { gap:10px; }
  .brand { gap:8px; }
  .brand-seal { width:40px; height:40px; }
  .brand-name { font-size:16px; }
  .brand-name>span { font-size:7px; letter-spacing:.08em; }
}

@media(prefers-reduced-motion:reduce) {
  .flow-button.flow-button:hover .flow-label { transform:none; }
  .flow-button.flow-button:hover .flow-arrow-out { transform:translate(0,-50%); opacity:1; }
}

/* Latest visual reference: white navigation, cinematic photography and copper. */
:root { --copper:#ba825f; --copper-light:#d8a07c; }
.site-header { background:#fff; color:#171411; border-color:#e5e2de; color-scheme:light; }
.header-inner { min-height:84px; }
.brand-name { font:600 21px/1.2 var(--sans); letter-spacing:-.025em; }
.brand-name>span { color:#655a53; font-size:8px; }
.navigation a { color:#28221e; font-size:13px; }
.navigation a:hover { color:#7d452b; }
.site-header a:focus-visible,.site-header button:focus-visible { outline-color:#171411; }
.site-header .flow-button { --flow-ink:#171411; --flow-surface:#fff; --flow-border:#81756c; }
.flow-button.copper-button,.header-cta.flow-button { background:var(--copper); border-color:var(--copper); color:#171411; --flow-ink:var(--copper-light); --flow-surface:#171411; --flow-border:var(--copper); border-radius:10px; }
.flow-button.copper-button:hover,.header-cta.flow-button:hover { background:var(--copper); }
.hero-cinematic { position:relative; display:block; width:100%; min-height:620px; padding:0; isolation:isolate; background:#151b1d; }
.hero-backdrop { position:absolute; inset:0; overflow:hidden; z-index:-2; }
.hero-backdrop img { object-fit:cover; object-position:65% center; }
.hero-cinematic:before { content:""; position:absolute; inset:0; z-index:-1; pointer-events:none; background:linear-gradient(90deg,rgba(12,17,19,.87) 0%,rgba(12,17,19,.72) 27%,rgba(12,17,19,.5) 53%,rgba(12,17,19,.08) 80%),linear-gradient(0deg,rgba(12,17,19,.75),transparent 30%); }
.hero-backdrop figcaption { position:absolute; bottom:17px; right:max(24px,calc((100vw - 1240px)/2)); padding:4px 9px; border-radius:4px; background:#101517c9; color:#dfddd8; font-size:11px; }
.hero-stage { min-height:620px; display:grid; grid-template-columns:210px minmax(0,600px) 1fr; align-items:center; gap:28px; padding-bottom:64px; }
.hero-emblem { width:210px; height:210px; object-fit:contain; }
.hero-cinematic .hero-copy { text-align:center; padding:0; }
.hero-kicker { font-size:19px; line-height:1.4; color:#f4f2ed; margin-bottom:16px; }
.hero-cinematic h1 { font:500 clamp(38px,3.6vw,54px)/1.08 var(--sans); letter-spacing:-.04em; text-transform:uppercase; color:#fffaf1; }
.hero-cinematic .hero-description { max-width:none; margin-top:20px; font-size:14px; line-height:1.5; color:#e3ded5; }
.hero-cinematic .hero-actions { flex-direction:column; gap:12px; margin-top:28px; }
.hero-cinematic .hero-actions .button { min-width:225px; font-size:14px; }
.hero-secondary.flow-button { border-radius:10px; border-color:#fffaf1; --flow-ink:#fffaf1; --flow-surface:#171411; }
.featured-services { position:relative; background:#f2f1ee; color:#171411; padding:0 0 26px; }
.featured-services>.wrap { position:relative; top:-80px; margin-bottom:-80px; }
.featured-services h2 { font:500 20px/1.4 var(--sans); color:#fffaf1; margin-bottom:14px; }
.featured-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.featured-card { min-width:0; display:flex; align-items:center; gap:16px; padding:23px 22px; border:1px solid #e7e0d8; background:#fff; border-radius:10px; box-shadow:0 5px 16px #1b17100c; transition:border-color 180ms,transform 180ms; }
.featured-icon { display:grid; place-items:center; flex-shrink:0; width:52px; height:52px; border-radius:50%; background:#f0ebe5; color:#513827; }
.featured-icon .icon { width:26px; height:26px; }
.featured-card>span:nth-child(2) { min-width:0; }
.featured-card h3 { font:600 18px/1.3 var(--sans); letter-spacing:-.025em; }
.featured-card p { font-size:13px; line-height:1.5; color:#615952; margin-top:5px; }
.featured-arrow { margin-left:auto; width:18px!important; color:#895436; }
.featured-card:focus-visible { outline-color:#171411; outline-offset:4px; }
.featured-note { font-size:13px; color:#615952; margin-top:18px; text-align:center; }
h2 { font-family:var(--sans); font-weight:500; letter-spacing:-.04em; }
h2 em { color:#c4a38a; font-style:normal; }
.service-item h3,.gallery-item h3 { font-family:var(--sans); font-weight:500; }
.trust-strip { padding-block:26px; }
.gallery-filters button[aria-pressed="true"] { --flow-ink:var(--copper); --flow-surface:#171411; }
.marquee-footer p { font-size:13px; }
.consult-choice select { font-size:16px; }
.booking-contact .flow-button { font-size:14px; }
.photo-dialog { padding:0; overflow:hidden; }
.photo-dialog-content { max-height:calc(100dvh - 50px); overflow:auto; overscroll-behavior:contain; padding:40px; }
.photo-close { z-index:2; }
@media(hover:hover) and (pointer:fine) { .featured-card:hover { border-color:#ba825f; transform:translateY(-3px); } }
@media(max-width:1100px) and (min-width:761px) {
  .brand-name { display:none; }
  .hero-stage { grid-template-columns:155px minmax(0,480px) 1fr; gap:20px; }
  .hero-emblem { width:155px; height:155px; }
  .hero-cinematic h1 { font-size:40px; }
  .featured-card { padding:20px 15px; gap:12px; }
  .featured-arrow { display:none; }
  .featured-card h3 { font-size:16px; }
}
@media(max-width:760px) {
  .header-inner { min-height:76px; }
  .brand-name { font-size:18px; }
  .brand-seal { width:48px; height:48px; }
  .brand-name>span { font-size:7px; }
  .navigation { background:#fff; border-color:#e5e2de; }
  .navigation a { border-color:#e5e2de; color:#28221e; font-size:14px; }
  .hero-cinematic,.hero-stage { min-height:470px; }
  .hero-stage { display:flex; justify-content:center; padding:48px 0 65px; }
  .hero-emblem { display:none; }
  .hero-copy { width:100%; max-width:490px; }
  .hero-cinematic h1 { font-size:clamp(30px,7vw,44px); line-height:1.12; }
  .hero-kicker { font-size:16px; margin-bottom:16px; }
  .hero-cinematic .hero-description { font-size:13px; margin-top:17px; }
  .hero-cinematic .hero-actions { margin-top:24px; }
  .hero-backdrop img { object-position:72% center; }
  .hero-cinematic:before { background:linear-gradient(90deg,#0c1113c9,#0c111366),linear-gradient(0deg,#0c1113b3,transparent 65%); }
  .hero-backdrop figcaption { bottom:12px; right:20px; font-size:10px; }
  .featured-services { padding:24px 0; }
  .featured-services>.wrap { top:0; margin-bottom:0; }
  .featured-services h2 { color:#171411; font-size:19px; margin-bottom:16px; }
  .featured-grid { grid-template-columns:1fr; gap:12px; }
  .featured-card { padding:18px; gap:14px; }
  .featured-card h3 { font-size:17px; }
  .featured-note { text-align:left; }
  .photo-dialog { padding:0; }
  .photo-dialog-content { padding:28px 20px; max-height:calc(100dvh - 26px); }
  .booking-contact .flow-button { font-size:14px; }
}
@media(max-width:370px) {
  .brand-seal { width:40px; height:40px; }
  .brand-name { font-size:16px; }
  .hero-cinematic h1 { font-size:30px; }
  .featured-icon { width:44px; height:44px; }
  .featured-card { padding:16px 14px; }
}
@media(prefers-reduced-motion:reduce) { .featured-card:hover { transform:none; } }
/* Keep the image disclosure above the photographic overlay and service overlap. */
.hero-backdrop { z-index:auto; pointer-events:none; }
.hero-backdrop img { position:absolute; inset:0; z-index:-2; }
.hero-backdrop figcaption { z-index:1; bottom:112px; }
.hero-stage { position:relative; }
@media(max-width:760px) { .hero-backdrop figcaption { bottom:12px; } }
h2 em { font-family:inherit; font-size:inherit; line-height:inherit; }
.hero-backdrop figcaption { font-size:12px; }
@media(max-width:760px) { .hero-cinematic .hero-description { font-size:14px; } }

/* Visit reference: warm metal, classical type and a real location map. */
.visit-section { grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); gap:72px; align-items:start; }
.visit-intro h2 { font:400 clamp(44px,4.8vw,66px)/1.04 var(--serif); letter-spacing:-.04em; color:#d5af8c; }
.visit-intro p { font-size:16px; line-height:1.8; margin-top:24px; }
.visit-intro .directions-button { display:inline-flex; min-height:48px; padding:9px 19px; margin-top:28px; gap:14px; border:1px solid #e6c99e; border-radius:3px; background:linear-gradient(100deg,#a28353,#f0dba7 48%,#ae8955); color:#171411; font:400 20px/1.4 var(--serif); box-shadow:0 0 24px #bb94532b; transition:box-shadow 180ms; }
.directions-button:hover { text-decoration:underline; box-shadow:0 0 30px #bb945346; }
.visit-map { margin-top:34px; overflow:hidden; border:1px solid #68563f; border-radius:6px; background:#171411; }
.visit-map iframe { display:block; width:100%; height:300px; border:0; color-scheme:light; }
.map-caption { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:12px 16px; min-height:48px; color:#d9c3a2; font-size:13px; }
.map-caption:hover { color:#fff1d7; text-decoration:underline; }
.visit-details .detail-row { grid-template-columns:108px minmax(0,1fr); gap:16px; border-color:#685b49; padding-block:30px; }
.detail-label h3 { color:#dac4a3; font:400 16px/1.5 var(--sans); padding:0; }
.visit-metal-icon { display:block; width:76px; height:76px; margin-top:8px; background-image:url('assets/visit-metal-icons.webp'); background-size:300% 100%; background-repeat:no-repeat; }
.visit-pin { background-position:0 50%; }
.visit-clock { background-position:50% 50%; }
.visit-phone { background-position:100% 50%; }
.visit-details address,.visit-details .hours { font-size:16px; line-height:1.8; }
.visit-details .hours>div { gap:12px; margin-bottom:8px; }
.visit-details .hours dd { white-space:nowrap; }
.visit-details .small-note { font-size:13px; line-height:1.6; margin-top:8px; }
.visit-details .phone-link { color:#d5af8c; font:400 clamp(26px,2.9vw,38px)/1.3 var(--serif); gap:18px; }
.visit-details .phone-link .icon { width:25px; height:25px; }
.visit-details .social-link { font-size:14px; overflow-wrap:anywhere; }
@media(max-width:1100px) { .visit-section { gap:40px; } .visit-details .detail-row { grid-template-columns:85px minmax(0,1fr); gap:12px; } .visit-details address,.visit-details .hours { font-size:14px; } }
@media(max-width:760px) {
  .visit-section { grid-template-columns:minmax(0,1fr); gap:32px; }
  .visit-intro h2 { font-size:48px; }
  .visit-intro p { margin-top:20px; }
  .visit-map iframe { height:280px; }
  .visit-details .detail-row { grid-template-columns:76px minmax(0,1fr); gap:12px; padding-block:24px; }
  .detail-label h3 { font-size:14px; }
  .visit-metal-icon { width:62px; height:62px; }
  .visit-details .hours>div { flex-wrap:wrap; gap:0 10px; margin-bottom:12px; }
  .visit-details .hours dt { flex:1 1 94px; }
  .visit-details .phone-link { font-size:26px; gap:10px; flex-wrap:wrap; }
}
@media(max-width:370px) {
  .visit-details .phone-link { font-size:24px; gap:0; white-space:nowrap; }
  .visit-details .phone-link .icon { display:none; }
}
.visit-details .detail-row { align-items:start; }
.visit-details .small-note,.visit-details .social-link { grid-column:2; }
@media(max-width:760px) { .visit-details .small-note { grid-column:1 / -1; } }

/* Velaris services: low-contrast moving bronze behind fixed readable cards. */
.services-section { position:relative; isolation:isolate; overflow:hidden; background:radial-gradient(ellipse at 75% 25%,#352719 0%,#14100b 48%,#080808 85%); padding-block:88px 80px; }
.velaris-canvas { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; z-index:-1; opacity:0; }
.velaris-canvas[data-ready="true"] { opacity:1; }
.services-content { position:relative; }
.services-section .services-heading { text-align:center; max-width:780px; margin-inline:auto; margin-bottom:54px; }
.services-section .services-heading h2 { font:400 clamp(36px,4vw,52px)/1.12 var(--serif); color:#d5af8c; letter-spacing:-.025em; }
.services-section .services-heading h2 em { font:inherit; color:inherit; }
.services-section .services-heading p { color:#e1d6c4; font-size:17px; line-height:1.7; max-width:68ch; margin:24px auto 0; }
.services-section .service-list { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:26px; }
.services-section .service-item { position:relative; display:flex; flex-direction:column; align-items:center; justify-content:flex-start; text-align:center; gap:0; padding:22px 20px 42px; min-height:300px; border:1px solid #ac8561; border-radius:0; background:#0b0b0bf0; box-shadow:inset 0 0 0 3px #15120f,inset 0 0 0 4px #534130; }
.service-metal-icon { width:116px; height:116px; flex-shrink:0; display:block; background:url('assets/service-metal-icons.webp') no-repeat; background-size:200% 200%; }
.service-icon-corte { background-position:0 0; }
.service-icon-degradado { background-position:100% 0; }
.service-icon-barba { background-position:0 100%; }
.service-icon-cuidados { background-position:100% 100%; }
.services-section .service-item>div { margin-top:8px; }
.services-section .service-item h3 { font:400 26px/1.12 var(--serif); letter-spacing:-.025em; color:#e2cbae; }
.services-section .service-item p { font-size:13px; line-height:1.5; margin-top:14px; max-width:26ch; color:#bcb4ab; }
.services-section .service-item .flow-button { position:absolute; bottom:-22px; min-width:144px; min-height:48px; padding:10px 30px; border-radius:3px; border-color:#d0aa7b; background:linear-gradient(100deg,#b28b60,#e5c899 50%,#b88d63); color:#171411; --flow-ink:#ecd3ad; --flow-surface:#171411; font:400 19px/1.4 var(--serif); }
.services-section .service-item .flow-button:hover { background:linear-gradient(100deg,#b28b60,#e5c899 50%,#b88d63); border-color:#edd7b7; border-radius:3px; }
.services-section .services-note { text-align:center; color:#c5b8a5; font-size:13px; line-height:1.6; margin-top:52px; }
@media(max-width:1100px) { .services-section .service-list { grid-template-columns:repeat(2,minmax(0,1fr)); gap:54px 24px; } }
@media(max-width:760px) { .services-section { padding-block:56px 48px; } .services-section .services-heading { margin-bottom:36px; } .services-section .services-heading p { font-size:16px; } }
@media(max-width:540px) { .services-section .service-list { grid-template-columns:minmax(0,1fr); gap:48px; } .services-section .service-item { min-height:280px; padding-inline:28px; } .services-section .service-item p { max-width:30ch; font-size:14px; } }

/* Language bar, legal footer and privacy controls share the copper identity. */
.language-bar { background:#171411; border-bottom:1px solid #493b2d; color:#d9c6ad; }
.language-bar-inner { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:48px; }
.language-bar-inner>span { font-size:12px; }
.language-switch { display:flex; align-items:center; gap:4px; }
.language-switch a { display:grid; place-items:center; min-width:44px; min-height:44px; padding:6px; border-radius:4px; font-size:12px; font-weight:600; }
.language-switch a[aria-current="page"] { color:#21190f; background:var(--gold-gradient); }
.language-switch a:hover { outline:1px solid #a48763; outline-offset:-1px; }
.site-footer { flex-wrap:wrap; }
.footer-bottom { flex-basis:100%; border-top:1px solid #493b2d; padding-top:28px; margin-top:32px; display:flex; flex-direction:column; gap:16px; }
.footer-bottom p { font-size:12px; color:#bfb3a4; }
.legal-links { display:flex; flex-wrap:wrap; gap:8px 24px; }
.legal-links a,.legal-links button { display:inline-flex; align-items:center; min-height:44px; font:13px var(--sans); color:#d5c7b5; background:none; border:0; padding:0; text-decoration:underline; text-underline-offset:5px; cursor:pointer; }
.legal-links a:hover,.legal-links button:hover { color:#fff0d3; }
.map-consent { min-height:320px; padding:32px; display:flex; flex-direction:column; justify-content:center; align-items:center; text-align:center; gap:16px; background:radial-gradient(ellipse at center,#2e251b,#0b0b0a); }
.map-consent .icon { width:32px; height:32px; color:#d1ac78; }
.map-consent h3 { font:italic 28px/1.2 var(--display); color:#dec6a3; }
.map-consent p { font-size:14px; max-width:30ch; }
.map-consent .button { min-height:48px; font-size:13px; padding:12px 20px; border-color:#95744e; }
.cookie-dialog { width:min(560px,calc(100% - 32px)); max-height:calc(100dvh - 32px); margin:auto; overflow:auto; padding:40px; border:1px solid #b1875a; border-radius:8px; background:#f5f0e6; color:#30261c; overscroll-behavior:contain; }
.cookie-dialog::backdrop { background:#000b; }
.cookie-dialog h2 { font:italic 36px/1.15 var(--display); padding-right:20px; }
.cookie-dialog p { margin-top:20px; color:#4d4337; font-size:15px; }
.cookie-dialog>a { display:inline-block; margin-top:20px; text-decoration:underline; font-size:14px; }
.cookie-close { position:absolute; right:12px; top:12px; width:44px; height:44px; border:0; background:transparent; color:inherit; font-size:28px; cursor:pointer; }
.cookie-actions { display:flex; gap:12px; margin-top:24px; flex-wrap:wrap; }
.cookie-actions .button { flex:1; min-height:48px; padding:12px; font-size:13px; border:1px solid #775639; background:#30261c; color:#fff4e1; }
.cookie-dialog :focus-visible { outline-color:#775639; }
@media(max-width:760px) {
  .site-header { padding-top:env(safe-area-inset-top); }
  .language-bar-inner { min-height:48px; }
  .hero-stage { padding:36px 0 60px; }
  .hero-cinematic,.hero-stage { min-height:500px; }
  .hero-backdrop img { object-position:70% center; }
  .hero-cinematic:before { background:linear-gradient(90deg,#0c1113d9,#0c111380),linear-gradient(0deg,#0c1113cc,transparent 70%); }
  .hero-cinematic .hero-copy { padding-inline:4px; }
  .hero-cinematic .hero-actions .button { min-width:0; width:min(100%,260px); min-height:48px; }
  .hero-cinematic h1 { text-wrap:balance; }
  .section { scroll-margin-top:160px; }
  .site-footer { padding-block:40px calc(100px + env(safe-area-inset-bottom)); gap:24px; }
  .footer-bottom { margin-top:8px; }
  .legal-links { display:grid; grid-template-columns:1fr; gap:0; }
  .cookie-dialog { padding:32px 24px; }
  .cookie-dialog h2 { font-size:30px; }
  .cookie-actions { flex-direction:column; }
}

@media(max-width:760px) { .hero-backdrop img { object-position:85% center; } }
@media(max-width:760px) {
  .hero-cinematic:before { background:linear-gradient(90deg,#0c1113bd 0%,#0c11137a 55%,#0c111329 100%),linear-gradient(0deg,#0c1113b3,transparent 70%); }
  .hero-cinematic h1 { text-shadow:0 2px 12px #0008; }
}

/* Compact, click-to-load Instagram reels. No third-party request until opening. */
.reels-grid {display:grid;grid-template-columns:repeat(3,minmax(0,280px));justify-content:center;gap:24px;}
.reel-card {overflow:hidden;border:1px solid #ba825f50;border-radius:12px;background:#111;}
.reel-preview {display:block;position:relative;width:100%;aspect-ratio:9/14;padding:0;border:0;background:#191410;overflow:hidden;cursor:pointer;}
.reel-preview[hidden] {display:none;}
.reel-preview img {width:100%;height:100%;object-fit:cover;display:block;transition:transform 240ms ease;}
.reel-preview::after {content:'';position:absolute;inset:0;background:linear-gradient(transparent 60%,#0808089c);pointer-events:none;}
.reel-play {position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:58px;height:58px;padding-left:3px;border:1px solid #ead6bca0;border-radius:50%;color:#fff;background:#211910ae;z-index:1;font-size:20px;}
.reel-badge {position:absolute;bottom:16px;left:18px;color:#fff;font-size:14px;z-index:1;font-variant-numeric:tabular-nums;}
.reel-caption {padding:16px 18px;display:flex;align-items:center;justify-content:space-between;gap:12px;}
.reel-caption>span {font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;}
.reel-caption a {display:flex;align-items:center;gap:7px;min-height:44px;font-size:12px;color:#ead6bc;}
.reel-caption .icon {width:14px;height:14px;}
.reels-note {margin-top:24px;text-align:center;font-size:12px;color:var(--muted);}
.reel-preview:focus-visible {outline:3px solid #ead6bc;outline-offset:-5px;}
.reel-dialog {padding:0;border:1px solid #ba825f;width:min(360px,calc(100vw - 32px));height:min(740px,calc(100dvh - 48px));max-height:calc(100dvh - 48px);background:#fff;border-radius:12px;overflow:hidden;}
.reel-dialog::backdrop {background:#080808df;}
.reel-player,.reel-player iframe {display:block;width:100%;height:100%;border:0;}
.reel-player {padding-top:46px;box-sizing:border-box;}
.reel-close {position:absolute;right:2px;top:1px;display:grid;place-items:center;width:44px;height:44px;border:0;background:#fff;color:#211910;cursor:pointer;z-index:2;}
.reel-close:focus-visible {outline:2px solid #67452f;outline-offset:-4px;}
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {.reel-preview:hover img {transform:scale(1.025);}}
@media (max-width:760px) {.reels-grid {grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;}.reel-caption {padding:10px;flex-direction:column;gap:2px;}.reel-caption a {font-size:11px;}}
@media (max-width:560px) {.reels-grid {grid-template-columns:minmax(0,280px);gap:24px;}.reel-caption {flex-direction:row;padding:12px 18px;}.reel-caption a {font-size:12px;}}
@media (prefers-reduced-motion:reduce) {.reel-preview img {transition:none;}}
