:root {
  --holeys-cream: #f7f1ea;
  --holeys-ivory: #efe6db;
  --holeys-plum: #6b4b63;
  --holeys-lavender: #b9a8b8;
  --holeys-gold: #c8a978;
  --holeys-ink: #4e3747;
  --holeys-muted: #71636a;
  --paper: var(--holeys-cream);
  --ink: var(--holeys-ink);
  --plum: var(--holeys-plum);
  --muted: var(--holeys-muted);
  --lavender: var(--holeys-lavender);
  --gold: var(--holeys-gold);
  --line: #ded3cc;
}
html { scroll-behavior: auto; }
.brand { gap: 0; }
.brand .brand-name { font-family: var(--serif); font-size: 37px; font-weight: 400; letter-spacing: .12em; line-height: 1; }
.brand .brand-signature { font-size: 8px; letter-spacing: .1em; line-height: 1.6; margin-top: 8px; white-space: normal; }
.brand .brand-author { font-family: var(--sans); display: block; font-size: 9px; letter-spacing: .1em; margin-top: 5px; }
.header { height: 76px; background: #f7f1eaf5; }
.header .brand .brand-name { font-size: 28px; }
.header .brand .brand-signature { margin-top: 5px; font-size: 7px; }
.header .brand .brand-author { margin-top: 3px; font-size: 8px; }
.button { border-radius: 28px; }
.button:hover { background: #563b50; transform: none; }
.hero { min-height: 690px; background: linear-gradient(110deg, #f7f1ea, #fbf7f1 60%, #efe6db55); }
.hero h1 { color: var(--ink); font-size: clamp(52px, 5.1vw, 80px); }
.hero h1 em, h2 em, .primary-care h3 em { color: #806b7e; }
.hero-category { color: #74606e; }
.hero-art-label { color: #796446; }
.hero-atmosphere { background: radial-gradient(ellipse at 82% 55%, #b9a8b81c, transparent 60%), radial-gradient(ellipse at 77% 85%, #c8a9781a, transparent 55%); }
.hero-person img { filter: none; }
.hero-person { border-top: 1px solid var(--line); padding-top: 22px; width: fit-content; }
@media (min-width: 1101px) {
  .hero-content { width: 62%; padding-top: 48px; padding-bottom: 100px; }
  .hero-person {
    position: absolute;
    left: 110%;
    top: 60px;
    width: min(40%, 350px);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 13px;
    border: 0;
    padding: 0;
    margin: 0;
  }
  .hero-person img { width: 100%; height: auto; aspect-ratio: 4 / 5; border-radius: 140px 140px 6px 6px; object-fit: cover; }
  .hero-person div > span { font-family: var(--serif); font-size: 26px; font-weight: 400; }
  .hero-person small { font-size: 11px; }
  .hero-person .person-line { display: none; }
  .hero-person .personal-note { font-size: 11px; line-height: 1.5; }
  .hero-art-label { display: none; }
}
.services-section { background: #efe6db66; }
.complementary-services .method-body { padding-left: 0; }
.original-details {
  margin-top: 40px;
  padding: 0 28px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fffaf470;
}
.original-details summary { padding: 25px 0; }
.original-details summary .needs-heading { display: block; font-size: inherit; transform: none; }
.original-details[open] > summary > .needs-heading { transform: none; }
.needs-heading strong { display: block; font-family: var(--serif); font-size: 28px; line-height: 1.2; font-weight: 400; }
.needs-heading small { display: block; margin-top: 10px; color: var(--muted); font-size: 13px; line-height: 1.6; }
@media (max-width: 540px) {
  .original-details { padding-inline: 20px; margin-top: 28px; }
  .needs-heading strong { font-size: 25px; }
}
.intro-section { padding-top: 70px; padding-bottom: 76px; }
.intro-section > .eyebrow { color: #796446; }
.intro-grid { grid-template-columns: .95fr 1.05fr; gap: 64px; align-items: center; margin-top: 30px; }
.intro-grid h2 {
  padding: 32px 0 32px 30px;
  border-left: 1px solid #c8a97880;
  background: radial-gradient(ellipse at 0% 55%, #e5d8e144, transparent 75%);
  font-size: clamp(40px, 3.8vw, 58px);
}
.intro-grid h2::after {
  content: none;
}
.intro-grid > div { padding-block: 12px; }
.intro-grid .large-copy { font-size: 28px !important; max-width: 440px; }
.intro-grid p:not(.large-copy) { font-size: 15px; line-height: 1.85; }
.intro-grid .text-link { margin-top: 16px; }
@media (max-width: 800px) {
  .intro-grid { grid-template-columns: 1fr; gap: 22px; }
  .intro-grid h2 { padding: 20px 0 20px 24px; position: relative; }
  .intro-grid h2::after { position: absolute; right: 0; bottom: 20px; width: 40px; height: 40px; margin: 0; }
  .intro-grid p, .intro-grid .large-copy { max-width: none; }
}
@media (max-width: 540px) {
  .intro-section { padding-top: 46px; padding-bottom: 48px; }
  .intro-grid { margin-top: 22px; gap: 18px; }
  .intro-grid h2 { font-size: clamp(34px, 9vw, 43px); padding-left: 18px; }
  .intro-grid h2::after { display: none; }
  .intro-grid .large-copy { font-size: 25px !important; }
}
.primary-care, .service-card, .training-method, .detail-aside, .contact-card {
  background: linear-gradient(135deg, #fffaf480, #eee6ed50);
  border-color: var(--line);
  border-radius: 10px;
  box-shadow: none;
}
.service-card:hover { transform: none; }
.training-section { background: var(--holeys-ink); }
.training-tags span { border-color: #cbb9c34d; }
.button-light { background: var(--holeys-ivory); color: var(--holeys-ink); border-color: var(--holeys-ivory); }
.button-light:hover { background: #fff8ef; }
.portrait-frame { border-radius: 150px 150px 8px 8px; overflow: hidden; }
.portrait-frame img { filter: saturate(.85); }
.cabinet-wrap .portrait-frame { border-radius:8px; }
.cabinet-wrap .portrait-frame img { width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; filter:none; }
.about-section:has(.cabinet-wrap) { align-items:center; }
@media(max-width:800px) {
 .about-section:has(.cabinet-wrap) { grid-template-columns:1fr; gap:32px; }
 .about-section .cabinet-wrap { width:100%; max-width:540px; }
}
.portrait-seal { background: var(--paper); border-color: #c8a97880; }
.trust-strip, .session-band { background: var(--holeys-ivory); }
.footer { background: #efe6db88; }
.footer-guides { display:grid; grid-template-columns:.9fr 1fr 1fr 1.1fr; gap:40px; padding:34px 0; border-bottom:1px solid var(--line); }
@media(max-width:1150px) and (min-width:901px) {
 .footer-guides { grid-template-columns:repeat(3,1fr); }
 .footer-guides>div:first-child { grid-column:1/-1; }
 .footer-guides p { max-width:none; }
}
.footer-guides h2 { font-size:30px; line-height:1.15; margin:0 0 12px; }
.footer-guides p { color:var(--muted); font-size:12px; line-height:1.7; max-width:230px; }
.footer-guides .eyebrow { font-size:9px; line-height:1.7; letter-spacing:.08em; color:#627564; }
.footer-guides ul { list-style:none; margin:14px 0 0; padding:0; }
.footer-guides li+li { margin-top:8px; }
.footer-guides a { display:inline-block; padding:5px 0; font-size:12px; line-height:1.6; text-underline-offset:4px; }
.footer-guides a:hover { color:#627564; text-decoration:underline; }
.footer-guides a:focus-visible { outline:2px solid #627564; outline-offset:4px; }
@media(max-width:900px) {
 .footer-guides { grid-template-columns:1fr 1fr; gap:25px; }
 .footer-guides>div:first-child { grid-column:1/-1; }
 .footer-guides p { max-width:none; }
}
@media(max-width:540px) {
 .footer-guides { grid-template-columns:1fr; gap:26px; padding-block:28px; }
 .footer-guides h2 { font-size:28px; }
 .footer-guides a { padding-block:7px; }
}
.navigation a { color: var(--holeys-ink); }
.preview-label { padding: 7px 20px; text-align: center; background: #efe6db; color: #64515e; font: 11px/1.5 var(--sans); }
.preview-label a { text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 1100px) and (min-width: 801px) {
  .header { padding-inline: 3%; gap: 16px; }
  .navigation { gap: 18px; }
  .brand .brand-signature { max-width: 200px; }
}
@media (max-width: 800px) {
  .header { height: 72px; }
  .header .brand .brand-name { font-size: 26px; }
  .header .brand .brand-signature { font-size: 7px; letter-spacing: .04em; }
  .header .brand .brand-author { font-size: 8px; }
  .navigation { top: 71px; }
  .navigation.is-open { max-height: calc(100dvh - 72px); }
  html { scroll-padding-top: 82px; }
}
@media (max-width: 540px) {
  .hero { min-height: 0; }
  .hero h1 { font-size: clamp(39px, 10.4vw, 55px); }
  .hero-content { padding-top: 30px; }
  .hero-category { font-size: 17px; }
  .preview-label { font-size: 10px; }
  .mobile-contact { background: var(--holeys-cream); backdrop-filter: none; }
  .mobile-contact a { border-radius: 22px; }
  .footer .brand .brand-name { font-size: 34px; }
}

/* Portrait supplied by Augustina, 31 October 2026. */
.hero { display:grid; grid-template-columns:1.15fr .85fr; align-items:center; gap:8%; min-height:0; height:auto; padding:46px 9% 52px; }
.hero .hero-content { display:block; width:100%; padding:0; }
.hero h1 { font-size:clamp(44px,4.25vw,65px); line-height:1.06; margin:20px 0 24px; }
.hero-category { font-size:16px; margin-top:22px; max-width:390px; }
.hero-intro { max-width:365px; margin:0; }
.hero-actions { margin-top:28px; flex-wrap:wrap; gap:20px; }
.hero-cabinet { position:relative; z-index:1; margin:0; width:100%; max-width:390px; justify-self:end; }
.hero-cabinet img { display:block; width:100%; height:auto; aspect-ratio:3/4; object-fit:cover; border-radius:160px 160px 8px 8px; }
.hero-cabinet figcaption { font:23px/1.3 var(--serif); margin-top:15px; }
.hero-cabinet figcaption span { display:block; font:9px/1.6 var(--sans); letter-spacing:.12em; text-transform:uppercase; margin-top:5px; color:var(--muted); }
.hero .scroll-note,.hero-index { display:none; }
.intro-grid { grid-template-columns:1fr 1fr; align-items:start; gap:8%; }
.intro-grid h2 { font-size:clamp(34px,3.25vw,50px); line-height:1.15; }
.approach-invitation { font:italic 27px/1.4 var(--serif) !important; color:var(--plum); max-width:390px; margin:26px 0 0 30px; }
.intro-grid .approach-copy { padding:26px 0 0; }
.approach-copy p { margin:0 0 18px; }
.approach-copy .approach-location { padding-top:18px; border-top:1px solid var(--line); font-size:13px; }
.workshop-list { display:grid; gap:24px; margin-top:48px; max-width:1000px; }
.workshop-card { padding:clamp(24px,4vw,48px); background:#fffaf480; border:1px solid var(--line); border-radius:12px; }
.workshop-card h2 { font-size:clamp(30px,4vw,46px); margin:20px 0; }
.workshop-card p { max-width:760px; margin-top:16px; }
.workshop-status { font-weight:600; color:var(--plum); }
.workshop-card .text-link { margin-top:24px; }
@media(max-width:1000px) and (min-width:801px) {
 .hero { padding-inline:6%; gap:5%; }
 .hero h1 { font-size:45px; }
 .hero-actions { gap:16px; }
 .hero-actions .button { padding-inline:20px; }
}
@media(max-width:800px) {
 .hero { grid-template-columns:1fr; padding:30px 6% 36px; gap:30px; }
 .hero h1 { font-size:clamp(39px,7.5vw,58px); margin:16px 0 20px; }
 .hero-category { margin-top:18px; }
 .hero-intro { max-width:460px; }
 .hero-actions { margin-top:22px; flex-direction:row; align-items:center; gap:20px; }
 .hero-actions .button { width:auto; padding:14px 19px; gap:18px; }
 .hero-cabinet { justify-self:center; max-width:340px; }
 .hero-cabinet img { border-radius:130px 130px 8px 8px; }
 .hero-cabinet figcaption { font-size:22px; }
 .intro-grid { grid-template-columns:1fr; gap:8px; }
 .intro-grid h2 { font-size:clamp(33px,6vw,45px); }
 .approach-invitation { margin-left:24px; max-width:400px; }
 .intro-grid .approach-copy { padding-top:22px; }
}
@media(max-width:540px) {
 .hero h1 { font-size:clamp(36px,9.8vw,53px); }
 .hero .location { font-size:9px; letter-spacing:.09em; }
 .hero-cabinet { max-width:310px; }
 .hero-cabinet img { aspect-ratio:3/4; }
 .approach-invitation { margin-left:18px; font-size:25px !important; }
 .workshop-card .eyebrow { line-height:1.8; }
}
