:root {
  --cream: #fbf7f1;
  --cream-deep: #f1e9df;
  --peach: #f6ede5;
  --paper: #fffdf9;
  --ink: #302526;
  --muted: #746566;
  --red: #9b3142;
  --red-dark: #6f1f2d;
  --red-soft: #c05f6d;
  --line: rgba(78, 47, 49, 0.16);
  --line-soft: rgba(78, 47, 49, 0.09);
  --shadow: 0 30px 70px -48px rgba(66, 30, 34, 0.5);
  --font-display: "Cormorant Garamond", Georgia, serif;
  --font-body: "Montserrat", "Segoe UI", sans-serif;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { overflow-x: hidden; background: var(--cream); color: var(--ink); font: 400 1.0625rem/1.72 var(--font-body); -webkit-font-smoothing: antialiased; }
img { display: block; width: 100%; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { color: inherit; font: inherit; }
ul { list-style: none; }
address { font-style: normal; }
section { scroll-margin-top: 5.5rem; }
::selection { background: var(--red); color: #fff; }

.container { width: min(var(--container-max, 78rem), calc(100% - 3rem)); margin-inline: auto; }
.section { padding-block: clamp(5.5rem, 10vw, 9rem); }
.skip-link { position: fixed; z-index: 300; top: 0; left: 1rem; padding: .7rem 1rem; background: var(--red-dark); color: #fff; transform: translateY(-120%); }
.skip-link:focus { transform: none; }
:focus-visible { outline: 2px solid var(--red); outline-offset: 3px; }

.eyebrow { margin-bottom: .8rem; color: var(--red); font-size: .69rem; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; }
.section-head { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(18rem, .65fr); gap: 1rem 5rem; align-items: end; margin-bottom: clamp(2.8rem, 6vw, 5rem); }
.section-head .eyebrow { grid-column: 1 / -1; margin-bottom: 0; }
.section-head h2, .intro-copy h2, .reasons-head h2, .specialty h2, .testimonials h2, .faq-intro h2, .booking h2 { font: 500 clamp(2.8rem, 5.5vw, 5rem)/.95 var(--font-display); letter-spacing: -.045em; text-wrap: balance; }
.section-head > p:last-child { max-width: 48ch; color: var(--muted); }
.btn { display: inline-flex; align-items: center; justify-content: center; min-height: 3.1rem; padding: .84rem 1.6rem; border: 1px solid transparent; border-radius: 999px; background: var(--red); color: #fff; font-size: .92rem; font-weight: 600; letter-spacing: .02em; transition: transform 220ms ease, background-color 220ms ease, box-shadow 220ms ease; }
.btn:hover { background: var(--red-dark); box-shadow: 0 14px 28px -18px rgba(65, 27, 33, .8); transform: translateY(-2px); }
.btn:active { transform: scale(.98); }
.text-link { display: inline-flex; padding-bottom: .2rem; border-bottom: 1px solid currentColor; font-size: .91rem; font-weight: 600; }

/* Fejléc */
.site-header { position: fixed; z-index: 120; inset: 0 0 auto; border-bottom: 1px solid transparent; background: rgba(251, 247, 241, .86); backdrop-filter: blur(14px); transition: background-color 220ms ease, border-color 220ms ease; }
.site-header.scrolled { border-color: var(--line-soft); background: rgba(251, 247, 241, .98); }
.header-inner { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; min-height: 5.2rem; }
.brand { display: inline-flex; align-items: center; gap: .7rem; flex: 0 0 auto; }
.brand-mark { display: grid; place-items: center; flex: 0 0 auto; width: 3.35rem; height: 3.35rem; padding: .22rem; overflow: hidden; border-radius: 50%; background: var(--red-dark); }
.brand-mark img { width: 100%; height: 100%; object-fit: contain; transform: translate(calc(-.08rem + 1px), -.08rem); }
.brand-name { color: var(--red-dark); font: 600 1.3rem/1 var(--font-display); }
.brand-name small { display: block; margin-top: .25rem; font: 600 .54rem/1 var(--font-body); letter-spacing: .2em; text-transform: uppercase; }
.nav-list { display: flex; align-items: center; gap: clamp(.85rem, 1.5vw, 1.6rem); }
.main-nav a { padding: .4rem 0; background: linear-gradient(var(--red), var(--red)) left bottom / 0 1px no-repeat; font-size: .92rem; font-weight: 500; transition: color 180ms ease, background-size 180ms ease; }
.main-nav a:hover { color: var(--red); background-size: 100% 1px; }
.menu-toggle { display: none; position: relative; z-index: 140; width: 2.75rem; height: 2.75rem; border: 0; background: transparent; cursor: pointer; }
.menu-toggle span { position: absolute; left: .6rem; width: 1.55rem; height: 2px; background: var(--ink); transition: 250ms ease; }
.menu-toggle span:nth-child(1) { top: .9rem; }
.menu-toggle span:nth-child(2) { top: 1.35rem; }
.menu-toggle span:nth-child(3) { top: 1.8rem; }
.menu-toggle[aria-expanded="true"] span:nth-child(1) { top: 1.35rem; transform: rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.menu-toggle[aria-expanded="true"] span:nth-child(3) { top: 1.35rem; transform: rotate(-45deg); }
.mobile-menu { display: none; }

/* Teljes képes hero */
.hero { position: relative; min-height: 100dvh; padding: 7.5rem 0 3.5rem; overflow: hidden; isolation: isolate; background: var(--red-dark); }
.hero::after { content: ""; position: absolute; z-index: 1; inset: 0; background: linear-gradient(90deg, rgba(39, 14, 18, .72), rgba(70, 21, 30, .48) 38%, rgba(54, 18, 24, .12) 68%, rgba(30, 11, 14, .03)); pointer-events: none; }
.hero-inner { min-height: calc(100dvh - 11rem); display: flex; align-items: center; }
.hero-copy { position: relative; z-index: 2; width: min(39rem, 56%); color: #fff; }
.hero .eyebrow { color: #f2c7cd; }
.hero h1 { max-width: none; margin-bottom: 1.45rem; font: 500 clamp(3.7rem, 6.4vw, 6.7rem)/.85 var(--font-display); letter-spacing: -.055em; text-shadow: 0 2px 24px rgba(24, 8, 11, .22); }
.hero h1 > span { display: block; white-space: nowrap; }
.hero h1 em { color: #f0b7bf; font-weight: 500; }
.hero-lead { max-width: 36rem; margin-bottom: 1.8rem; color: rgba(255,255,255,.86); font-size: 1.08rem; line-height: 1.72; }
.hero-actions { display: flex; align-items: center; gap: 1.4rem; flex-wrap: wrap; }
.hero .text-link { color: #fff; }
.hero-points { display: flex; gap: .75rem 1.6rem; margin-top: clamp(2.2rem, 5vw, 3.5rem); padding-top: 1.3rem; border-top: 1px solid rgba(255,255,255,.25); flex-wrap: wrap; }
.hero-points li { position: relative; padding-left: .75rem; color: rgba(255,255,255,.78); font-size: .8rem; line-height: 1.6; }
.hero-points li::before { content: ""; position: absolute; top: .65rem; left: 0; width: .25rem; height: .25rem; border-radius: 50%; background: #f0b7bf; }
.hero-media { position: absolute; z-index: 0; inset: 0; }
.hero-media picture { display: block; width: 100%; height: 100%; }
.hero-media img { height: 100%; object-fit: cover; object-position: 61% center; transform: translateY(var(--hero-shift, 0)) scale(1.05); }

/* Szolgáltatások */
.services { background: var(--peach); }
.services .section-head { display: block; max-width: 58rem; margin-inline: auto; text-align: center; }
.services .section-head .eyebrow { margin-bottom: .8rem; }
.services .section-head h2 { max-width: none; }
.services .section-head h2 em { color: var(--red-soft); font-weight: 500; }
.services .section-head > p:last-child { max-width: 52ch; margin: 1.1rem auto 0; }
.service-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2.5rem; max-width: 58rem; margin-inline: auto; }
.service-card { display: flex; flex-direction: column; min-height: 30rem; padding: clamp(1.8rem, 4vw, 3rem); background: rgba(255,253,249,.96); border: 1px solid var(--line-soft); box-shadow: var(--shadow); }
.service-card h3 { margin-bottom: 1rem; color: var(--red-soft); font: 600 clamp(2rem, 3.5vw, 2.8rem)/.95 var(--font-display); text-align: center; }
.service-card > p { min-height: 5.5rem; max-width: 35ch; margin: 0 auto 1.1rem; color: var(--muted); font-size: .94rem; line-height: 1.72; text-align: center; }
.service-card li { padding: .8rem 0; border-bottom: 1px dotted rgba(155,49,66,.34); font: 600 1.1rem/1.3 var(--font-display); }
.service-card-footer { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-top: auto; padding-top: 1.8rem; }
.service-card-footer span { color: var(--muted); font-size: .62rem; letter-spacing: .13em; text-transform: uppercase; }
.service-card-footer a { color: var(--red); font-size: .84rem; font-weight: 600; text-align: right; }

/* Bemutatkozás */
.intro { background: var(--paper); }
.intro-grid { display: grid; grid-template-columns: minmax(20rem, .9fr) minmax(0, 1.1fr); gap: clamp(3rem, 8vw, 8rem); align-items: center; }
.intro-photo { position: relative; padding: 0; isolation: isolate; }
.intro-photo::before { content: ""; position: absolute; z-index: 0; inset: 1.2rem -1.2rem -1.2rem 1.2rem; border: 1px solid rgba(155,49,66,.3); border-radius: 8rem .35rem .35rem; }
.intro-photo-main { position: relative; z-index: 1; aspect-ratio: 4 / 5; object-fit: cover; object-position: center top; border-radius: 8rem .35rem .35rem; box-shadow: var(--shadow); }
.intro-copy h2 { max-width: 10ch; margin-bottom: 1.5rem; }
.intro-copy > p:not(.eyebrow):not(.signature) { max-width: 58ch; margin-bottom: 1rem; color: var(--muted); }
.intro-highlights { display: flex; flex-wrap: wrap; gap: .55rem; margin-top: 1.5rem; }
.intro-highlights li { padding: .55rem .85rem; border: 1px solid var(--line); border-radius: 999px; color: var(--red-dark); font-size: .77rem; font-weight: 600; }
.signature { margin-top: 1.7rem; color: var(--red-dark); font: italic 600 1.6rem var(--font-display); }
.signature span { display: block; margin-top: .1rem; color: var(--muted); font: 600 .62rem var(--font-body); letter-spacing: .18em; text-transform: uppercase; }

/* Lábápolás – Szatmári Aliz */
.pedicure { background: var(--cream-deep); }
.pedicure-grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(20rem, .72fr); gap: clamp(3rem, 8vw, 8rem); align-items: center; }
.pedicure-copy h2 { max-width: 10ch; margin-bottom: 1.5rem; font: 500 clamp(2.8rem, 5.5vw, 5rem)/.95 var(--font-display); letter-spacing: -.045em; }
.pedicure-copy > p:not(.eyebrow) { max-width: 59ch; margin-bottom: 1rem; color: var(--muted); }
.pedicure-copy p.professional-name { color: var(--red-dark); font-weight: 600; }
.pedicure-services { display: grid; grid-template-columns: 1fr 1fr; max-width: 38rem; margin: 1.7rem 0 2rem; border-top: 1px solid var(--line); }
.pedicure-services li { padding: .75rem 0; border-bottom: 1px solid var(--line); color: var(--red-dark); font-size: .86rem; font-weight: 600; }
.pedicure-services li:nth-child(odd) { padding-right: 1rem; }
.pedicure-photo { position: relative; width: min(100%, 27rem); justify-self: end; isolation: isolate; }
.pedicure-photo::before { content: ""; position: absolute; z-index: 0; inset: 1.1rem 1.1rem -1.1rem -1.1rem; border: 1px solid rgba(155,49,66,.28); border-radius: .35rem 8rem .35rem .35rem; }
.pedicure-photo img { position: relative; z-index: 1; max-height: 44rem; object-fit: cover; object-position: center; border-radius: .35rem 8rem .35rem .35rem; box-shadow: var(--shadow); }

/* Miért válassz */
.reasons { padding-block: clamp(5rem, 8vw, 7rem); background: #6F1F2D; color: #fff; }
.reasons-grid { display: grid; grid-template-columns: minmax(17rem, .6fr) minmax(0, 1fr); gap: clamp(3rem, 7vw, 6.5rem); align-items: start; }
.reasons-head { max-width: 30rem; }
.reasons-head .eyebrow { color: #e28d99; }
.reasons-head h2 { max-width: 11ch; font-size: clamp(2.7rem, 4.35vw, 4.25rem); line-height: .98; }
.reasons-intro { max-width: 40ch; margin-top: 1.7rem; color: rgba(255,255,255,.74); font-size: .96rem; line-height: 1.72; }
.reason-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); list-style: none; }
.reason-item { min-width: 0; }
.reason-item:nth-child(odd) { padding-right: clamp(1.5rem, 3vw, 2.8rem); border-right: 1px solid rgba(255,255,255,.22); }
.reason-item:nth-child(even) { padding-left: clamp(1.5rem, 3vw, 2.8rem); }
.reason-item:nth-child(-n+2) { padding-bottom: clamp(2rem, 4vw, 3rem); border-bottom: 1px solid rgba(255,255,255,.22); }
.reason-item:nth-child(n+3) { padding-top: clamp(2rem, 4vw, 3rem); }
.reason-number { display: grid; place-items: center; width: 3.15rem; height: 3.15rem; margin-bottom: 1.25rem; border: 2px solid #f2c1c8; border-radius: 50%; background: #e9a3ae; color: #3f111a; font: 700 1.08rem var(--font-body); letter-spacing: .04em; }
.reason-item h3 { max-width: 15ch; margin-bottom: .8rem; color: #fff; font: 600 clamp(1.55rem, 2.5vw, 2.15rem)/1.02 var(--font-display); text-wrap: balance; }
.reason-item p { max-width: 37ch; color: rgba(255,255,255,.74); font-size: .9rem; line-height: 1.7; }

/* Göndör haj és tartóshullám */
.specialty { background: var(--cream-deep); }
.specialty-grid { display: grid; grid-template-columns: minmax(18rem, .78fr) minmax(0, 1.22fr); gap: clamp(3rem, 8vw, 8rem); align-items: center; }
.specialty-photo { position: relative; isolation: isolate; }
.specialty-photo::before { content: ""; position: absolute; z-index: 0; inset: 1.1rem 1.1rem -1.1rem -1.1rem; border: 1px solid rgba(155,49,66,.28); border-radius: .35rem 7rem .35rem .35rem; }
.specialty-photo img { position: relative; z-index: 1; height: min(42rem, 68vw); min-height: 30rem; object-fit: cover; object-position: center; border-radius: .35rem 7rem .35rem .35rem; box-shadow: var(--shadow); }
.specialty h2 { max-width: 12ch; margin-bottom: 1.5rem; }
.specialty-copy > p:not(.eyebrow) { max-width: 55ch; color: var(--muted); }
.specialty-highlights { display: grid; grid-template-columns: 1fr 1fr; max-width: 38rem; margin: 1.8rem 0; border-top: 1px solid var(--line); }
.specialty-highlights li { padding: .8rem 1rem .8rem 0; border-bottom: 1px solid var(--line); color: var(--red-dark); font-size: .84rem; font-weight: 600; }
.specialty .text-link { color: var(--red-dark); }

/* Galéria */
.gallery { background: var(--paper); }
.gallery-head { display: block; max-width: 64rem; margin-inline: auto; text-align: center; }
.gallery-head .eyebrow { margin-bottom: .8rem; }
.gallery-head h2 { max-width: none; }
.gallery-head > p:last-child { max-width: none; margin-top: 1.1rem; white-space: nowrap; }
.gallery-grid { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 11rem; grid-auto-flow: dense; gap: .8rem; }
.gallery-item { grid-row: span 2; overflow: hidden; background: var(--cream-deep); }
.gallery-item-wide { grid-column: span 2; }
.gallery-item-tall { grid-row: span 3; }
.gallery-item-compact { grid-row: span 1; }
.gallery-item img { height: 100%; object-fit: cover; transition: transform 500ms ease; }
.gallery-item:hover img { transform: scale(1.035); }

/* Vendégvélemények */
.testimonials { overflow: hidden; background: var(--red-dark); color: #fff; }
.testimonials-head { max-width: 64rem; margin: 0 auto clamp(3.5rem, 7vw, 5.8rem); text-align: center; }
.testimonials-head .eyebrow { color: #efbbc3; }
.testimonials-head h2 { font-size: clamp(2.8rem, 5.4vw, 4.8rem); white-space: nowrap; }
.testimonial-grid { display: grid; grid-template-columns: minmax(17.5rem, 19rem) minmax(23rem, 26rem) minmax(17.5rem, 19rem); justify-content: center; gap: clamp(1rem, 1.6vw, 1.25rem); align-items: center; }
.testimonial-card { position: relative; }
.testimonial-side { width: min(100%, 19rem); aspect-ratio: 19 / 25; justify-self: center; display: flex; flex-direction: column; justify-content: space-between; padding: clamp(2.1rem, 3.2vw, 2.7rem); border-radius: .75rem; background: var(--paper); color: var(--ink); box-shadow: 0 28px 55px -38px rgba(25, 6, 10, .75); }
.testimonial-side .quote-mark { position: absolute; top: 1.25rem; right: 1.45rem; height: auto; color: rgba(111,31,45,.14); font-size: 3.8rem; }
.quote-mark { display: block; height: 2.7rem; color: var(--red-soft); font: italic 500 4.8rem/.75 var(--font-display); }
.testimonial-card blockquote { font: 500 clamp(1.4125rem, 1.8vw, 1.8125rem)/1.26 var(--font-display); }
.testimonial-card cite { display: block; margin-top: 1.8rem; color: var(--red-dark); font-size: .68rem; font-style: normal; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.testimonial-featured { width: min(100%, 26rem); aspect-ratio: 26 / 31.5; justify-self: center; overflow: hidden; border-radius: .75rem; background: #4b1721; box-shadow: 0 36px 75px -38px rgba(22, 4, 8, .95); transform: translateY(-.8rem); isolation: isolate; }
.testimonial-featured::after { content: ""; position: absolute; z-index: 1; inset: 0; background: linear-gradient(to bottom, rgba(72,38,33,0) 28%, rgba(72,38,33,.12) 43%, rgba(69,32,31,.74) 72%, rgba(54,23,24,.96) 100%); pointer-events: none; }
.testimonial-photo { position: absolute; inset: 0; overflow: hidden; }
.testimonial-photo img { height: 100%; object-fit: cover; object-position: center 38%; transition: transform 600ms ease; }
.testimonial-featured:hover .testimonial-photo img { transform: scale(1.035); }
.testimonial-featured > .quote-mark { position: absolute; z-index: 2; top: 1.4rem; right: 1.6rem; height: auto; color: rgba(255,255,255,.46); font-size: 4.8rem; }
.testimonial-featured-copy { position: absolute; z-index: 2; inset: auto 0 0; padding: 2.6rem 3.25rem 3.1rem; color: #fff; }
.testimonial-featured-copy blockquote { color: rgba(255,255,255,.96); font-size: clamp(1.8625rem, 2.85vw, 2.4125rem); line-height: 1.1; }
.testimonial-featured-copy cite { color: #efbbc3; }

/* Gyakori kérdések */
.faq { background: var(--cream-deep); }
.faq-grid { display: grid; grid-template-columns: minmax(17rem, .72fr) minmax(28rem, 1.28fr); gap: clamp(3rem, 8vw, 8rem); align-items: start; }
.faq-intro { position: static; }
.faq-intro .eyebrow { color: var(--red); }
.faq-intro h2 { max-width: 8ch; margin-bottom: 1.5rem; }
.faq-intro h2 em { color: var(--red-soft); font-weight: 500; }
.faq-intro > p:last-child { max-width: 34ch; color: var(--muted); }
.faq-list { display: grid; gap: .85rem; }
.faq-item { overflow: hidden; border: 1px solid rgba(111,31,45,.08); border-radius: 1rem; background: var(--paper); transition: box-shadow 220ms ease, border-color 220ms ease; }
.faq-item[open] { border-color: rgba(155,49,66,.18); box-shadow: 0 20px 45px -38px rgba(66,30,34,.65); }
.faq-item summary { display: grid; grid-template-columns: 1fr auto; gap: 1.4rem; align-items: center; padding: 1.25rem 1.35rem 1.25rem 1.6rem; cursor: pointer; font: 600 clamp(1.1rem, 1.7vw, 1.3rem)/1.3 var(--font-display); list-style: none; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::marker { content: ""; }
.faq-item summary:hover { color: var(--red-dark); }
.faq-icon { display: grid; place-items: center; width: 2.2rem; height: 2.2rem; border: 2px solid var(--red); border-radius: 50%; color: var(--red); font: 700 1.35rem/1 var(--font-body); transition: transform 220ms ease, background-color 220ms ease, color 220ms ease; }
.faq-item[open] .faq-icon { background: var(--red); color: #fff; transform: rotate(45deg); }
.faq-answer { padding: 0 4.9rem 1.4rem 1.6rem; }
.faq-answer p { max-width: 60ch; color: var(--muted); font-size: .94rem; line-height: 1.72; }
.faq-answer a { color: var(--red-dark); font-weight: 600; }

/* Képes CTA */
.booking { position: relative; min-height: 39rem; display: grid; place-items: center; overflow: hidden; isolation: isolate; color: var(--ink); }
.booking::after { content: ""; position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg, rgba(218,215,208,.68), rgba(238,233,225,.5) 48%, rgba(211,208,201,.68)); }
.booking-media { position: absolute; z-index: -2; inset: 0; }
.booking-media img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.booking-inner { display: flex; flex-direction: column; align-items: center; text-align: center; }
.booking .eyebrow { color: var(--red-dark); }
.booking h2 { max-width: none; margin-bottom: 1.2rem; white-space: nowrap; text-shadow: 0 2px 24px rgba(255,255,255,.55); }
.booking p:not(.eyebrow) { max-width: 62ch; color: rgba(48,37,38,.86); }
.booking-actions { display: flex; justify-content: center; gap: .8rem; margin-top: 2rem; flex-wrap: wrap; }
.btn-light { flex: 0 0 auto; background: var(--red); color: #fff; }
.btn-light:hover { background: var(--red-dark); color: #fff; }

/* Kapcsolat */
.contact { background: var(--cream); }
.contact-head h2 { max-width: none; }
.contact-grid { display: grid; grid-template-columns: minmax(18rem, .7fr) minmax(0, 1.3fr); gap: clamp(1.5rem, 4vw, 3rem); align-items: stretch; }
.contact-card { display: flex; flex-direction: column; align-items: flex-start; padding: clamp(1.7rem, 4vw, 3rem); background: var(--paper); box-shadow: var(--shadow); }
.contact-label { margin: 1.5rem 0 .3rem; color: var(--red); font-size: .65rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; }
.contact-label:first-child { margin-top: 0; }
.contact-card h3 { font: 600 clamp(1.8rem, 3vw, 2.6rem)/1 var(--font-display); }
.contact-card address a { color: var(--muted); font-size: .98rem; }
.contact-card address a:hover { color: var(--red); }
.contact-person { display: grid; width: 100%; grid-template-columns: 1fr auto; gap: 1rem; align-items: center; padding: 1rem 0; border-top: 1px solid var(--line); }
.contact-person:last-child { border-bottom: 1px solid var(--line); }
.contact-person div { display: grid; }
.contact-person strong { font: 600 1.15rem var(--font-display); }
.contact-person span { color: var(--muted); font-size: .62rem; letter-spacing: .12em; text-transform: uppercase; }
.contact-person a { color: var(--red-dark); font-size: .86rem; font-weight: 600; white-space: nowrap; }
.contact-person a:hover { color: var(--red); }
.map-wrap { min-height: 28rem; overflow: hidden; border: 1px solid var(--line); background: var(--cream-deep); }
.map-wrap iframe { width: 100%; height: 100%; min-height: 28rem; border: 0; }
.shop-photos { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; margin-top: .5rem; }
.shop-photos img { width: 100%; height: 24rem; object-fit: cover; }

/* Lábléc */
.site-footer { padding: 3.5rem 0 1.8rem; background: var(--red-dark); color: #fff; }
.footer-inner { display: grid; grid-template-columns: 1fr auto; gap: 2rem; align-items: start; }
.footer-about { display: flex; align-items: center; gap: 1.35rem; }
.footer-logo { display: block; flex: 0 0 auto; width: clamp(6.5rem, 8vw, 8rem); }
.footer-logo img { width: 100%; height: auto; }
.footer-brand { font: 600 1.8rem var(--font-display); }
.footer-brand span { display: block; font: 600 .58rem var(--font-body); letter-spacing: .2em; text-transform: uppercase; }
.footer-about-copy p { margin-top: .75rem; color: rgba(255,255,255,.68); font-size: .84rem; line-height: 1.65; }
.footer-contact { display: grid; gap: .45rem; text-align: right; font-size: .86rem; }
.footer-contact a:hover { color: #f1c2c9; }
.copyright { grid-column: 1 / -1; margin-top: 1rem; padding-top: 1.2rem; border-top: 1px solid rgba(255,255,255,.14); color: rgba(255,255,255,.52); font-size: .75rem; }

/* Finom megjelenés */
.reveal { opacity: 0; transform: translateY(1.15rem); transition: opacity 650ms ease, transform 650ms ease; }
.reveal.in-view { opacity: 1; transform: none; }

@media (max-width: 68rem) {
  .main-nav, .header-cta { display: none; }
  .menu-toggle { display: block; }
  .mobile-menu { position: fixed; z-index: 110; inset: 0; display: flex; flex-direction: column; padding: 6.5rem 7vw 2.5rem; overflow-y: auto; background: var(--cream); visibility: hidden; transform: translateY(-102%); transition: transform 350ms ease, visibility 350ms ease; }
  .mobile-menu.open { visibility: visible; transform: none; }
  .mobile-nav-list { margin: auto 0; }
  .mobile-nav-list li { border-bottom: 1px solid var(--line); }
  .mobile-menu .mm-link { display: block; padding: .55rem 0; font: 600 clamp(1.8rem, 7vw, 2.7rem) var(--font-display); }
  .mm-cta { align-self: flex-start; margin-top: 1.5rem; }
  .mm-note { margin-top: auto; padding-top: 1.5rem; color: var(--muted); font-size: .83rem; }
  .hero-copy { width: min(37rem, 64%); }
  .hero h1 { font-size: clamp(3.5rem, 8vw, 5.4rem); }
  .section-head { grid-template-columns: 1fr .8fr; gap: 1rem 2rem; }
  .intro-grid, .pedicure-grid, .reasons-grid { gap: 3.5rem; }
  .reasons-grid { grid-template-columns: 1fr; }
  .reasons-head { max-width: 42rem; }
  .reasons-head h2 { max-width: 14ch; }
  .contact-grid { grid-template-columns: .8fr 1.2fr; }
}

@media (max-width: 56rem) {
  .testimonial-grid { grid-template-columns: 1fr; max-width: 26rem; margin-inline: auto; }
  .testimonial-featured { order: -1; width: min(100%, 26rem); transform: none; }
  .testimonial-side { width: min(100%, 19rem); }
}

@media (max-width: 48rem) {
  .container { width: min(100% - 1.75rem, 78rem); }
  .section { padding-block: 4.7rem; }
  .section-head { display: block; }
  .section-head h2, .intro-copy h2, .reasons-head h2, .specialty h2, .testimonials h2, .faq-intro h2, .booking h2 { font-size: clamp(2.65rem, 12vw, 4rem); }
  .section-head > p:last-child { margin-top: 1.1rem; }
  .gallery-head > p:last-child, .testimonials-head h2 { white-space: normal; }

  .hero { min-height: max(100dvh, 49rem); padding: 6.4rem 0 2.4rem; }
  .hero::after { background: linear-gradient(0deg, rgba(46,14,20,.82), rgba(61,18,26,.43) 62%, rgba(39,14,18,.08)); }
  .hero-inner { min-height: calc(max(100dvh, 49rem) - 8.8rem); align-items: flex-end; }
  .hero-copy { width: 100%; }
  .hero h1 { max-width: 9ch; font-size: clamp(3.4rem, 15vw, 4.8rem); }
  .hero-media img { object-position: 50% center; transform: translateY(var(--hero-shift, 0)); }
  .hero-points { gap: .5rem 1rem; }

  .service-list { grid-template-columns: 1fr; }
  .service-cards { grid-template-columns: 1fr; max-width: 34rem; }
  .service-card { min-height: 0; }
  .intro-grid, .pedicure-grid, .reasons-grid, .specialty-grid, .faq-grid, .contact-grid { grid-template-columns: 1fr; }
  .intro-photo { max-width: 28rem; margin: 0 auto 3rem; }
  .pedicure-photo { width: min(100%, 25rem); margin: 3rem auto 0; justify-self: center; }
  .pedicure-copy h2 { font-size: clamp(2.65rem, 12vw, 4rem); }
  .reason-grid { grid-template-columns: 1fr; }
  .reason-item:nth-child(n) { padding: 1.6rem 0; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.22); }
  .reason-item:first-child { padding-top: 0; }
  .reason-item:last-child { padding-bottom: 0; border-bottom: 0; }
  .specialty-photo { width: min(100%, 28rem); }
  .specialty-photo img { height: 34rem; min-height: 0; }
  .faq-intro { position: static; margin-bottom: .5rem; }
  .faq-intro h2 { max-width: 10ch; }
  .faq-item summary { gap: .8rem; padding: 1.05rem 1rem 1.05rem 1.15rem; }
  .faq-icon { width: 2rem; height: 2rem; }
  .faq-answer { padding: 0 1.15rem 1.2rem; }

  .gallery-grid { grid-template-columns: 1fr 1fr; grid-auto-rows: 10rem; }
  .gallery-item-wide { grid-column: span 2; }
  .gallery-item-compact { grid-row: span 2; }
  .booking { min-height: 40rem; }
  .booking-media img { object-position: center; }
  .booking h2 { white-space: normal; }
  .booking::after { background: linear-gradient(0deg, rgba(216,213,206,.8), rgba(239,234,226,.56), rgba(211,208,201,.72)); }
  .map-wrap, .map-wrap iframe { min-height: 22rem; }
  .shop-photos img { height: 18rem; }
  .footer-inner { grid-template-columns: 1fr; }
  .footer-contact { text-align: left; }
  .copyright { grid-column: auto; }
}

@media (max-width: 30rem) {
  .hero-actions { align-items: flex-start; flex-direction: column; }
  .hero-points { display: grid; grid-template-columns: 1fr; }
  .gallery-grid { grid-template-columns: 1fr; grid-auto-rows: 13rem; }
  .gallery-item-wide { grid-column: span 1; }
  .shop-photos { grid-template-columns: 1fr; }
  .contact-person { grid-template-columns: 1fr; gap: .45rem; }
  .contact-person a { white-space: normal; }
  .booking-actions { align-items: stretch; flex-direction: column; width: min(100%, 19rem); }
  .booking-actions .btn { width: 100%; }
  .testimonial-featured { min-height: 30rem; }
  .testimonial-featured-copy { padding: 2.2rem 2rem 2.4rem; }
  .testimonial-side { min-height: 24rem; aspect-ratio: auto; }
  .footer-about { align-items: flex-start; }
  .footer-logo { width: 6rem; }
}

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