:root {
  --paper: #f0f2eb;
  --ivory: #fbfcf7;
  --ink: #111612;
  --muted: #657066;
  --line: rgba(17, 22, 18, 0.14);
  --rose: #dce3d5;
  --rose-deep: #93a684;
  --merlot: #315b42;
  --sage: #718b63;
  --gold: #c4a86d;
  --graphite: #0b100c;
  --shadow: 0 22px 60px rgba(8, 14, 10, 0.16);
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family:
    Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI",
    sans-serif;
  line-height: 1.5;
}

img {
  display: block;
  max-width: 100%;
}

a {
  color: inherit;
  text-decoration: none;
}

button,
input,
select,
textarea {
  font: inherit;
}

.skip-link {
  position: fixed;
  top: 0.75rem;
  left: 0.75rem;
  z-index: 20;
  transform: translateY(-180%);
  background: var(--ivory);
  color: var(--ink);
  padding: 0.7rem 0.9rem;
  border-radius: 6px;
  transition: transform 180ms ease;
}

.skip-link:focus {
  transform: translateY(0);
}

.site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 10;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  grid-template-areas: "navigation brand action";
  align-items: center;
  gap: 1.2rem;
  padding: 1rem max(1.2rem, 5vw);
  color: var(--ivory);
  transition:
    background 180ms ease,
    border-color 180ms ease,
    box-shadow 180ms ease;
}

.entry-gate {
  position: fixed;
  inset: 0;
  z-index: 30;
  display: grid;
  place-items: center;
  padding: 1rem;
  background:
    linear-gradient(90deg, rgba(37, 32, 31, 0.78), rgba(37, 32, 31, 0.42)),
    url("assets/hero-nail-art.png") center / cover;
}

.entry-gate.is-hidden {
  display: none;
}

.entry-panel {
  width: min(31rem, 100%);
  display: grid;
  gap: 1rem;
  padding: 1.2rem;
  border: 1px solid rgba(255, 253, 249, 0.28);
  border-radius: 8px;
  background: rgba(255, 253, 249, 0.94);
  box-shadow: var(--shadow);
}

.entry-logo,
.brand-logo {
  width: 3.1rem;
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  overflow: hidden;
  border: 1px solid currentColor;
  border-radius: 999px;
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 700;
  text-transform: uppercase;
}

.entry-logo img,
.brand-logo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.entry-kicker {
  margin: 0 0 0.35rem;
  color: var(--gold);
  font-size: 0.78rem;
  font-weight: 900;
  text-transform: uppercase;
}

.entry-panel h2 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 2.35rem;
  line-height: 1;
  letter-spacing: 0;
}

.entry-panel p {
  margin: 0.65rem 0 0;
  color: var(--muted);
}

.entry-form {
  display: grid;
  gap: 0.75rem;
}

.entry-form label {
  display: grid;
  gap: 0.4rem;
}

.entry-form span {
  color: var(--graphite);
  font-size: 0.78rem;
  font-weight: 900;
  text-transform: uppercase;
}

.entry-form input {
  min-height: 2.9rem;
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 0.78rem 0.85rem;
}

.entry-guest {
  border-color: var(--line);
  background: transparent;
  color: var(--merlot);
}

.site-header.is-scrolled {
  background: rgba(240, 242, 235, 0.93);
  color: var(--ink);
  border-bottom: 1px solid var(--line);
  box-shadow: 0 12px 30px rgba(8, 14, 10, 0.09);
  backdrop-filter: blur(18px);
}

.brand {
  grid-area: brand;
  justify-self: center;
  display: grid;
  grid-template-columns: auto auto;
  column-gap: 0.55rem;
  row-gap: 0.08rem;
  min-width: max-content;
  line-height: 1;
  text-transform: uppercase;
}

.brand-logo {
  grid-row: 1 / 3;
  width: 2.35rem;
  color: currentColor;
  font-size: 0.84rem;
}

.brand span {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.16rem;
}

.brand small {
  color: currentColor;
  font-size: 0.7rem;
  letter-spacing: 0;
  opacity: 0.76;
}

.main-nav {
  grid-area: navigation;
  justify-self: start;
  display: flex;
  justify-content: flex-start;
  gap: 0.35rem;
  min-width: 0;
}

.nav-dropdown{position:relative}.nav-dropdown summary{list-style:none;min-width:10.5rem;min-height:2.9rem;display:flex;align-items:center;gap:.75rem;padding:.55rem .7rem;border:1px solid rgba(220,232,211,.42);border-radius:999px;background:rgba(5,14,9,.64);color:currentColor;font-weight:800;cursor:pointer;box-shadow:0 12px 28px rgba(0,0,0,.14);backdrop-filter:blur(16px);transition:transform .2s ease,background .2s ease,border-color .2s ease}.nav-dropdown summary:hover{transform:translateY(-2px);background:rgba(35,75,51,.9);border-color:rgba(220,232,211,.7)}.nav-dropdown summary::-webkit-details-marker{display:none}.nav-trigger-mark{width:1.75rem;height:1.75rem;display:grid;place-content:center;gap:4px;border-radius:50%;background:var(--sage);box-shadow:inset 0 0 0 1px rgba(255,255,255,.2)}.nav-trigger-mark i{display:block;width:.7rem;height:1px;background:#071008;transition:transform .22s ease}.nav-dropdown[open] .nav-trigger-mark i:first-child{transform:translateY(2.5px) rotate(45deg)}.nav-dropdown[open] .nav-trigger-mark i:last-child{transform:translateY(-2.5px) rotate(-45deg)}.nav-chevron{margin-left:auto;font-size:.9rem;transition:transform .22s ease}.nav-dropdown[open] .nav-chevron{transform:rotate(180deg)}.nav-dropdown-menu{position:absolute;top:calc(100% + .75rem);left:0;z-index:20;width:min(25rem,calc(100vw - 2rem));display:grid;grid-template-columns:1fr 1fr;gap:.4rem;padding:.75rem;border:1px solid rgba(179,202,161,.24);border-radius:18px;background:linear-gradient(145deg,rgba(5,14,9,.98),rgba(20,42,29,.98));box-shadow:0 28px 80px rgba(0,0,0,.38);color:#eef4e9;backdrop-filter:blur(24px);transform-origin:top left;animation:nav-reveal .22s cubic-bezier(.2,.8,.2,1)}@keyframes nav-reveal{from{opacity:0;transform:translateY(-8px) scale(.97)}to{opacity:1;transform:none}}.nav-menu-head{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;padding:.35rem .4rem .75rem;border-bottom:1px solid rgba(179,202,161,.2);margin-bottom:.2rem;text-transform:uppercase;letter-spacing:.12em}.nav-menu-head span{font-size:.68rem;color:var(--sage)}.nav-menu-head small{font-size:.62rem;color:rgba(238,244,233,.55)}.nav-dropdown-menu a{position:relative;min-height:5.2rem!important;display:flex!important;flex-direction:column;align-items:flex-start!important;justify-content:flex-end!important;padding:.8rem!important;border:1px solid rgba(179,202,161,.12)!important;border-radius:12px!important;background:rgba(255,255,255,.025);color:#eef4e9!important;overflow:hidden;transition:transform .18s ease,background .18s ease,border-color .18s ease}.nav-dropdown-menu a::before{content:attr(data-index);position:absolute;top:.55rem;right:.65rem;color:rgba(179,202,161,.6);font:600 .62rem/1 Arial,sans-serif}.nav-dropdown-menu a span{font:500 1.15rem/1 Georgia,serif}.nav-dropdown-menu a small{color:rgba(238,244,233,.58);font-size:.68rem;margin-top:.35rem}.nav-dropdown-menu a::after{content:"↗";position:absolute;right:.7rem;bottom:.7rem;color:var(--sage);opacity:0;transform:translate(-5px,5px);transition:.18s ease}.nav-dropdown-menu a:hover,.nav-dropdown-menu a:focus-visible,.nav-dropdown-menu a.is-active{transform:translateY(-2px);background:rgba(113,139,99,.18)!important;border-color:rgba(179,202,161,.4)!important;color:#fff!important}.nav-dropdown-menu a:hover::after,.nav-dropdown-menu a:focus-visible::after,.nav-dropdown-menu a.is-active::after{opacity:1;transform:none}.site-header.is-scrolled .nav-dropdown summary,body:not([data-route="home"]) .nav-dropdown summary{border-color:rgba(33,77,52,.24);background:#0b1810;color:#eef4e9}

.main-nav a,
.header-action,
.filter-button {
  border-radius: 999px;
  min-height: 2.6rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
}

.main-nav a {
  padding: 0.55rem 0.82rem;
  color: currentColor;
  font-size: 0.92rem;
  opacity: 0.88;
}

.main-nav a:hover,
.main-nav a:focus-visible {
  background: rgba(255, 253, 249, 0.14);
  opacity: 1;
}

.site-header.is-scrolled .main-nav a:hover,
.site-header.is-scrolled .main-nav a:focus-visible {
  background: rgba(49, 91, 66, 0.1);
}

.header-action {
  grid-area: action;
  justify-self: end;
  min-width: 4.5rem;
  padding: 0.58rem 1.1rem;
  background: var(--ivory);
  color: var(--merlot);
  font-weight: 700;
}

.site-header.is-scrolled .header-action {
  background: var(--merlot);
  color: var(--ivory);
}

.hero {
  position: relative;
  min-height: 86svh;
  max-height: 850px;
  display: flex;
  align-items: center;
  overflow: hidden;
  isolation: isolate;
  color: var(--ivory);
  padding: 8rem max(1.4rem, 6vw) 5.5rem;
}

.hero-image,
.hero-shade {
  position: absolute;
  inset: 0;
}

.hero-media{position:absolute;inset:0;z-index:-2;overflow:hidden;background:#0c1710}.hero-media .hero-image{z-index:0;opacity:0;transform:scale(1.045);transition:opacity 1.15s ease}.hero-media .hero-image.is-active{opacity:1;animation:hero-drift 7s ease-out both}@keyframes hero-drift{from{transform:scale(1.045) translate3d(0,0,0)}to{transform:scale(1.095) translate3d(-.45%,.3%,0)}}.hero-slider-controls{position:absolute;z-index:2;right:max(1.4rem,6vw);bottom:2.2rem;display:flex;align-items:center;gap:.55rem;padding:.55rem .65rem;border:1px solid rgba(255,255,255,.22);background:rgba(7,16,9,.28);backdrop-filter:blur(10px)}.hero-slider-controls>button:not(.hero-pause){width:2.4rem;height:2px;padding:0;border:0;background:rgba(255,255,255,.38);cursor:pointer;transition:width .3s ease,background .3s ease}.hero-slider-controls>button.is-active:not(.hero-pause){width:4rem;background:#d9e5d2}.hero-pause{width:1.8rem;height:1.8rem;display:grid;place-items:center;margin-left:.2rem;padding:0;border:1px solid rgba(255,255,255,.3);border-radius:50%;background:transparent;color:#fff;font-size:.6rem;cursor:pointer}.hero-pause:hover,.hero-pause:focus-visible{background:#d9e5d2;color:#102319}.hero-pause.is-paused span{font-size:.72rem}.hero-pause.is-paused span::before{content:"▶"}.hero-pause.is-paused span{font-size:0}

.hero-pause.is-paused span::before{font-size:.7rem}

.hero-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  z-index: -2;
}

.hero-shade {
  z-index: -1;
  background:
    linear-gradient(90deg, rgba(7, 15, 10, 0.91) 0%, rgba(18, 41, 27, 0.67) 43%, rgba(18, 41, 27, 0.12) 78%),
    linear-gradient(0deg, rgba(5, 12, 8, 0.67) 0%, rgba(5, 12, 8, 0) 46%);
}

.hero-content {
  width: min(670px, 100%);
}

.eyebrow,
.section-kicker {
  margin: 0 0 0.9rem;
  color: var(--gold);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0;
  text-transform: uppercase;
}

.hero h1,
.section h2,
.booking-section h2 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 500;
  letter-spacing: 0;
}

.hero h1 {
  max-width: 12ch;
  font-size: 5.4rem;
  line-height: 0.95;
}

.hero-copy {
  max-width: 38rem;
  margin: 1.35rem 0 0;
  color: rgba(255, 253, 249, 0.9);
  font-size: 1.16rem;
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
  margin-top: 2rem;
}

.button {
  min-height: 3rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid transparent;
  border-radius: 999px;
  padding: 0.75rem 1.18rem;
  font-weight: 800;
  text-align: center;
  cursor: pointer;
  transition:
    transform 180ms ease,
    background 180ms ease,
    border-color 180ms ease;
}

.button:hover,
.button:focus-visible {
  transform: translateY(-1px);
}

.button-primary {
  background: var(--merlot);
  color: var(--ivory);
}

.button-secondary {
  border-color: rgba(255, 253, 249, 0.62);
  color: var(--ivory);
  background: rgba(255, 253, 249, 0.1);
  backdrop-filter: blur(10px);
}

.hero-meta {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid rgba(255, 253, 249, 0.22);
  background: rgba(7, 15, 10, 0.48);
  backdrop-filter: blur(14px);
}

.hero-meta span {
  min-height: 4rem;
  display: grid;
  place-items: center;
  padding: 0.8rem;
  color: rgba(255, 253, 249, 0.88);
  font-size: 0.86rem;
  font-weight: 800;
  text-align: center;
  text-transform: uppercase;
  letter-spacing: 0;
  border-right: 1px solid rgba(255, 253, 249, 0.16);
}

.hero-meta span:last-child {
  border-right: 0;
}

.intro-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--line);
  border-bottom: 1px solid var(--line);
}

.intro-strip p {
  min-height: 5rem;
  display: grid;
  place-items: center;
  margin: 0;
  background: var(--ivory);
  color: var(--graphite);
  font-size: 0.86rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0;
  text-align: center;
}

.section {
  padding: 5.6rem max(1.2rem, 6vw);
}

.story-section {
  background: var(--paper);
}

.story-grid,
.section-heading,
.booking-section {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  gap: clamp(2rem, 5vw, 5rem);
  align-items: start;
}

.section h2,
.booking-section h2 {
  font-size: 3.2rem;
  line-height: 1.02;
}

.story-copy p,
.section-summary,
.booking-copy p {
  margin: 0;
  color: var(--muted);
  font-size: 1.04rem;
}

.story-copy p + p {
  margin-top: 1rem;
}

.story-notes {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  margin-top: 4rem;
  border: 1px solid var(--line);
  background: var(--line);
}

.story-notes article {
  min-height: 15rem;
  background: var(--ivory);
  padding: 1.35rem;
}

.story-notes span,
.service-mark {
  color: var(--merlot);
  font-size: 0.78rem;
  font-weight: 900;
  letter-spacing: 0;
  text-transform: uppercase;
}

.story-notes h3,
.gallery-card h3,
.service-item h3 {
  margin: 0.75rem 0 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.35rem;
  font-weight: 500;
  letter-spacing: 0;
}

.story-notes p,
.gallery-card p,
.service-item p {
  margin: 0.7rem 0 0;
  color: var(--muted);
}

.story-book {
  display: grid;
  gap: 1rem;
  margin-top: 4rem;
}

.story-chapter {
  display: grid;
  grid-template-columns: minmax(12rem, 0.82fr) minmax(0, 1.18fr);
  gap: 1.2rem;
  align-items: stretch;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--ivory);
}

.story-chapter:nth-child(even) {
  grid-template-columns: minmax(0, 1.18fr) minmax(12rem, 0.82fr);
}

.story-chapter:nth-child(even) img {
  order: 2;
}

.story-chapter img {
  width: 100%;
  height: 100%;
  min-height: 16rem;
  object-fit: cover;
  border-radius: 6px;
}

.story-chapter div {
  display: grid;
  align-content: center;
  padding: 1rem;
}

.story-chapter span {
  color: var(--merlot);
  font-size: 0.78rem;
  font-weight: 900;
  text-transform: uppercase;
}

.story-chapter h3 {
  margin: 0.7rem 0 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.8rem, 4vw, 3.15rem);
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0;
}

.story-chapter p {
  max-width: 39rem;
  margin: 1rem 0 0;
  color: var(--muted);
  font-size: 1.04rem;
}

.art-section {
  background: var(--graphite);
  color: var(--ivory);
}

.art-section .section-heading {
  align-items: end;
}

.art-section h2 {
  max-width: 12ch;
}

.filter-bar {
  justify-self: end;
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  padding: 0.3rem;
  border: 1px solid rgba(255, 253, 249, 0.14);
  border-radius: 999px;
  background: rgba(255, 253, 249, 0.07);
}

.filter-button {
  border: 0;
  padding: 0.55rem 0.92rem;
  background: transparent;
  color: rgba(255, 253, 249, 0.78);
  cursor: pointer;
}

.filter-button.is-active {
  background: var(--ivory);
  color: var(--graphite);
}

.art-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.02fr) minmax(0, 0.98fr);
  gap: 1rem;
  margin-top: 2rem;
  align-items: stretch;
}

.lookbook-feature {
  margin: 0;
}

.lookbook-feature img {
  width: 100%;
  height: 100%;
  min-height: 32rem;
  object-fit: cover;
  border-radius: 8px;
}

.lookbook-feature figcaption {
  margin-top: 0.85rem;
  color: rgba(255, 253, 249, 0.66);
  font-size: 0.95rem;
}

.gallery-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.gallery-card {
  display: grid;
  align-content: start;
  border: 1px solid rgba(255, 253, 249, 0.14);
  border-radius: 8px;
  background: rgba(255, 253, 249, 0.07);
  overflow: hidden;
}

.gallery-card.is-hidden {
  display: none;
}

.gallery-image {
  aspect-ratio: 1.1;
  overflow: hidden;
  background: #1f1c1c;
}

.gallery-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.crop-floral img {
  object-position: 18% 14%;
}

.crop-chrome img {
  object-position: 82% 10%;
}

.crop-merlot img {
  object-position: 12% 78%;
}

.crop-sage img {
  object-position: 49% 85%;
}

.gallery-card h3,
.gallery-card p {
  padding-inline: 1rem;
}

.gallery-card h3 {
  color: var(--ivory);
}

.gallery-card p {
  padding-bottom: 1rem;
  color: rgba(255, 253, 249, 0.68);
}

.services-section {background:linear-gradient(110deg,rgba(113,139,99,.18),rgba(220,227,213,.35)),var(--paper)}

.journal-section {
  background: var(--ivory);
}

.journal-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  margin-top: 2rem;
}

.journal-grid article {
  display: grid;
  align-content: start;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--paper);
}

.journal-grid img {
  width: 100%;
  aspect-ratio: 1.2;
  object-fit: cover;
}

.journal-grid span,
.journal-grid h3,
.journal-grid p {
  margin-inline: 1rem;
}

.journal-grid span {
  margin-top: 1rem;
  color: var(--merlot);
  font-size: 0.78rem;
  font-weight: 900;
  text-transform: uppercase;
}

.journal-grid h3 {
  margin-top: 0.5rem;
  margin-bottom: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.45rem;
  font-weight: 500;
  letter-spacing: 0;
}

.journal-grid p {
  margin-top: 0.65rem;
  margin-bottom: 1rem;
  color: var(--muted);
}

.section-summary {
  max-width: 34rem;
}

.service-list {
  display: grid;
  gap: 0.75rem;
  margin-top: 2.4rem;
}

.service-item {
  display: grid;
  grid-template-columns: 7rem minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: center;
  min-height: 7.5rem;
  padding: 1.1rem 0;
  border-top: 1px solid var(--line);
}

.service-item:last-child {
  border-bottom: 1px solid var(--line);
}

.service-item h3 {
  margin-top: 0;
}

.service-item strong {
  color: var(--merlot);
  font-size: 0.95rem;
  white-space: nowrap;
}

.booking-section {
  padding: 5.6rem max(1.2rem, 6vw);
  background: var(--ivory);
}

.booking-copy {
  max-width: 42rem;
}

.booking-copy p {
  margin-top: 1.1rem;
}

.contact-list {
  display: grid;
  gap: 1rem;
  margin: 2rem 0 0;
}

.contact-list div {
  display: grid;
  grid-template-columns: 6rem minmax(0, 1fr);
  gap: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--line);
}

.contact-list dt {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 900;
  letter-spacing: 0;
  text-transform: uppercase;
}

.contact-list dd {
  margin: 0;
  overflow-wrap: anywhere;
}

.booking-form {
  display: grid;
  gap: 1rem;
  width: 100%;
  padding: 1.15rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--paper);
  box-shadow: var(--shadow);
}

.visitor-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.15rem 0.75rem;
  align-items: center;
  padding: 0.85rem;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--ivory);
}

.visitor-card span {
  color: var(--muted);
}

.visitor-card strong {
  overflow-wrap: anywhere;
}

.visitor-card button {
  grid-row: 1 / 3;
  grid-column: 2;
  border: 0;
  background: transparent;
  color: var(--merlot);
  font-weight: 900;
  cursor: pointer;
}

.booking-form label {
  display: grid;
  gap: 0.45rem;
}

.booking-form span {
  color: var(--graphite);
  font-size: 0.78rem;
  font-weight: 900;
  letter-spacing: 0;
  text-transform: uppercase;
}

.booking-form input,
.booking-form select,
.booking-form textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--ivory);
  color: var(--ink);
  padding: 0.85rem 0.9rem;
  outline: none;
}

.booking-form input[type="file"] {
  padding: 0.65rem;
}

.booking-form textarea {
  resize: vertical;
  min-height: 9rem;
}

.booking-time-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.consent-row {
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: 0.65rem;
}

.consent-row input {
  width: 1.1rem;
  margin-top: 0.2rem;
}

.consent-row span {
  color: var(--muted);
  font-size: 0.92rem;
  font-weight: 600;
  text-transform: none;
}

.confirmation-note {
  display: grid;
  gap: 0.25rem;
  padding: 0.85rem 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.confirmation-note strong {
  color: var(--merlot);
}

.confirmation-note p {
  margin: 0;
  color: var(--muted);
}

.booking-form input:focus,
.booking-form select:focus,
.booking-form textarea:focus {
  border-color: var(--merlot);
  box-shadow: 0 0 0 3px rgba(49, 91, 66, 0.14);
}

.booking-form .button {
  width: 100%;
  margin-top: 0.2rem;
}

.form-status {
  min-height: 1.4rem;
  margin: 0;
  color: var(--merlot);
  font-weight: 700;
}

.booking-confirmation {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: clamp(1.5rem, 4vw, 4rem);
  padding: 4rem max(1.2rem, 6vw);
  background: var(--graphite);
  color: var(--ivory);
}

.booking-confirmation[hidden] {
  display: none;
}

.booking-confirmation h2 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2rem, 5vw, 3.4rem);
  line-height: 1.02;
  letter-spacing: 0;
}

.booking-confirmation p {
  margin: 1rem 0 0;
  color: rgba(255, 253, 249, 0.72);
}

.confirmation-details {
  display: grid;
  gap: 1px;
  margin: 0;
  overflow: hidden;
  border: 1px solid rgba(255, 253, 249, 0.14);
  border-radius: 8px;
  background: rgba(255, 253, 249, 0.14);
}

.confirmation-details div {
  display: grid;
  grid-template-columns: 8rem minmax(0, 1fr);
  gap: 1rem;
  background: rgba(255, 253, 249, 0.08);
  padding: 0.95rem;
}

.confirmation-details dt {
  color: var(--gold);
  font-size: 0.78rem;
  font-weight: 900;
  text-transform: uppercase;
}

.confirmation-details dd {
  margin: 0;
  overflow-wrap: anywhere;
}

.site-toast {
  position: fixed;
  right: 1rem;
  bottom: 1rem;
  z-index: 25;
  max-width: min(29rem, calc(100vw - 2rem));
  transform: translateY(150%);
  border-radius: 8px;
  background: var(--ink);
  color: var(--ivory);
  padding: 0.95rem 1rem;
  box-shadow: var(--shadow);
  transition: transform 180ms ease;
}

.site-toast.is-visible {
  transform: translateY(0);
}

.site-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  padding: 1.5rem max(1.2rem, 6vw);
  background: var(--ink);
  color: var(--ivory);
}

.site-footer p {
  margin: 0;
}

.footer-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: end;
  gap: 0.45rem;
}

.footer-links a {
  min-height: 2.4rem;
  display: inline-flex;
  align-items: center;
  border: 1px solid rgba(255, 253, 249, 0.18);
  border-radius: 999px;
  padding: 0.55rem 0.82rem;
  color: rgba(255, 253, 249, 0.82);
  font-size: 0.88rem;
  font-weight: 800;
}

.policy-page {
  background: var(--paper);
}

.policy-header {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: center;
  padding: 1rem max(1.2rem, 6vw);
  border-bottom: 1px solid var(--line);
  background: rgba(251, 248, 245, 0.94);
  backdrop-filter: blur(16px);
}

.policy-brand {
  display: grid;
  line-height: 1;
  text-transform: uppercase;
}

.policy-brand span {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.15rem;
}

.policy-brand small {
  color: var(--muted);
  font-size: 0.72rem;
}

.policy-nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: end;
  gap: 0.45rem;
}

.policy-nav a,
.policy-home {
  min-height: 2.55rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 0.58rem 0.9rem;
  color: var(--ink);
  font-weight: 800;
}

.policy-main {
  padding: 4.5rem max(1.2rem, 6vw);
}

.policy-hero {
  display: grid;
  grid-template-columns: minmax(0, 0.88fr) minmax(0, 1.12fr);
  gap: clamp(2rem, 6vw, 5rem);
  align-items: end;
  padding-bottom: 3rem;
  border-bottom: 1px solid var(--line);
}

.policy-hero p {
  margin: 0;
  color: var(--gold);
  font-size: 0.78rem;
  font-weight: 900;
  text-transform: uppercase;
}

.policy-hero h1 {
  margin: 0.7rem 0 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.9rem, 7vw, 6rem);
  font-weight: 500;
  line-height: 0.96;
  letter-spacing: 0;
}

.policy-hero .policy-updated {
  color: var(--muted);
  font-size: 1.02rem;
  font-weight: 500;
  text-transform: none;
}

.policy-layout {
  display: grid;
  grid-template-columns: minmax(12rem, 0.32fr) minmax(0, 0.68fr);
  gap: clamp(2rem, 5vw, 4rem);
  margin-top: 3rem;
}

.policy-card {
  align-self: start;
  display: grid;
  gap: 0.8rem;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--ivory);
  box-shadow: var(--shadow);
}

.policy-card strong {
  color: var(--merlot);
  font-size: 0.78rem;
  text-transform: uppercase;
}

.policy-card p {
  margin: 0;
  color: var(--muted);
}

.policy-content {
  display: grid;
  gap: 1.4rem;
}

.policy-content section {
  display: grid;
  gap: 0.65rem;
  padding-bottom: 1.4rem;
  border-bottom: 1px solid var(--line);
}

.policy-content h2 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.7rem, 3vw, 2.4rem);
  font-weight: 500;
  letter-spacing: 0;
}

.policy-content p,
.policy-content li {
  color: var(--muted);
}

.policy-content p,
.policy-content ul {
  margin: 0;
}

.policy-content ul {
  display: grid;
  gap: 0.45rem;
  padding-left: 1.1rem;
}

@media (max-width: 980px) {
  .hero h1 {
    font-size: 4.15rem;
  }

  .story-grid,
  .section-heading,
  .booking-section,
  .art-layout,
  .policy-hero,
  .policy-layout {
    grid-template-columns: 1fr;
  }

  .filter-bar {
    justify-self: start;
  }

  .lookbook-feature img {
    min-height: 25rem;
  }
}

@media (max-width: 760px) {
  .site-header {
    grid-template-columns: auto minmax(0, 1fr) auto;
    grid-template-areas: "navigation brand action";
    gap: 0.8rem;
    padding: 0.85rem 1rem;
  }

  .main-nav {
    grid-column: auto;
    order: initial;
    justify-content: flex-start;
    overflow: visible;
    padding: 0;
  }

  .main-nav a {
    min-width: max-content;
  }

  .nav-dropdown summary{min-width:7.8rem}.nav-dropdown-menu{position:fixed;top:4.7rem;left:1rem;right:1rem;width:auto;transform:none}

  .header-action {
    min-width: 4rem;
  }

  .hero {
    min-height: 84svh;
    padding: 9.7rem 1rem 9.2rem;
    align-items: end;
  }

  .hero h1 {
    font-size: 3rem;
    max-width: 9ch;
  }

  .hero-copy {
    font-size: 1rem;
  }

  .hero-shade {
    background:
      linear-gradient(0deg, rgba(24, 21, 20, 0.84) 0%, rgba(24, 21, 20, 0.35) 72%),
      linear-gradient(90deg, rgba(24, 21, 20, 0.68), rgba(24, 21, 20, 0.16));
  }

  .hero-meta {
    grid-template-columns: 1fr;
  }

  .hero-meta span {
    min-height: 2.45rem;
    font-size: 0.72rem;
    border-right: 0;
    border-bottom: 1px solid rgba(255, 253, 249, 0.14);
  }

  .intro-strip,
  .story-notes,
  .gallery-grid,
  .journal-grid,
  .story-chapter,
  .story-chapter:nth-child(even),
  .booking-confirmation {
    grid-template-columns: 1fr;
  }

  .story-chapter:nth-child(even) img {
    order: 0;
  }

  .intro-strip p {
    min-height: 3.8rem;
  }

  .section,
  .booking-section {
    padding: 4rem 1rem;
  }

  .section h2,
  .booking-section h2 {
    font-size: 2.35rem;
  }

  .story-notes article {
    min-height: auto;
  }

  .lookbook-feature img {
    min-height: 18rem;
  }

  .service-item {
    grid-template-columns: 1fr;
    gap: 0.45rem;
    align-items: start;
  }

  .booking-time-grid {
    grid-template-columns: 1fr;
  }

  .service-item strong {
    white-space: normal;
  }

  .contact-list div {
    grid-template-columns: 1fr;
    gap: 0.25rem;
  }

  .site-footer {
    display: grid;
  }

  .footer-links,
  .policy-nav {
    justify-content: start;
  }

  .policy-header {
    display: grid;
  }
}

@media (max-width: 420px) {
  .brand > span:not(.brand-logo),
  .brand > small {
    display: none;
  }

  .brand-logo {
    grid-row: auto;
  }
}

@media (max-width: 420px) {
  .hero h1 {
    font-size: 2.55rem;
  }

  .button {
    width: 100%;
  }

  .filter-bar {
    width: 100%;
    border-radius: 8px;
  }

  .filter-button {
    flex: 1 1 42%;
    border-radius: 6px;
  }
}

.main-nav a.is-active{color:var(--merlot);position:relative}.main-nav a.is-active::after{content:"";position:absolute;left:0;right:0;bottom:-.55rem;height:1px;background:currentColor}.route-hero{min-height:calc(100vh - 5rem);padding-top:9rem!important}.route-hero .section-heading,.route-hero .story-grid{margin-top:2rem}body[data-route="contact"] .site-footer{min-height:calc(100vh - 5rem);padding-top:10rem}body:not([data-route="home"]) .site-header{background:rgba(255,253,249,.94);color:var(--ink);border-bottom:1px solid rgba(37,32,31,.1)}body:not([data-route="home"]) .brand,body:not([data-route="home"]) .main-nav a{color:var(--ink)}body:not([data-route="home"]) .header-action{background:var(--merlot);color:var(--ivory)}[hidden]{display:none!important}@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
.custom-block{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);gap:clamp(2rem,6vw,7rem);align-items:center}.custom-block>img{width:100%;min-height:420px;max-height:680px;object-fit:cover}.custom-block-copy{max-width:34rem}.custom-block-copy h2{font:500 clamp(2.4rem,5vw,5.5rem)/.95 Georgia,serif;margin:.6rem 0 1.2rem}.block-quote{display:block;text-align:center}.block-divider{min-height:10rem}.block-image-text-right>img{order:2}@media(max-width:760px){.custom-block{grid-template-columns:1fr}.custom-block>img{min-height:280px}.block-image-text-right>img{order:0}}
body::before{content:"";position:fixed;z-index:9999;top:0;left:0;width:100%;height:2px;background:var(--merlot);transform:scaleX(0);transform-origin:left;opacity:0;pointer-events:none}body.is-route-changing::before{animation:route-progress .18s ease-out}body.is-route-changing main{opacity:1}@keyframes route-progress{0%{transform:scaleX(0);opacity:1}75%{transform:scaleX(.82);opacity:1}100%{transform:scaleX(1);opacity:0}}
.motion-ready .reveal-item{opacity:0;transform:translateY(34px);transition:opacity .8s cubic-bezier(.2,.75,.2,1),transform .8s cubic-bezier(.2,.75,.2,1)}.motion-ready .reveal-item.is-revealed{opacity:1;transform:none}.motion-ready .home-link-card:nth-child(2),.motion-ready .gallery-card:nth-child(2){transition-delay:.08s}.motion-ready .home-link-card:nth-child(3),.motion-ready .gallery-card:nth-child(3){transition-delay:.14s}.motion-ready .home-link-card:nth-child(4),.motion-ready .gallery-card:nth-child(4){transition-delay:.2s}

/* Bamboo Noir studio finish */
body{background:var(--paper)}
.entry-gate{background:linear-gradient(90deg,rgba(4,11,7,.88),rgba(39,76,54,.48)),url("assets/hero-nail-art.png") center/cover}
.entry-panel{border-color:rgba(49,91,66,.24);background:rgba(251,252,247,.96)}
.site-header.is-scrolled,body:not([data-route="home"]) .site-header{background:rgba(240,242,235,.94);border-bottom-color:rgba(17,22,18,.12)}
.main-nav a.is-active{color:var(--merlot)}
body[data-route="home"] .site-header:not(.is-scrolled) .main-nav a.is-active{color:#eff7e9;background:rgba(49,91,66,.88);opacity:1;box-shadow:inset 0 0 0 1px rgba(220,232,211,.3)}
body[data-route="home"] .site-header:not(.is-scrolled) .main-nav a.is-active::after{display:none}
.site-header.is-scrolled .main-nav a.is-active,
body:not([data-route="home"]) .main-nav a.is-active{color:#214d34;background:rgba(49,91,66,.1);opacity:1;font-weight:750}
.site-header:not(.is-scrolled) .main-nav a:hover{background:rgba(113,139,99,.22)}
.header-action,.button-primary{background:var(--merlot);color:var(--ivory)}
.header-action:hover,.button-primary:hover{background:#234b34}
.hero::after{content:"";position:absolute;inset:0 0 auto auto;width:min(32vw,430px);height:100%;z-index:-1;opacity:.12;background:repeating-linear-gradient(90deg,transparent 0 28px,rgba(179,202,161,.5) 29px 30px);pointer-events:none}
.intro-strip{background:rgba(113,139,99,.28);border-color:rgba(113,139,99,.28)}
.intro-strip p{background:var(--graphite);color:#dce8d5}
.section-kicker,.eyebrow{color:var(--gold);letter-spacing:.1em}
.story-notes{border-color:rgba(49,91,66,.25);background:rgba(49,91,66,.25)}
.story-notes article:nth-child(2){background:#e5eadf}
.story-chapter,.journal-grid article{box-shadow:0 18px 50px rgba(8,14,10,.06)}
.art-section,.booking-confirmation,.site-footer{background:var(--graphite)}
.gallery-card{border-color:rgba(220,227,213,.18);background:rgba(113,139,99,.09)}
.filter-button.is-active{background:var(--sage);color:#071008}
.booking-form input:focus,.booking-form select:focus,.booking-form textarea:focus{border-color:var(--merlot);box-shadow:0 0 0 3px rgba(49,91,66,.14)}
.site-footer{border-top:1px solid rgba(113,139,99,.3)}
.footer-links a:hover{border-color:var(--sage);color:#dce8d5}
.main-nav .nav-dropdown-menu a.is-active{color:#fff!important;background:rgba(113,139,99,.22)!important;border-color:rgba(179,202,161,.48)!important;box-shadow:inset 0 0 28px rgba(113,139,99,.08)!important}.main-nav .nav-dropdown-menu a.is-active::after{content:"↗";position:absolute;display:block;right:.7rem;bottom:.7rem;width:auto;height:auto;background:none;color:var(--sage)}body[data-route="home"] .site-header:not(.is-scrolled) .nav-dropdown-menu a.is-active{color:#fff!important;background:rgba(113,139,99,.22)!important}.nav-dropdown[open] summary{background:#152d1e!important;color:#f3f7ef!important;border-color:rgba(179,202,161,.65)!important}

.home-links{display:grid;grid-template-columns:1.15fr .85fr;grid-auto-rows:minmax(32rem,62vh);gap:1px;padding:1px;background:#142219}.home-link-card{position:relative;overflow:hidden;isolation:isolate;color:#fff}.home-link-card img{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;filter:saturate(.72) contrast(1.06);transition:transform .7s cubic-bezier(.2,.7,.2,1),filter .4s ease}.home-link-card::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(4,10,7,.08),rgba(4,10,7,.82))}.home-link-card:hover img{transform:scale(1.045);filter:saturate(.95) contrast(1.08)}.home-link-card>div{position:absolute;left:clamp(1.4rem,4vw,3.5rem);right:clamp(1.4rem,4vw,3.5rem);bottom:clamp(1.6rem,4vw,3.5rem);z-index:1}.home-link-card small{color:#c7d8bd;text-transform:uppercase;letter-spacing:.14em}.home-link-card h2{margin:.4rem 0;font:500 clamp(3.3rem,7vw,7.5rem)/.86 Georgia,serif}.home-link-card p{margin:1.1rem 0 0;font-weight:750;transition:transform .2s ease}.home-link-card:hover p{transform:translateX(8px)}.home-link-index{position:absolute;z-index:1;top:1.4rem;right:1.5rem;width:2.5rem;height:2.5rem;display:grid;place-items:center;border:1px solid rgba(255,255,255,.45);border-radius:50%;font-size:.67rem}.home-link-gems img{object-position:70% center}.home-link-book{grid-column:2}.home-link-book img{object-position:25% center}.home-link-shop img{object-position:70% center}

.shop-section{min-height:calc(100vh - 5rem);background:#e9eee4}.shop-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,.42fr);gap:2rem;align-items:end}.shop-heading h2{margin:.5rem 0 0;max-width:12ch;font:500 clamp(3rem,6vw,6.5rem)/.9 Georgia,serif}.shop-heading>p{color:var(--muted);line-height:1.7}.shop-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem;margin-top:4rem}.shop-grid article{padding-bottom:1rem}.shop-product-image{min-height:25rem;display:grid;place-items:center;margin-bottom:1.2rem;background:#c6d0bd;overflow:hidden}.shop-product-image span{width:7rem;height:9rem;display:grid;place-items:center;border:1px solid rgba(255,255,255,.5);border-radius:50% 50% 42% 42%;background:linear-gradient(145deg,#315b42,#071008);color:#eef4e9;font:500 1.3rem Georgia,serif;box-shadow:0 28px 55px rgba(8,14,10,.25);transition:transform .35s ease}.shop-grid article:hover .shop-product-image span{transform:translateY(-7px) rotate(-2deg)}.product-gloss{background:#9caa91}.product-gloss span{width:8.5rem;height:4.5rem;border-radius:10px;background:#e7eadf;color:#183523}.product-gift{background:#1b3826}.product-gift span{width:10rem;height:6.5rem;border-radius:4px;background:#b3ca9f;color:#102319}.shop-grid small{color:var(--sage);text-transform:uppercase;letter-spacing:.12em}.shop-grid h3{margin:.45rem 0;font:500 1.65rem Georgia,serif}.shop-grid p{min-height:3rem;color:var(--muted);line-height:1.5}.shop-grid strong{font-size:.75rem;text-transform:uppercase;letter-spacing:.1em}

@media(max-width:760px){.hero-slider-controls{right:1.2rem;bottom:1.25rem}.hero-slider-controls>button:not(.hero-pause){width:1.5rem}.hero-slider-controls>button.is-active:not(.hero-pause){width:2.5rem}.home-links{grid-template-columns:1fr;grid-auto-rows:minmax(27rem,62vh)}.home-link-book{grid-column:auto}.home-link-card h2{font-size:3.7rem}.shop-heading{grid-template-columns:1fr}.shop-grid{grid-template-columns:1fr}.shop-product-image{min-height:21rem}.shop-grid p{min-height:0}}

.nav-dropdown-menu a::before,.home-link-index{display:none!important}

/* Homepage studio hours */
.home-hours{position:relative;display:grid;grid-template-columns:minmax(0,.9fr) minmax(340px,1.1fr);gap:clamp(3rem,9vw,9rem);align-items:center;padding:clamp(5rem,9vw,9rem) max(1.2rem,7vw);overflow:hidden;background:radial-gradient(circle at 15% 20%,rgba(179,202,161,.14),transparent 28%),linear-gradient(135deg,#071009 0%,#16301f 55%,#0a130d 100%);color:#f1f5ed}.home-hours::after{content:"HOH";position:absolute;right:-.04em;bottom:-.2em;color:rgba(179,202,161,.035);font:500 clamp(9rem,25vw,27rem)/.75 Georgia,serif;letter-spacing:-.1em;pointer-events:none}.home-hours-intro,.home-hours-week{position:relative;z-index:1}.home-hours-intro h2{max-width:8ch;margin:.7rem 0 1.4rem;font:500 clamp(3.6rem,7vw,7.5rem)/.86 Georgia,serif;letter-spacing:-.045em}.home-hours-intro>p:not(.section-kicker){max-width:31rem;color:#afbcaa;line-height:1.75}.home-hours-button{width:min(100%,22rem);display:flex;justify-content:space-between;align-items:center;margin-top:2rem;border:1px solid rgba(179,202,161,.45);border-radius:0;background:transparent;color:#eff5eb}.home-hours-button:hover{background:#b3ca9f;color:#0d1c13}.home-hours-button b{font-size:1.15rem;font-weight:400;transition:transform .2s ease}.home-hours-button:hover b{transform:translate(3px,-3px)}.home-hours-week{padding:clamp(1.3rem,3vw,2.2rem);border:1px solid rgba(179,202,161,.25);background:rgba(7,16,9,.36);backdrop-filter:blur(12px);box-shadow:0 35px 90px rgba(0,0,0,.22)}.home-hours-status{display:flex;align-items:center;gap:.65rem;padding-bottom:1.25rem;border-bottom:1px solid rgba(179,202,161,.2);color:#b3ca9f;font-size:.68rem;font-weight:750;text-transform:uppercase;letter-spacing:.13em}.home-hours-status i{width:.5rem;height:.5rem;border-radius:50%;background:#b3ca9f;box-shadow:0 0 0 5px rgba(179,202,161,.1)}.home-hours-week dl{margin:0}.home-hours-week dl>div{display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:1rem;padding:1.05rem 0;border-bottom:1px solid rgba(179,202,161,.14)}.home-hours-week dt{color:#dfe8da;font:500 clamp(1.1rem,2vw,1.35rem) Georgia,serif}.home-hours-week dd{margin:0;color:#f3f7f0;font-size:.76rem;font-weight:750;letter-spacing:.08em;text-transform:uppercase}.home-hours-week dd span{margin:0 .35rem;color:#718b63}.home-hours-week .is-closed dt{color:#758174}.home-hours-week .is-closed dd{color:#718b63}.home-hours-week>p{margin:1.15rem 0 0;color:#839180;font-size:.66rem;text-transform:uppercase;letter-spacing:.1em}.home-hours-week dl>div:not(.is-closed){transition:padding-inline .2s ease,background .2s ease}.home-hours-week dl>div:not(.is-closed):hover{padding-inline:.7rem;background:rgba(179,202,161,.06)}

@media(max-width:800px){.home-hours{grid-template-columns:1fr;gap:2.5rem}.home-hours-intro h2{font-size:4rem}.home-hours-week{padding:1.2rem}.home-hours::after{font-size:12rem}}
@media(max-width:420px){.home-hours-intro h2{font-size:3.35rem}.home-hours-week dl>div{padding:.9rem 0}.home-hours-week dt{font-size:1.05rem}.home-hours-week dd{font-size:.68rem}}

/* Supplied Haus of Her identity */
.brand{display:flex;align-items:center;gap:.75rem;text-transform:none}.brand-logo{width:2.55rem;height:2.55rem;aspect-ratio:1;border:0;border-radius:0;overflow:visible}.brand-logo img{object-fit:contain}.brand-wordmark{display:block;width:clamp(8.4rem,11vw,10.5rem);height:2.8rem;object-fit:contain}.brand-logo img,.brand-wordmark{transition:filter .18s ease}body[data-route="home"] .site-header:not(.is-scrolled) .brand-logo img,body[data-route="home"] .site-header:not(.is-scrolled) .brand-wordmark{filter:invert(1)}.entry-logo img{object-fit:contain}@media(max-width:420px){.brand{gap:.35rem}.brand-logo{width:2rem;height:2rem}.brand-wordmark{width:6.5rem;height:2.15rem}}

.brand-mark{grid-area:navigation;justify-self:start;display:block}.brand-wordmark-link{grid-area:brand;justify-self:center}.main-nav{grid-area:action;justify-self:end}.nav-dropdown-menu{left:auto;right:0;transform-origin:top right}@media(max-width:760px){.main-nav{justify-self:end}.nav-dropdown summary{min-width:2.9rem;width:2.9rem;padding:.55rem}.nav-dropdown summary>[data-nav-current],.nav-dropdown summary>.nav-chevron{display:none}.nav-dropdown-menu{left:1rem;right:1rem}}

.nav-dropdown summary{min-width:2.9rem;width:2.9rem;justify-content:center;padding:.55rem}.nav-trigger-mark{background:transparent;box-shadow:none;gap:4px}.nav-trigger-mark i{width:1rem;height:1.5px;background:currentColor}.nav-dropdown[open] .nav-trigger-mark i:first-child{transform:translateY(5.5px) rotate(45deg)}.nav-dropdown[open] .nav-trigger-mark i:nth-child(2){opacity:0;transform:scaleX(0)}.nav-dropdown[open] .nav-trigger-mark i:last-child{transform:translateY(-5.5px) rotate(-45deg)}

.home-link-book{grid-column:auto}.nav-dropdown-menu>a:last-child{grid-column:1/-1;min-height:4.25rem!important}

/* Editorial bamboo-noir booking experience */
body[data-route="book"]{background:var(--graphite)}body[data-route="book"] .site-footer{display:none}.booking-section{position:relative;min-height:100svh;padding:clamp(8rem,11vw,10rem) max(1.2rem,6vw) 5rem;background:radial-gradient(circle at 13% 22%,rgba(113,139,99,.2),transparent 28%),linear-gradient(135deg,#071009 0%,#152d1e 48%,#09110c 100%);color:#f2f6ef;overflow:hidden}.booking-section::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.13;background:repeating-linear-gradient(90deg,transparent 0 5.9vw,rgba(179,202,161,.22) 6vw calc(6vw + 1px))}.booking-copy,.booking-form{position:relative;z-index:1}.booking-copy{position:sticky;top:7.2rem}.availability-pill{width:max-content;display:inline-flex;align-items:center;gap:.55rem;margin-bottom:2.1rem;padding:.55rem .8rem;border:1px solid rgba(179,202,161,.28);border-radius:999px;background:rgba(179,202,161,.08);color:#dce8d5;font-size:.72rem;font-weight:750;text-transform:uppercase;letter-spacing:.08em}.availability-pill i{width:.48rem;height:.48rem;border-radius:50%;background:#b3ca9f;box-shadow:0 0 0 5px rgba(179,202,161,.1)}.booking-section .section-kicker{color:#b3ca9f}.booking-section h2{max-width:8.5ch;font-size:clamp(3.5rem,6.5vw,7rem);line-height:.88}.booking-copy>p:not(.section-kicker){max-width:34rem;margin-top:1.5rem;color:#aebba9;line-height:1.75}.booking-steps{display:grid;gap:0;margin:2.5rem 0 0;padding:0;list-style:none;border-top:1px solid rgba(179,202,161,.2)}.booking-steps li{display:grid;grid-template-columns:2.4rem 1fr;gap:.7rem;padding:1rem 0;border-bottom:1px solid rgba(179,202,161,.16)}.booking-steps li>span{color:#718b63;font-size:.65rem;letter-spacing:.1em}.booking-steps div{display:grid;gap:.15rem}.booking-steps strong{font:500 1.05rem Georgia,serif}.booking-steps small{color:#8f9d8a}.booking-section .contact-list{grid-template-columns:1fr 1fr;gap:.7rem 1.2rem}.booking-section .contact-list div{display:block;padding-top:.75rem;border-color:rgba(179,202,161,.16)}.booking-section .contact-list dt{color:#718b63}.booking-section .contact-list dd{margin-top:.35rem;color:#dce8d5;font-size:.83rem}.booking-form{gap:1.15rem;padding:clamp(1.3rem,3vw,2.25rem);border:1px solid rgba(255,255,255,.55);border-radius:20px;background:rgba(242,246,239,.97);box-shadow:0 35px 100px rgba(0,0,0,.34)}.booking-form-heading{display:flex;justify-content:space-between;gap:1.5rem;align-items:start;padding-bottom:1.35rem;border-bottom:1px solid rgba(33,77,52,.15)}.booking-form-heading>div>span{color:#718b63}.booking-form-heading h3{max-width:15ch;margin:.35rem 0 0;color:#13251a;font:500 clamp(1.8rem,3vw,2.6rem)/1 Georgia,serif}.booking-form-heading>small{max-width:10rem;color:#718b63;text-align:right;line-height:1.45}.booking-field-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.booking-form input,.booking-form select,.booking-form textarea{min-height:3.25rem;border:1px solid rgba(33,77,52,.18);border-radius:9px;background:#fbfcf8;padding:.9rem 1rem;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}.booking-form textarea{min-height:8rem}.booking-form input:hover,.booking-form select:hover,.booking-form textarea:hover{background:#fff}.booking-form input[type="file"]{min-height:auto;border-style:dashed;background:rgba(179,202,161,.09)}.booking-form label>span small{margin-left:.35rem;color:#718b63;font-size:.64rem}.confirmation-note{padding:1rem;border:1px solid rgba(113,139,99,.18);border-radius:10px;background:rgba(179,202,161,.1)}.confirmation-note strong{color:#214d34}.booking-submit{min-height:3.7rem!important;display:flex!important;justify-content:space-between!important;padding:0 1.25rem!important;border-radius:9px!important;background:#152d1e!important}.booking-submit span{color:#fff!important;font-size:.78rem!important}.booking-submit b{font-size:1.2rem;font-weight:400;transition:transform .2s ease}.booking-submit:hover b{transform:translate(3px,-3px)}@media(max-width:900px){.booking-section{grid-template-columns:1fr;padding-top:7.5rem}.booking-copy{position:relative;top:auto}.booking-section h2{max-width:10ch}.booking-section .contact-list{display:none}}@media(max-width:620px){.booking-field-grid,.booking-time-grid{grid-template-columns:1fr}.booking-form-heading{display:grid}.booking-form-heading>small{text-align:left}.booking-section{padding-inline:1rem}.booking-form{border-radius:14px;padding:1rem}.booking-section h2{font-size:3.5rem}}

.tooth-gems-section{min-height:calc(100vh - 5rem);display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:clamp(2.5rem,8vw,8rem);align-items:center;background:radial-gradient(circle at 78% 25%,rgba(179,202,161,.18),transparent 24%),var(--graphite);color:var(--ivory)}.tooth-gems-copy{max-width:44rem}.tooth-gems-copy h2{max-width:10ch;margin:.5rem 0 1.3rem;font:500 clamp(3.6rem,8vw,8rem)/.86 Georgia,serif}.tooth-gems-copy>p:not(.section-kicker){max-width:35rem;color:#b9c4b4;line-height:1.75}.tooth-gems-copy .button{margin-top:1.4rem}.tooth-gems-note{display:grid;border-top:1px solid rgba(179,202,161,.3)}.tooth-gems-note p{margin:0;padding:1.25rem 0;border-bottom:1px solid rgba(179,202,161,.2);font:500 1.25rem Georgia,serif}.tooth-gems-note span{margin-top:1rem;color:var(--sage);font-size:.68rem;letter-spacing:.12em}.policies-section{min-height:calc(100vh - 5rem);background:#e8ede3}.policy-link-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:3rem}.policy-link-grid a{min-height:17rem;display:flex;flex-direction:column;padding:1.35rem;border:1px solid rgba(33,77,52,.18);border-radius:14px;background:rgba(255,255,255,.42);color:var(--ink);transition:transform .22s ease,background .22s ease,color .22s ease}.policy-link-grid a:hover{transform:translateY(-6px);background:#152d1e;color:#f2f6ef}.policy-link-grid span{color:var(--sage);font-size:.68rem}.policy-link-grid strong{margin:auto 0 .55rem;font:500 1.7rem Georgia,serif}.policy-link-grid small{max-width:18rem;color:var(--muted);line-height:1.5}.policy-link-grid a:hover small{color:#aebba9}@media(max-width:760px){.nav-dropdown-menu{grid-template-columns:1fr 1fr}.nav-dropdown-menu a{min-height:4.7rem!important}.nav-menu-head small{display:none}.tooth-gems-section{grid-template-columns:1fr}.tooth-gems-copy h2{font-size:3.6rem}.policy-link-grid{grid-template-columns:1fr}.policy-link-grid a{min-height:10rem}}

.location-details{display:grid;margin:1.8rem 0 0;border-top:1px solid rgba(179,202,161,.2)}.location-details>div{display:grid;grid-template-columns:6.5rem 1fr;gap:1rem;padding:.85rem 0;border-bottom:1px solid rgba(179,202,161,.14)}.location-details dt{color:#718b63;font-size:.65rem;font-weight:750;text-transform:uppercase;letter-spacing:.1em}.location-details dd{margin:0;color:#dce8d5;font-size:.82rem}.location-actions{display:flex;flex-wrap:wrap;align-items:center;gap:1.25rem;margin-top:1.7rem}.location-actions .button{margin-top:0}.location-book-link{display:inline-flex;gap:.55rem;align-items:center;color:#dce8d5;border-bottom:1px solid rgba(179,202,161,.45);padding:.7rem 0;font-size:.76rem;font-weight:750;text-transform:uppercase;letter-spacing:.08em}.location-book-link span{transition:transform .2s ease}.location-book-link:hover span{transform:translate(3px,-3px)}.location-map{position:relative;display:block;min-height:34rem;overflow:hidden;border:1px solid rgba(179,202,161,.3);background:#0e1d14;color:#fff;box-shadow:0 28px 80px rgba(0,0,0,.28)}.location-map::before{content:"";position:absolute;z-index:1;inset:.7rem;border:1px solid rgba(220,232,211,.22);pointer-events:none}.location-map img{width:100%;height:100%;min-height:34rem;object-fit:cover;transition:transform .65s cubic-bezier(.2,.7,.2,1),filter .3s ease}.location-map::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,11,7,.08),transparent 42%,rgba(4,11,7,.9));pointer-events:none}.location-map>em{position:absolute;z-index:2;top:1.35rem;left:1.35rem;padding:.55rem .75rem;border:1px solid rgba(255,255,255,.35);border-radius:999px;background:rgba(7,16,9,.7);color:#dce8d5;font-style:normal;font-size:.62rem;font-weight:750;text-transform:uppercase;letter-spacing:.1em;backdrop-filter:blur(8px)}.location-map>span{position:absolute;z-index:1;left:1.35rem;right:1.35rem;bottom:1.35rem;display:grid;grid-template-columns:1fr auto;gap:.25rem 1rem;align-items:end}.location-map small{grid-column:1;color:#b3ca9f;text-transform:uppercase;letter-spacing:.12em}.location-map strong{font:500 clamp(1.2rem,2.2vw,1.65rem) Georgia,serif}.location-map b{grid-column:2;grid-row:1/3;width:2.7rem;height:2.7rem;display:grid;place-items:center;border-radius:50%;background:#b3ca9f;color:#102319;font-weight:400;transition:transform .2s ease}.location-map:hover img{transform:scale(1.035);filter:saturate(.9)}.location-map:hover b{transform:rotate(10deg)}@media(max-width:760px){.location-map,.location-map img{min-height:28rem}.location-actions{align-items:stretch}.location-actions .button{width:100%}.location-details>div{grid-template-columns:5.4rem 1fr}}

.tooth-gems-copy .location-welcome{margin-top:1rem;color:#dce8d5!important;font:500 1.12rem Georgia,serif!important}.location-welcome span{display:inline-block;margin-left:.25rem;filter:saturate(.5)}

/* Expandable service menu */
.service-accordion{border-top:1px solid rgba(33,77,52,.22)}.service-detail{border-bottom:1px solid rgba(33,77,52,.18)}.service-detail summary{min-height:7rem;display:grid;grid-template-columns:1fr auto;align-items:center;gap:2rem;padding:1rem .25rem;cursor:pointer;list-style:none;color:#1d3727;transition:padding-inline .22s ease,color .22s ease,background .22s ease}.service-detail summary::-webkit-details-marker{display:none}.service-detail summary span{font:500 clamp(1.8rem,4vw,3.6rem)/1 Georgia,serif;letter-spacing:-.025em}.service-detail summary i{position:relative;width:2.7rem;height:2.7rem;border:1px solid rgba(33,77,52,.24);border-radius:50%;transition:transform .28s ease,background .22s ease}.service-detail summary i::before,.service-detail summary i::after{content:"";position:absolute;top:50%;left:50%;width:.8rem;height:1px;background:currentColor;transform:translate(-50%,-50%)}.service-detail summary i::after{transform:translate(-50%,-50%) rotate(90deg);transition:transform .25s ease}.service-detail summary:hover{padding-inline:1rem;background:rgba(179,202,161,.13);color:#315b42}.service-detail[open] summary{padding-inline:1rem;background:#152d1e;color:#eef4e9}.service-detail[open] summary i{background:#b3ca9f;color:#102319;transform:rotate(90deg)}.service-detail[open] summary i::after{transform:translate(-50%,-50%) rotate(0)}.service-detail-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,.55fr);gap:1.5rem clamp(2rem,7vw,7rem);padding:clamp(1.5rem,4vw,3rem);background:#e5eadf}.service-detail-body>p{max-width:43rem;margin:0;color:#4f5c4e;font:500 clamp(1.15rem,2vw,1.4rem)/1.7 Georgia,serif}.service-detail-body dl{margin:0;border-top:1px solid rgba(33,77,52,.18)}.service-detail-body dl>div{display:grid;gap:.3rem;padding:.8rem 0;border-bottom:1px solid rgba(33,77,52,.14)}.service-detail-body dt{color:#718b63;font-size:.62rem;font-weight:750;text-transform:uppercase;letter-spacing:.1em}.service-detail-body dd{margin:0;color:#263a2c;font-size:.83rem}.service-detail-body>a{grid-column:1/-1;width:max-content;display:inline-flex;align-items:center;gap:.65rem;padding:.7rem 0;border-bottom:1px solid #315b42;color:#214d34;font-size:.72rem;font-weight:750;text-transform:uppercase;letter-spacing:.08em}.service-detail-body>a b{font-size:1rem;font-weight:400;transition:transform .2s ease}.service-detail-body>a:hover b{transform:translate(3px,-3px)}@media(max-width:700px){.service-detail summary{min-height:5.7rem}.service-detail summary span{font-size:2rem}.service-detail summary i{width:2.35rem;height:2.35rem}.service-detail-body{grid-template-columns:1fr;padding:1.4rem}.service-detail-body>a{grid-column:auto}.services-section .section-heading{gap:1rem}}

.service-detail summary span small{display:block;margin-top:.35rem;color:currentColor;font:700 .58rem/1.2 Arial,sans-serif;text-transform:uppercase;letter-spacing:.12em;opacity:.58}.service-detail-long{align-items:start}.service-copy{display:grid;gap:1rem}.service-copy p{max-width:47rem;margin:0;color:#4f5c4e;font:500 clamp(1.05rem,1.8vw,1.25rem)/1.7 Georgia,serif}.service-benefits{padding:1.2rem 1.3rem;border:1px solid rgba(33,77,52,.16);background:rgba(255,255,255,.32)}.service-benefits h4{margin:0 0 .75rem;color:#214d34;font:500 1.25rem Georgia,serif}.service-benefits ul{display:grid;gap:.5rem;margin:0;padding-left:1.1rem;color:#4f5c4e;font-size:.82rem;line-height:1.45}.service-includes{grid-column:1/-1;margin:0;padding-top:1.35rem;border-top:1px solid rgba(33,77,52,.16);color:#536052;line-height:1.65}.service-detail-long>a{grid-column:1/-1}@media(max-width:700px){.service-detail-long{grid-template-columns:1fr}.service-includes,.service-detail-long>a{grid-column:auto}}

.service-coming-soon{grid-column:1/-1;width:max-content;padding:.72rem 1rem;border:1px solid rgba(33,77,52,.3);border-radius:999px;color:#214d34;font-size:.67rem;font-weight:750;text-transform:uppercase;letter-spacing:.1em}.service-detail summary span small{width:max-content;padding:.22rem .42rem;border:1px solid currentColor;border-radius:999px}

/* Editorial services finish */
.services-section{position:relative;min-height:100svh;padding-top:clamp(8rem,12vw,11rem);overflow:hidden;background:radial-gradient(circle at 82% 10%,rgba(113,139,99,.17),transparent 25%),#071009;color:#eff4eb}.services-section::before{content:"HER";position:absolute;top:9rem;right:-.05em;color:rgba(179,202,161,.035);font:500 clamp(10rem,28vw,28rem)/.7 Georgia,serif;letter-spacing:-.09em;pointer-events:none}.services-section>.section-heading,.services-section>.service-accordion{position:relative;z-index:1}.services-section .section-heading{grid-template-columns:minmax(0,1fr) minmax(240px,.34fr);align-items:end;margin-bottom:clamp(3rem,7vw,6rem)}.services-section .section-kicker{color:#b3ca9f}.services-section .section-heading h2{max-width:11ch;margin:.65rem 0 0;color:#f1f5ed;font-size:clamp(3.6rem,7.5vw,8rem);line-height:.84;letter-spacing:-.055em}.service-intro-mark{display:grid;gap:.3rem;padding:1.2rem 0 0;border-top:1px solid rgba(179,202,161,.28)}.service-intro-mark span,.service-intro-mark small{color:#718b63;font-size:.62rem;font-weight:750;text-transform:uppercase;letter-spacing:.11em}.service-intro-mark strong{margin:.2rem 0;color:#dce8d5;font:500 clamp(1.4rem,2.4vw,2rem) Georgia,serif}.services-section .service-accordion{display:grid;gap:.7rem;border:0}.services-section .service-detail{overflow:hidden;border:1px solid rgba(179,202,161,.2);background:rgba(21,45,30,.32);box-shadow:0 18px 48px rgba(0,0,0,.12);transition:border-color .22s ease,transform .22s ease}.services-section .service-detail:hover{border-color:rgba(179,202,161,.48);transform:translateY(-2px)}.services-section .service-detail summary{min-height:7.5rem;padding:1rem clamp(1rem,3vw,2rem);color:#e8eee4}.services-section .service-detail summary:hover{padding-inline:clamp(1.3rem,3.5vw,2.5rem);background:rgba(113,139,99,.12);color:#fff}.services-section .service-detail[open]{border-color:rgba(179,202,161,.5);box-shadow:0 28px 80px rgba(0,0,0,.25)}.services-section .service-detail[open] summary{background:#183a27}.services-section .service-detail summary i{border-color:rgba(179,202,161,.45)}.services-section .service-detail-body{background:#e5eadf;color:#152d1e}.services-section .service-detail-body{animation:service-reveal .28s ease both}@keyframes service-reveal{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}.services-section .service-coming-soon{background:rgba(179,202,161,.2)}@media(max-width:760px){.services-section{padding-top:7.8rem}.services-section .section-heading{grid-template-columns:1fr;gap:2rem;margin-bottom:2.5rem}.services-section .section-heading h2{font-size:3.65rem}.services-section .service-detail summary{min-height:6rem}.services-section::before{top:10rem;font-size:12rem}}

.service-quality{position:relative;display:grid;grid-template-columns:minmax(0,.8fr) minmax(320px,1.2fr);gap:clamp(3rem,9vw,10rem);margin-top:clamp(5rem,10vw,10rem);padding:clamp(3rem,7vw,6rem);border:1px solid rgba(179,202,161,.22);background:linear-gradient(135deg,rgba(21,45,30,.88),rgba(8,18,12,.9));overflow:hidden}.service-quality::after{content:"H";position:absolute;right:-.05em;bottom:-.18em;color:rgba(179,202,161,.04);font:500 clamp(12rem,28vw,27rem)/.7 Georgia,serif;pointer-events:none}.service-quality-heading,.service-quality-copy{position:relative;z-index:1}.service-quality-heading h3{margin:.65rem 0 0;color:#f2f6ef;font:500 clamp(3.5rem,7vw,7rem)/.86 Georgia,serif;letter-spacing:-.05em}.service-quality-copy{display:grid;gap:1.1rem;align-content:start}.service-quality-copy p{max-width:47rem;margin:0;color:#b6c2b1;line-height:1.72}.service-quality-copy p:first-child{color:#e1e9dd;font:500 clamp(1.2rem,2vw,1.45rem)/1.6 Georgia,serif}.service-quality-copy .button{width:min(100%,23rem);display:flex;justify-content:space-between;margin-top:1rem}.service-quality-copy .button b{font-size:1.1rem;font-weight:400;transition:transform .2s ease}.service-quality-copy .button:hover b{transform:translate(3px,-3px)}@media(max-width:760px){.service-quality{grid-template-columns:1fr;padding:2rem 1.25rem}.service-quality-heading h3{font-size:3.7rem}}

/* Seamless editorial service index */
.services-section .service-accordion{display:block;border-top:1px solid rgba(179,202,161,.34)}
.service-visual-strip{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.45fr) minmax(180px,.7fr);grid-template-rows:1fr 1fr;gap:.75rem;height:clamp(24rem,48vw,42rem);margin:0 0 clamp(3rem,7vw,6rem)}.service-visual-strip figure{position:relative;min-width:0;margin:0;overflow:hidden;background:#152d1e}.service-visual-strip .service-visual-feature{grid-row:1/-1}.service-visual-strip img{width:100%;height:100%;display:block;object-fit:cover;filter:saturate(.82) contrast(1.03);transition:transform .7s cubic-bezier(.2,.75,.2,1),filter .35s ease}.service-visual-strip figure::after{content:"";position:absolute;inset:0;border:1px solid rgba(179,202,161,.2);box-shadow:inset 0 0 0 1px rgba(7,16,9,.25);pointer-events:none}.service-visual-strip figure:hover img{transform:scale(1.025);filter:saturate(.96) contrast(1.02)}
.services-section .service-detail{position:relative;overflow:clip;border:0;border-bottom:1px solid rgba(179,202,161,.25);background:transparent;box-shadow:none;transition:border-color .25s ease}
.services-section .service-detail::before{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(90deg,rgba(113,139,99,.2),rgba(49,91,66,.08) 58%,transparent);transform:scaleX(0);transform-origin:left;transition:transform .45s cubic-bezier(.2,.75,.2,1);pointer-events:none}
.services-section .service-detail:hover{border-color:rgba(179,202,161,.58);transform:none}
.services-section .service-detail:hover::before,.services-section .service-detail[open]::before{transform:scaleX(1)}
.services-section .service-detail summary{position:relative;z-index:1;min-height:clamp(7rem,10vw,10rem);padding:1.2rem .2rem;color:#e8eee4;transition:padding-inline .32s ease,color .22s ease}
.services-section .service-detail summary:hover{padding-inline:clamp(.8rem,2vw,1.75rem);background:transparent;color:#fff}
.services-section .service-detail summary span{font-size:clamp(2.3rem,5.4vw,5.8rem);line-height:.88;letter-spacing:-.045em}
.services-section .service-detail summary span small{width:max-content;margin-top:.7rem;padding:0;border:0;border-radius:0;color:#8fa287;font-size:.58rem;letter-spacing:.15em}
.services-section .service-detail summary i{width:3rem;height:3rem;border-color:rgba(179,202,161,.42);background:rgba(7,16,9,.18);transition:transform .35s ease,background .22s ease,color .22s ease}
.services-section .service-detail:hover summary i{background:#b3ca9f;color:#102319;transform:rotate(45deg)}
.services-section .service-detail[open]{border-color:rgba(179,202,161,.58);box-shadow:none}
.services-section .service-detail[open] summary{padding-inline:clamp(.8rem,2vw,1.75rem);background:transparent;color:#b3ca9f}
.services-section .service-detail[open] summary i{transform:rotate(90deg)}
.services-section .service-detail-body{position:relative;z-index:1;margin:0;padding:clamp(2rem,5vw,4.5rem) clamp(1rem,4vw,4rem);border-top:1px solid rgba(179,202,161,.24);border-left:3px solid #718b63;background:linear-gradient(105deg,#e8ede3 0%,#dce5d7 100%);box-shadow:inset 0 24px 55px rgba(33,77,52,.06)}
.service-media{grid-column:1/-1;position:relative;height:clamp(16rem,34vw,30rem);margin:0 0 1rem;overflow:hidden;background:#b7c4ae}.service-media img{width:100%;height:100%;display:block;object-fit:cover;filter:saturate(.86);transition:transform .7s cubic-bezier(.2,.75,.2,1)}.service-media:hover img{transform:scale(1.02)}
.services-section .service-benefits{padding:1rem 0 1rem 1.35rem;border:0;border-left:1px solid rgba(33,77,52,.25);background:transparent}
@media(max-width:700px){.service-visual-strip{grid-template-columns:1.2fr .8fr;height:25rem;margin-bottom:3rem}.service-media{height:16rem}.services-section .service-detail summary{min-height:6.4rem;padding-block:1rem}.services-section .service-detail summary span{font-size:2.35rem}.services-section .service-detail summary i{width:2.45rem;height:2.45rem}.services-section .service-detail-body{padding:1.5rem 1rem;border-left-width:2px}.services-section .service-benefits{padding-left:1rem}}

/* Persistent appointment action */
.floating-book{position:fixed;right:clamp(1rem,2.3vw,2rem);bottom:clamp(1rem,2.3vw,2rem);z-index:90;min-width:11.5rem;display:flex;align-items:center;justify-content:space-between;gap:1.4rem;padding:.78rem .85rem .78rem 1rem;border:1px solid rgba(220,232,211,.42);border-radius:999px;background:rgba(12,28,18,.94);color:#f4f7f1;box-shadow:0 16px 45px rgba(3,9,5,.3),inset 0 0 0 1px rgba(255,255,255,.035);backdrop-filter:blur(14px);transition:transform .22s ease,background .22s ease,box-shadow .22s ease}.floating-book>span{display:grid;gap:.1rem;font:500 1rem Georgia,serif;line-height:1}.floating-book small{color:#b3ca9f;font:700 .52rem/1.2 Arial,sans-serif;text-transform:uppercase;letter-spacing:.1em}.floating-book b{width:2.35rem;height:2.35rem;display:grid;place-items:center;border-radius:50%;background:#b3ca9f;color:#102319;font-size:1rem;font-weight:400;transition:transform .22s ease}.floating-book:hover{transform:translateY(-4px);background:#183a27;box-shadow:0 22px 55px rgba(3,9,5,.38)}.floating-book:hover b{transform:rotate(10deg)}.floating-book:focus-visible{outline:3px solid #b3ca9f;outline-offset:4px}body[data-route="book"] .floating-book{background:rgba(179,202,161,.94);color:#102319;border-color:rgba(255,255,255,.55)}body[data-route="book"] .floating-book small{color:#315b42}body[data-route="book"] .floating-book b{background:#102319;color:#eef5e9}
@media(max-width:520px){.floating-book{right:.85rem;bottom:.85rem;min-width:auto;gap:.75rem;padding:.62rem .65rem .62rem .85rem}.floating-book small{display:none}.floating-book>span{font-size:.9rem}.floating-book b{width:2rem;height:2rem}.site-footer{padding-bottom:6rem}}

/* Studio policy and booking consent */
.studio-policy-hero{align-items:start}.studio-policy-hero .policy-updated{max-width:40rem;font-size:1.05rem;line-height:1.75}.studio-policy-layout{display:grid;grid-template-columns:minmax(230px,.32fr) minmax(0,1fr);gap:clamp(2rem,7vw,7rem);align-items:start}.studio-policy-summary{position:sticky;top:7rem}.studio-policy-summary .button{display:inline-flex;margin-top:1rem}.studio-policy-content{gap:0}.studio-policy-content>section{padding:clamp(2rem,4vw,3.5rem) 0;border-bottom:1px solid rgba(33,77,52,.16)}.studio-policy-content>section:first-child{padding-top:0}.studio-policy-content h2{font-size:clamp(2rem,4vw,3.5rem)}.studio-policy-content h3{margin:1.6rem 0 .45rem;color:#214d34;font:500 1.25rem Georgia,serif}.studio-policy-content strong{color:#214d34}.policy-agreement-section{margin-top:1.5rem;padding:clamp(2rem,4vw,3rem)!important;border:0!important;background:#152d1e;color:#f2f6ef}.policy-agreement-section h2{color:#f2f6ef}.policy-agreement-section p{color:#bdc8b8}.policy-agreement-section .button{display:inline-flex;margin:1rem 0}.policy-agreement-section>small{display:block;color:#82917e}
.policy-consent[hidden]{display:none}.policy-consent{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;padding:1rem}.policy-consent-backdrop{position:absolute;inset:0;background:rgba(3,9,5,.78);backdrop-filter:blur(8px)}.policy-consent-panel{position:relative;width:min(100%,34rem);padding:clamp(1.5rem,4vw,2.75rem);border:1px solid rgba(179,202,161,.34);border-radius:18px;background:#f2f5ed;box-shadow:0 35px 100px rgba(0,0,0,.45)}.policy-consent-panel h2{margin:.55rem 0 1rem;color:#13251a;font:500 clamp(2.3rem,5vw,3.5rem)/.95 Georgia,serif}.policy-consent-panel>p:not(.section-kicker){color:#5f6b5c;line-height:1.65}.policy-consent-close{position:absolute;top:1rem;right:1rem;width:2.4rem;height:2.4rem;border:1px solid rgba(33,77,52,.18);border-radius:50%;background:transparent;color:#214d34;font-size:1.35rem;cursor:pointer}.policy-consent-read{display:flex;justify-content:space-between;margin:1.35rem 0;padding:1rem 0;border-block:1px solid rgba(33,77,52,.15);color:#214d34;font-weight:750}.policy-consent-check{display:grid;grid-template-columns:auto 1fr;gap:.8rem;align-items:start;color:#394539;line-height:1.5;cursor:pointer}.policy-consent-check input{width:1.2rem;height:1.2rem;margin-top:.1rem;accent-color:#315b42}.policy-consent-continue{width:100%;display:flex!important;justify-content:space-between!important;margin-top:1.4rem}.policy-consent-continue:disabled{opacity:.4;cursor:not-allowed}.has-policy-consent{overflow:hidden}
@media(max-width:760px){.studio-policy-layout{grid-template-columns:1fr}.studio-policy-summary{position:relative;top:auto}.studio-policy-content>section:first-child{padding-top:2rem}.policy-consent-panel{border-radius:14px}}

/* Integrated bamboo-noir policy experience */
.policies-section{position:relative;min-height:100svh;padding-top:clamp(8rem,12vw,11rem);overflow:hidden;background:radial-gradient(circle at 12% 8%,rgba(113,139,99,.18),transparent 26%),#071009;color:#eff4eb}
.policies-section::before{content:"CODE";position:absolute;top:8.5rem;right:-.06em;color:rgba(179,202,161,.035);font:500 clamp(9rem,25vw,26rem)/.75 Georgia,serif;letter-spacing:-.08em;pointer-events:none}
.policy-editorial-hero,.policy-editorial-layout,.policy-signoff{position:relative;z-index:1}
.policy-editorial-hero{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(270px,.5fr);gap:clamp(2rem,8vw,8rem);align-items:end;padding-bottom:clamp(3rem,7vw,6rem);border-bottom:1px solid rgba(179,202,161,.28)}
.policy-editorial-hero h2{max-width:10ch;margin:.65rem 0 0;color:#f2f6ef;font:500 clamp(3.8rem,8vw,8.5rem)/.82 Georgia,serif;letter-spacing:-.06em}
.policy-editorial-intro{display:grid;gap:1rem;padding-top:1rem;border-top:1px solid rgba(179,202,161,.28)}
.policy-editorial-intro>span{color:#b3ca9f;font-size:.64rem;font-weight:750;text-transform:uppercase;letter-spacing:.13em}
.policy-editorial-intro p{margin:0;color:#d9e3d5;font:500 clamp(1.15rem,2vw,1.4rem)/1.55 Georgia,serif}
.policy-editorial-intro small{color:#82917e;line-height:1.55}
.policy-editorial-layout{display:grid;grid-template-columns:minmax(230px,.32fr) minmax(0,1fr);gap:clamp(2rem,7vw,7rem);align-items:start;padding-top:clamp(3rem,7vw,6rem)}
.policy-editorial-aside{position:sticky;top:7rem;display:grid;padding:1.5rem;border:1px solid rgba(179,202,161,.28);background:linear-gradient(145deg,rgba(21,45,30,.72),rgba(8,18,12,.76));box-shadow:0 28px 75px rgba(0,0,0,.2)}
.policy-editorial-aside>p{margin:0 0 1.8rem;color:#b3ca9f;font-size:.65rem;font-weight:750;text-transform:uppercase;letter-spacing:.12em}
.policy-editorial-aside>strong{padding-top:1.15rem;border-top:1px solid rgba(179,202,161,.18);color:#f1f5ed;font:500 clamp(2rem,4vw,3.2rem)/1 Georgia,serif}
.policy-editorial-aside>span{padding:.35rem 0 1.15rem;color:#8f9d8a;font-size:.72rem;line-height:1.4}
.policy-editorial-aside .button{display:flex;justify-content:space-between;margin-top:1rem}
.policy-editorial-aside .button b{font-weight:400}
.policy-accordion{border-top:1px solid rgba(179,202,161,.34)}
.policy-accordion details{border-bottom:1px solid rgba(179,202,161,.24)}
.policy-accordion summary{min-height:6.5rem;display:grid;grid-template-columns:1fr auto;align-items:center;gap:1.5rem;padding:1rem .25rem;cursor:pointer;list-style:none;color:#e5ede1;transition:padding-inline .28s ease,color .2s ease,background .2s ease}
.policy-accordion summary::-webkit-details-marker{display:none}
.policy-accordion summary span{font:500 clamp(1.65rem,3.8vw,3.4rem)/1 Georgia,serif;letter-spacing:-.025em}
.policy-accordion summary i{position:relative;width:2.6rem;height:2.6rem;border:1px solid rgba(179,202,161,.38);border-radius:50%;transition:transform .3s ease,background .2s ease,color .2s ease}
.policy-accordion summary i::before,.policy-accordion summary i::after{content:"";position:absolute;top:50%;left:50%;width:.75rem;height:1px;background:currentColor;transform:translate(-50%,-50%)}
.policy-accordion summary i::after{transform:translate(-50%,-50%) rotate(90deg);transition:transform .25s ease}
.policy-accordion summary:hover{padding-inline:1rem;background:linear-gradient(90deg,rgba(113,139,99,.16),transparent);color:#fff}
.policy-accordion details[open] summary{padding-inline:1rem;color:#b3ca9f;background:linear-gradient(90deg,rgba(113,139,99,.18),transparent)}
.policy-accordion details[open] summary i{background:#b3ca9f;color:#102319;transform:rotate(90deg)}
.policy-accordion details[open] summary i::after{transform:translate(-50%,-50%)}
.policy-accordion details>div{padding:clamp(1.5rem,4vw,3rem);border-left:2px solid #718b63;background:linear-gradient(110deg,#e9eee4,#dce5d7);color:#344537;animation:policy-reveal .25s ease both}
.policy-accordion details>div h3{margin:1.4rem 0 .4rem;color:#214d34;font:500 1.2rem Georgia,serif}.policy-accordion details>div h3:first-child{margin-top:0}
.policy-accordion details>div p{max-width:54rem;margin:.35rem 0;color:#4e5d50;line-height:1.7}
.policy-accordion details>div a{display:inline-flex;gap:.6rem;margin-top:1rem;padding-bottom:.35rem;border-bottom:1px solid #315b42;color:#214d34;font-size:.7rem;font-weight:750;text-transform:uppercase;letter-spacing:.08em}
@keyframes policy-reveal{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.policy-signoff{display:grid;grid-template-columns:auto 1fr;gap:clamp(1.5rem,5vw,5rem);align-items:center;margin-top:clamp(4rem,9vw,9rem);padding:clamp(2rem,5vw,4rem) 0;border-block:1px solid rgba(179,202,161,.25)}
.policy-signoff span{color:#718b63;font-size:.63rem;font-weight:750;text-transform:uppercase;letter-spacing:.13em}
.policy-signoff p{margin:0;color:#dce8d5;font:500 clamp(2rem,4.5vw,4.5rem)/.95 Georgia,serif}.policy-signoff em{color:#b3ca9f;font-style:italic}
@media(max-width:800px){.policy-editorial-hero,.policy-editorial-layout{grid-template-columns:1fr}.policy-editorial-hero h2{font-size:4.2rem}.policy-editorial-aside{position:relative;top:auto;grid-template-columns:1fr 1fr;gap:0 1rem}.policy-editorial-aside>p,.policy-editorial-aside .button{grid-column:1/-1}.policy-signoff{grid-template-columns:1fr}}
@media(max-width:480px){.policies-section{padding-inline:1rem}.policy-editorial-hero h2{font-size:3.5rem}.policy-editorial-aside{grid-template-columns:1fr}.policy-editorial-aside>p,.policy-editorial-aside .button{grid-column:auto}.policy-accordion summary{min-height:5.6rem}.policy-accordion summary span{font-size:1.8rem}.policy-accordion summary i{width:2.3rem;height:2.3rem}.policy-accordion details>div{padding:1.3rem 1rem}}

/* Continuous studio policy story */
.policy-keyline{position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,1fr);margin-top:clamp(2rem,5vw,4rem);border-block:1px solid rgba(179,202,161,.28)}
.policy-keyline>div{display:grid;gap:.35rem;padding:clamp(1.3rem,3vw,2rem);border-right:1px solid rgba(179,202,161,.2)}.policy-keyline>div:last-child{border-right:0}
.policy-keyline strong{color:#f2f6ef;font:500 clamp(2.2rem,4vw,4rem)/1 Georgia,serif}.policy-keyline span{max-width:14rem;color:#82917e;font-size:.66rem;line-height:1.45;text-transform:uppercase;letter-spacing:.1em}
.policy-continuous{position:relative;z-index:1;width:min(100%,78rem);margin:0 auto}
.policy-continuous>section{display:grid;grid-template-columns:minmax(190px,.3fr) minmax(0,1fr);gap:1rem clamp(2rem,8vw,8rem);padding:clamp(3.5rem,8vw,7rem) 0;border-bottom:1px solid rgba(179,202,161,.23)}
.policy-chapter{grid-column:1;margin:.2rem 0;color:#718b63;font-size:.63rem!important;font-weight:750!important;line-height:1.4!important;text-transform:uppercase;letter-spacing:.14em}
.policy-continuous>section>h3{grid-column:2;max-width:15ch;margin:0 0 1.4rem;color:#edf3e9;font:500 clamp(2.5rem,5vw,5.2rem)/.92 Georgia,serif;letter-spacing:-.04em}
.policy-continuous>section>p:not(.policy-chapter),.policy-continuous>section>a,.policy-copy-columns{grid-column:2}
.policy-continuous>section>p:not(.policy-chapter){max-width:48rem;margin:.55rem 0;color:#aebba9;line-height:1.75}
.policy-continuous>section>p strong{color:#dce8d5}
.policy-copy-columns{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,5vw,4rem)}
.policy-copy-columns>div{padding-top:1rem;border-top:1px solid rgba(179,202,161,.2)}
.policy-continuous h4{margin:1.6rem 0 .45rem;color:#dce8d5;font:500 1.18rem Georgia,serif}.policy-continuous h4:first-child{margin-top:0}
.policy-copy-columns p{margin:0;color:#96a392;line-height:1.7}
.policy-continuous>section>a{width:max-content;display:inline-flex;gap:.65rem;margin-top:1rem;padding-bottom:.4rem;border-bottom:1px solid rgba(179,202,161,.5);color:#b3ca9f;font-size:.68rem;font-weight:750;text-transform:uppercase;letter-spacing:.09em}
.policy-final-agreement{display:grid;grid-template-columns:1fr auto;gap:2rem;align-items:end;margin-top:clamp(4rem,9vw,8rem);padding:clamp(2rem,5vw,4rem);border:1px solid rgba(179,202,161,.3);background:linear-gradient(135deg,rgba(21,45,30,.9),rgba(9,20,13,.88))}
.policy-final-agreement h3{max-width:12ch;margin:.6rem 0 1rem;color:#f2f6ef;font:500 clamp(2.7rem,5vw,5rem)/.9 Georgia,serif;letter-spacing:-.04em}.policy-final-agreement p:not(.policy-chapter){max-width:39rem;margin:0;color:#9eab9a;line-height:1.65}.policy-final-agreement .button{min-width:13rem;display:flex;justify-content:space-between}.policy-final-agreement .button b{font-weight:400}
@media(max-width:760px){.policy-keyline{grid-template-columns:1fr}.policy-keyline>div{grid-template-columns:7rem 1fr;align-items:center;border-right:0;border-bottom:1px solid rgba(179,202,161,.18)}.policy-keyline>div:last-child{border-bottom:0}.policy-continuous>section{grid-template-columns:1fr;gap:.8rem}.policy-chapter,.policy-continuous>section>h3,.policy-continuous>section>p:not(.policy-chapter),.policy-continuous>section>a,.policy-copy-columns{grid-column:1}.policy-continuous>section>h3{font-size:3rem}.policy-copy-columns,.policy-final-agreement{grid-template-columns:1fr}.policy-final-agreement .button{width:100%}}
@media(max-width:460px){.policy-keyline>div{grid-template-columns:5.6rem 1fr;padding-inline:.5rem}.policy-keyline strong{font-size:2rem}.policy-continuous>section{padding:3.3rem 0}.policy-continuous>section>h3{font-size:2.55rem}.policy-copy-columns{gap:2rem}.policy-final-agreement{padding:1.5rem 1rem}}

/* Shop submenu */
.nav-shop-submenu{grid-column:1/-1;border:1px solid rgba(179,202,161,.14);border-radius:12px;background:rgba(255,255,255,.025);overflow:hidden}
.nav-dropdown .nav-shop-submenu>summary{width:100%;min-width:0;min-height:5.2rem;display:grid;grid-template-columns:1fr auto;align-content:end;gap:.25rem .75rem;padding:.8rem;border:0;border-radius:0;background:transparent;color:#eef4e9;box-shadow:none;backdrop-filter:none;transform:none}
.nav-dropdown .nav-shop-submenu>summary:hover{background:rgba(113,139,99,.14);transform:none}
.nav-shop-submenu>summary span{font:500 1.15rem/1 Georgia,serif}.nav-shop-submenu>summary small{grid-column:1;color:rgba(238,244,233,.58);font-size:.68rem}.nav-shop-submenu>summary b{grid-column:2;grid-row:1/3;align-self:center;width:2rem;height:2rem;display:grid;place-items:center;border:1px solid rgba(179,202,161,.34);border-radius:50%;color:#b3ca9f;font-size:1rem;font-weight:400;transition:transform .25s ease,background .2s ease,color .2s ease}
.nav-shop-submenu[open]>summary b{transform:rotate(45deg);background:#b3ca9f;color:#102319}
.nav-shop-links{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;padding:1px;background:rgba(179,202,161,.16)}
.nav-dropdown-menu .nav-shop-links a{min-height:3.5rem!important;display:grid!important;place-items:center!important;padding:.65rem .4rem!important;border:0!important;border-radius:0!important;background:#102319;color:#dce8d5!important;text-align:center;transform:none!important}
.nav-dropdown-menu .nav-shop-links a span{font:750 .62rem/1.15 Arial,sans-serif;text-transform:uppercase;letter-spacing:.09em}
.nav-dropdown-menu .nav-shop-links a::after{display:none}.nav-dropdown-menu .nav-shop-links a:hover,.nav-dropdown-menu .nav-shop-links a.is-active{background:#b3ca9f!important;color:#102319!important}
.shop-grid article{scroll-margin-top:7rem}
@media(max-width:520px){.nav-shop-links{grid-template-columns:1fr 1fr}.nav-dropdown .nav-shop-submenu>summary{min-height:4.7rem}.nav-dropdown-menu .nav-shop-links a{min-height:3.15rem!important}}

/* Shop products and detail view */
.shop-product-card{min-width:0}.shop-product-photo{position:relative;width:100%;aspect-ratio:1/1.12;display:block;margin:0 0 1.25rem;padding:0;border:0;background:#d9e0d3;overflow:hidden;cursor:pointer}.shop-product-photo img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .65s cubic-bezier(.2,.75,.2,1),filter .3s ease}.shop-product-photo>span{position:absolute;right:1rem;bottom:1rem;padding:.65rem .85rem;border:1px solid rgba(255,255,255,.42);border-radius:999px;background:rgba(8,18,12,.82);color:#f2f6ef;font-size:.62rem;font-weight:750;text-transform:uppercase;letter-spacing:.09em;backdrop-filter:blur(10px);transform:translateY(8px);opacity:0;transition:transform .25s ease,opacity .25s ease}.shop-product-photo:hover img{transform:scale(1.04);filter:saturate(.9)}.shop-product-photo:hover>span,.shop-product-photo:focus-visible>span{transform:none;opacity:1}.shop-product-photo:focus-visible{outline:3px solid #315b42;outline-offset:4px}.shop-product-meta{display:flex;justify-content:space-between;align-items:center;gap:1rem}.shop-product-meta strong{color:#214d34;font:500 1rem Georgia,serif;letter-spacing:0;text-transform:none}.shop-product-card h3{margin:.55rem 0}.shop-product-card>p{min-height:0}
.product-dialog{width:min(94vw,72rem);max-height:90svh;margin:auto;padding:0;border:1px solid rgba(179,202,161,.35);border-radius:20px;background:#edf1e8;color:#18261c;box-shadow:0 40px 120px rgba(0,0,0,.5);overflow:auto}.product-dialog::backdrop{background:rgba(3,9,5,.82);backdrop-filter:blur(10px)}.product-dialog-close{position:sticky;z-index:3;top:1rem;float:right;width:2.75rem;height:2.75rem;margin:1rem 1rem -3.75rem 0;border:1px solid rgba(33,77,52,.22);border-radius:50%;background:rgba(237,241,232,.9);color:#214d34;font-size:1.45rem;cursor:pointer;backdrop-filter:blur(8px)}.product-detail{display:grid;grid-template-columns:minmax(300px,.78fr) minmax(0,1.22fr);min-height:40rem}.product-detail-image{position:sticky;top:0;height:90svh;max-height:56rem;background:#dbe2d5}.product-detail-image img{width:100%;height:100%;display:block;object-fit:cover}.product-detail-copy{padding:clamp(2rem,5vw,5rem)}.product-detail-copy h2{max-width:11ch;margin:.55rem 0 1rem;color:#173221;font:500 clamp(3rem,6vw,6rem)/.88 Georgia,serif;letter-spacing:-.05em}.product-detail-price{display:block;margin-bottom:2rem;color:#315b42;font:500 1.35rem Georgia,serif}.product-detail-copy>p{color:#536052;line-height:1.72}.product-detail-copy h3{margin:2.2rem 0 .8rem;color:#214d34;font:500 1.45rem Georgia,serif}.product-detail-copy ul,.product-detail-copy ol{display:grid;gap:.7rem;padding-left:1.2rem;color:#536052;line-height:1.55}.haus-tip{margin-top:2.4rem;padding:1.3rem 1.4rem;border-left:3px solid #718b63;background:rgba(179,202,161,.2)}.haus-tip strong{color:#214d34;font:500 1.3rem Georgia,serif}.haus-tip p{margin:.45rem 0 0;color:#536052;line-height:1.6}.has-product-dialog{overflow:hidden}
@media(max-width:760px){.shop-product-photo>span{opacity:1;transform:none}.product-dialog{width:calc(100vw - 1rem);max-height:94svh;border-radius:14px}.product-detail{grid-template-columns:1fr}.product-detail-image{position:relative;height:auto;aspect-ratio:1/1}.product-detail-copy{padding:2rem 1.2rem 3rem}.product-detail-copy h2{font-size:3.4rem}}

/* Shop category landing */
.shop-category-menu{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin-top:clamp(2.5rem,6vw,5rem);padding:1px;background:rgba(33,77,52,.18)}
.shop-category-menu a{position:relative;min-height:8.5rem;display:flex;flex-direction:column;justify-content:flex-end;padding:1rem;background:#edf1e8;color:#173221;overflow:hidden;transition:background .22s ease,color .22s ease,transform .22s ease}
.shop-category-menu a::before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(179,202,161,.34),transparent 65%);transform:translateY(100%);transition:transform .35s cubic-bezier(.2,.75,.2,1)}
.shop-category-menu a::after{content:"↗";position:absolute;top:1rem;right:1rem;width:2rem;height:2rem;display:grid;place-items:center;border:1px solid rgba(33,77,52,.22);border-radius:50%;font-size:.8rem;transition:transform .22s ease,background .22s ease}
.shop-category-menu span,.shop-category-menu small{position:relative;z-index:1}.shop-category-menu span{font:500 clamp(1.3rem,2.3vw,1.9rem)/1 Georgia,serif}.shop-category-menu small{margin-top:.4rem;color:#718b63;font-size:.62rem;text-transform:uppercase;letter-spacing:.09em}
.shop-category-menu a:hover,.shop-category-menu a.is-active{background:#152d1e;color:#f1f5ed}.shop-category-menu a:hover::before,.shop-category-menu a.is-active::before{transform:none}.shop-category-menu a:hover::after,.shop-category-menu a.is-active::after{transform:rotate(10deg);background:#b3ca9f;color:#102319}.shop-category-menu a:hover small,.shop-category-menu a.is-active small{color:#b3ca9f}
.shop-grid{transition:opacity .18s ease}.shop-grid>.shop-product-card{animation:shop-card-in .32s ease both}@keyframes shop-card-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media(max-width:720px){.shop-category-menu{grid-template-columns:1fr 1fr}.shop-category-menu a{min-height:7rem}}

/* Floating shop category dock */
.shop-category-menu{position:sticky;top:5.35rem;z-index:35;width:min(100%,54rem);grid-template-columns:repeat(4,1fr);gap:.35rem;margin:clamp(2.5rem,6vw,5rem) auto 0;padding:.42rem;border:1px solid rgba(179,202,161,.32);border-radius:999px;background:rgba(10,24,15,.9);box-shadow:0 18px 55px rgba(5,14,9,.28);backdrop-filter:blur(18px)}
.shop-category-menu a{min-height:3.25rem;justify-content:center;align-items:center;padding:.55rem .8rem;border-radius:999px;background:transparent;color:#dce8d5;text-align:center}.shop-category-menu a::before{border-radius:999px;background:#b3ca9f;transform:scale(.75);opacity:0;transition:transform .25s ease,opacity .25s ease}.shop-category-menu a::after{display:none}.shop-category-menu a span{font:750 .69rem/1 Arial,sans-serif;text-transform:uppercase;letter-spacing:.09em}.shop-category-menu a small{display:none}.shop-category-menu a:hover,.shop-category-menu a.is-active{background:#b3ca9f;color:#102319}.shop-category-menu a:hover::before,.shop-category-menu a.is-active::before{transform:scale(1);opacity:1}
@media(max-width:720px){.shop-category-menu{top:4.75rem;width:calc(100vw - 1.5rem);display:flex;gap:.3rem;margin-inline:calc(50% - 50vw + .75rem);padding:.35rem;overflow-x:auto;scrollbar-width:none}.shop-category-menu::-webkit-scrollbar{display:none}.shop-category-menu a{min-width:max-content;min-height:2.9rem;flex:1 0 auto;padding:.55rem .9rem}.shop-category-menu a span{font-size:.62rem}}

/* Balanced homepage navigation panel */
.nav-dropdown-menu{width:min(28rem,calc(100vw - 2rem));grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:row;align-items:stretch;gap:.55rem;padding:.85rem}
.nav-menu-head{min-height:2.3rem;margin:0;padding:.25rem .25rem .8rem}
.nav-dropdown-menu>a{height:100%;min-height:5.6rem!important;justify-content:flex-end!important;padding:1rem!important}
.nav-dropdown-menu>a span{max-width:100%;font-size:1.22rem}.nav-dropdown-menu>a small{max-width:12rem;line-height:1.35}
.nav-shop-submenu{min-width:0}.nav-dropdown .nav-shop-submenu>summary{min-height:5.7rem;padding:1rem}
.nav-shop-links{grid-template-columns:repeat(4,minmax(0,1fr))}.nav-dropdown-menu .nav-shop-links a{min-width:0}
@media(max-width:760px){.nav-dropdown-menu{top:4.65rem;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem;max-height:calc(100svh - 5.5rem);padding:.65rem;overflow-y:auto}.nav-dropdown-menu>a{min-height:5rem!important;padding:.8rem!important}.nav-dropdown-menu>a span{font-size:1.05rem}.nav-dropdown .nav-shop-submenu>summary{min-height:5rem;padding:.8rem}.nav-shop-links{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:390px){.nav-dropdown-menu{grid-template-columns:1fr}.nav-shop-submenu{grid-column:1}.nav-shop-links{grid-template-columns:1fr 1fr}}
