:root {
    --bg: #f7f4ee;
    --surface: #ffffff;
    --ink: #1f2327;
    --muted: #60676f;
    --line: rgba(31, 35, 39, 0.1);
    --accent: #c8a977;
    --accent-dark: #9d7d4d;
    --sky: #d9e8ef;
    --shadow: 0 20px 60px rgba(24, 29, 33, 0.08);
}

body {
    background:
        radial-gradient(circle at top left, rgba(201, 226, 236, 0.45), transparent 28%),
        radial-gradient(circle at bottom right, rgba(200, 169, 119, 0.18), transparent 30%),
        var(--bg);
    color: var(--ink);
    font-family: "Manrope", sans-serif;
}

h1, h2, h3, h4, .brand-name, .footer-title { font-family: "Cormorant Garamond", serif; }
a { color: inherit; text-decoration: none; }
.site-header { padding: 1rem 0; position: sticky; top: 0; z-index: 30; backdrop-filter: blur(16px); background: rgba(247, 244, 238, 0.75); border-bottom: 1px solid var(--line); }
.navbar-brand { display: flex; align-items: center; gap: 0.85rem; }
.brand-copy { display: flex; flex-direction: column; gap: 0.1rem; }
.brand-logo-image { width: auto; max-width: min(360px, 72vw); display: block; object-fit: contain; }
.brand-kicker, .eyebrow, .footer-kicker, .card-label { text-transform: uppercase; letter-spacing: 0.18em; font-size: 0.72rem; color: var(--accent-dark); font-weight: 800; }
.brand-name { font-size: 1.8rem; }
.nav-link { font-weight: 600; color: var(--ink); }
.btn-accent { background: linear-gradient(135deg, var(--accent), #e0c69f); color: #101214; border: 0; }
.btn-accent:hover { background: linear-gradient(135deg, #d3b688, #eed9b6); color: #101214; }
.hero-section, .page-hero, .detail-hero { padding: 5rem 0 4rem; }
.hero-carousel, .hero-card, .premium-card, .video-card, .info-card, .glass-form, .cta-panel, .panel-card, .editor-card, .stat-card { border-radius: 1.5rem; box-shadow: var(--shadow); }
.hero-card { position: relative; overflow: hidden; min-height: 540px; background: #101214; }
.hero-image, .card-media, .detail-cover, .video-card img, .media-mini-grid img, .gallery-tile img, .masonry-grid img { width: 100%; height: 100%; object-fit: cover; display: block; }
.hero-image { min-height: 540px; opacity: 0.82; }
.hero-card-content { position: absolute; inset: auto 0 0 0; padding: 2rem; background: linear-gradient(180deg, transparent, rgba(16, 18, 20, 0.85)); color: #fff; }
.lead { color: var(--muted); max-width: 42rem; }
.hero-actions, .cta-actions { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 1.5rem; }
.section-space { padding: 4.5rem 0; }
.section-intro { margin-bottom: 2rem; max-width: 42rem; }
.soft-panel { background: linear-gradient(180deg, rgba(255,255,255,0.55), rgba(255,255,255,0.25)); }
.premium-card, .video-card, .info-card { background: var(--surface); overflow: hidden; height: 100%; }
.premium-card-body, .video-card-body, .info-card { padding: 1.5rem; }
.card-media { aspect-ratio: 4 / 3; }
.category-card-link, .page-teaser-link { display: block; height: 100%; }
.category-card-link:hover { color: inherit; }
.category-card { transition: transform 0.2s ease, box-shadow 0.2s ease; }
.category-card:hover { transform: translateY(-4px); box-shadow: 0 24px 70px rgba(24, 29, 33, 0.12); }
.category-card-media-wrap { position: relative; overflow: hidden; }
.category-card-overlay { position: absolute; inset: auto 0 0 0; padding: 1.25rem 1.5rem; color: #fff; background: linear-gradient(180deg, transparent, rgba(18, 23, 28, 0.92)); }
.category-card-overlay h2, .category-card-overlay h3 { margin: 0; color: #fff; font-size: 2rem; }
.service-preview-list { list-style: none; padding: 0; margin: 1rem 0 1.25rem; display: grid; gap: 0.85rem; }
.service-preview-list li { display: grid; gap: 0.2rem; padding-top: 0.85rem; border-top: 1px solid var(--line); }
.service-preview-list strong { font-size: 0.98rem; }
.service-preview-list span { color: var(--muted); font-size: 0.92rem; line-height: 1.5; }
.service-preview-list.compact { margin-bottom: 0; }
.gallery-strip { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
.gallery-tile { margin: 0; overflow: hidden; border-radius: 1.2rem; min-height: 220px; background: #e7e0d7; }
.gallery-tile img, .masonry-grid img { transition: transform 0.4s ease; }
.gallery-tile:hover img, .lightbox-trigger:hover img { transform: scale(1.03); }
.cta-section { padding: 2rem 0 5rem; }
.cta-panel { background: linear-gradient(135deg, #1c2228, #2f3942); color: #fff; padding: 2rem; display: flex; justify-content: space-between; gap: 1.5rem; align-items: center; }
.text-link { color: var(--accent-dark); font-weight: 700; }
.detail-cover { border-radius: 1.5rem; aspect-ratio: 5 / 4; object-fit: cover; }
.detail-hero-form { background: rgba(255,255,255,0.78); padding: 1.6rem; border: 1px solid rgba(255,255,255,0.8); border-radius: 1.5rem; box-shadow: var(--shadow); }
.detail-hero-form h2 { margin-bottom: 0.75rem; }
.detail-hero-form-intro { color: var(--muted); margin-bottom: 1.25rem; }
.detail-hero-form .glass-form { margin: 0; padding: 0; background: transparent; border: 0; box-shadow: none; }
.rich-copy, .legal-copy { background: rgba(255, 255, 255, 0.7); padding: 2rem; border-radius: 1.5rem; box-shadow: var(--shadow); line-height: 1.85; }
.info-stack { display: grid; gap: 1rem; }
.price-board-card h3 { margin-bottom: 1rem; }
.price-board-image { width: 100%; border-radius: 1rem; display: block; border: 1px solid var(--line); }
.info-card .glass-form { margin-top: 1rem; padding: 0; background: transparent; border: 0; box-shadow: none; }
.service-duration { display: inline-flex; align-items: center; padding: 0.45rem 0.8rem; border-radius: 999px; background: rgba(198, 163, 102, 0.14); color: var(--accent-dark); font-weight: 700; }
.contact-layout-row { align-items: stretch; }
.contact-main-column { display: flex; flex-direction: column; }
.contact-map-shell { min-height: 420px; display: flex; }
.contact-map-shell + .contact-form-wrap { margin-top: 2rem; }
.map-card {
    padding: 0;
    overflow: hidden;
}
.contact-map-card { width: 100%; height: 100%; }

.map-embed-frame {
    width: 100%;
    height: 100%;
    min-height: 420px;
    border: 0;
    display: block;
}
.empty-media-note { padding: 1.6rem 1.8rem; border-radius: 1.4rem; background: rgba(255,255,255,0.82); border: 1px solid var(--line); box-shadow: var(--shadow); max-width: 46rem; }
.empty-media-note h3 { margin-bottom: 0.6rem; }
.masonry-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.lightbox-trigger { padding: 0; border: 0; border-radius: 1.2rem; overflow: hidden; background: transparent; min-height: 240px; }
.filter-bar { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-bottom: 2rem; }
.filter-chip { padding: 0.7rem 1rem; border-radius: 999px; background: rgba(255,255,255,0.7); border: 1px solid var(--line); font-weight: 700; }
.filter-chip.active { background: var(--ink); color: #fff; }
.glass-form { background: rgba(255,255,255,0.78); padding: 1.5rem; border: 1px solid rgba(255,255,255,0.8); }
.glass-form .form-control, .glass-form .form-select { border-radius: 0.95rem; border-color: rgba(31,35,39,0.12); padding: 0.85rem 1rem; }
.site-footer { padding: 4rem 0 2rem; border-top: 1px solid var(--line); }
.footer-brand { display: flex; align-items: center; gap: 1rem; margin-bottom: 1rem; }
.footer-brand-copy { display: grid; gap: 0.15rem; }
.footer-brand-name { font-family: "Cormorant Garamond", serif; font-size: 2rem; line-height: 1; }
.footer-brand-media { flex: 0 0 auto; }
.footer-logo-image { max-width: min(320px, 64vw); width: auto; display: block; object-fit: contain; }
.footer-intro { color: var(--muted); max-width: 34rem; }
.footer-list { padding: 0; list-style: none; margin: 0; display: grid; gap: 0.6rem; color: var(--muted); }
.footer-meta { margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; color: var(--muted); }
.lightbox-modal { background: rgba(17, 18, 20, 0.9); border: 0; padding: 0 1rem 1rem; }
.flash-modal { border: 0; border-radius: 1.6rem; overflow: hidden; background: linear-gradient(180deg, rgba(255,255,255,0.98), rgba(247,244,238,0.98)); box-shadow: var(--shadow); }
.flash-modal.is-success { border-top: 5px solid #8fba7a; }
.flash-modal.is-error { border-top: 5px solid #c56d6d; }
.flash-modal .btn-close { position: relative; z-index: 2; }
.flash-modal-body { padding: 0 2rem 2rem; }
.flash-modal-body h2 { margin: 0; font-size: clamp(2rem, 3vw, 2.6rem); line-height: 1.1; }

@media (max-width: 991px) {
    .gallery-strip, .masonry-grid { grid-template-columns: repeat(2, 1fr); }
    .cta-panel { flex-direction: column; align-items: flex-start; }
    .contact-map-shell { min-height: 360px; }
}

@media (max-width: 767px) {
    .hero-section, .page-hero, .detail-hero, .section-space { padding: 3.5rem 0; }
    .gallery-strip, .masonry-grid { grid-template-columns: 1fr; }
    .brand-name { font-size: 1.5rem; }
    .navbar-brand { align-items: flex-start; }
    .footer-brand { flex-direction: column; align-items: flex-start; }
    .footer-brand-name { font-size: 1.6rem; }
    .footer-logo-image { max-width: min(240px, 72vw); }
    .display-2 { font-size: 2.9rem; }
    .flash-modal-body { padding: 0 1.25rem 1.5rem; }
    .flash-modal-body h2 { font-size: 1.75rem; }
    .contact-map-shell + .contact-form-wrap { margin-top: 1.5rem; }
    .contact-map-shell { min-height: 320px; }
    .map-embed-frame { min-height: 320px; }
}
