:root {
  --aube-ink: #493832;
  --aube-muted: #695a52;
  --aube-cream: #faf0e9;
  --aube-paper: #f1e0d7;
  --aube-sage: #82937f;
  --aube-sage-light: #d9e3d6;
  --aube-peach: #d5aa94;
  --aube-rose: #e6c6c5;
  --aube-blue: #d9e3d6;
  --aube-serif: 'Palatino Linotype', Palatino, 'Book Antiqua', 'Iowan Old Style', Georgia, serif;
  --aube-sans: 'Trebuchet MS', 'Avenir Next', Avenir, sans-serif;
  --aube-width: 1280px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 115px; }
body { margin: 0; background: var(--aube-cream); color: var(--aube-ink); font-family: var(--aube-sans); font-size: 16px; line-height: 1.7; -webkit-font-smoothing: antialiased; }
body.aube-menu-open { overflow: hidden; }
img, svg { max-width: 100%; height: auto; }
img { display: block; }
a { color: inherit; text-underline-offset: .22em; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
:focus-visible { outline: 2px solid #834c4f; outline-offset: 4px; }
::selection { background: #eac5c4; color: var(--aube-ink); }
.aube-wrap { width: min(calc(100% - 80px), var(--aube-width)); margin-inline: auto; }
.aube-skip { position: fixed; z-index: 1001; left: 20px; top: -100px; padding: 12px 18px; background: #fff; color: #18251e; }
.aube-skip:focus { top: 20px; }
.aube-eyebrow { display: inline-flex; align-items: center; gap: 14px; color: #754c4a; font-size: .73rem; font-weight: 700; letter-spacing: .16em; line-height: 1.4; text-transform: uppercase; }
.aube-eyebrow-line { display: inline-block; width: 35px; height: 1px; background: currentColor; }
.aube-button { min-height: 54px; display: inline-flex; align-items: center; justify-content: space-between; gap: 27px; padding: 14px 25px; border: 1px solid var(--aube-ink); border-radius: 30px; background: var(--aube-ink); color: #fffaf4; font-size: .76rem; font-weight: 700; letter-spacing: .07em; line-height: 1.2; text-decoration: none; text-transform: uppercase; transition: background .2s ease, border-color .2s ease, transform .2s ease, color .2s ease; }
.aube-button:hover { background: #615148; border-color: #615148; transform: translateY(-2px); color: #fff; }
.aube-button span { font-size: 1.15rem; font-weight: 400; line-height: .7; }
.aube-button-small { min-height: 43px; padding: 12px 16px; gap: 18px; white-space: nowrap; }
.aube-button-cream { background: #faece5; border-color: #faece5; color: var(--aube-ink); }
.aube-button-cream:hover { background: white; border-color: white; color: var(--aube-ink); }
.aube-button-outline { background: transparent; color: var(--aube-ink); }
.aube-button-outline:hover { color: white; }
.aube-text-link { display: inline-flex; align-items: center; gap: 18px; padding-block: 6px; border-bottom: 1px solid #9a7974; font-size: .76rem; font-weight: 700; letter-spacing: .055em; text-decoration: none; text-transform: uppercase; transition: gap .2s ease, border-color .2s ease; }
.aube-text-link:hover { gap: 25px; border-color: var(--aube-ink); }
.aube-text-link span { font-size: 1.2rem; font-weight: 400; line-height: 1; }

/* Header */
.aube-header { position: sticky; top: 0; z-index: 100; border-bottom: 1px solid rgba(93, 70, 63, .13); background: rgba(248, 232, 224, .97); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); }
body.admin-bar .aube-header { top: 32px; }
.aube-header-inner { min-height: 91px; display: flex; align-items: center; justify-content: space-between; gap: clamp(10px, 1.35vw, 22px); }
.aube-brand { flex: 0 0 auto; }
.aube-brand-link { display: inline-flex; align-items: center; gap: 10px; color: var(--aube-ink); text-decoration: none; }
.aube-brand-logo { width: 64px; height: 64px; flex: 0 0 64px; object-fit: contain; mix-blend-mode: multiply; }
.aube-brand-symbol { width: 43px; height: 43px; display: inline-grid; place-items: center; border: 1px solid #c9aa98; border-radius: 50%; color: #ac776c; font-family: var(--aube-serif); font-size: 1.65rem; line-height: 1; }
.aube-brand-symbol span { transform: rotate(10deg); }
.aube-brand-words { display: flex; flex-direction: column; align-items: flex-start; gap: 1px; white-space: nowrap; }
.aube-brand-words strong { font-family: var(--aube-serif); font-size: 1.52rem; font-weight: 400; letter-spacing: -.045em; line-height: 1; }
.aube-brand-words em { font-weight: 400; }
.aube-brand-words small { margin-top: 4px; color: #795951; font-size: .58rem; font-weight: 700; letter-spacing: .16em; }
.aube-brand .custom-logo-link { display: block; }
.aube-brand .custom-logo { width: auto; max-width: 210px; max-height: 70px; object-fit: contain; }
.aube-nav { min-width: 0; }
.aube-nav-list, .aube-nav .menu { list-style: none; display: flex; align-items: center; justify-content: center; gap: clamp(9px, 1.1vw, 17px); margin: 0; padding: 0; }
.aube-nav-list li, .aube-nav .menu li { position: relative; }
.aube-nav-mobile-book { display: none; }
.aube-nav-list a, .aube-nav .menu a { display: inline-block; padding-block: 33px; color: #554640; font-size: .82rem; font-weight: 600; letter-spacing: .005em; white-space: nowrap; text-decoration: none; transition: color .2s ease; }
.aube-nav-list a:hover, .aube-nav-list a[aria-current], .aube-nav .menu a:hover, .aube-nav .current-menu-item > a { color: #944e59; }
.aube-nav-list .sub-menu, .aube-nav .menu .sub-menu { display: none; position: absolute; top: 100%; left: -12px; min-width: 190px; padding: 8px 15px; border: 1px solid #e7ddd3; background: var(--aube-cream); box-shadow: 0 14px 25px rgba(40,53,47,.1); list-style: none; }
.aube-nav-list .sub-menu a, .aube-nav .menu .sub-menu a { padding: 7px 0; }
.aube-nav-list li:hover > .sub-menu, .aube-nav-list li:focus-within > .sub-menu, .aube-nav .menu li:hover > .sub-menu, .aube-nav .menu li:focus-within > .sub-menu { display: block; }
.aube-header-actions { display: flex; align-items: center; flex: 0 0 auto; gap: 12px; }
.aube-language { display: inline-flex; align-items: center; gap: 7px; white-space: nowrap; color: #ada89f; font-size: .68rem; font-weight: 650; letter-spacing: .07em; }
.aube-language a { color: #68524c; text-decoration: none; }
.aube-language a[aria-current], .aube-language a:hover { color: var(--aube-ink); }
.aube-menu-toggle { display: none; }

/* The official illustrated emblem is the only artwork in the welcome hero. */
.aube-hero { position: relative; overflow: hidden; background: radial-gradient(circle at 7% 10%, #fbefeb 0, transparent 42%), linear-gradient(115deg, #f3dcd7 0%, #edd2cf 61%, #d6ddd0 100%); }
.aube-hero-grid { min-height: min(710px, calc(100svh - 91px)); display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); align-items: center; gap: clamp(38px, 5vw, 82px); padding-block: 68px 77px; }
.aube-hero-content { position: relative; z-index: 1; }
.aube-hero-name { display: flex; flex-direction: column; max-width: 700px; margin: 22px 0 22px; color: #523c37; font-family: var(--aube-serif); font-size: clamp(5rem, 7.9vw, 8.4rem); font-weight: 400; letter-spacing: -.067em; line-height: .89; }
.aube-hero-name em { display: block; padding-left: .38em; font-size: .76em; font-weight: 400; letter-spacing: -.055em; line-height: 1.2; white-space: nowrap; }
.aube-hero-promise { max-width: 610px; margin: 0 0 19px; color: #6e4c4c; font: italic 400 clamp(1.55rem, 2.6vw, 2.35rem)/1.25 var(--aube-serif); letter-spacing: -.03em; }
.aube-hero-intro { max-width: 500px; margin: 0; color: #594b45; font-size: clamp(.98rem, 1.16vw, 1.08rem); line-height: 1.78; }
.aube-hero-buttons { display: flex; flex-wrap: wrap; align-items: center; gap: 22px 27px; margin-top: 32px; }
.aube-hero-subline { display: flex; align-items: center; gap: 14px; margin-top: clamp(40px, 6vw, 70px); color: #765b54; font-size: .68rem; font-weight: 700; letter-spacing: .13em; }
.aube-hero-dot { width: 5px; height: 5px; border-radius: 50%; background: #996966; }
.aube-hero-art { position: relative; min-width: 0; }
.aube-hero-art-surface { min-height: 570px; display: flex; flex-direction: column; align-items: center; justify-content: center; overflow: hidden; border: 1px solid rgba(91,76,61,.12); border-radius: 6px; background: radial-gradient(circle at 50% 34%, #f6e0da 0, #e7cfcb 36%, transparent 74%), linear-gradient(150deg, #c8d7c8 0%, #aebfab 100%); box-shadow: 17px 17px 0 -8px #b5c3af; }
.aube-hero-art-surface img { display: block; width: min(92%, 520px); height: 500px; object-fit: contain; mix-blend-mode: multiply; }
.aube-hero-art-caption { margin-top: -8px; padding-bottom: 20px; color: #5e4d44; font-size: .72rem; font-weight: 700; letter-spacing: .2em; }
.aube-hero-bottom { position: absolute; bottom: 0; left: 50%; width: min(calc(100% - 80px), var(--aube-width)); display: flex; align-items: center; gap: 18px; color: #735d56; font-size: .65rem; font-weight: 700; letter-spacing: .16em; white-space: nowrap; transform: translateX(-50%); }
.aube-hero-bottom-line { height: 1px; flex: 1; background: #bdaaa2; }

/* Homepage sections */
.aube-section { padding-block: clamp(76px, 9vw, 135px); }
.aube-home-editorial { padding-block: 65px 10px; }
.aube-home-services { background: #f0e1da; }
.aube-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 35px; margin-bottom: 42px; }
.aube-section-heading h2, .aube-about-copy h2, .aube-closing h2 { margin: 16px 0 0; font-family: var(--aube-serif); font-size: clamp(2.7rem, 4.35vw, 4.85rem); font-weight: 400; letter-spacing: -.047em; line-height: 1.12; }
.aube-section-heading h2 { max-width: 620px; }
.aube-section-heading p { max-width: 360px; margin: 0 0 6px; color: #675851; font-size: 1rem; line-height: 1.75; }
.aube-feature-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.aube-feature { position: relative; min-height: 370px; display: flex; flex-direction: column; justify-content: space-between; overflow: hidden; padding: 23px 25px 27px; border: 1px solid rgba(95,69,65,.13); background: #cfdacb; color: var(--aube-ink); text-decoration: none; transition: transform .3s ease, box-shadow .3s ease; }
.aube-feature:nth-child(2) { background: #e6c4c3; }
.aube-feature:nth-child(3) { background: #e0c6b3; }
.aube-feature:hover { transform: translateY(-5px); box-shadow: 0 20px 35px rgba(50,63,49,.09); }
.aube-feature-number { position: relative; z-index: 2; font-size: .78rem; font-weight: 650; letter-spacing: .15em; }
.aube-feature-visual { position: absolute; inset: 35px 15px 65px; display: grid; place-items: center; pointer-events: none; }
.aube-feature-visual::before, .aube-feature-visual::after { content: ''; position: absolute; width: 200px; height: 265px; border: 1px solid rgba(81,62,58,.25); border-radius: 53% 48% 51% 49%; transform: rotate(-33deg); }
.aube-feature-visual::after { width: 155px; height: 215px; transform: rotate(28deg); }
.aube-feature-motif { position: relative; width: 185px; height: 240px; border-radius: 58% 50% 53% 45%; background: linear-gradient(145deg, rgba(249,248,235,.63), rgba(147,177,148,.16)); box-shadow: inset 20px 5px 28px rgba(255,255,255,.28), 18px 25px 28px rgba(64,92,74,.12); transform: rotate(28deg); }
.aube-feature-circle .aube-feature-motif { width: 210px; height: 210px; border-radius: 50%; background: radial-gradient(circle at 31% 30%, #fbede7, #d9a99e 65%, #bd9290); transform: none; }
.aube-feature-circle .aube-feature-visual::before, .aube-feature-circle .aube-feature-visual::after { width: 230px; height: 230px; border-radius: 50%; transform: none; }
.aube-feature-circle .aube-feature-visual::after { width: 270px; height: 270px; }
.aube-feature-wave .aube-feature-motif { width: 190px; height: 205px; border-radius: 68% 34% 73% 40%; background: linear-gradient(130deg, #fbf9ee, #bdd0c9); transform: rotate(-32deg); }
.aube-feature-wave .aube-feature-visual::before { transform: rotate(30deg); }
.aube-feature-wave .aube-feature-visual::after { transform: rotate(75deg); }
.aube-feature-bottom { position: relative; z-index: 2; display: flex; justify-content: space-between; align-items: end; gap: 10px; }
.aube-feature-bottom > span:first-child { display: flex; flex-direction: column; gap: 4px; }
.aube-feature-bottom small { font-size: .8rem; letter-spacing: .02em; }
.aube-feature-bottom strong { font-family: var(--aube-serif); font-size: clamp(1.7rem, 2.2vw, 2.5rem); font-weight: 400; letter-spacing: -.04em; line-height: 1.12; }
.aube-feature-arrow { width: 36px; height: 36px; display: grid; flex: 0 0 auto; place-items: center; border: 1px solid rgba(40,53,47,.44); border-radius: 50%; font-size: 1.15rem; line-height: 1; transition: background .2s, color .2s; }
.aube-feature:hover .aube-feature-arrow { background: var(--aube-ink); color: white; }
.aube-about { background: radial-gradient(circle at 15% 36%, #e8d3cf 0, transparent 44%), #dce3d5; text-align: center; }
.aube-about-grid { max-width: 850px; }
.aube-about-copy h2 { margin-bottom: 25px; }
.aube-about-copy p { max-width: 680px; margin: 0 auto 31px; color: #5a534b; font-size: clamp(1.04rem, 1.5vw, 1.2rem); line-height: 1.85; }
.aube-closing { position: relative; overflow: hidden; background: #dfc1bd; text-align: center; }
.aube-closing::before, .aube-closing::after { content: ''; position: absolute; width: 400px; height: 400px; border: 1px solid rgba(126,117,104,.16); border-radius: 50%; }
.aube-closing::before { top: -210px; left: -100px; }
.aube-closing::after { bottom: -230px; right: -50px; }
.aube-closing-inner { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; }
.aube-closing-symbol { margin-bottom: 25px; color: #a8796b; font-size: 2.6rem; line-height: 1; }
.aube-closing h2 { max-width: 720px; margin: 14px auto 32px; }

/* Internal pages and blocks */
.aube-page-main { min-height: 55vh; }
.aube-page-hero { position: relative; overflow: hidden; background: radial-gradient(circle at 86% 20%, #e2c5c1 0, transparent 39%), linear-gradient(125deg, #f1ddd5, #dce5d7); }
.aube-page-hero-inner { position: relative; min-height: 320px; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding-block: 47px 63px; }
.aube-breadcrumb { display: flex; gap: 11px; color: #755e56; font-size: .74rem; text-decoration: none; }
.aube-breadcrumb a { color: #5a453f; text-decoration: none; }
.aube-page-hero .aube-eyebrow { margin-top: 43px; }
.aube-page-hero h1 { max-width: 950px; margin: 14px 0 0; font-family: var(--aube-serif); font-size: clamp(3rem, 5.2vw, 5.5rem); font-weight: 400; letter-spacing: -.055em; line-height: 1.12; }
.aube-page-hero p { max-width: 670px; margin: 18px 0 0; color: #69574f; font-size: 1.04rem; }
.aube-page-content { padding-block: 70px 115px; }
.aube-page-services .aube-page-content > .ads-service-section { width: 100%; max-width: 100%; }
.aube-page-services { background: #f6eae3; }
.aube-institut-hero { overflow: hidden; background: radial-gradient(circle at 80% 25%, #d1dccf 0, transparent 39%), linear-gradient(125deg, #ead1cc 0%, #f4e0da 55%, #d5e0d1 100%); }
.aube-institut-hero > .aube-wrap { padding-block: 30px clamp(68px, 7vw, 100px); }
.aube-institut-hero > .aube-wrap > .aube-breadcrumb { justify-content: center; }
.aube-institut-hero-grid { max-width: 890px; margin: clamp(68px, 7vw, 105px) auto 0; }
.aube-institut-hero-copy { text-align: center; }
.aube-institut-hero-copy h1 { margin: 16px 0 17px; font: 400 clamp(4.1rem, 6.7vw, 6.6rem)/1.02 var(--aube-serif); letter-spacing: -.055em; }
.aube-institut-hero-copy p { max-width: 760px; margin: 0 auto 27px; color: #614e48; font-size: clamp(1.13rem, 1.65vw, 1.4rem); line-height: 1.7; }
.aube-institut-story { background: #f6e7e0; }
.aube-institut-story-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(260px, .65fr); align-items: center; gap: clamp(45px, 7vw, 105px); }
.aube-institut-story-copy > h2 { max-width: 750px; margin: 15px 0 30px; font: 400 clamp(2.5rem, 4.4vw, 4.7rem)/1.13 var(--aube-serif); letter-spacing: -.055em; }
.aube-page-institut .aube-page-content { padding-block: 0; }
.aube-page-institut .aube-page-content > p:first-of-type { max-width: 720px; color: var(--aube-ink); font: 400 clamp(1.3rem, 2vw, 1.8rem)/1.65 var(--aube-serif); letter-spacing: -.018em; }
.aube-page-institut .aube-page-content > p { max-width: 700px; font-size: 1.02rem; line-height: 1.85; }
.aube-institut-reviews { max-width: 640px; margin: 0; padding: clamp(27px, 3vw, 45px); border-left: 3px solid #ad7875; background: #e5d9d1; }
.aube-institut-reviews p { margin: 13px 0 20px; color: #563f3c; font: italic 400 clamp(1.2rem, 1.8vw, 1.55rem)/1.5 var(--aube-serif); }
.aube-institut-care { background: #dce5d7; }
.aube-institut-care-heading { max-width: 720px; margin-bottom: 36px; }
.aube-institut-care-heading h2, .aube-institut-steps h2 { margin: 13px 0 16px; font: 400 clamp(2.5rem, 4.6vw, 4.85rem)/1.12 var(--aube-serif); letter-spacing: -.045em; }
.aube-institut-care-heading p { max-width: 630px; margin: 0; color: #5b5149; line-height: 1.8; }
.aube-institut-care-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(18px, 2.5vw, 34px); }
.aube-institut-care-card { display: flex; flex-direction: column; align-items: flex-start; padding: clamp(28px, 4vw, 55px); background: #f6e9e2; }
.aube-institut-care-card:nth-child(2) { background: #e5ceca; }
.aube-institut-care-number { color: #815f59; font-size: .8rem; font-weight: 700; letter-spacing: .18em; }
.aube-institut-care-card h3 { margin: 30px 0 14px; font: 400 clamp(2.15rem, 3vw, 3.3rem)/1.1 var(--aube-serif); letter-spacing: -.04em; }
.aube-institut-care-card > p { margin: 0 0 16px; color: #594d45; line-height: 1.83; }
.aube-institut-care-card .aube-institut-care-note { margin: auto 0 28px; padding-top: 15px; color: #775750; font: italic 400 1.05rem/1.6 var(--aube-serif); }
.aube-institut-practical { background: #e9d9cd; }
.aube-institut-practical-grid { display: grid; grid-template-columns: minmax(0, 1.16fr) minmax(280px, .84fr); align-items: start; gap: clamp(35px, 7vw, 105px); }
.aube-institut-steps ol { margin: 34px 0 0; padding: 0; list-style: none; counter-reset: aube-visit; }
.aube-institut-steps li { position: relative; margin: 0; padding: 0 0 25px 55px; border-left: 1px solid #b69587; counter-increment: aube-visit; }
.aube-institut-steps li:last-child { padding-bottom: 0; border-color: transparent; }
.aube-institut-steps li::before { content: counter(aube-visit, decimal-leading-zero); position: absolute; left: -17px; top: 0; width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; background: #80534e; color: #fff8f3; font: 700 .68rem/1 var(--aube-sans); }
.aube-institut-steps li strong { display: block; margin-bottom: 4px; font-family: var(--aube-serif); font-size: 1.38rem; font-weight: 400; }
.aube-institut-steps li p { max-width: 580px; margin: 0; color: #635149; line-height: 1.75; }
.aube-institut-visit { padding: clamp(28px, 3.4vw, 48px); border: 1px solid #bac9b6; background: #d9e3d5; }
.aube-institut-visit .aube-eyebrow { font-size: .63rem; }
.aube-institut-visit h2 { margin: 15px 0 25px; font: 400 clamp(2rem, 2.8vw, 3rem)/1.15 var(--aube-serif); letter-spacing: -.04em; }
.aube-institut-visit address { color: #4d453e; font-style: normal; line-height: 1.85; }
.aube-institut-visit-hours { margin-top: 28px; padding-top: 25px; border-top: 1px solid rgba(68, 91, 74, .2); }
.aube-institut-visit-hours > span { color: #866a5e; font-size: .69rem; font-weight: 700; letter-spacing: .16em; }
.aube-institut-visit-hours p { margin: 11px 0 23px; color: #4d453e; line-height: 1.8; }
.aube-institut-phone { display: inline-flex; justify-content: space-between; gap: 25px; padding-bottom: 5px; border-bottom: 1px solid #889c89; color: var(--aube-ink); font-weight: 650; letter-spacing: .02em; text-decoration: none; }
.aube-institut-phone:hover { border-color: var(--aube-ink); }
.aube-institut-next { overflow: hidden; background: radial-gradient(circle at 89% 7%, #ead0ca, transparent 35%), #f4e1db; }
.aube-institut-next-inner { display: flex; flex-direction: column; align-items: flex-start; }
.aube-institut-next h2 { max-width: 820px; margin: 14px 0 30px; font: 400 clamp(2.5rem, 4.7vw, 5rem)/1.13 var(--aube-serif); letter-spacing: -.055em; }
.aube-institut-next-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 20px 30px; }
.aube-page-content:empty { min-height: 80px; }
.aube-prose { overflow-wrap: anywhere; }
.aube-prose > * { max-width: 780px; }
.aube-prose > :is(.ads-cards,.ads-gifts,.ads-account-grid,.ads-shop,.ads-booking-form,.ads-table-wrap,.woocommerce,.ads-notice,.aube-shop-empty) { max-width: 100%; }
.aube-prose > .alignwide { max-width: 1080px; }
.aube-prose > .alignfull { max-width: none; margin-inline: calc((min(100vw - 80px, var(--aube-width)) - 100vw)/2); }
.aube-prose :is(h2,h3,h4) { margin: 1.5em 0 .55em; font-family: var(--aube-serif); font-weight: 400; line-height: 1.2; letter-spacing: -.035em; }
.aube-prose h2 { font-size: clamp(2.1rem, 3vw, 3.4rem); }
.aube-prose h3 { font-size: clamp(1.55rem, 2vw, 2.3rem); }
.aube-prose p, .aube-prose li { color: #5c5049; line-height: 1.85; }
.aube-prose p { margin: 0 0 1.25em; }
.aube-prose ul, .aube-prose ol { padding-left: 1.4em; }
.aube-prose blockquote { padding: 12px 0 12px 28px; border-left: 2px solid var(--aube-peach); font-family: var(--aube-serif); font-size: 1.45rem; }
.aube-prose figure { margin-inline: 0; }
.aube-prose figure img { max-width: 100%; border-radius: 2px; }
.aube-prose figcaption { margin-top: 8px; color: #6c756d; font-size: .82rem; }
.aube-prose :is(input[type=text],input[type=email],input[type=tel],input[type=number],input[type=date],input[type=time],input[type=password],select,textarea) { max-width: 100%; min-height: 44px; padding: 10px 14px; border: 1px solid #bba59b; border-radius: 5px; background: #fffcf9; color: var(--aube-ink); }
.aube-prose textarea { min-height: 110px; }
.aube-prose :is(button,input[type=submit],.wp-block-button__link) { min-height: 45px; padding: 11px 19px; border: 1px solid var(--aube-ink); border-radius: 24px; background: var(--aube-ink); color: white; font-size: .83rem; font-weight: 650; text-decoration: none; cursor: pointer; }
.aube-prose :is(button,input[type=submit],.wp-block-button__link):hover { background: #615148; border-color: #615148; }
.aube-prose table { width: 100%; border-collapse: collapse; }
.aube-prose th, .aube-prose td { padding: 10px 14px; border-bottom: 1px solid #dddcd4; text-align: left; }
.aube-prose > .wp-block-group, .aube-prose > .wp-block-columns { max-width: 100%; }
.aube-prose .wp-block-columns { gap: 2em; }
.aube-editor-hint { max-width: 780px; padding: 18px 20px; background: #fff4d8; color: #544830 !important; }
.aube-edit-link { margin-top: 30px !important; font-size: .75rem; }
.aube-index { padding-block: 85px 115px; }
.aube-index > h1 { margin: 0 0 42px; font: 400 clamp(2.7rem,5vw,5rem)/1.1 var(--aube-serif); letter-spacing: -.05em; }
.aube-post-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 25px; }
.aube-post-card { overflow: hidden; border: 1px solid #e6dfd6; background: white; }
.aube-post-card > div { padding: 20px 25px 28px; }
.aube-post-card time { color: #856b61; font-size: .7rem; text-transform: uppercase; }
.aube-post-card h2 { margin: 12px 0; font: 400 1.65rem/1.22 var(--aube-serif); }
.aube-post-card h2 a { text-decoration: none; }
.aube-post-card p { color: #607067; font-size: .86rem; }
.aube-index .nav-links { display: flex; gap: 10px; margin-top: 45px; }
.aube-index .page-numbers { padding: 5px 12px; border: 1px solid #b8c6b8; }
.aube-not-found { min-height: 55vh; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding-block: 80px; }
.aube-not-found h1 { max-width: 750px; margin: 10px 0; font: 400 clamp(2.9rem,5vw,5.5rem)/1.1 var(--aube-serif); letter-spacing: -.04em; }
.aube-not-found p { color: #5f7064; }

/* Footer */
.aube-footer { background: #473831; color: #fff5ee; }
.aube-footer-top { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, .7fr) minmax(0, .8fr); gap: clamp(30px, 6vw, 100px); padding-block: 92px 87px; }
.aube-eyebrow-light { color: #e8bdb7; }
.aube-footer-lead p { max-width: 415px; margin: 17px 0 28px; font: 400 clamp(2.25rem,3.2vw,3.5rem)/1.15 var(--aube-serif); letter-spacing: -.04em; }
.aube-footer h2 { margin: 0 0 22px; font-size: .71rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.aube-footer-links, .aube-footer-nav .menu { list-style: none; margin: 0; padding: 0; }
.aube-footer-links li, .aube-footer-nav .menu li { margin-bottom: 7px; }
.aube-footer a:not(.aube-button) { color: #f3e5de; font-size: .85rem; text-decoration: none; }
.aube-footer a:not(.aube-button):hover { color: white; text-decoration: underline; }
.aube-footer-contact { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }
.aube-footer-contact h2 { margin-bottom: 14px; }
.aube-footer-contact p { margin: 0; color: #f3e5de; font-size: .85rem; }
.aube-footer-contact .aube-footer-hours { margin: 12px 0; }
.aube-footer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-block: 24px; border-top: 1px solid rgba(255,255,255,.2); color: #ead7d1; font-size: .7rem; }
.aube-footer-bottom > div { display: flex; flex-wrap: wrap; gap: 24px; }
.aube-footer-bottom a { font-size: .7rem !important; }

/* Language first-visit choice */
.aube-language-dialog { width: min(calc(100% - 35px), 490px); max-height: calc(100% - 35px); overflow-y: auto; padding: 0; border: 1px solid #d8c2b8; background: #f5e4dc; color: var(--aube-ink); box-shadow: 0 20px 70px rgba(65,46,43,.2); }
.aube-language-dialog::backdrop { background: rgba(28,43,34,.55); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.aube-language-dialog-inner { display: flex; flex-direction: column; align-items: center; padding: 48px 42px 45px; text-align: center; }
.aube-dialog-symbol { color: #b08b7d; font-size: 3.2rem; line-height: 1; }
.aube-language-dialog .aube-eyebrow { margin-top: 10px; }
.aube-language-dialog h2 { margin: 18px 0 8px; font: 400 clamp(2.1rem, 5vw, 3rem)/1.15 var(--aube-serif); letter-spacing: -.055em; }
.aube-language-dialog p { margin: 0 0 27px; color: #66554e; font-size: .93rem; }
.aube-language-choices { width: 100%; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.aube-language-choices .aube-button { min-width: 0; }

/* WooCommerce when it is used for the product shop. */
.woocommerce .products { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.woocommerce .products::before, .woocommerce .products::after { display: none !important; }
.woocommerce ul.products li.product { float: none !important; width: auto !important; margin: 0 !important; padding: 0 0 22px; background: white; }
.woocommerce ul.products li.product a img { margin: 0 0 15px !important; }
.woocommerce ul.products li.product .woocommerce-loop-product__title, .woocommerce ul.products li.product .price, .woocommerce ul.products li.product .button { margin-inline: 20px; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { color: var(--aube-ink); font: 400 1.6rem/1.2 var(--aube-serif); }
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce .button.alt { border-radius: 2px !important; background: var(--aube-ink) !important; color: white !important; }
.woocommerce div.product .product_title { font: 400 clamp(2.4rem,4vw,4rem)/1.1 var(--aube-serif); }
.aube-woo-content { padding-block: 65px 110px; }
.aube-shop-intro { max-width: 720px !important; margin: 0 0 36px !important; color: #596a5d; font-size: 1rem; line-height: 1.8; }
.aube-shop-empty { min-height: 280px; display: grid; grid-template-columns: 160px minmax(0, 1fr); align-items: center; gap: 45px; padding: 48px clamp(25px, 5vw, 75px); border: 1px solid #e6e2d6; background: radial-gradient(circle at 12% 10%, #fae8df, transparent 48%), #edf2ea; }
.aube-shop-empty-symbol { display: grid; width: 140px; height: 140px; place-items: center; border: 1px solid #aec2ad; border-radius: 50%; color: #a97a70; font-size: 5rem; line-height: 1; }
.aube-shop-empty h2 { margin: 12px 0 8px; font-family: var(--aube-serif); font-size: clamp(2.2rem, 3.8vw, 3.7rem); font-weight: 400; letter-spacing: -.05em; line-height: 1.15; }
.aube-shop-empty p { margin: 0 0 20px; color: #5a6b5e; }
.aube-woo-content .woocommerce-breadcrumb { display: none; }
.aube-woo-content .woocommerce-result-count, .aube-woo-content .woocommerce-ordering { margin-bottom: 28px; color: #5d6c61; font-size: .84rem; }
.aube-woo-content ul.products { clear: both; list-style: none; margin: 0; padding: 0; }
.aube-woo-content ul.products li.product { border: 1px solid #dac3bb; background: #fff4ef; }
.aube-woo-content ul.products li.product a img { aspect-ratio: 1 / 1; width: 100%; object-fit: cover; background: #f4f0e9; }
.aube-woo-content ul.products li.product .woocommerce-loop-product__title { padding: 0; }
.aube-woo-content ul.products li.product .price { color: #536457; font-size: .9rem; }
.aube-woo-content ul.products li.product .button { display: inline-flex; margin-top: 12px; }
.aube-woo-content .woocommerce-pagination { margin-top: 40px; }
.aube-woo-content .woocommerce-pagination ul { border: 0; }
.aube-woo-content .woocommerce-pagination ul li { border: 0; margin-right: 8px; }
.aube-woo-content .woocommerce-pagination .page-numbers { min-width: 36px; border: 1px solid #cfd7cb; }
.aube-woo-content div.product { margin-top: 8px; }
.aube-woo-content div.product .woocommerce-product-gallery { margin-bottom: 40px; }
.aube-woo-content div.product .summary { padding: 20px 0 35px; }
.aube-woo-content .related.products { clear: both; padding-top: 40px; }
.aube-woo-content .woocommerce-tabs { clear: both; padding-top: 30px; }
.aube-prose > :is(.wp-block-woocommerce-cart,.wp-block-woocommerce-checkout,.wc-block-cart,.wc-block-checkout) { max-width: 100%; }
.aube-prose .wc-block-cart__empty-cart__title.with-empty-cart-icon::before { display: none !important; }
.aube-prose .wc-block-cart__empty-cart__title { max-width: 700px; margin: 25px auto 15px; color: var(--aube-ink); font-family: var(--aube-serif); font-size: clamp(2rem, 4vw, 3.4rem); font-weight: 400; letter-spacing: -.045em; line-height: 1.15; }
.aube-prose .wc-block-cart__empty-cart__title + p { margin: 0 auto 48px; text-align: center; }
.aube-prose .wc-block-cart__empty-cart__title + p a { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; padding: 11px 22px; border: 1px solid var(--aube-ink); background: var(--aube-ink); color: #fff; font-size: .83rem; font-weight: 700; letter-spacing: .07em; text-decoration: none; text-transform: uppercase; }
.aube-prose .wc-block-cart__empty-cart__title + p a:hover { border-color: #536b58; background: #536b58; color: #fff; }

@media (max-width: 1150px) {
  .aube-header-inner { min-height: 78px; }
  .aube-menu-toggle { order: 3; width: 42px; height: 42px; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 5px; border: 1px solid #c9d1c7; background: transparent; }
  .aube-menu-toggle span { width: 18px; height: 1px; background: var(--aube-ink); transition: transform .2s ease; }
  .aube-menu-toggle[aria-expanded=true] span:first-child { transform: translateY(6px) rotate(45deg); }
  .aube-menu-toggle[aria-expanded=true] span:nth-child(2) { opacity: 0; }
  .aube-menu-toggle[aria-expanded=true] span:last-child { transform: translateY(-6px) rotate(-45deg); }
  .aube-header-actions { margin-left: auto; }
  .aube-nav { display: none; position: absolute; left: 0; right: 0; top: 100%; max-height: calc(100svh - 78px); overflow-y: auto; padding: 18px 40px 35px; border-top: 1px solid #e9e4dc; background: var(--aube-cream); box-shadow: 0 24px 34px rgba(29,41,31,.11); }
  .aube-nav.is-open { display: block; }
  .aube-nav-list, .aube-nav .menu { display: flex; flex-direction: column; align-items: stretch; gap: 0; }
  .aube-nav-list a, .aube-nav .menu a { width: 100%; padding: 10px 0; border-bottom: 1px solid #e6e2da; font-size: 1rem; }
  .aube-nav-mobile-book, .aube-nav-list .aube-nav-mobile-book { display: block; }
  .aube-nav > .aube-nav-mobile-book { padding: 14px 0; border-bottom: 1px solid #e6e2da; font-size: 1rem; font-weight: 700; text-decoration: none; }
  .aube-nav-list .sub-menu, .aube-nav .menu .sub-menu { position: static; display: block; min-width: 0; padding: 0 0 0 18px; border: 0; background: transparent; box-shadow: none; }
  .aube-nav-list .sub-menu a, .aube-nav .menu .sub-menu a { font-size: .82rem; }
  .aube-hero-grid { min-height: 620px; }
  .aube-hero-name { font-size: clamp(4.35rem, 7.4vw, 7rem); }
  .aube-hero-art-surface { min-height: 500px; }
  .aube-hero-art-surface img { height: 440px; }
}
@media (max-width: 760px) {
  .aube-wrap { width: min(calc(100% - 36px), var(--aube-width)); }
  .aube-eyebrow { font-size: .76rem; letter-spacing: .15em; }
  .aube-feature-bottom small { font-size: .82rem; }
  body.admin-bar .aube-header { top: 46px; }
  .aube-header-inner { min-height: 72px; gap: 10px; }
  .aube-header-actions { gap: 10px; }
  .aube-header-actions > .aube-button { display: none; }
  .aube-brand-words strong { font-size: 1.25rem; }
  .aube-brand-logo { width: 47px; height: 47px; flex-basis: 47px; }
  .aube-brand-symbol { width: 37px; height: 37px; font-size: 1.4rem; }
  .aube-brand .custom-logo { max-width: 158px; max-height: 55px; }
  .aube-nav { padding-inline: 18px; }
  .aube-hero-grid { display: flex; flex-direction: column; align-items: center; gap: 36px; min-height: 0; padding-block: 65px 78px; }
  .aube-hero-content { text-align: center; }
  .aube-hero-name { align-items: center; margin: 21px auto 19px; font-size: clamp(4.3rem, 11.5vw, 6.2rem); }
  .aube-hero-name em { padding-left: .1em; }
  .aube-hero-promise { margin-inline: auto; }
  .aube-hero-intro { max-width: 530px; margin-inline: auto; }
  .aube-hero-buttons { justify-content: center; margin-top: 28px; }
  .aube-hero-subline { display: none; }
  .aube-hero-art { width: min(100%, 530px); margin-inline: auto; }
  .aube-hero-art-surface { min-height: 460px; }
  .aube-hero-art-surface img { height: 400px; }
  .aube-hero-bottom { width: calc(100% - 36px); }
  .aube-section { padding-block: 76px; }
  .aube-section-heading { display: block; margin-bottom: 30px; text-align: center; }
  .aube-section-heading h2, .aube-section-heading p { margin-inline: auto; }
  .aube-section-heading p { max-width: 590px; margin-top: 14px; }
  .aube-feature-grid { grid-template-columns: 1fr; }
  .aube-feature { min-height: 360px; }
  .aube-about-grid { max-width: 680px; }
  .aube-page-hero-inner { align-items: center; text-align: center; }
  .aube-page-hero p { margin-inline: auto; }
  .aube-footer-top { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 45px; padding-block: 70px 55px; }
  .aube-footer-lead { grid-column: 1 / -1; }
  .aube-page-hero-inner { min-height: 265px; padding-block: 40px 50px; }
  .aube-page-hero .aube-eyebrow { margin-top: 30px; }
  .aube-page-content { padding-block: 45px 80px; }
  .aube-institut-hero > .aube-wrap { padding-block: 28px 63px; }
  .aube-institut-hero-grid { margin-top: 55px; }
  .aube-institut-hero-copy, .aube-institut-story-copy, .aube-institut-care-heading { text-align: center; }
  .aube-institut-hero-copy p { margin-inline: auto; }
  .aube-institut-story-grid, .aube-institut-practical-grid { grid-template-columns: 1fr; gap: 45px; }
  .aube-institut-reviews { width: min(100%, 540px); margin-inline: auto; }
  .aube-institut-care-heading { margin-inline: auto; }
  .aube-institut-care-grid { grid-template-columns: 1fr; }
  .aube-institut-steps > .aube-eyebrow, .aube-institut-steps h2 { display: block; text-align: center; }
  .aube-institut-visit { width: min(100%, 540px); margin-inline: auto; text-align: center; }
  .aube-institut-next-inner { align-items: center; text-align: center; }
  .aube-institut-next-actions { justify-content: center; }
  .aube-woo-content { padding-block: 45px 80px; }
  .aube-shop-empty { grid-template-columns: 1fr; gap: 18px; }
  .aube-shop-empty-symbol { width: 85px; height: 85px; font-size: 3rem; }
  .aube-post-grid, .woocommerce .products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .aube-prose > .alignfull { margin-inline: -18px; }
}
@media (max-width: 480px) {
  .aube-brand-link { gap: 7px; }
  .aube-brand-logo { width: 40px; height: 40px; flex-basis: 40px; }
  .aube-brand-symbol { width: 34px; height: 34px; }
  .aube-brand-words strong { font-size: 1.13rem; }
  .aube-brand-words small { font-size: .52rem; letter-spacing: .16em; }
  .aube-header-actions { margin-left: auto; }
  .aube-language { gap: 4px; font-size: .8rem; }
  .aube-menu-toggle { flex: 0 0 39px; width: 39px; height: 39px; }
  .aube-hero-grid { padding-top: 53px; }
  .aube-hero-name { font-size: clamp(3.8rem, 15vw, 5rem); }
  .aube-hero-promise { font-size: clamp(1.52rem, 6.2vw, 1.8rem); }
  .aube-hero-buttons { align-items: stretch; flex-direction: column; gap: 18px; }
  .aube-hero-buttons .aube-button, .aube-hero-buttons .aube-text-link { align-self: center; }
  .aube-hero-art-surface { min-height: min(105vw, 435px); }
  .aube-hero-art-surface img { height: min(89vw, 385px); }
  .aube-hero-art-caption { font-size: .63rem; }
  .aube-hero-bottom { font-size: .67rem; letter-spacing: .1em; }
  .aube-institut-hero-grid { margin-top: 42px; }
  .aube-institut-hero-copy h1 { font-size: clamp(3.6rem, 15vw, 5rem); }
  .aube-institut-next-actions { align-items: flex-start; flex-direction: column; }
  .aube-institut-next-actions { align-items: center; }
  .aube-footer-top { grid-template-columns: 1fr; gap: 35px; }
  .aube-footer-lead { grid-column: auto; }
  .aube-footer-bottom { flex-direction: column; align-items: flex-start; }
  .aube-footer-lead, .aube-footer-top > div, .aube-footer-contact { align-items: center; text-align: center; }
  .aube-footer-bottom, .aube-footer-bottom > div { align-items: center; justify-content: center; text-align: center; }
  .aube-post-grid, .woocommerce .products { grid-template-columns: 1fr; }
  .aube-language-dialog-inner { padding: 36px 23px; }
  .aube-language-choices { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* 1.0.9: quiet editorial art direction, walnut / sage / white. */
:root {
  --aube-ink: #45382f;
  --aube-muted: #62574f;
  --aube-cream: #f8f7f3;
  --aube-paper: #e9eee8;
  --aube-sage: #a2b09e;
  --aube-sage-light: #e9eee8;
  --aube-peach: #a2b09e;
  --aube-rose: #a2b09e;
  --aube-blue: #a2b09e;
  --aube-serif: 'Iowan Old Style', Baskerville, 'Palatino Linotype', Palatino, Georgia, serif;
  --aube-sans: 'Avenir Next', Avenir, 'Trebuchet MS', sans-serif;
}
body { background: #fff; color: var(--aube-ink); }
:focus-visible { outline-color: #566e5c; }
::selection { background: #d9e3d5; color: var(--aube-ink); }
.aube-eyebrow { color: #58705d; font-size: .66rem; letter-spacing: .19em; }
.aube-text-link { border-color: currentColor; color: var(--aube-ink); font-size: .72rem; letter-spacing: .1em; }
.aube-text-link:hover { border-color: currentColor; }
.aube-button { min-height: 49px; border-radius: 2px; background: var(--aube-ink); color: #fff; font-size: .7rem; letter-spacing: .1em; }
.aube-button:hover { border-color: #5b4b3f; background: #5b4b3f; }
.aube-button-cream { border-color: #f8f7f3; background: #f8f7f3; color: var(--aube-ink); }
.aube-button-cream:hover { border-color: #fff; background: #fff; color: var(--aube-ink); }
.aube-button-outline { background: transparent; color: var(--aube-ink); }

/* Navigation sits on a clean white plane; give the salon its own visual weight. */
.aube-header { border-color: #e6e6e1; background: rgba(255,255,255,.98); }
.aube-header-inner { min-height: 98px; }
.aube-brand-link { gap: 11px; }
/* The original mark has generous pale margins. Crop them in the header only. */
.aube-brand-mark { position: relative; display: block; width: 84px; height: 77px; flex: 0 0 84px; overflow: hidden; }
.aube-brand-logo { position: absolute; top: -6px; left: -6px; display: block; width: 96px; max-width: none; height: 96px; object-fit: fill; mix-blend-mode: multiply; filter: contrast(1.15) saturate(1.15); }
.aube-brand-words strong { font-size: 1.88rem; letter-spacing: -.055em; }
.aube-brand-words small { color: #586f5d; font-size: .63rem; letter-spacing: .16em; }
.aube-nav-list a, .aube-nav .menu a { color: #45382f; font-size: .77rem; font-weight: 650; }
.aube-nav-list a:hover, .aube-nav-list a[aria-current], .aube-nav .menu a:hover, .aube-nav .current-menu-item > a { color: #56725a; }
.aube-nav-list .sub-menu, .aube-nav .menu .sub-menu { background: #fff; border-color: #d9e1d7; }
.aube-language { gap: 3px; }
.aube-language a { display: grid; width: 42px; height: 44px; place-items: center; border: 1px solid transparent; border-radius: 3px; color: #60564f; opacity: .77; transition: background .2s ease, opacity .2s ease; }
.aube-language a:hover, .aube-language a[aria-current] { border-color: #d3ded1; background: #edf1eb; opacity: 1; }
.aube-language img, .aube-language-choices img { display: block; width: 27px; height: 18px; flex: 0 0 27px; border: 1px solid #d0d0ca; object-fit: cover; }
.aube-language-choices .aube-button { justify-content: center; gap: 13px; }

/* Full height first impression: photographic, typographic and local. */
.aube-hero { background: var(--aube-ink); }
.aube-hero-grid { display: grid; grid-template-columns: minmax(0, 46%) minmax(0, 54%); align-items: stretch; gap: 0; min-height: min(635px, calc(100svh - 86px)); padding: 0; }
.aube-hero-content { width: 100%; max-width: 680px; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; margin-left: auto; padding: 65px clamp(28px, 4vw, 78px) 67px max(40px, calc((100vw - 1280px)/2)); color: #fff; }
.aube-hero .aube-eyebrow { color: #c6d4c2; }
.aube-hero-name { display: block; width: 100%; max-width: none; margin: 20px 0 13px; color: #fff; font-size: clamp(5rem, 7.6vw, 8.2rem); letter-spacing: -.075em; line-height: .94; }
.aube-hero-name em { display: block; padding-left: .1em; font-size: .75em; letter-spacing: -.055em; line-height: 1.12; }
.aube-hero-promise { max-width: 550px; margin: 20px 0 12px; color: #e5ebe1; font: normal 400 clamp(1.4rem, 1.9vw, 1.85rem)/1.25 var(--aube-serif); letter-spacing: -.015em; }
.aube-hero-intro { max-width: 490px; color: #f1eee8; font-size: .93rem; line-height: 1.75; }
.aube-hero-buttons { gap: 15px 24px; margin-top: 31px; }
.aube-hero .aube-text-link { border-color: #dbe6d9; color: #fff; }
.aube-hero-art { position: relative; width: 100%; min-height: 100%; overflow: hidden; margin: 0; }
.aube-hero-art img { width: 100%; height: 100%; min-height: 635px; object-fit: cover; object-position: 55% 50%; }
.aube-hero-art figcaption, .aube-treatment-image figcaption { position: absolute; right: 14px; bottom: 12px; padding: 4px 8px; background: rgba(69,56,47,.84); color: #fff; font-size: .59rem; font-weight: 600; letter-spacing: .07em; line-height: 1.3; }

/* Services are two stories, with one photograph each and no artificial cards. */
.aube-section { padding-block: clamp(74px, 8vw, 115px); }
.aube-home-editorial { padding-block: 55px 12px; }
.aube-home-services { background: #fff; }
.aube-section-heading { max-width: 980px; display: block; margin: 0 auto clamp(40px, 5vw, 70px); text-align: center; }
.aube-section-heading h2 { max-width: 870px; margin: 17px auto 16px; font: 400 clamp(3rem, 5vw, 5.2rem)/1.06 var(--aube-serif); letter-spacing: -.065em; }
.aube-section-heading p { max-width: 620px; margin: 0 auto; color: var(--aube-muted); font-size: 1rem; }
.aube-treatment { display: grid; grid-template-columns: 1fr 1fr; min-height: 500px; background: #e9eee8; }
.aube-treatment + .aube-treatment { margin-top: clamp(20px, 3vw, 42px); }
.aube-treatment-massage { background: #f8f7f3; }
.aube-treatment-image { position: relative; min-height: 500px; overflow: hidden; margin: 0; }
.aube-treatment-image img { width: 100%; height: 100%; min-height: 500px; object-fit: cover; }
.aube-treatment-headspa .aube-treatment-image img { object-position: 61% center; }
.aube-treatment-copy { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: clamp(34px, 5vw, 83px); }
.aube-treatment-copy h3 { max-width: 480px; margin: 19px 0 22px; font: 400 clamp(2.7rem, 4vw, 4.5rem)/1.08 var(--aube-serif); letter-spacing: -.055em; }
.aube-treatment-copy p { max-width: 530px; margin: 0 0 27px; color: #554e47; font-size: 1.01rem; line-height: 1.8; }
.aube-about { background: #a2b09e; color: #283a2d; text-align: left; }
.aube-about-grid { max-width: var(--aube-width); display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); align-items: center; gap: clamp(35px, 8vw, 128px); }
.aube-about .aube-eyebrow { color: #2f4a36; }
.aube-about-heading h2 { margin: 16px 0 0; font: 400 clamp(3.4rem, 5.7vw, 6rem)/1.05 var(--aube-serif); letter-spacing: -.06em; }
.aube-about-copy p { max-width: 670px; margin: 0 0 20px; color: #273a2b; font: 400 clamp(1.4rem, 2.2vw, 2rem)/1.55 var(--aube-serif); }
.aube-about-copy .aube-text-link { color: #263d2d; }
.aube-closing { background: #f8f7f3; text-align: center; }
.aube-closing::before, .aube-closing::after { content: none; }
.aube-closing h2 { max-width: 850px; margin: 18px auto 29px; font: 400 clamp(2.9rem, 4.8vw, 5rem)/1.1 var(--aube-serif); letter-spacing: -.06em; }
.aube-closing-links { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 18px 29px; }

/* Interior pages keep a different rhythm and concise institute introduction. */
.aube-page-main, .aube-page-services { background: #fff; }
.aube-page-hero { background: #e9eee8; }
.aube-page-hero-inner { min-height: 275px; padding-block: 37px 53px; }
.aube-page-hero .aube-eyebrow { margin-top: 30px; }
.aube-page-hero h1 { font-size: clamp(3.1rem, 5.6vw, 5.8rem); letter-spacing: -.065em; }
.aube-page-hero p { color: #544e47; }
.aube-breadcrumb { color: #667767; }
.aube-breadcrumb a { color: var(--aube-ink); }
.aube-page-content { padding-block: 65px 98px; }
.aube-institut-hero { background: #e9eee8; color: var(--aube-ink); }
.aube-institut-hero > .aube-wrap { padding-block: 27px 72px; }
.aube-institut-hero > .aube-wrap > .aube-breadcrumb { justify-content: flex-start; color: #506b54; }
.aube-institut-hero .aube-breadcrumb a { color: var(--aube-ink); }
.aube-institut-hero-grid { max-width: var(--aube-width); display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); align-items: center; gap: clamp(36px, 6vw, 94px); margin: 27px 0 0; }
.aube-institut-image { position: relative; width: 100%; height: clamp(330px, 36vw, 490px); overflow: hidden; margin: 0; }
.aube-institut-image img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.aube-institut-image figcaption { position: absolute; right: 13px; bottom: 12px; padding: 4px 8px; background: rgba(69,56,47,.84); color: #fff; font-size: .59rem; letter-spacing: .07em; }
.aube-institut-hero-copy { text-align: left; }
.aube-institut-hero .aube-eyebrow { color: #4b694f; }
.aube-institut-hero-copy h1 { margin: 13px 0 12px; font-size: clamp(3.6rem, 6vw, 6rem); }
.aube-institut-hero-copy p { max-width: 720px; margin: 0 0 22px; color: #4d4a43; font-size: clamp(1.05rem, 1.5vw, 1.24rem); line-height: 1.7; }
.aube-institut-hero .aube-text-link { color: var(--aube-ink); }
.aube-institut-story { background: #fff; }
.aube-institut-story-grid { align-items: start; }
.aube-institut-story-copy > h2 { font-size: clamp(2.8rem, 4.2vw, 4.4rem); }
.aube-institut-reviews { border-left: 2px solid #6d866e; background: #e9eee8; }
.aube-institut-reviews p { color: #45382f; }
.aube-institut-care { background: #e9eee8; }
.aube-institut-care-grid { gap: 0; border-top: 1px solid #aebdac; }
.aube-institut-care-card, .aube-institut-care-card:nth-child(2) { padding: clamp(35px, 4vw, 58px) clamp(20px, 4vw, 59px); background: transparent; }
.aube-institut-care-card + .aube-institut-care-card { border-left: 1px solid #aebdac; }
.aube-institut-care-number { color: #557159; }
.aube-institut-care-card > p { color: #4e4943; }
.aube-institut-care-card .aube-institut-care-note { color: #4c624f; }
.aube-institut-practical { background: #fff; }
.aube-institut-steps li { border-color: #c1cfc0; }
.aube-institut-steps li::before { background: var(--aube-ink); border-radius: 2px; }
.aube-institut-steps li p { color: #5d564f; }
.aube-institut-visit { border: 0; background: #e9eee8; }
.aube-institut-visit-hours > span { color: #506e54; }
.aube-institut-next { background: var(--aube-ink); color: #fff; }
.aube-institut-next .aube-eyebrow, .aube-institut-next .aube-text-link { color: #fff; }
.aube-institut-next .aube-button { border-color: #fff; background: #fff; color: var(--aube-ink); }
.aube-institut-next .aube-button:hover { border-color: #e9eee8; background: #e9eee8; }
.aube-institut-next h2 { font-size: clamp(2.8rem, 4.6vw, 4.7rem); }

/* Unified content, shop, and footer surfaces. */
.aube-prose p, .aube-prose li { color: #514b45; }
.aube-prose blockquote { border-color: #829b83; }
.aube-prose :is(input[type=text],input[type=email],input[type=tel],input[type=number],input[type=date],input[type=time],input[type=password],select,textarea) { border-color: #b8cbb9; background: #fff; }
.aube-prose :is(button,input[type=submit],.wp-block-button__link) { border-radius: 2px; }
.aube-editor-hint { background: #e9eee8; color: var(--aube-ink) !important; }
.aube-shop-empty { grid-template-columns: 1fr; min-height: 230px; border-color: #d5ded3; background: #e9eee8; }
.aube-shop-empty-symbol { border: 0; border-radius: 0; color: #4f6954; }
.aube-woo-content ul.products li.product { border-color: #d8e1d6; background: #fff; }
.aube-language-dialog { border-color: #b8c9b5; background: #fff; box-shadow: 0 20px 65px rgba(33,33,29,.18); }
.aube-language-dialog::backdrop { background: rgba(29,33,26,.65); }
.aube-language-dialog p { color: #514b45; }
.aube-dialog-symbol { display: none; }
.aube-footer { background: #45382f; color: #fff; }
.aube-eyebrow-light { color: #c7d8c5; }
.aube-footer a:not(.aube-button), .aube-footer-contact p { color: #f1f0ec; }
.aube-footer-bottom { color: #d6ded2; }

@media (max-width: 1150px) {
  .aube-header-inner { min-height: 82px; }
  .aube-brand-mark { width: 72px; height: 66px; flex-basis: 72px; }
  .aube-brand-logo { top: -5px; left: -5px; width: 82px; height: 82px; }
  .aube-brand-words strong { font-size: 1.65rem; }
  .aube-nav { background: #fff; border-color: #dde6dc; }
  .aube-hero-grid { min-height: 620px; }
  .aube-hero-name { font-size: clamp(4.45rem, 7.7vw, 7rem); }
  .aube-hero-art img { min-height: 620px; }
}
@media (max-width: 760px) {
  .aube-header-inner { min-height: 76px; }
  .aube-brand-mark { width: 58px; height: 53px; flex-basis: 58px; }
  .aube-brand-logo { top: -4px; left: -4px; width: 66px; height: 66px; }
  .aube-brand-words strong { font-size: 1.44rem; }
  .aube-hero-grid { display: flex; flex-direction: column; gap: 0; min-height: 0; padding: 0; }
  .aube-hero-content { align-items: center; order: 0; max-width: none; padding: 58px 25px 53px; text-align: center; }
  .aube-hero-name { margin: 14px auto 8px; font-size: clamp(4.1rem, 13vw, 6rem); }
  .aube-hero-name em { padding-left: 0; }
  .aube-hero-promise { margin: 16px auto 9px; }
  .aube-hero-intro { margin-inline: auto; }
  .aube-hero-buttons { justify-content: center; margin-top: 24px; }
  .aube-hero-art { height: min(73vw, 430px); min-height: 250px; }
  .aube-hero-art img { height: 100%; min-height: 0; object-position: center 52%; }
  .aube-section { padding-block: 70px; }
  .aube-section-heading { margin-bottom: 34px; }
  .aube-section-heading h2 { font-size: clamp(2.85rem, 8vw, 4rem); }
  .aube-treatment { display: flex; flex-direction: column; }
  .aube-treatment-image { min-height: 0; height: min(74vw, 430px); }
  .aube-treatment-image img { height: 100%; min-height: 0; object-position: center; }
  .aube-treatment-copy { align-items: center; padding: 40px 27px 49px; text-align: center; }
  .aube-treatment-copy h3 { margin: 14px auto 13px; }
  .aube-treatment-copy p { margin-inline: auto; }
  .aube-treatment-massage .aube-treatment-image { order: 0; }
  .aube-treatment-massage .aube-treatment-copy { order: 1; }
  .aube-about-grid { display: block; text-align: center; }
  .aube-about-heading h2 { margin-bottom: 16px; }
  .aube-about-copy p { margin-inline: auto; }
  .aube-institut-hero > .aube-wrap { padding-block: 25px 44px; }
  .aube-institut-hero-grid { display: flex; flex-direction: column; gap: 30px; margin: 35px auto 0; }
  .aube-institut-hero-copy { order: 0; }
  .aube-institut-image { order: 1; height: min(75vw, 460px); min-height: 245px; }
  .aube-institut-hero-copy { text-align: center; }
  .aube-institut-hero > .aube-wrap > .aube-breadcrumb { justify-content: center; }
  .aube-institut-hero-copy p { margin-inline: auto; }
  .aube-institut-care-card + .aube-institut-care-card { border-top: 1px solid #aebdac; border-left: 0; }
}
@media (max-width: 480px) {
  .aube-header-inner { min-height: 72px; gap: 7px; }
  .aube-brand-link { gap: 6px; }
  .aube-brand-mark { width: 48px; height: 44px; flex-basis: 48px; }
  .aube-brand-logo { top: -3px; left: -3px; width: 54px; height: 54px; }
  .aube-brand-words strong { font-size: 1.28rem; }
  .aube-brand-words small { font-size: .51rem; letter-spacing: .11em; }
  .aube-language a { width: 35px; height: 42px; }
  .aube-language img { width: 24px; height: 16px; }
  .aube-hero-content { padding: 48px 19px 46px; }
  .aube-hero-name { font-size: clamp(3.55rem, 15.3vw, 4.7rem); }
  .aube-hero-promise { font-size: 1.38rem; }
  .aube-hero-buttons { gap: 16px; }
  .aube-treatment-copy h3 { font-size: 2.7rem; }
  .aube-closing-links { flex-direction: column; }
  .aube-institut-hero-copy h1 { font-size: clamp(3.5rem, 13.5vw, 4.5rem); }
}
@media (max-width: 360px) {
  .aube-brand-mark { width: 43px; height: 39px; flex-basis: 43px; }
  .aube-brand-logo { top: -3px; left: -3px; width: 49px; height: 49px; }
  .aube-brand-words strong { font-size: 1.14rem; }
  .aube-brand-words small { display: none; }
  .aube-brand-link { gap: 5px; }
  .aube-language a { width: 32px; }
  .aube-menu-toggle { flex-basis: 36px; width: 36px; height: 38px; }
}
