:root {
  --white: #fff;
  --cream: #fff8ee;
  --gold: #d4af37;
  --saffron: #c75b12;
  --maroon: #641e1e;
  --text: #1f1f1f;
  --muted: #666;
  --border: #eaddcb;
  --heading: "Cormorant Garamond", Georgia, serif;
  --body: "Poppins", Arial, sans-serif;
  --container: 1180px;
  --section: clamp(4.5rem, 8vw, 7.5rem);
  --radius-sm: 12px;
  --radius: 22px;
  --radius-lg: 36px;
  --shadow: 0 18px 50px rgba(100, 30, 30, .09);
  --shadow-hover: 0 24px 60px rgba(100, 30, 30, .16);
  --transition: .3s ease;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 100px; }
body { margin: 0; color: var(--text); background: var(--white); font: 400 1rem/1.75 var(--body); overflow-x: hidden; }
body.menu-open { overflow: hidden; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
:focus-visible { outline: 3px solid rgba(212,175,55,.7); outline-offset: 4px; }
.skip-link { position: fixed; left: 1rem; top: -100px; z-index: 2000; padding: .7rem 1rem; background: var(--maroon); color: var(--white); border-radius: 8px; transition: top var(--transition); }
.skip-link:focus { top: 1rem; }
.container { width: min(calc(100% - 2rem), var(--container)); margin-inline: auto; }
.section { position: relative; padding-block: var(--section); }
.section-cream { background: var(--cream); }
.section-head { max-width: 720px; margin: 0 auto 3rem; text-align: center; }
.eyebrow { display: inline-flex; align-items: center; gap: .7rem; margin-bottom: .8rem; color: var(--saffron); font-size: .78rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; }
.eyebrow::before { width: 28px; height: 1px; content: ""; background: var(--gold); }
h1, h2, h3 { margin: 0 0 .8rem; color: var(--maroon); font-family: var(--heading); line-height: 1.08; }
h1 { font-size: clamp(3rem, 7vw, 5.8rem); }
h2 { font-size: clamp(2.35rem, 4.5vw, 4rem); }
h3 { font-size: clamp(1.5rem, 2.4vw, 2rem); }
p { margin: 0 0 1.2rem; color: var(--muted); }
.lead { font-size: clamp(1.02rem, 1.6vw, 1.2rem); }
.text-gold { color: var(--saffron); }
.center { text-align: center; }
.justify-center { justify-content: center; }
.space-top { margin-top: 2rem; }
.grid { display: grid; gap: 1.5rem; }
.grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.cluster { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; }

/* Shared header */
.site-header { position: fixed; inset: 0 0 auto; z-index: 1000; height: 86px; background: rgba(255,255,255,.8); border-bottom: 1px solid transparent; backdrop-filter: blur(12px); transition: var(--transition); }
.site-header.scrolled { height: 76px; background: rgba(255,255,255,.97); border-color: rgba(234,221,203,.8); box-shadow: 0 8px 28px rgba(31,31,31,.08); }
.navbar { height: 100%; display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.brand { display: inline-flex; align-items: center; gap: .8rem; flex-shrink: 0; }
.logo-placeholder { display: grid; place-items: center; width: 52px; aspect-ratio: 1; color: var(--maroon); background: var(--cream); border: 1px dashed var(--gold); border-radius: 50%; font: 600 .62rem/1.1 var(--body); text-align: center; }
.brand-logo { display: block; width: 58px; height: 58px; flex: 0 0 auto; object-fit: contain; border-radius: 50%; }
.site-footer .brand-logo { width: 72px; height: 72px; }
.brand-name { color: var(--maroon); font: 700 1.28rem/1 var(--heading); }
.brand-name small { display: block; margin-top: .32rem; color: var(--saffron); font: 500 .58rem/1 var(--body); letter-spacing: .13em; text-transform: uppercase; }
.nav-menu { display: flex; align-items: center; gap: clamp(.8rem, 2vw, 1.7rem); margin: 0 0 0 auto; padding: 0; list-style: none; }
.nav-link { position: relative; padding-block: .55rem; font-size: .9rem; font-weight: 500; }
.nav-link::after { position: absolute; inset: auto 50% 0; width: 0; height: 2px; content: ""; background: var(--gold); transition: var(--transition); }
.nav-link:hover::after, .nav-link.active::after { left: 0; width: 100%; }
.nav-link.active { color: var(--maroon); }
.nav-cta { margin-left: .3rem; }
.menu-toggle { display: none; width: 46px; height: 46px; padding: 0; background: transparent; border: 1px solid var(--border); border-radius: 50%; }
.menu-toggle span { display: block; width: 20px; height: 2px; margin: 5px auto; background: var(--maroon); transition: var(--transition); }
.menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* Buttons and cards */
.btn { position: relative; display: inline-flex; min-height: 50px; align-items: center; justify-content: center; gap: .55rem; padding: .8rem 1.45rem; overflow: hidden; border: 1px solid transparent; border-radius: 999px; font-size: .9rem; font-weight: 600; transition: transform var(--transition), box-shadow var(--transition), background var(--transition); }
.btn-primary { color: var(--white); background: linear-gradient(135deg, var(--gold), var(--saffron)); box-shadow: 0 10px 24px rgba(199,91,18,.22); }
.btn-primary:hover { transform: translateY(-3px); box-shadow: 0 14px 32px rgba(199,91,18,.35), 0 0 24px rgba(212,175,55,.2); }
.btn-secondary { color: var(--maroon); background: transparent; border-color: var(--gold); }
.btn-secondary:hover { color: var(--white); background: var(--maroon); border-color: var(--maroon); transform: translateY(-3px); }
.btn::after { position: absolute; width: 10px; height: 10px; content: ""; background: rgba(255,255,255,.35); border-radius: 50%; transform: scale(0); opacity: 0; }
.btn:active::after { animation: ripple .45s ease-out; }
@keyframes ripple { 50% { opacity: 1; } 100% { opacity: 0; transform: scale(18); } }
.card { position: relative; padding: clamp(1.5rem, 3vw, 2.2rem); background: rgba(255,255,255,.94); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow); transition: transform var(--transition), box-shadow var(--transition), border-color var(--transition); }
.card::before { display: block; width: 38px; height: 3px; margin-bottom: 1.2rem; content: ""; background: linear-gradient(90deg, var(--gold), var(--saffron)); border-radius: 3px; }
.card:hover { transform: translateY(-7px); border-color: rgba(212,175,55,.7); box-shadow: var(--shadow-hover); }
.icon-disc { display: grid; place-items: center; width: 52px; height: 52px; margin-bottom: 1.2rem; color: var(--maroon); background: var(--cream); border: 1px solid var(--border); border-radius: 50%; font: 700 1.35rem var(--heading); }
.service-card { min-height: 100%; }
.service-card h3 { font-size: 1.7rem; }
.text-link { color: var(--saffron); font-size: .9rem; font-weight: 600; }
.text-link:hover { color: var(--maroon); }

/* Page banners */
.orb { position: absolute; border-radius: 50%; background: rgba(212,175,55,.12); filter: blur(1px); animation: float 5s ease-in-out infinite; }
.orb-one { width: 120px; height: 120px; left: 3%; top: 22%; }
.orb-two { width: 70px; height: 70px; right: 8%; bottom: 16%; animation-delay: -2s; }
@keyframes float { 50% { transform: translateY(-13px) rotate(2deg); } }
.page-hero { position: relative; min-height: 460px; display: grid; place-items: center; padding: 150px 0 70px; overflow: hidden; background: radial-gradient(circle at 50% 10%, rgba(212,175,55,.16), transparent 32%), var(--cream); text-align: center; }
.page-hero .container { max-width: 850px; }
.page-hero h1 { font-size: clamp(3rem, 6vw, 5rem); }
.breadcrumbs { display: flex; justify-content: center; gap: .5rem; color: var(--muted); font-size: .86rem; }
.breadcrumbs a { color: var(--saffron); }
.mandala { position: absolute; width: 360px; height: 360px; border: 1px solid rgba(212,175,55,.13); border-radius: 50%; pointer-events: none; }
.mandala::before, .mandala::after { position: absolute; inset: 15%; content: ""; border: 1px solid rgba(199,91,18,.1); transform: rotate(45deg); }
.mandala::after { inset: 30%; border-radius: 50%; }
.mandala-left { left: -180px; top: 18%; }
.mandala-right { right: -180px; bottom: 10%; }

/* Content patterns */
.split { display: grid; grid-template-columns: .95fr 1.05fr; gap: clamp(2.5rem, 7vw, 6rem); align-items: center; }
.portrait-frame { position: relative; min-height: 480px; display: grid; place-items: center; overflow: hidden; color: var(--maroon); background: linear-gradient(145deg, #f8ead5, #fff); border: 1px solid var(--border); border-radius: var(--radius-lg); box-shadow: var(--shadow); text-align: center; }
.portrait-frame::before { position: absolute; inset: 8%; content: ""; border: 1px solid rgba(212,175,55,.3); border-radius: 50%; }
.feature-list { margin: 1.5rem 0 2rem; padding: 0; list-style: none; }
.feature-list li { position: relative; margin: .8rem 0; padding-left: 1.8rem; color: var(--muted); }
.feature-list li::before { position: absolute; left: 0; content: "✦"; color: var(--gold); }
.stats { margin-top: -45px; z-index: 2; position: relative; }
.stat { padding: 1.4rem; background: var(--white); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow); text-align: center; }
.stat strong { display: block; color: var(--maroon); font: 700 2rem var(--heading); }
.stat span { color: var(--muted); font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; }
.process-step { counter-increment: steps; }
.process { counter-reset: steps; }
.process-step::before { content: "0" counter(steps); color: var(--gold); background: transparent; border: 0; font: 700 2.5rem var(--heading); }
.quote-card blockquote { margin: 0 0 1rem; color: var(--text); font: 600 1.3rem/1.45 var(--heading); }
.quote-card cite { color: var(--saffron); font-style: normal; font-size: .85rem; }
.faq { max-width: 840px; margin-inline: auto; }
.faq-item { border-bottom: 1px solid var(--border); }
.faq-button { width: 100%; display: flex; justify-content: space-between; gap: 1rem; padding: 1.4rem 0; color: var(--maroon); background: transparent; border: 0; font-weight: 600; text-align: left; }
.faq-button::after { content: "+"; color: var(--gold); font-size: 1.4rem; transition: transform var(--transition); }
.faq-button[aria-expanded="true"]::after { transform: rotate(45deg); }
.faq-panel { max-height: 0; overflow: hidden; transition: max-height .35s ease; }
.faq-panel p { padding-right: 2rem; }

/* Forms */
.form-card { padding: clamp(1.5rem, 4vw, 3rem); }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1.25rem; }
.form-group { display: grid; gap: .45rem; }
.form-group.full { grid-column: 1 / -1; }
label { color: var(--text); font-size: .88rem; font-weight: 500; }
input, select, textarea { width: 100%; min-height: 52px; padding: .78rem 1rem; color: var(--text); background: var(--white); border: 1px solid var(--border); border-radius: var(--radius-sm); transition: border var(--transition), box-shadow var(--transition); }
textarea { min-height: 130px; resize: vertical; }
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--gold); box-shadow: 0 0 0 4px rgba(212,175,55,.12); }
.field-error { min-height: 1.1rem; color: #a32929; font-size: .76rem; }
[aria-invalid="true"] { border-color: #a32929; }
.form-status { display: none; margin-top: 1rem; padding: .9rem 1rem; border-radius: 10px; font-size: .88rem; }
.form-status.success { display: block; color: #245b31; background: #edf8ef; }
.form-status.error { display: block; color: #842323; background: #fff0f0; }
.contact-list { display: grid; gap: 1rem; margin-top: 1.5rem; }
.contact-item { display: flex; gap: 1rem; align-items: flex-start; padding: 1rem 0; border-bottom: 1px solid var(--border); }
.contact-item strong { display: block; color: var(--maroon); }
.contact-item span, .contact-item a { color: var(--muted); font-size: .9rem; }

/* About page */
.about-portrait { min-height: 590px; border: 1px solid var(--gold); }
.about-portrait::after { position: absolute; inset: 18px; content: ""; border: 1px solid rgba(212,175,55,.45); border-radius: calc(var(--radius-lg) - 10px); pointer-events: none; }
.sonika-photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  border-radius: inherit;
}
.about-copy p { max-width: 690px; }
.value-card { min-height: 100%; text-align: left; }
.value-card .icon-disc { transition: transform var(--transition), background var(--transition); }
.value-card:hover .icon-disc { color: var(--white); background: linear-gradient(135deg, var(--gold), var(--saffron)); transform: rotate(6deg) scale(1.06); }
.trust-card { display: grid; grid-template-columns: auto 1fr; gap: 1rem; align-items: start; }
.trust-card::before { display: none; }
.trust-card .icon-disc { margin: 0; }
.trust-card h3 { margin-top: .1rem; font-size: 1.55rem; }
.consultation-timeline { position: relative; max-width: 900px; margin: 3rem auto 0; }
.consultation-timeline::before { position: absolute; top: 20px; bottom: 20px; left: 50%; width: 1px; content: ""; background: linear-gradient(var(--gold), var(--saffron)); transform: translateX(-50%); }
.timeline-step { position: relative; width: calc(50% - 45px); margin-bottom: 2rem; }
.timeline-step:nth-child(even) { margin-left: calc(50% + 45px); }
.timeline-marker { position: absolute; z-index: 1; top: 28px; width: 44px; height: 44px; display: grid; place-items: center; color: var(--white); background: linear-gradient(135deg, var(--gold), var(--saffron)); border: 5px solid var(--cream); border-radius: 50%; box-shadow: 0 7px 18px rgba(199,91,18,.2); font-size: .78rem; font-weight: 600; }
.timeline-step:nth-child(odd) .timeline-marker { right: -67px; }
.timeline-step:nth-child(even) .timeline-marker { left: -67px; }
.timeline-step .card { padding: 1.5rem 1.7rem; }
.timeline-step .card::before { display: none; }
.timeline-step h3 { font-size: 1.55rem; }
.philosophy-panel { position: relative; max-width: 980px; margin-inline: auto; padding: clamp(2rem, 6vw, 5rem); overflow: hidden; background: radial-gradient(circle at 50% 0, rgba(212,175,55,.16), transparent 42%), var(--white); border: 1px solid var(--border); border-radius: var(--radius-lg); box-shadow: var(--shadow); text-align: center; }
.philosophy-panel::before, .philosophy-panel::after { position: absolute; width: 180px; aspect-ratio: 1; content: ""; border: 1px solid rgba(212,175,55,.18); border-radius: 50%; }
.philosophy-panel::before { left: -90px; top: -90px; }
.philosophy-panel::after { right: -90px; bottom: -90px; }
.philosophy-panel p { max-width: 760px; margin-inline: auto; }
.social-card { display: flex; align-items: center; gap: 1rem; }
.social-card::before { display: none; }
.social-card .icon-disc { margin: 0; flex: 0 0 auto; }
.social-card-body { min-width: 0; flex: 1; }
.social-card h3 { margin: 0; font-size: 1.45rem; }
.social-handle { display: block; overflow: hidden; color: var(--muted); font-size: .8rem; text-overflow: ellipsis; white-space: nowrap; }
.social-card .btn { min-height: 42px; padding: .55rem 1rem; flex: 0 0 auto; }
.golden-cta { color: var(--text); background: radial-gradient(circle at 85% 20%, rgba(255,255,255,.65), transparent 24%), linear-gradient(130deg, #fff8df, #f4d885 48%, #fff4dc); border: 1px solid rgba(212,175,55,.45); }
.golden-cta h2 { color: var(--maroon); }
.golden-cta p { color: #594b3e; }

/* Services page */
.banner-lines { position: absolute; inset: 18% 8%; pointer-events: none; opacity: .35; }
.banner-lines::before, .banner-lines::after { position: absolute; width: 34%; height: 1px; content: ""; background: linear-gradient(90deg, transparent, var(--gold), transparent); }
.banner-lines::before { left: 0; top: 25%; transform: rotate(8deg); }
.banner-lines::after { right: 0; bottom: 22%; transform: rotate(-8deg); }
.gold-divider { width: 86px; height: 2px; margin: 1.5rem auto 0; background: linear-gradient(90deg, transparent, var(--gold), transparent); }
.service-detail { overflow: hidden; }
.service-detail:nth-of-type(even) { background: var(--cream); }
.service-detail-grid { display: grid; grid-template-columns: .92fr 1.08fr; gap: clamp(2.5rem, 7vw, 6rem); align-items: center; }
.service-detail-grid.reverse { grid-template-columns: 1.08fr .92fr; }
.service-detail-grid.reverse .service-visual { order: 2; }
.service-visual { position: relative; min-height: 520px; display: grid; place-items: center; overflow: hidden; color: var(--maroon); background: radial-gradient(circle, rgba(212,175,55,.16), transparent 48%), linear-gradient(145deg, #fff, #f9ead2); border: 1px solid var(--gold); border-radius: var(--radius-lg); box-shadow: var(--shadow); animation: serviceFloat 7s ease-in-out infinite; }
.service-visual::before { position: absolute; width: 68%; aspect-ratio: 1; content: ""; border: 1px solid rgba(212,175,55,.42); border-radius: 50%; box-shadow: inset 0 0 0 28px rgba(212,175,55,.025), inset 0 0 0 55px rgba(199,91,18,.02); }
.service-visual::after { position: absolute; width: 42%; aspect-ratio: 1; content: ""; border: 1px dashed rgba(199,91,18,.32); transform: rotate(45deg); }
.service-image-frame {
  min-height: 0;
  aspect-ratio: 3 / 2;
  background: #100b1d;
  border-color: rgba(212,175,55,.5);
  box-shadow: 0 22px 55px rgba(31,12,54,.2), 0 0 32px rgba(108,43,217,.12);
}
.service-image-frame::before,
.service-image-frame::after { display: none; }
.service-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: inherit;
  transition: transform .65s ease, filter .65s ease;
}
.service-image-frame:hover {
  border-color: rgba(212,175,55,.78);
  box-shadow: 0 28px 65px rgba(31,12,54,.28), 0 0 42px rgba(108,43,217,.2), 0 0 18px rgba(212,175,55,.1);
}
.service-image-frame:hover .service-image { transform: scale(1.025); filter: saturate(1.06); }
.service-visual.numbers::after { content: "1  ·  3  ·  7  ·  9"; width: auto; aspect-ratio: auto; border: 0; color: rgba(199,91,18,.18); font: 700 clamp(3rem, 7vw, 6rem) var(--heading); transform: rotate(-12deg); }
.service-detail-copy h2 { font-size: clamp(2.4rem, 4vw, 3.7rem); }
.service-detail-copy .lead { color: #4d4d4d; }
.service-detail-copy h3 { margin-top: 1.7rem; font-size: 1.45rem; }
.service-actions { margin-top: 1.8rem; }
.expect-card { min-height: 100%; }
.expect-card h3 { font-size: 1.45rem; }
@keyframes serviceFloat { 50% { transform: translateY(-7px); } }

/* Booking page */
.mini-info-card { display: flex; align-items: center; justify-content: center; gap: .7rem; min-height: 82px; padding: 1rem; background: var(--white); border: 1px solid var(--border); border-radius: var(--radius-sm); box-shadow: 0 10px 28px rgba(100,30,30,.06); color: var(--maroon); font-size: .88rem; font-weight: 600; text-align: center; }
.mini-info-card::before { content: "✦"; color: var(--gold); }
.booking-layout { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(310px, .65fr); gap: 2rem; align-items: start; }
.booking-form { padding: clamp(1.4rem, 4vw, 3rem); }
.booking-form::before { display: none; }
.form-section-title { grid-column: 1 / -1; margin: 1rem 0 0; padding-bottom: .7rem; border-bottom: 1px solid var(--border); font-size: 1.55rem; }
.helper-text { color: var(--muted); font-size: .74rem; line-height: 1.5; }
.required-mark { color: #9d2929; }
.field-error { display: block; }
.is-invalid { border-color: #a32929 !important; box-shadow: 0 0 0 3px rgba(163,41,41,.08) !important; }
.radio-fieldset { margin: 0; padding: 0; border: 0; }
.radio-fieldset legend { margin-bottom: .7rem; color: var(--text); font-size: .88rem; font-weight: 500; }
.radio-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .7rem; }
.radio-option { position: relative; display: flex; gap: .65rem; align-items: flex-start; min-height: 54px; padding: .8rem; background: var(--white); border: 1px solid var(--border); border-radius: var(--radius-sm); cursor: pointer; transition: var(--transition); }
.radio-option:hover { border-color: var(--gold); }
.radio-option input { width: 18px; min-height: 18px; margin-top: .15rem; accent-color: var(--saffron); }
.radio-option span { color: var(--text); font-size: .82rem; }
.radio-option small { display: block; color: var(--muted); font-size: .67rem; line-height: 1.4; }
.checkbox-option { display: flex; gap: .75rem; align-items: flex-start; cursor: pointer; }
.checkbox-option input { width: 19px; min-height: 19px; margin-top: .25rem; accent-color: var(--saffron); }
.checkbox-option span { color: var(--text); font-size: .82rem; }
.counter-row { display: flex; justify-content: space-between; gap: 1rem; }
.char-counter { color: var(--muted); font-size: .72rem; }
.booking-submit { display: grid; gap: .65rem; }
.booking-submit .cluster { align-items: stretch; }
.form-status.visible { display: block; animation: statusIn .35s ease; }
@keyframes statusIn { from { opacity: 0; transform: translateY(5px); } }
.booking-sidebar { display: grid; gap: 1.25rem; position: sticky; top: 105px; }
.booking-sidebar .card { padding: 1.5rem; }
.booking-sidebar .card::before { width: 30px; margin-bottom: .9rem; }
.booking-sidebar h2, .booking-sidebar h3 { font-size: 1.6rem; }
.compact-list { display: grid; gap: .55rem; margin: 0; padding: 0; list-style: none; }
.compact-list li, .compact-list a { color: var(--muted); font-size: .82rem; }
.compact-list li { position: relative; padding-left: 1.35rem; }
.compact-list li::before { position: absolute; left: 0; content: "✓"; color: var(--gold); font-weight: 700; }
.compact-list a:hover { color: var(--saffron); }
.whatsapp-card { background: linear-gradient(145deg, #f2fff6, #fff); border-color: rgba(39,140,79,.28); }
.booking-process { display: grid; grid-template-columns: repeat(4,1fr); gap: 1rem; counter-reset: booking-steps; }
.booking-step { position: relative; counter-increment: booking-steps; padding: 1.4rem; text-align: center; }
.booking-step::before { display: grid; width: 44px; height: 44px; place-items: center; margin: 0 auto 1rem; content: "0" counter(booking-steps); color: var(--white); background: linear-gradient(135deg,var(--gold),var(--saffron)); border-radius: 50%; font-weight: 600; }
.booking-step:not(:last-child)::after { position: absolute; top: 35px; left: calc(50% + 30px); width: calc(100% - 60px); height: 1px; content: ""; background: var(--gold); opacity: .5; }
.booking-step h3 { font-size: 1.35rem; }

/* Contact page */
.contact-method-card { min-height: 100%; display: flex; flex-direction: column; align-items: flex-start; }
.contact-method-card p { flex: 1; }
.contact-number { display: block; margin: -.2rem 0 1.1rem; color: var(--maroon); font: 700 1.35rem var(--heading); }
.contact-layout { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(310px,.75fr); gap: 2rem; align-items: start; }
.contact-enquiry-form { padding: clamp(1.4rem,4vw,3rem); }
.contact-enquiry-form::before { display: none; }
.contact-info-stack { display: grid; gap: 1.25rem; position: sticky; top: 105px; }
.contact-info-stack .card { padding: 1.5rem; }
.contact-info-stack h2, .contact-info-stack h3 { font-size: 1.6rem; }
.detail-list { display: grid; gap: .85rem; margin: 1.2rem 0; }
.detail-row { padding-bottom: .75rem; border-bottom: 1px solid var(--border); }
.detail-row strong { display: block; color: var(--maroon); font-size: .8rem; }
.detail-row span, .detail-row a { color: var(--muted); font-size: .84rem; }
.social-contact-card { min-height: 100%; background: linear-gradient(145deg,var(--white),var(--cream)); }
.social-contact-card .icon-disc { transition: transform var(--transition); }
.social-contact-card:hover .icon-disc { transform: rotate(-7deg) scale(1.08); }
.social-contact-card .social-handle { margin-bottom: 1.2rem; }

/* CTA, footer and floating actions */
.cta-panel { position: relative; padding: clamp(2rem, 6vw, 4.5rem); overflow: hidden; color: var(--white); background: linear-gradient(130deg, var(--maroon), #3f1313); border-radius: var(--radius-lg); box-shadow: var(--shadow-hover); }
.cta-panel h2, .cta-panel p { color: var(--white); }
.cta-panel p { max-width: 650px; opacity: .8; }
.cta-panel::after { position: absolute; width: 270px; aspect-ratio: 1; right: -80px; top: -110px; content: ""; border: 1px solid rgba(212,175,55,.28); border-radius: 50%; }
.site-footer { position: relative; padding: 5.5rem 0 1.4rem; color: rgba(255,255,255,.72); background: #2d1010; }
.footer-grid { display: grid; grid-template-columns: 1.35fr .8fr 1.2fr 1fr; gap: 2.5rem; }
.site-footer .brand-name, .site-footer h3 { color: var(--white); }
.site-footer h3 { margin-bottom: 1.1rem; font-size: 1.25rem; }
.site-footer p { color: rgba(255,255,255,.65); font-size: .88rem; }
.footer-links { display: grid; gap: .65rem; margin: 0; padding: 0; list-style: none; }
.footer-links a { font-size: .85rem; transition: color var(--transition), padding var(--transition); }
.footer-links a:hover { color: var(--gold); padding-left: 4px; }
.footer-bottom { display: flex; justify-content: space-between; gap: 1rem; margin-top: 4rem; padding-top: 1.3rem; border-top: 1px solid rgba(255,255,255,.12); font-size: .76rem; }
.floating-actions { position: fixed; z-index: 900; right: 20px; bottom: 22px; display: grid; gap: .75rem; }
.float-btn { width: 52px; height: 52px; display: grid; place-items: center; color: var(--white); border: 2px solid rgba(255,255,255,.85); border-radius: 50%; box-shadow: 0 9px 24px rgba(0,0,0,.22); font-size: 1.15rem; font-weight: 600; transition: transform var(--transition), box-shadow var(--transition); }
.float-btn:hover { transform: translateY(-4px) scale(1.05); box-shadow: 0 13px 28px rgba(0,0,0,.3); }
.float-whatsapp { background: #278c4f; }
.float-call { background: linear-gradient(135deg, var(--gold), var(--saffron)); }

/* Reveal animations */
.reveal { opacity: 0; transform: translateY(28px); transition: opacity .7s ease, transform .7s ease; }
.reveal.slide-left { transform: translateX(-35px); }
.reveal.zoom { transform: scale(.96); }
.reveal.visible { opacity: 1; transform: none; }
.delay-1 { transition-delay: .1s; }
.delay-2 { transition-delay: .2s; }
.delay-3 { transition-delay: .3s; }

@media (max-width: 992px) {
  .grid-4 { grid-template-columns: repeat(2, 1fr); }
  .grid-3 { grid-template-columns: repeat(2, 1fr); }
  .split { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: repeat(2, 1fr); }
  .menu-toggle { display: block; z-index: 2; }
  .service-detail-grid, .service-detail-grid.reverse { grid-template-columns: 1fr; }
  .service-detail-grid.reverse .service-visual { order: initial; }
  .service-detail-grid.reverse .service-detail-copy { order: -1; }
  .booking-layout { grid-template-columns: 1fr; }
  .booking-sidebar { position: static; grid-template-columns: repeat(2,1fr); }
  .contact-layout { grid-template-columns: 1fr; }
  .contact-info-stack { position: static; grid-template-columns: repeat(2,1fr); }
  .nav-menu { position: fixed; inset: 0 0 0 25%; display: flex; flex-direction: column; align-items: stretch; justify-content: center; gap: .25rem; padding: 6rem 2rem 2rem; background: rgba(255,255,255,.98); box-shadow: -20px 0 50px rgba(31,31,31,.12); opacity: 0; transform: translateX(105%); visibility: hidden; pointer-events: none; transition: opacity .25s ease, transform .4s ease, visibility .4s; }
  .nav-menu.open { opacity: 1; transform: none; visibility: visible; pointer-events: auto; }
  .nav-link { display: block; padding: .8rem 0; font: 600 1.45rem var(--heading); }
  .nav-cta { margin: 1rem 0 0; align-self: flex-start; }
}

@media (max-width: 768px) {
  :root { --section: 4.5rem; }
  .grid-3, .grid-2, .form-grid { grid-template-columns: 1fr; }
  .form-group.full { grid-column: auto; }
  .portrait-frame { min-height: 360px; }
  .stats { margin-top: 1.5rem; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .page-hero { min-height: 400px; }
  .about-portrait { min-height: 430px; }
  .consultation-timeline::before { left: 22px; }
  .timeline-step, .timeline-step:nth-child(even) { width: calc(100% - 62px); margin-left: 62px; }
  .timeline-step:nth-child(odd) .timeline-marker, .timeline-step:nth-child(even) .timeline-marker { left: -62px; right: auto; }
  .service-visual { min-height: 390px; }
  .booking-process { grid-template-columns: 1fr; }
  .booking-step { display: grid; grid-template-columns: 50px 1fr; column-gap: 1rem; text-align: left; }
  .booking-step::before { grid-row: 1 / 3; margin: 0; }
  .booking-step:not(:last-child)::after { top: 58px; bottom: -16px; left: 35px; width: 1px; height: auto; }
}

@media (max-width: 576px) {
  .brand-name { font-size: 1.1rem; }
  .brand-logo { width: 50px; height: 50px; }
  .nav-menu { left: 10%; }
  .grid-4, .footer-grid { grid-template-columns: 1fr; }
  .cluster .btn { width: 100%; }
  .footer-bottom { flex-direction: column; }
  .floating-actions { right: 12px; bottom: 14px; }
  .float-btn { width: 48px; height: 48px; }
  .social-card { align-items: flex-start; flex-wrap: wrap; }
  .social-card .btn { width: 100%; }
  .radio-grid, .booking-sidebar { grid-template-columns: 1fr; }
  .contact-info-stack { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
}

/* =========================================================
   Dark cosmic homepage redesign
   ========================================================= */
.site-header { height: 110px; background: rgba(13,13,15,.94); border-bottom-color: rgba(255,255,255,.08); }
.site-header.scrolled { height: 88px; background: rgba(13,13,15,.98); border-color: rgba(215,169,54,.2); box-shadow: 0 12px 35px rgba(0,0,0,.38); }
.site-header .brand-name, .site-header .nav-link { color: #fff; }
.site-header .brand-name small { color: #d7a936; }
.site-header .brand-logo { width: 76px; height: 76px; }
.site-header .menu-toggle { border-color: rgba(255,255,255,.2); }
.site-header .menu-toggle span { background: #fff; }
.site-header .nav-link::after { background: #d7a936; }
.dark-home { color: #fff; background: #09090b; }
.dark-home p { color: #d2d2d7; }
.dark-home h1, .dark-home h2, .dark-home h3 { color: #fff; }
.dark-home .eyebrow { color: #d7a936; }
.dark-home .section { background: #09090b; }

.cosmic-hero { position: relative; min-height: max(760px, 86vh); padding-top: 110px; overflow: hidden; background: radial-gradient(circle at 80% 45%, rgba(108,43,217,.32), transparent 28%), radial-gradient(circle at 62% 12%, rgba(229,139,39,.12), transparent 20%), linear-gradient(120deg,#06070d 0%,#080d28 58%,#100822 100%); }
.cosmic-hero::before { position: absolute; inset: -8%; content: ""; opacity: .72; background-image: radial-gradient(circle at 12% 22%, rgba(255,255,255,.9) 0 1px, transparent 1.5px), radial-gradient(circle at 72% 18%, rgba(215,169,54,.8) 0 1px, transparent 1.5px), radial-gradient(circle at 42% 70%, rgba(255,255,255,.55) 0 1px, transparent 1.5px), radial-gradient(circle at 88% 78%, rgba(255,255,255,.7) 0 1px, transparent 1.5px); background-size: 190px 190px, 260px 260px, 230px 230px, 310px 310px; animation: starDrift 24s linear infinite; will-change: transform; }
.cosmic-hero::after { position: absolute; inset: 0; content: ""; pointer-events: none; background: linear-gradient(90deg,rgba(6,7,13,.16),transparent 55%,rgba(6,7,13,.15)); }
.hero-slider { position: relative; z-index: 1; min-height: calc(max(760px,86vh) - 110px); }
.cosmic-slide { position: absolute; inset: 0; display: grid; align-items: center; opacity: 0; visibility: hidden; transform: scale(1.015); transition: opacity .85s ease, visibility .85s, transform 1.1s ease; will-change: opacity, transform; }
.cosmic-slide.active { position: relative; opacity: 1; visibility: visible; transform: none; }
.cosmic-slide-grid { display: grid; grid-template-columns: 45% 55%; gap: clamp(1rem,4vw,4rem); align-items: center; min-height: calc(max(760px,86vh) - 110px); padding-block: 4rem 6rem; }
.cosmic-copy { position: relative; z-index: 2; max-width: 690px; }
.cosmic-copy h1, .cosmic-copy h2 { margin-bottom: 1.4rem; font-size: clamp(3.25rem,5.2vw,4.75rem); line-height: .98; letter-spacing: -.025em; }
.cosmic-copy h2 { color: #fff; }
.cosmic-copy .gold-word { color: #e2b849; text-shadow: 0 0 28px rgba(215,169,54,.17); }
.cosmic-copy .lead { max-width: 680px; margin-bottom: 2rem; color: #d2d2d7; font-size: clamp(1rem,1.35vw,1.18rem); line-height: 1.8; }
.cosmic-slide.active .cosmic-copy > * { animation: cosmicTextIn .75s both; }
.cosmic-slide.active .cosmic-copy > *:nth-child(2) { animation-delay: .1s; }
.cosmic-slide.active .cosmic-copy > *:nth-child(3) { animation-delay: .2s; }
.cosmic-slide.active .cosmic-copy > *:nth-child(4) { animation-delay: .3s; }
.hero-control { position: absolute; z-index: 5; top: 50%; width: 48px; height: 48px; display: grid; place-items: center; color: #fff; background: rgba(9,9,11,.55); border: 1px solid rgba(215,169,54,.4); border-radius: 50%; transform: translateY(-50%); transition: var(--transition); }
.hero-control:hover { color: #09090b; background: #d7a936; transform: translateY(-50%) scale(1.08); }
.hero-prev { left: 18px; }.hero-next { right: 18px; }
.hero-dots { position: absolute; z-index: 5; left: 50%; bottom: 28px; display: flex; gap: .7rem; transform: translateX(-50%); }
.hero-dot { width: 10px; height: 10px; padding: 0; background: transparent; border: 1px solid #d7a936; border-radius: 50%; transition: var(--transition); }
.hero-dot.active { width: 30px; background: #d7a936; border-radius: 10px; }
.dark-home .btn-primary { color: #09090b; background: linear-gradient(135deg,#f0c85a,#e58b27); }
.dark-home .btn-secondary { color: #fff; border-color: rgba(215,169,54,.72); }
.dark-home .btn-secondary:hover { color: #09090b; background: #d7a936; border-color: #d7a936; }
.trust-strip { position: relative; z-index: 4; background: #0d0d0f; border-block: 1px solid rgba(255,255,255,.1); }
.trust-grid { display: grid; grid-template-columns: repeat(4,1fr); }
.trust-item { position: relative; display: flex; align-items: center; justify-content: center; gap: .7rem; min-height: 92px; padding: 1rem; color: #fff; font-size: .82rem; font-weight: 500; text-align: center; }
.trust-item:not(:last-child)::after { position: absolute; right: 0; width: 1px; height: 35%; content: ""; background: rgba(215,169,54,.45); }
.trust-icon { color: #d7a936; font-size: 1rem; }
.dark-services { background: radial-gradient(circle at 15% 10%,rgba(108,43,217,.12),transparent 28%),#09090b !important; }
.dark-home .card { color: #fff; background: linear-gradient(145deg,rgba(255,255,255,.065),rgba(255,255,255,.025)); border-color: rgba(255,255,255,.12); box-shadow: 0 20px 55px rgba(0,0,0,.22); backdrop-filter: blur(8px); }
.dark-home .card:hover { border-color: rgba(108,43,217,.68); box-shadow: 0 25px 60px rgba(0,0,0,.35),0 0 35px rgba(108,43,217,.14); }
.dark-home .icon-disc { color: #d7a936; background: rgba(215,169,54,.08); border-color: rgba(215,169,54,.35); }
.dark-home .text-link { color: #d7a936; }
.dark-about { overflow: hidden; background: linear-gradient(120deg,#080a13,#160d2c) !important; }
.dark-home .portrait-frame { color: #d7a936; background: radial-gradient(circle,rgba(108,43,217,.23),transparent 48%),#0d0d18; border-color: rgba(215,169,54,.4); }
.cosmic-cta { background: radial-gradient(circle at 82% 30%,rgba(215,169,54,.2),transparent 25%),radial-gradient(circle at 10% 80%,rgba(108,43,217,.3),transparent 30%),linear-gradient(130deg,#080d28,#170a2a); border: 1px solid rgba(215,169,54,.25); }
.cosmic-cta::before { position: absolute; width: 380px; aspect-ratio: 1; right: -110px; top: -180px; content: ""; border: 1px solid rgba(215,169,54,.18); border-radius: 50%; box-shadow: inset 0 0 0 45px rgba(215,169,54,.018),inset 0 0 0 90px rgba(215,169,54,.018); }
@keyframes starDrift { 50% { transform: translate3d(2.5%, -1.5%, 0); } }
@keyframes cosmicTextIn { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }

@media (max-width: 992px) {
  .site-header { height: 88px; }.site-header .brand-logo { width: 60px; height: 60px; }
  .site-header .nav-menu { background: rgba(13,13,15,.99); }
  .cosmic-hero { padding-top: 88px; }
  .cosmic-slide-grid { grid-template-columns: 1fr 1fr; min-height: 760px; }
  .cosmic-copy h1, .cosmic-copy h2 { font-size: clamp(2.8rem,5.7vw,4rem); }
}
@media (max-width: 768px) {
  .cosmic-hero, .hero-slider, .cosmic-slide-grid { min-height: auto; }
  .cosmic-slide-grid { grid-template-columns: 1fr; padding: 5rem 2.5rem 6rem; text-align: center; }
  .cosmic-copy { margin-inline: auto; }.cosmic-copy .cluster { justify-content: center; }
  .trust-grid { grid-template-columns: repeat(2,1fr); }.trust-item:nth-child(2)::after { display: none; }
  .hero-control { top: 64%; width: 40px; height: 40px; }.hero-prev { left: 8px; }.hero-next { right: 8px; }
}
@media (max-width: 576px) {
  .site-header { height: 78px; }.site-header.scrolled { height: 72px; }.site-header .brand-logo { width: 52px; height: 52px; }
  .cosmic-hero { padding-top: 78px; }.cosmic-slide-grid { padding-inline: 1rem; }
  .cosmic-copy h1, .cosmic-copy h2 { font-size: clamp(2.5rem,12vw,3.3rem); }
  .cosmic-copy .cluster .btn { width: 100%; }
  .trust-grid { grid-template-columns: 1fr; }.trust-item:not(:last-child)::after { inset: auto 25% 0; width: 50%; height: 1px; }
  .hero-control { top: auto; bottom: 22px; }.hero-dots { bottom: 36px; }
}

/* Integrated photographic hero refinement */
.site-header { background: #0a0a0d; }
.site-header .navbar { width: min(calc(100% - 3rem), 1320px); }
.site-header .brand-logo { width: 82px; height: 82px; }
.site-header .brand-name { font-size: 1.55rem; }
.site-header .nav-menu { gap: clamp(1.5rem,2.6vw,2.8rem); }
.site-header .nav-link { padding-block: .8rem; color: #fff; }
.site-header .nav-link::after { inset: 0 50% auto; height: 2px; }
.site-header .nav-link:hover, .site-header .nav-link.active { color: #d8a631; }
.cosmic-hero { min-height: max(680px,84vh); padding-top: 110px; background: #070816; }
.cosmic-hero::before { z-index: 1; opacity: .28; }
.cosmic-hero::after { z-index: 2; background: linear-gradient(90deg,rgba(5,6,18,.42) 0%,rgba(5,6,18,.24) 45%,rgba(5,6,18,.04) 100%); }
.hero-slider { z-index: auto; min-height: calc(max(680px,84vh) - 110px); }
.cosmic-slide { overflow: hidden; }
.hero-scene { position: absolute; z-index: 0; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; filter: saturate(.94) contrast(1.04); transform: scale(1.025); transition: transform 7s ease; }
.cosmic-slide.active .hero-scene { transform: scale(1); }
.cosmic-slide-grid { position: relative; z-index: 3; display: block; min-height: calc(max(680px,84vh) - 110px); padding: clamp(6rem,10vh,8rem) 0 5rem; }
.cosmic-copy { width: min(620px,48%); margin: 0; padding-top: clamp(1rem,4vh,3.5rem); opacity: 1; }
.cosmic-copy h1, .cosmic-copy h2 { font-size: clamp(3.5rem,4.5vw,4.25rem); line-height: 1.01; }
.cosmic-copy h1, .cosmic-copy h2 { color: #fff; }
.cosmic-copy .lead { color: #e2e2e8; opacity: 1; }
.cosmic-copy .eyebrow, .cosmic-copy .gold-word { color: #d8a62a; text-shadow: 0 0 24px rgba(216,166,42,.24); }
.cosmic-copy .btn-primary { min-height: 56px; padding-inline: 2rem; color: #0a0a0d; background: linear-gradient(135deg,#f6d56a,#f09a35); box-shadow: 0 12px 35px rgba(229,139,39,.3); opacity: 1; }
.cosmic-copy .btn-primary:hover { color: #0a0a0d; background: linear-gradient(135deg,#f9dd7e,#f4a64b); box-shadow: 0 16px 40px rgba(229,139,39,.38); }
.cosmic-copy .btn-secondary { min-height: 50px; color: #fff; background: rgba(5,6,18,.18); border-color: rgba(255,255,255,.55); opacity: 1; }
.hero-control { color: rgba(255,255,255,.88); background: rgba(5,6,15,.5); border-color: rgba(255,255,255,.22); backdrop-filter: blur(7px); }
.hero-control:hover { color: #fff; background: rgba(255,255,255,.12); border-color: rgba(255,255,255,.5); }
.hero-dot { border-color: rgba(255,255,255,.62); }
.hero-dot.active { background: #fff; border-color: #fff; }
.dark-home .floating-actions { right: 28px; }
.dark-home .float-btn { width: 48px; height: 48px; }
.float-btn svg { width: 22px; height: 22px; }

@media (max-width: 992px) {
  .site-header .brand-logo { width: 64px; height: 64px; }
  .site-header .brand-name { font-size: 1.3rem; }
  .cosmic-copy { width: min(570px,58%); }
  .cosmic-copy h1, .cosmic-copy h2 { font-size: clamp(3rem,5.4vw,3.8rem); }
  .hero-scene { object-position: 58% center; }
}
@media (max-width: 768px) {
  .cosmic-hero { min-height: 780px; }
  .hero-slider, .cosmic-slide-grid { min-height: 692px; }
  .cosmic-slide-grid { display: flex; align-items: flex-start; padding: 4.5rem 1rem 19rem; }
  .cosmic-copy { width: 100%; max-width: 600px; margin-inline: auto; padding-top: 0; text-align: center; }
  .cosmic-copy .cluster { justify-content: center; }
  .hero-scene { object-position: 68% bottom; }
  .cosmic-hero::after { background: linear-gradient(180deg,rgba(5,6,18,.46) 0%,rgba(5,6,18,.28) 45%,rgba(5,6,18,.04) 76%,rgba(5,6,18,.10) 100%); }
  .hero-control { display: none; }
}
@media (max-width: 576px) {
  .site-header .navbar { width: min(calc(100% - 1.25rem),1320px); }
  .site-header .brand-logo { width: 54px; height: 54px; }
  .site-header .brand-name { font-size: 1.08rem; }
  .cosmic-copy h1, .cosmic-copy h2 { font-size: clamp(2.5rem,11vw,3.15rem); }
  .cosmic-copy .lead { font-size: .95rem; line-height: 1.65; }
  .cosmic-copy .cluster .btn { width: 100%; }
  .dark-home .floating-actions { right: 16px; }
  .dark-home .float-btn { width: 44px; height: 44px; }
}

/* Shared dark banner for all inner pages */
.page-hero {
  isolation: isolate;
  color: #fff;
  background:
    radial-gradient(circle at 84% 38%, rgba(138,91,217,.22), transparent 28%),
    radial-gradient(circle at 12% 68%, rgba(29,55,132,.18), transparent 30%),
    radial-gradient(circle at 20% 22%, rgba(216,166,42,.65) 0 1px, transparent 2px),
    radial-gradient(circle at 72% 74%, rgba(255,255,255,.35) 0 1px, transparent 2px),
    radial-gradient(circle at 90% 20%, rgba(216,166,42,.45) 0 1px, transparent 2px),
    linear-gradient(135deg, #070812 0%, #0a0b18 45%, #24104a 100%);
  background-size: auto, auto, 180px 180px, 240px 240px, 290px 290px, auto;
}
.page-hero::before {
  position: absolute;
  z-index: -1;
  inset: 0;
  content: "";
  pointer-events: none;
  background:
    linear-gradient(112deg, transparent 14%, rgba(216,166,42,.1) 14.15%, transparent 14.3%),
    linear-gradient(68deg, transparent 81%, rgba(216,166,42,.08) 81.15%, transparent 81.3%),
    radial-gradient(ellipse at center, transparent 48%, rgba(0,0,0,.34) 100%);
}
.page-hero::after {
  position: absolute;
  z-index: -1;
  width: 210px;
  aspect-ratio: 1;
  right: 9%;
  top: 50%;
  content: "";
  pointer-events: none;
  border: 1px solid rgba(216,166,42,.12);
  border-radius: 50%;
  box-shadow: inset 0 0 0 34px rgba(138,91,217,.018), inset 0 0 0 68px rgba(216,166,42,.012), 0 0 45px rgba(91,42,168,.08);
  transform: translateY(-50%);
}
.page-hero h1 { color: #fff; }
.page-hero .lead { color: #c9c9d1; }
.page-hero .eyebrow, .page-hero .breadcrumbs a { color: #d8a62a; }
.page-hero .eyebrow::before { background: #d8a62a; }
.page-hero .breadcrumbs, .page-hero .breadcrumbs span { color: #c9c9d1; }
.page-hero .mandala { border-color: rgba(216,166,42,.15); }
.page-hero .mandala::before { border-color: rgba(216,166,42,.11); }
.page-hero .mandala::after { border-color: rgba(138,91,217,.16); }
.page-hero .orb { background: radial-gradient(circle, rgba(216,166,42,.22), rgba(138,91,217,.06) 55%, transparent 72%); }
.page-hero .banner-lines { opacity: .28; }
.page-hero .banner-lines::before, .page-hero .banner-lines::after { background: linear-gradient(90deg, transparent, rgba(216,166,42,.55), transparent); }

/* Final shared compact header — identical on all five pages */
.site-header { height: 88px; background: #0a0a0d; }
.site-header.scrolled { height: 76px; background: rgba(10,10,13,.98); }
.site-header .navbar { width: min(calc(100% - 2rem), var(--container)); }
.site-header .brand-logo { width: 60px; height: 60px; }
.site-header .brand-name { color: #fff; font-size: 1.28rem; }
.site-header .brand-name small { display: block; margin-top: .32rem; color: #d8a631; font: 500 .58rem/1 var(--body); letter-spacing: .13em; text-transform: uppercase; }
.site-header .nav-menu { gap: clamp(.8rem,2vw,1.7rem); }
.site-header .nav-link { padding-block: .55rem; color: #fff; }
.site-header .nav-link::after { inset: auto 50% 0; height: 2px; }
.site-header .nav-link:hover, .site-header .nav-link.active { color: #fff; }
.site-header .nav-link.active::after {
  left: 50%;
  right: auto;
  bottom: -10px;
  width: calc(100% - 4px);
  height: 2px;
  background: #d8a62a;
  border-radius: 999px;
  transform: translateX(-50%);
}
.site-header .nav-cta { margin-left: .3rem; color: #fff; }

@media (min-width: 993px) {
  .site-header .navbar {
    width: 100%;
    max-width: none;
    margin-inline: 0;
    padding-inline: 24px;
  }
  .site-header .brand { margin-right: auto; }
  .site-header .nav-menu { margin-left: auto; }
}

@media (max-width: 992px) {
  .site-header { height: 82px; }
  .site-header .brand-logo { width: 56px; height: 56px; }
  .site-header .brand-name { font-size: 1.2rem; }
  .site-header .nav-menu { gap: .25rem; }
  .site-header .nav-link { padding: .8rem 0; }
  .site-header .nav-cta { margin: 1rem 0 0; }
}
@media (max-width: 576px) {
  .site-header { height: 76px; }
  .site-header.scrolled { height: 70px; }
  .site-header .navbar { width: min(calc(100% - 1.25rem),var(--container)); }
  .site-header .brand-logo { width: 50px; height: 50px; }
  .site-header .brand-name { font-size: 1.05rem; }
  .site-header .brand-name small { font-size: .5rem; }
}

/* Single shared navigation active state */
.site-header .nav-link {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 0;
}
.site-header .nav-link::after {
  content: "";
  position: absolute;
  left: 50%;
  right: auto;
  bottom: -8px;
  width: 0;
  height: 2px;
  background: #d8a62a;
  border-radius: 999px;
  transform: translateX(-50%);
  transition: width .3s ease;
}
.site-header .nav-link:hover::after,
.site-header .nav-link.active::after { width: 100%; }
.site-header .nav-link.active { color: #d8a62a; }

/* Production consistency */
.portrait-frame,
.service-image-frame { overflow: hidden; }
.portrait-frame .sonika-photo,
.service-image-frame .service-image { display: block; }
.footer-social-name {
  display: block;
  color: rgba(255,255,255,.72);
  font-size: .85rem;
}
.service-detail-copy .lead { max-width: 62ch; }
.service-card,
.contact-method-card,
.expect-card { display: flex; flex-direction: column; align-items: flex-start; }
.service-card .btn,
.service-card .text-link,
.contact-method-card .btn { margin-top: auto; }
.form-group input,
.form-group select,
.form-group textarea { border-radius: var(--radius-sm); }
.booking-submit .btn { min-height: 50px; }

@media (max-width: 576px) {
  .booking-submit .cluster,
  .booking-submit .btn,
  .booking-submit .cluster a { width: 100%; }
}

/* =========================================================
   Compact global spacing system
   ========================================================= */
:root { --section: clamp(4.375rem, 6vw, 5.5rem); }
.section { padding-block: var(--section); }
.section-head { margin-bottom: 2.2rem; }
.section-head p:last-child { margin-bottom: 0; }
.eyebrow { margin-bottom: .55rem; }
h1, h2, h3 { margin-bottom: .6rem; }
p { margin-bottom: 1rem; }
.grid { gap: 1.15rem; }
.cluster { gap: .8rem; }
.card { padding: clamp(1.25rem, 2.2vw, 1.8rem); }
.card::before { margin-bottom: .9rem; }
.icon-disc { margin-bottom: .9rem; }
.feature-list { margin: 1.1rem 0 1.4rem; }
.feature-list li { margin: .55rem 0; }
.service-actions { margin-top: 1.25rem; }
.service-detail-grid { gap: clamp(2rem, 5vw, 4.25rem); }
.service-detail-copy h3 { margin-top: 1.2rem; }
.split { gap: clamp(2rem, 5vw, 4.25rem); }
.portrait-frame { min-height: 420px; }
.about-portrait { min-height: 500px; }
.cta-panel { padding: clamp(2rem, 4.5vw, 3.5rem); }

/* Shorter inner-page banners without changing their alignment. */
.page-hero { min-height: 335px; padding: 118px 0 42px; }
.page-hero h1 { margin-bottom: .55rem; }
.page-hero .lead { margin-bottom: .7rem; }

/* Home hero reduced to a balanced 70–75vh range. */
.cosmic-hero { min-height: max(610px, 73vh); }
.hero-slider { min-height: calc(max(610px, 73vh) - 110px); }
.cosmic-slide-grid { min-height: calc(max(610px, 73vh) - 110px); padding-top: clamp(4rem, 7vh, 5.5rem); padding-bottom: 3.5rem; }
.cosmic-copy { padding-top: clamp(.5rem, 2vh, 1.5rem); }
.cosmic-copy h1, .cosmic-copy h2 { margin-bottom: 1rem; }
.cosmic-copy .lead { margin-bottom: 1.4rem; }
.trust-item { min-height: 76px; }

/* Tighter forms and supporting panels. */
.form-grid { gap: .9rem 1rem; }
.form-group { gap: .3rem; }
.form-card, .booking-form, .contact-enquiry-form { padding: clamp(1.35rem, 3vw, 2.25rem); }
.form-section-title { margin-top: .6rem; padding-bottom: .5rem; }
.radio-grid { gap: .5rem; }
.radio-option { min-height: 50px; padding: .65rem .75rem; }
.booking-layout, .contact-layout { gap: 1.4rem; }
.booking-sidebar, .contact-info-stack { gap: .9rem; }
.booking-sidebar .card, .contact-info-stack .card { padding: 1.25rem; }
.booking-process { gap: .75rem; }
.booking-step { padding: 1.1rem; }
.contact-list { gap: .7rem; margin-top: 1rem; }
.contact-item { padding: .75rem 0; }
.faq-button { padding: 1.05rem 0; }

/* Footer remains spacious enough to scan, without excess height. */
.site-footer { padding-top: 4rem; }
.footer-grid { gap: 2rem; }
.footer-bottom { margin-top: 2.75rem; }

@media (max-width: 768px) {
  :root { --section: clamp(2.75rem, 9vw, 3.6rem); }
  .section-head { margin-bottom: 1.75rem; }
  .page-hero { min-height: 300px; padding: 105px 0 34px; }
  .cosmic-hero { min-height: 680px; }
  .hero-slider, .cosmic-slide-grid { min-height: 598px; }
  .cosmic-slide-grid { padding: 3.5rem 1rem 16rem; }
  .portrait-frame, .about-portrait { min-height: 350px; }
  .service-detail-grid, .split { gap: 2rem; }
  .site-footer { padding-top: 3.25rem; }
}
@media (max-width: 576px) {
  :root { --section: 2.75rem; }
  .card { padding: 1.2rem; }
  .page-hero { min-height: 285px; padding: 96px 0 30px; }
  .cosmic-hero { min-height: 650px; }
  .hero-slider, .cosmic-slide-grid { min-height: 574px; }
  .cosmic-slide-grid { padding: 3rem .75rem 14.5rem; }
  .form-grid { gap: .75rem; }
  .footer-bottom { margin-top: 2rem; }
}
