/* SOUL ALCHEMY · LIGHT SILVER AND BLUE EDITORIAL DESIGN
   Change the colours and fonts here. Layout sizes are grouped by section below. */
:root {
  --color-paper: #f7f9fb;
  --color-light: #ffffff;
  --color-ink: #22313c;
  --color-muted: #596c78;
  --color-accent: #4f6f83;
  --color-line: #cbd8e1;
  --color-sage: #e8f0f5;
  --color-blush: #dae8f1;
  --font-body: Arial, Helvetica, sans-serif;
  --font-heading: Georgia, 'Times New Roman', serif;
  --site-width: 1280px;
  --header-height: 76px;
}

/* BASE · the page stays readable without JavaScript. */
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--color-ink); background: var(--color-paper); font: 15px/1.72 var(--font-body); -webkit-font-smoothing: antialiased; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
button:disabled { cursor: not-allowed; }
::selection { background: #d6e6f0; color: var(--color-ink); }
:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 4px; }
.container { width: min(calc(100% - 96px), var(--site-width)); margin-inline: auto; }
.narrow { max-width: 900px; }
.section { padding-block: clamp(88px, 9vw, 150px); scroll-margin-top: calc(var(--header-height) + 10px); }
main [id] { scroll-margin-top: calc(var(--header-height) + 10px); }
.text-center { text-align: center; }
.muted, .heading-aside, .section-intro { color: var(--color-muted); }
.eyebrow, .choice-number, .price-kicker, .combo-label, .image-caption, .about-image-note, .gallery-grid figcaption, .hero-bottom, .photo-bottom span {
  font-size: 10px; font-weight: 700; letter-spacing: .2em; line-height: 1.6;
}
.eyebrow { margin: 0 0 23px; text-transform: uppercase; }
.eyebrow.centered { text-align: center; }
.small-line { display: inline-block; width: 28px; height: 1px; margin: 0 11px 4px 0; background: currentColor; }
.section-title { margin: 0; font: 400 clamp(46px, 5.2vw, 78px)/1.1 var(--font-heading); letter-spacing: -.05em; }
.section-title em, .hero h1 em, .combo-section em, .booking-dialog h2 em { color: var(--color-accent); font-weight: 400; }
.section-intro { max-width: 680px; margin: 27px auto 0; font-size: 17px; line-height: 1.85; }
.large-copy { margin-top: 0; font: 400 clamp(22px, 2vw, 29px)/1.5 var(--font-heading); letter-spacing: -.025em; }
.footnote { margin: 27px 0 0; color: var(--color-muted); font-size: 12px; line-height: 1.7; }

/* LINKS · fine borders and a small arrow movement are the interaction cue. */
.button { min-height: 53px; display: inline-flex; gap: 32px; align-items: center; justify-content: space-between; padding: 13px 21px; border: 1px solid currentColor; border-radius: 0; background: transparent; color: inherit; font-size: 11px; font-weight: 700; letter-spacing: .035em; line-height: 1.35; transition: background .25s, color .25s, border-color .25s, transform .25s; }
.button span[aria-hidden] { display: inline-block; transition: transform .25s; }
.button:hover span[aria-hidden] { transform: translate(3px, -3px); }
.button:hover { transform: translateY(-2px); }
.button-dark { color: #fff; background: var(--color-ink); border-color: var(--color-ink); }
.button-dark:hover { background: var(--color-accent); border-color: var(--color-accent); }
.button-outline { color: var(--color-ink); background: transparent; }
.button-outline:hover { color: #fff; background: var(--color-ink); border-color: var(--color-ink); }
.button-cream { color: var(--color-ink); background: var(--color-light); border-color: var(--color-light); }
.button-cream:hover { color: #fff; background: var(--color-ink); border-color: var(--color-ink); }
.button-small { min-height: 40px; padding: 9px 15px; }
.full-width { width: 100%; }
.text-link { display: inline-flex; align-items: center; justify-content: space-between; gap: 35px; min-width: 168px; padding: 0 0 10px; border-bottom: 1px solid currentColor; font-size: 12px; font-weight: 700; transition: color .2s, gap .2s; }
.text-link:hover { color: var(--color-accent); gap: 43px; }
.skip-link { position: fixed; z-index: 100; top: -100px; left: 14px; padding: 12px; background: white; }
.skip-link:focus { top: 14px; }

/* HEADER · the transparent logo may extend below the slim header. */
.site-header { position: sticky; top: 0; z-index: 20; background: rgba(247,249,251,.96); border-bottom: 1px solid var(--color-line); backdrop-filter: blur(14px); }
.header-inner { min-height: var(--header-height); display: flex; justify-content: flex-start; align-items: center; gap: clamp(12px, 1.7vw, 25px); }
/* BRAND · change the logo image in each page header/footer; sizes live here. */
.brand { position: relative; display: block; width: 290px; height: var(--header-height); flex: 0 0 290px; }
.brand-logo { position: absolute; top: -15px; left: -10px; width: 310px; height: auto; max-width: none; }
.site-nav { display: flex; align-items: center; gap: clamp(12px, 1.15vw, 18px); margin-left: 0; white-space: nowrap; font-size: clamp(16px, 1.18vw, 17px); font-weight: 400; }
.site-nav a:not(.nav-contact) { position: relative; padding-block: 11px; }
.site-nav a:not(.nav-contact)::after { content: ''; position: absolute; left: 0; right: 100%; bottom: 7px; height: 1px; background: var(--color-accent); transition: right .25s; }
.site-nav a:not(.nav-contact):hover::after { right: 0; }
.nav-contact { min-height: 44px; display: inline-flex; align-items: center; padding: 9px 15px; border: 1px solid var(--color-ink); font-size: 15px; transition: background .2s, color .2s; }
.nav-contact:hover { color: #fff; background: var(--color-ink); }
/* LANGUAGE · native details provides a keyboard-accessible SK/EN dropdown. */
.language-switch { position: relative; flex: 0 0 auto; margin-left: auto; white-space: nowrap; font: 600 13px/1.2 var(--font-body); letter-spacing: .06em; }
.language-switch summary { display: flex; align-items: center; gap: 8px; padding: 10px 2px; color: var(--color-ink); cursor: pointer; list-style: none; }
.language-switch summary::-webkit-details-marker { display: none; }
.language-switch summary::after { content: ''; width: 6px; height: 6px; margin-top: -3px; border-right: 1px solid currentColor; border-bottom: 1px solid currentColor; transform: rotate(45deg); }
.language-switch[open] summary::after { margin-top: 4px; transform: rotate(225deg); }
.language-options { position: absolute; z-index: 25; top: calc(100% + 5px); right: 0; min-width: 86px; padding: 5px; border: 1px solid var(--color-line); background: var(--color-light); box-shadow: 0 8px 22px rgba(34,49,60,.1); }
.language-options a { display: block; padding: 9px 10px; color: var(--color-muted); }
.language-options a:hover, .language-options a[aria-current="page"] { background: var(--color-sage); color: var(--color-ink); }
.mobile-nav-actions { display: none; }
.header-instagram { display: inline-flex; flex: 0 0 32px; width: 32px; height: 32px; align-items: center; justify-content: center; border: 1px solid var(--color-line); }
.header-instagram:hover { background: var(--color-light); border-color: var(--color-accent); }
.header-instagram img { width: 18px; height: 18px; }
.menu-toggle { display: none; border: 0; background: transparent; padding: 12px; }
.menu-toggle span { display: block; width: 23px; height: 1px; margin: 6px 0; background: var(--color-ink); }

/* HERO · swap column order or image in index.html to alter the opening. */
.hero { padding-block: 45px 28px; }
.hero-grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: clamp(55px, 7vw, 110px); align-items: center; }
.hero-art { grid-column: 1; grid-row: 1; position: relative; min-width: 0; }
.hero-art::before { content: ''; position: absolute; z-index: -1; inset: -24px 35px 22px -24px; background: var(--color-sage); }
.hero-art > img { width: 100%; height: min(46vw, 660px); object-fit: cover; object-position: center 43%; }
.hero-copy { grid-column: 2; grid-row: 1; padding-block: 30px; }
.hero h1 { margin: 0 0 24px; font: 400 clamp(62px, 5.5vw, 86px)/1 var(--font-heading); letter-spacing: -.07em; }
.hero-lead { max-width: 540px; font: 400 clamp(20px, 1.8vw, 26px)/1.42 var(--font-heading); letter-spacing: -.025em; }
.hero-description { max-width: 500px; margin-top: 19px; line-height: 1.85; }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 25px 30px; margin-top: 35px; }
.image-caption { margin: 12px 0 0; }
.image-caption span { margin-inline: 8px; color: var(--color-accent); }
.hero-bottom { display: flex; justify-content: space-between; padding-top: 36px; color: var(--color-muted); }
.scroll-cue { color: var(--color-ink); }

/* TWO WAYS · plain editorial panels with a line instead of large cards. */
.intro-section { padding-top: 150px; background: var(--color-light); }
.intro-section .eyebrow { color: var(--color-accent); }
.choice-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 50px; margin-top: 75px; }
.choice-card { min-height: 380px; display: flex; flex-direction: column; justify-content: space-between; padding: 31px 6px 20px; border-top: 1px solid var(--color-ink); border-bottom: 1px solid var(--color-line); transition: padding .3s, border-color .3s; }
.choice-card:hover { padding-left: 17px; border-top-color: var(--color-accent); }
.choice-number { color: var(--color-accent); }
.choice-card h3 { max-width: 480px; margin: 0 0 16px; font: 400 clamp(43px, 4vw, 62px)/1.1 var(--font-heading); letter-spacing: -.05em; }
.choice-card p { max-width: 470px; margin: 0; color: var(--color-muted); font-size: 15px; line-height: 1.8; }
.choice-bottom { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-top: 27px; font-size: 12px; font-weight: 700; }
.choice-bottom span { font-size: 21px; font-weight: 400; transition: transform .25s; }
.choice-card:hover .choice-bottom span { transform: translateX(7px); }

/* TWO SERVICE PATHS: change image crop in each .path-* rule; edit text in index.html. */
.path-section { padding-block: 78px 100px; background: var(--color-light); }
.path-photo { background: var(--color-sage); }
.path-layout { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(50px, 7vw, 100px); align-items: center; }
/* Reference service portraits are roughly 380 × 500 px on a 1440 px screen. */
.path-media { position: relative; min-width: 0; width: min(100%, 420px); margin: 0; }
.path-media::before { content: ''; position: absolute; z-index: 0; inset: 36px -28px -25px 42px; background: var(--color-blush); }
.path-photo .path-media { grid-column: 2; grid-row: 1; }
.path-photo .path-copy { grid-column: 1; grid-row: 1; }
.path-photo .path-media::before { inset: -25px 34px 31px -25px; background: #d6e5ee; }
.path-media img { position: relative; width: 100%; height: 500px; object-fit: cover; object-position: center 42%; filter: grayscale(100%); }
.path-photo .path-media img { object-position: center 29%; }
.path-media figcaption { position: relative; margin-top: 16px; color: var(--color-muted); font-size: 10px; font-weight: 700; letter-spacing: .18em; }
.path-copy { max-width: 555px; }
.path-copy .eyebrow { color: var(--color-accent); }
.path-copy .section-title { font-size: clamp(43px, 4vw, 56px); }
.path-copy .large-copy { margin: 31px 0 20px; }
.path-copy > p:not(.eyebrow):not(.large-copy) { color: var(--color-muted); line-height: 1.9; }
.path-copy .button { margin-top: 24px; }

/* RECOGNITION · short numbered rows are easy to scan. */
.recognition-section { background: var(--color-sage); }
.recognition-section .container { max-width: 1100px; }
.recognition-section .section-title, .recognition-intro { text-align: center; }
.recognition-intro { max-width: 700px; margin: 25px auto 55px; font-size: 16px; color: var(--color-muted); }
.recognition-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 70px; margin: 0; padding: 0; list-style: none; counter-reset: point; }
.recognition-list li { position: relative; padding: 26px 0 26px 43px; border-top: 1px solid var(--color-line); counter-increment: point; }
.recognition-list li::before { content: '0' counter(point); position: absolute; top: 28px; left: 0; color: var(--color-accent); font: 12px/1 var(--font-heading); }
.recognition-list strong { display: block; font: 400 21px/1.35 var(--font-heading); letter-spacing: -.02em; }
.recognition-list p { margin: 11px 0 0; color: var(--color-muted); font-size: 13px; line-height: 1.8; }

/* INNER WORK · generous type and a small horizontal theme index. */
.healing-section { background: var(--color-light); }
.healing-layout { display: grid; grid-template-columns: 1fr .82fr; gap: 12%; align-items: start; }
.healing-section h2 { max-width: 700px; }
.healing-right { padding-top: 65px; }
.healing-right > p:not(.large-copy) { color: var(--color-muted); line-height: 1.85; }
.healing-right .text-link { margin-top: 18px; }
.theme-strip { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 18px 30px; margin-top: 78px; padding-top: 26px; border-top: 1px solid var(--color-line); }
.theme-strip span { font: 12px/1.5 var(--font-body); }
.theme-strip span::before { content: '✳'; margin-right: 12px; color: var(--color-accent); }
.reservation-action { margin-top: 40px; }

/* PRICING · one prominent option, all actions still connect to the form. */
.price-section { background: var(--color-paper); }
.section-heading-row { display: flex; align-items: end; justify-content: space-between; gap: 50px; margin-bottom: 52px; }
.heading-aside { max-width: 330px; margin: 0 0 7px; font-size: 13px; line-height: 1.8; }
.price-grid { display: grid; gap: 18px; align-items: stretch; }
.price-grid-three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.price-grid-two { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 940px; margin-inline: auto; }
.price-card { min-width: 0; display: flex; flex-direction: column; padding: 38px 30px 30px; background: var(--color-light); border: 1px solid var(--color-line); transition: border-color .25s, transform .25s; }
.price-card:hover { border-color: var(--color-accent); transform: translateY(-4px); }
.price-card.highlighted { background: #e7f1f7; border-color: #b6ccd9; }
.price-kicker { min-height: 30px; margin: 0 0 15px; color: var(--color-accent); }
.price-card h3 { min-height: 91px; margin: 0; font: 400 clamp(30px, 3vw, 42px)/1.16 var(--font-heading); letter-spacing: -.035em; }
.price-tag { margin: 21px 0 0; font: 400 49px/1.1 var(--font-heading); letter-spacing: -.05em; }
.price-duration { margin: 9px 0 23px; font-size: 12px; font-weight: 700; }
.price-desc { min-height: 104px; margin: 0; padding-top: 21px; border-top: 1px solid var(--color-line); color: var(--color-muted); font-size: 13px; }
.price-card ul { flex: 1; margin: 10px 0 29px; padding-left: 18px; font-size: 12px; line-height: 1.9; }
.price-card li { padding-left: 2px; }
.price-card .button { width: 100%; }

/* PHOTOGRAPHY · images stagger slightly, like an editorial story. */
.photo-section { overflow: hidden; background: #edf4f8; }
.photo-intro { display: grid; grid-template-columns: 1fr .84fr; gap: 12%; align-items: end; margin-bottom: 68px; }
.photo-intro p:not(.large-copy):not(.eyebrow) { color: var(--color-muted); }
.gallery-grid { display: grid; grid-template-columns: 1fr .88fr 1fr; gap: 22px; align-items: start; }
.gallery-grid figure { min-width: 0; margin: 0; overflow: hidden; }
.gallery-grid figure:nth-child(2) { padding-top: 85px; }
.gallery-grid figure:nth-child(3) { padding-top: 36px; }
.gallery-grid img { width: 100%; height: clamp(370px, 39vw, 560px); object-fit: cover; object-position: center; filter: grayscale(100%); transition: transform .65s cubic-bezier(.2,.65,.2,1), filter .45s; }
.gallery-grid figure:hover img { transform: scale(1.035); filter: grayscale(20%); }
.gallery-grid figcaption { padding-top: 15px; }
.photo-bottom { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-top: 40px; }
.photo-bottom p { max-width: 700px; margin: 0; font: italic 400 clamp(25px, 3vw, 39px)/1.35 var(--font-heading); }
.photo-prices { background: var(--color-light); }
.photo-prices .price-card { background: var(--color-paper); }

/* COMBINED OFFER · soft colour block creates a pause before the bio. */
.combo-section { color: var(--color-ink); background: #dceaf3; }
.combo-layout { display: grid; grid-template-columns: 1.1fr .8fr; gap: 12%; align-items: center; }
.combo-section h2 { margin: 0 0 25px; font: 400 clamp(65px, 8vw, 116px)/.98 var(--font-heading); letter-spacing: -.06em; }
.combo-layout > div > p:last-child { max-width: 500px; font-size: 15px; line-height: 1.85; }
.combo-offer { padding: 40px; border: 1px solid #a6c0d0; background: rgba(255,255,255,.22); }
.combo-label { margin: 0; }
.combo-price { margin: 12px 0 18px; font: 400 69px/1 var(--font-heading); letter-spacing: -.055em; }
.combo-offer p:not(.combo-label):not(.combo-price) { max-width: 390px; font-size: 13px; line-height: 1.8; }
.combo-offer .button { margin-top: 17px; }

/* ABOUT · portrait and quiet, spacious copy. */
.about-section { padding-block: 90px 100px; background: var(--color-light); }
.about-grid { display: grid; grid-template-columns: .86fr 1fr; gap: 9%; align-items: start; }
.about-art { position: relative; max-width: 440px; }
.about-art::before { content: ''; position: absolute; z-index: 0; inset: 38px -30px -25px 45px; background: var(--color-sage); }
.about-art img { position: relative; width: 100%; height: 520px; object-fit: cover; object-position: center 19%; }
.about-image-note { position: relative; display: block; margin-top: 15px; }
.about-copy { max-width: 650px; padding-block: 25px; }
.about-copy .large-copy { margin: 35px 0 19px; }
.about-copy p:not(.eyebrow):not(.large-copy) { color: var(--color-muted); line-height: 1.85; }
.about-copy .text-link { margin-top: 20px; }

/* CONTACT · the form is a visible part of the page. */
.contact-section { background: var(--color-sage); }
.contact-wrap { max-width: 870px; text-align: center; }
.contact-wrap > p:not(.eyebrow) { max-width: 560px; margin: 27px auto 28px; }
.contact-details { display: flex; flex-wrap: wrap; justify-content: center; gap: 20px; margin-top: 27px; color: var(--color-muted); font-size: 12px; }
.contact-details a { border-bottom: 1px solid currentColor; }
.booking-dialog { width: 100%; max-width: 700px; margin: 75px auto 0; padding: clamp(28px, 5vw, 54px); border: 1px solid var(--color-line); background: var(--color-light); color: var(--color-ink); text-align: left; scroll-margin-top: 110px; }
.booking-dialog h2 { margin: 0 0 13px; font: 400 clamp(38px, 4vw, 52px)/1.12 var(--font-heading); letter-spacing: -.045em; }
.dialog-explanation { margin: 0; color: var(--color-muted); font-size: 12px; line-height: 1.8; }
.booking-dialog form { display: grid; gap: 8px; margin-top: 28px; }
.booking-dialog label { font-size: 11px; font-weight: 700; }
.booking-dialog input, .booking-dialog select, .booking-dialog textarea { width: 100%; min-height: 44px; padding: 10px 12px; border: 1px solid #b9ccd8; border-radius: 0; background: #fff; color: var(--color-ink); font-size: 13px; }
/* Výšku a roztiahnutie voľnej správy vo formulári môžeš upraviť tu. */
.booking-dialog form textarea { min-height: 108px; resize: vertical; }
.booking-privacy-note { margin: 8px 0 0; color: var(--color-muted); font-size: 12px; line-height: 1.6; }
.booking-dialog form .button { margin-top: 17px; }
.optional { color: var(--color-muted); font-weight: 400; }
.booking-result { margin-top: 20px; padding: 18px; background: var(--color-sage); }
.booking-result p { margin: 0; overflow-wrap: anywhere; font-size: 12px; }
.payment-demo { margin-top: 24px; padding-top: 18px; border-top: 1px solid var(--color-line); }
.payment-button { width: 100%; min-height: 43px; padding: 10px; border: 1px dashed #abc0cc; background: #eef4f8; color: #526b7b; font-size: 12px; }
.payment-button:not(:disabled) { border-style: solid; background: var(--color-ink); color: white; }
.payment-demo small { display: block; margin-top: 8px; color: var(--color-muted); font-size: 11px; line-height: 1.6; }
/* FOOTER · update the links in each HTML footer; this layout works on every page. */
.site-footer { padding: 20px 0 14px; background: #e8f0f5; border-top: 1px solid #c2d2dd; color: var(--color-ink); }
.footer-main { display: flex; justify-content: space-between; align-items: center; gap: 32px; }
.footer-identity { display: flex; align-items: center; gap: 17px; min-width: 0; }
.footer-identity a { display: block; flex: 0 0 auto; width: 380px; max-width: 100%; }
.footer-logo { display: block; width: 100%; height: auto; margin-block: -36px -30px; }
.footer-identity p { margin: 0; color: var(--color-muted); font: italic 14px/1.3 var(--font-heading); white-space: nowrap; }
.footer-nav { display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: center; gap: 8px 20px; font-size: 13px; }
.footer-nav a:hover, .footer-bottom a:hover { text-decoration: underline; text-underline-offset: 4px; }
.footer-bottom { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-top: 13px; padding-top: 11px; border-top: 1px solid #c2d2dd; color: var(--color-muted); font-size: 11px; }
.footer-bottom p { margin: 0; }
.footer-actions { display: flex; align-items: center; gap: 17px; }
.footer-social { display: inline-flex; width: 30px; height: 30px; align-items: center; justify-content: center; border: 1px solid var(--color-line); }
.footer-social:hover { border-color: var(--color-accent); background: var(--color-light); }
.footer-social img { width: 18px; height: 18px; }

/* MOTION · design.js adds this class only when motion is allowed. */
.motion-ready [data-reveal] { opacity: 0; transform: translateY(28px); transition: opacity .8s ease, transform .8s cubic-bezier(.2,.7,.2,1); }
.motion-ready [data-reveal].is-visible { opacity: 1; transform: translateY(0); }
.motion-ready .hero-art { transition-delay: .1s; }

/* TABLETS */
@media (max-width: 1050px) {
  .container { width: min(calc(100% - 60px), var(--site-width)); }
  .brand { width: 250px; flex-basis: 250px; }
  .site-header .brand-logo { width: 270px; top: -9px; }
  .hero-grid { gap: 45px; }
  .hero-art > img { height: clamp(520px, 75vw, 610px); }
  .hero h1 { font-size: clamp(50px, 6vw, 65px); }
  .price-card { padding: 29px 21px 25px; }
  .about-grid { gap: 8%; }
  .about-art img { height: 470px; }
  .footer-main { display: block; }
  .footer-nav { justify-content: flex-start; margin-top: 18px; }
}

/* The five page links use a menu below desktop width; contact and Instagram stay beside language on tablets. */
@media (max-width: 1280px) {
  :root { --header-height: 76px; }
  .menu-toggle { display: block; }
  .site-nav { position: absolute; top: var(--header-height); left: 0; right: 0; display: none; flex-direction: column; align-items: center; gap: 25px; min-height: calc(100dvh - var(--header-height)); max-height: calc(100dvh - var(--header-height)); overflow-y: auto; margin-left: 0; padding: 90px 24px 85px; border-bottom: 1px solid var(--color-line); background: var(--color-paper); text-align: center; white-space: normal; font: 400 clamp(31px, 4.2vw, 40px)/1.1 var(--font-heading); }
  .site-nav.is-open { display: flex; }
  .site-nav a:not(.nav-contact) { display: inline-flex; padding: 0 !important; }
  .site-nav a::after { display: none; }
  .mobile-nav-actions { display: flex; align-items: center; gap: 16px; margin-top: auto; }
  .mobile-nav-actions .nav-contact { position: static; margin: 0; padding: 11px 22px; font: 400 16px/1.3 var(--font-heading); }
}

/* PHONES · every two-column section becomes one column. */
@media (max-width: 720px) {
  :root { --header-height: 70px; }
  .container { width: calc(100% - 40px); }
  .section { padding-block: 75px; }
  .brand { width: 215px; flex-basis: 215px; }
  .site-header .brand-logo { width: 230px; top: -7px; }
  .site-nav { gap: 21px; padding: 76px 20px 76px; font-size: clamp(29px, 7.5vw, 36px); }
  .header-contact, .header-inner > .header-instagram { display: none; }
  .hero { padding-block: 30px 20px; }
  .hero-grid { grid-template-columns: 1fr; gap: 37px; }
  .hero-copy { grid-column: 1; grid-row: 1; padding: 0; }
  .hero-art { grid-column: 1; grid-row: 2; margin-inline: 18px 0; }
  .hero-art::before { inset: -18px 28px 18px -18px; }
  .hero-art > img { height: min(114vw, 444px); object-position: center 38%; }
  .hero h1 { font-size: clamp(52px, 14vw, 68px); margin-bottom: 20px; }
  .hero-lead { font-size: 21px; }
  .hero-description { font-size: 14px; }
  .hero-actions { gap: 20px; margin-top: 25px; }
  .hero-bottom { padding-top: 25px; font-size: 9px; }
  .intro-section { padding-top: 85px; }
  .choice-grid, .recognition-list, .healing-layout, .photo-intro, .price-grid-three, .price-grid-two, .combo-layout, .about-grid { grid-template-columns: 1fr; }
  .choice-grid { gap: 27px; margin-top: 55px; }
  .choice-card { min-height: 340px; }
  .recognition-list { gap: 0; }
  .recognition-intro { margin-bottom: 35px; }
  .healing-layout, .photo-intro, .combo-layout, .about-grid { gap: 38px; }
  .healing-right { padding-top: 0; }
  .theme-strip { justify-content: start; margin-top: 48px; }
  .section-heading-row { display: block; margin-bottom: 35px; }
  .heading-aside { margin: 22px 0 0; }
  .price-grid { gap: 15px; }
  .price-card h3, .price-desc { min-height: 0; }
  .price-card h3 { margin-bottom: 11px; }
  .price-card { padding: 30px 25px; }
  .price-desc { padding-bottom: 9px; }
  .photo-intro { margin-bottom: 38px; }
  .gallery-grid { grid-template-columns: 1fr 1fr; gap: 17px; }
  .gallery-grid figure:first-child { grid-column: 1 / -1; }
  .gallery-grid figure:nth-child(2), .gallery-grid figure:nth-child(3) { padding-top: 0; }
  .gallery-grid img { height: 300px; }
  .gallery-grid figure:first-child img { height: 450px; }
  .gallery-grid figcaption { font-size: 9px; letter-spacing: .1em; }
  .photo-bottom { display: block; }
  .photo-bottom span { display: block; margin-top: 17px; }
  .combo-section h2 { font-size: 75px; }
  .combo-offer { padding: 29px; }
  .about-art { margin-right: 20px; }
  .about-art img { height: 520px; }
  .about-art::before { inset: 24px -20px -20px 28px; }
  .booking-dialog { margin-top: 55px; }
  .footer-main { display: block; }
  .footer-identity { flex-wrap: wrap; gap: 8px 16px; }
  .footer-nav { justify-content: flex-start; margin-top: 18px; }
  .footer-bottom { margin-top: 18px; }
}

@media (max-width: 360px) {
  .header-inner { gap: 6px; }
  .brand { width: 170px; flex-basis: 170px; }
  .site-header .brand-logo { width: 180px; top: 2px; }
}

@media (max-width: 1000px) {
  .path-section { padding-block: 65px 75px; }
  .path-layout { gap: 40px; }
  .path-media { width: min(100%, 320px); }
  .path-media img { height: 420px; }
  .path-copy .section-title { font-size: clamp(40px, 5vw, 50px); }
}

@media (max-width: 720px) {
  .path-section { padding-block: 55px 65px; }
  .path-layout { grid-template-columns: 1fr; gap: 34px; }
  .path-copy, .path-photo .path-copy { grid-column: 1; grid-row: 1; }
  .path-media, .path-photo .path-media { grid-column: 1; grid-row: 2; width: min(100% - 20px, 390px); }
  .path-media img { height: min(96vw, 375px); }
  .path-copy .section-title { font-size: clamp(42px, 11vw, 50px); }
  .about-section { padding-block: 60px 75px; }
  .about-grid { grid-template-columns: 1fr; gap: 45px; }
  .about-art { max-width: 520px; margin-right: 20px; }
  .about-art img { height: min(70vw, 570px); }
  .about-copy { max-width: 650px; }
}

@media (max-width: 420px) {
  .hero h1 { font-size: clamp(52px, 14vw, 58px); }
  .hero-actions { align-items: stretch; flex-direction: column; }
  .hero-actions .button, .hero-actions .text-link { width: fit-content; }
  .section-title { font-size: 44px; }
  .gallery-grid img { height: 245px; }
  .gallery-grid figure:first-child img { height: 380px; }
  .booking-dialog { padding: 24px; }
}

@media (max-width: 1280px) and (max-height: 760px) {
  .site-nav { justify-content: flex-start; gap: 16px; padding-top: 24px; }
  .mobile-nav-actions { margin-top: 15px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
  .motion-ready [data-reveal] { opacity: 1; transform: none; }
}
