:root {
    --green-dark: #294315;
    --green: #3f5c24;
    --green-soft: #60733a;
    --coral: #df6670;
    --coral-dark: #cb505d;
    --cream: #f9f4e9;
    --cream-light: #fffdf8;
    --sand: #efe6d7;
    --ink: #2f2e28;
    --muted: #6f6c62;
    --white: #fff;
    --container: min(1180px, calc(100% - 48px));
    --serif: Georgia, "Times New Roman", serif;
    --script: "Segoe Print", "Bradley Hand", "Brush Script MT", cursive;
    --sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --shadow: 0 18px 45px rgba(43, 63, 24, .13);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    color: var(--ink);
    background: var(--cream-light);
    font-family: var(--sans);
    line-height: 1.58;
    overflow-x: hidden;
}
body.modal-open { overflow: hidden; }
img { display: block; width: 100%; max-width: 100%; }
a { color: inherit; }
button { font: inherit; color: inherit; }
.container { width: var(--container); margin-inline: auto; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; z-index: 9999; top: -5rem; left: 1rem; padding: .65rem 1rem; background: #fff; border-radius: 8px; }
.skip-link:focus { top: 1rem; }

/* Header / logo */
.site-header { position: absolute; inset: 0 0 auto; z-index: 50; transition: background-color .22s ease, box-shadow .22s ease; }
.site-header.is-scrolled { position: fixed; background: rgba(250, 246, 237, .95); box-shadow: 0 8px 24px rgba(35, 52, 20, .11); backdrop-filter: blur(13px); }
.site-header:not(.is-scrolled) .main-nav > a:not(.nav-mail) {
    color: #fff;
    text-shadow: 0 2px 10px rgba(20, 30, 12, .88), 0 1px 2px rgba(20, 30, 12, .8);
}
.site-header:not(.is-scrolled) .main-nav > a:not(.nav-mail):hover { color: #ffe4dd; }
.site-header.is-scrolled .main-nav > a:not(.nav-mail) { color: var(--green-dark); text-shadow: none; }
.nav-inner { width: min(1380px, calc(100% - 44px)); min-height: 98px; margin-inline: auto; display: flex; align-items: flex-start; justify-content: space-between; gap: 26px; }
.logo { width: 190px; padding-top: 12px; text-decoration: none; line-height: .79; z-index: 52; }
.logo-line { display: block; font-family: var(--script); font-weight: 700; letter-spacing: -.08em; }
.logo-arte { color: var(--green-dark); font-size: 3.15rem; transform: rotate(-4deg); }
.logo-arte i { font: 700 1.35rem/1 var(--sans); vertical-align: top; margin-left: 3px; }
.logo-sana { margin: -2px 0 0 49px; color: var(--coral); font-size: 2.78rem; transform: rotate(-6deg); }
.logo small { display: block; margin-top: 9px; color: var(--green-dark); font-size: .53rem; font-weight: 850; letter-spacing: .17em; text-transform: uppercase; white-space: nowrap; }
.main-nav { display: flex; align-items: center; gap: 25px; padding-top: 31px; }
.main-nav a { text-decoration: none; font-size: .86rem; font-weight: 750; }
.main-nav > a:not(.nav-mail):hover { color: var(--coral-dark); }
.nav-mail { display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px; color: #fff; background: var(--green-dark); border-radius: 999px; box-shadow: 0 8px 20px rgba(38, 64, 18, .22); text-transform: uppercase; font-size: .7rem !important; letter-spacing: .03em; }
.nav-mail svg { width: 18px; fill: none; stroke: currentColor; stroke-width: 1.6; }
.menu-toggle { display: none; }

/* Hero */
.hero { min-height: 650px; display: grid; grid-template-columns: 43% 57%; background: var(--cream); overflow: hidden; }
.hero-copy { position: relative; z-index: 2; display: flex; align-items: center; min-width: 0; background: var(--cream); }
.hero-copy::after { content: ""; position: absolute; z-index: -1; inset: 0 -185px 0 auto; width: 240px; background: linear-gradient(90deg, var(--cream) 0%, rgba(249,244,233,.95) 35%, rgba(249,244,233,0) 100%); pointer-events: none; }
.hero-copy-inner { width: min(520px, calc(100% - 64px)); margin: 125px auto 50px; }
.hero h1 { margin: 0; color: var(--green-dark); font: 500 clamp(4.1rem, 5.8vw, 6.25rem)/.93 var(--script); letter-spacing: -.075em; transform: rotate(-2deg); }
.hero h1 span { display: inline-block; margin-left: 44px; }
.hero-lead { max-width: 360px; margin: 27px 0 20px 51px; font-size: 1.02rem; line-height: 1.62; }
.workshop-pill { max-width: 385px; margin: 0 0 17px 51px; padding: 10px 12px 9px 14px; display: grid; grid-template-columns: 1fr auto; gap: 2px 12px; align-items: center; background: rgba(255,255,255,.67); border: 1px solid rgba(63,92,36,.17); border-radius: 13px; box-shadow: 0 9px 20px rgba(47,68,26,.07); }
.workshop-pill span { display: block; color: var(--coral-dark); font-size: .65rem; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.workshop-pill strong { display: block; color: var(--green-dark); font: 600 .95rem var(--serif); }
.workshop-pill b { padding: 6px 10px; color: #fff; background: var(--coral); border-radius: 999px; font-size: .64rem; letter-spacing: .08em; text-transform: uppercase; }
.workshop-pill small { grid-column: 1 / -1; color: var(--muted); font-size: .7rem; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 42px; padding: 10px 18px; border: 0; border-radius: 999px; text-decoration: none; cursor: pointer; font-size: .68rem; font-weight: 850; letter-spacing: .03em; text-transform: uppercase; transition: .2s ease; }
.button:hover { transform: translateY(-2px); }
.button-coral { color: #fff; background: linear-gradient(135deg, var(--coral), #e87880); box-shadow: 0 10px 21px rgba(223,102,112,.25); }
.hero .button { margin-left: 51px; }
.hero-photo { min-height: 650px; background-image: linear-gradient(180deg, rgba(30,40,15,.12), transparent 26%), url("../img/hero-table.webp"); background-size: cover; background-position: center 48%; }
.hero-leaves { position: absolute; left: -5px; bottom: -5px; width: 145px; height: auto; fill: none; stroke: var(--green); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; opacity: .9; }

/* Intro */
.intro { position: relative; padding: 78px 0 72px; background: var(--cream-light); }
.intro-grid { display: grid; grid-template-columns: 43% 57%; align-items: center; gap: 54px; }
.intro-copy { position: relative; padding: 15px 0 25px 30px; }
.intro-copy h2 { margin: 0 0 26px; color: var(--green-dark); font: 500 clamp(2.3rem, 3.7vw, 3.55rem)/1.12 var(--serif); }
.intro-copy h2 em { color: var(--coral); font: 500 .9em/1 var(--script); }
.intro-copy h2 span { color: var(--green); font-family: var(--script); }
.intro-copy p { max-width: 480px; margin: 0 0 19px; font-size: .95rem; }
.intro-leaves { position: absolute; left: -12px; bottom: -54px; width: 175px; fill: none; stroke: var(--green); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.intro-media { display: grid; grid-template-columns: 1fr 1.13fr; gap: 18px; align-items: stretch; }
.intro-media figure { height: 360px; margin: 0; overflow: hidden; background: var(--sand); }
.intro-media img { height: 100%; object-fit: cover; }
.intro-media figure:first-child img { object-position: center 51%; }
.intro-media figure:last-child img { object-position: center; }

/* Features */
.features { padding: 36px 0 45px; background: radial-gradient(circle at 35% 0%, #fffdf8 0, #f6efe2 64%, #f9f5ed 100%); border-top: 1px solid rgba(58,79,35,.04); }
.section-title { text-align: center; }
.section-title h2 { margin: 0; color: var(--green-dark); font: 500 clamp(2rem, 3.2vw, 3rem)/1.1 var(--serif); }
.section-title p { max-width: 800px; margin: 7px auto 0; font-size: .83rem; line-height: 1.55; }
.flourish { display: flex; align-items: center; justify-content: center; gap: 7px; height: 25px; color: var(--green-soft); }
.flourish span { transform: rotate(90deg); }
.flourish i { color: var(--coral); font-style: normal; }
.feature-grid { display: grid; grid-template-columns: repeat(6, 1fr); margin-top: 20px; }
.feature-card { min-height: 122px; padding: 10px 15px 0; display: flex; flex-direction: column; align-items: center; text-align: center; border-right: 1px solid rgba(58,79,35,.15); }
.feature-card:last-child { border-right: 0; }
.feature-icon { width: 57px; height: 57px; display: grid; place-items: center; border-radius: 50%; background: rgba(255,255,255,.62); }
.feature-icon svg { width: 32px; height: 32px; fill: none; stroke: var(--green); stroke-width: 1.65; stroke-linecap: round; stroke-linejoin: round; }
.feature-card:nth-child(4) .feature-icon svg { stroke: var(--coral); }
.feature-card p { max-width: 135px; margin: 10px 0 0; color: #262d1d; font: 600 .86rem/1.25 var(--serif); }

/* Gallery */
.gallery-section { padding: 33px 0 25px; background: var(--cream-light); }
.gallery-container { position: relative; }
.paint-line { display: block; width: 178px; height: 4px; margin: 7px auto 18px; background: var(--coral); border-radius: 70% 30%; transform: rotate(-1deg); }
.gallery-stage { position: relative; }
.gallery-viewport { overflow: hidden; }
.gallery-track { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 40px) / 5); gap: 10px; transition: transform .36s ease; will-change: transform; }
.gallery-item { height: 225px; padding: 0; overflow: hidden; border: 0; background: var(--sand); cursor: zoom-in; }
.gallery-item img { height: 100%; object-fit: cover; transition: transform .35s ease; }
.gallery-item:hover img { transform: scale(1.035); }
.gallery-item:nth-child(1) img { object-position: center 45%; }
.gallery-item:nth-child(2) img { object-position: center 50%; }
.gallery-item:nth-child(3) img { object-position: center 48%; }
.gallery-item:nth-child(4) img { object-position: center 43%; }
.gallery-item:nth-child(5) img { object-position: center 42%; }
.gallery-arrow {
    position: absolute;
    top: 50%;
    z-index: 3;
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    padding: 0;
    color: #fff;
    background: var(--coral);
    border: 2px solid rgba(255,255,255,.92);
    border-radius: 50%;
    box-shadow: 0 7px 18px rgba(190,75,85,.28);
    cursor: pointer;
    transform: translateY(-50%);
    transition: transform .18s ease, opacity .18s ease, background-color .18s ease;
}
.gallery-arrow:hover:not(:disabled) { background: var(--coral-dark); transform: translateY(-50%) scale(1.06); }
.gallery-arrow svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round; }
.gallery-prev { left: -20px; }
.gallery-next { right: -20px; }
.gallery-arrow:disabled { opacity: .3; cursor: default; box-shadow: none; }
.video-row { display: flex; justify-content: center; margin-top: 13px; }
.play { display: inline-grid; place-items: center; width: 19px; height: 19px; padding-left: 2px; background: #fff; color: var(--coral); border-radius: 50%; font-size: .55rem; }

/* Location */
.location { min-height: 405px; display: grid; grid-template-columns: 61% 39%; background: var(--cream); }
.location-photo { min-height: 405px; background-image: linear-gradient(90deg, transparent 72%, rgba(249,244,233,.96)), url("../img/finca-view.webp"); background-size: cover; background-position: center; }
.location-copy { position: relative; display: flex; flex-direction: column; justify-content: center; padding: 50px max(36px, calc((100vw - 1180px) / 2)) 48px 34px; overflow: hidden; }
.location-copy h2 { margin: 0 0 17px; color: var(--green-dark); font: 500 clamp(2rem, 3vw, 3.05rem)/1.14 var(--serif); }
.location-copy h2 em { color: var(--coral); font: 500 .88em/1 var(--script); }
.location-copy h2 span { color: var(--green); font-family: var(--script); }
.location-copy > p { max-width: 510px; margin: 0 0 17px; font-size: .9rem; }
.address { display: flex; align-items: flex-start; gap: 8px; color: var(--green-dark); font-size: .83rem !important; }
.address svg { width: 18px; min-width: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.location-leaves { position: absolute; right: -12px; bottom: -10px; width: 155px; fill: none; stroke: var(--green); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

/* Contact */
.contact { position: relative; padding: 35px 0 31px; color: #fff; background: linear-gradient(135deg, #37551f, #263d16); overflow: hidden; }
.contact::before { content: ""; position: absolute; inset: -15px 0 auto; height: 22px; background: var(--cream); clip-path: polygon(0 42%,4% 70%,9% 46%,15% 78%,21% 43%,28% 70%,34% 41%,41% 75%,47% 39%,54% 70%,60% 43%,68% 78%,75% 41%,82% 72%,89% 42%,95% 69%,100% 43%,100% 0,0 0); }
.contact-grid { display: grid; grid-template-columns: 1.05fr 1.15fr .68fr; align-items: center; gap: 38px; }
.contact-intro h2 { margin: 0 0 4px; font: 500 clamp(2rem, 3vw, 2.75rem)/1 var(--script); transform: rotate(-2deg); }
.contact-intro p { margin: 0; max-width: 420px; color: rgba(255,255,255,.88); font-size: .85rem; }
.contact-mail { display: flex; align-items: center; gap: 16px; }
.mail-icon { width: 66px; height: 66px; flex: 0 0 66px; display: grid; place-items: center; color: var(--green-dark); background: #f8f0dc; border-radius: 50%; }
.mail-icon svg { width: 31px; fill: none; stroke: currentColor; stroke-width: 1.3; }
.email-address { display: block; margin-bottom: 8px; text-decoration: none; font-size: .8rem; font-weight: 750; overflow-wrap: anywhere; }
.signature { min-height: 86px; padding-left: 28px; display: flex; flex-direction: column; justify-content: center; border-left: 1px solid rgba(255,255,255,.25); }
.signature > span { color: var(--coral); font-size: 2.35rem; line-height: .85; }
.signature strong { font: 600 1.05rem var(--serif); }
.signature small { color: rgba(255,255,255,.82); }
.contact-flower { position: absolute; left: 34px; bottom: -30px; color: rgba(233,110,121,.82); font-size: 7.5rem; transform: rotate(-15deg); }
.site-footer { padding: 13px 0; background: #f5efe5; color: #757064; font-size: .66rem; }
.site-footer .container { display: flex; justify-content: space-between; gap: 20px; }

/* Modal / lightbox */
.lightbox, .video-modal { position: fixed; inset: 0; z-index: 1000; display: grid; place-items: center; padding: 24px; background: rgba(18,25,12,.93); backdrop-filter: blur(7px); }
.lightbox[hidden], .video-modal[hidden] { display: none; }
.lightbox-stage {
    width: min(1320px, 100%);
    min-width: 0;
    height: calc(100vh - 48px);
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr) 58px;
    align-items: center;
    gap: 18px;
}
.lightbox figure { min-width: 0; margin: 0; max-height: 88vh; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.lightbox img { width: auto; max-width: 100%; max-height: 78vh; object-fit: contain; box-shadow: 0 25px 70px rgba(0,0,0,.45); }
.lightbox figcaption { min-height: 1.6em; margin-top: 12px; color: rgba(255,255,255,.9); text-align: center; }
.modal-close, .modal-arrow {
    z-index: 2;
    display: grid;
    place-items: center;
    padding: 0;
    color: #fff;
    background: rgba(255,255,255,.13);
    border: 1px solid rgba(255,255,255,.28);
    border-radius: 50%;
    cursor: pointer;
    box-shadow: 0 10px 30px rgba(0,0,0,.2);
    transition: background-color .18s ease, transform .18s ease;
}
.modal-close:hover, .modal-arrow:hover { background: rgba(255,255,255,.22); }
.modal-close svg, .modal-arrow svg { fill: none; stroke: currentColor; stroke-width: 2.1; stroke-linecap: round; stroke-linejoin: round; }
.modal-close { position: fixed; top: 22px; right: 22px; width: 50px; height: 50px; }
.modal-close:hover { transform: rotate(4deg) scale(1.04); }
.modal-close svg { width: 25px; height: 25px; }
.modal-arrow { position: relative; width: 54px; height: 54px; justify-self: center; }
.modal-arrow:hover { transform: scale(1.06); }
.modal-arrow svg { width: 25px; height: 25px; }
.lightbox-prev { grid-column: 1; }
.lightbox figure { grid-column: 2; }
.lightbox-next { grid-column: 3; }
.video-shell { width: min(900px, 92vw); max-height: 86vh; display: grid; place-items: center; }
.video-shell video { max-width: 100%; max-height: 84vh; background: #000; box-shadow: 0 25px 70px rgba(0,0,0,.45); }

.reveal { opacity: 0; transform: translateY(16px); transition: opacity .55s ease, transform .55s ease; }
.reveal.is-visible { opacity: 1; transform: none; }

@media (max-width: 1120px) {
    .main-nav { gap: 16px; }
    .main-nav a { font-size: .79rem; }
    .hero { grid-template-columns: 46% 54%; }
    .hero-copy-inner { width: calc(100% - 46px); }
    .hero-lead, .workshop-pill, .hero .button { margin-left: 28px; }
    .intro-grid { grid-template-columns: 42% 58%; gap: 35px; }
    .contact-grid { grid-template-columns: 1fr 1.1fr; }
    .signature { grid-column: 1 / -1; min-height: auto; padding: 18px 0 0; flex-direction: row; align-items: center; gap: 10px; border-left: 0; border-top: 1px solid rgba(255,255,255,.22); }
    .signature small { margin-left: auto; }
}

@media (max-width: 900px) {
    .nav-inner { min-height: 88px; width: calc(100% - 28px); align-items: flex-start; }
    .logo { width: 155px; padding-top: 9px; }
    .logo-arte { font-size: 2.55rem; }
    .logo-sana { margin-left: 40px; font-size: 2.25rem; }
    .logo small { font-size: .44rem; }
    .menu-toggle { position: relative; z-index: 52; width: 46px; height: 46px; margin-top: 18px; display: grid; place-content: center; gap: 5px; background: rgba(255,253,248,.94); border: 1px solid rgba(43,67,21,.18); border-radius: 50%; box-shadow: 0 8px 20px rgba(35,52,20,.11); }
    .menu-toggle span { width: 19px; height: 2px; background: var(--green-dark); transition: .2s ease; }
    .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); }
    .main-nav { position: fixed; inset: 0; min-height: 100vh; padding: 115px 27px 45px; flex-direction: column; align-items: stretch; gap: 0; background: rgba(255,253,248,.985); transform: translateY(-105%); transition: transform .28s ease; }
    .main-nav.is-open { transform: translateY(0); }
    .main-nav a,
    .site-header:not(.is-scrolled) .main-nav > a:not(.nav-mail) { padding: 12px 6px; color: var(--green-dark); text-shadow: none; font-size: 1.03rem; border-bottom: 1px solid rgba(43,67,21,.1); }
    .nav-mail { justify-content: center; margin-top: 16px; border-bottom: 0 !important; }
    .hero { min-height: auto; grid-template-columns: 1fr; }
    .hero-copy { min-height: 560px; }
    .hero-copy::after { display: none; }
    .hero-copy-inner { width: min(600px, calc(100% - 44px)); margin: 116px auto 45px; }
    .hero h1 { font-size: clamp(4rem, 14vw, 6.1rem); }
    .hero-lead, .workshop-pill, .hero .button { margin-left: 40px; }
    .hero-photo { min-height: 62vw; max-height: 600px; background-position: center 48%; }
    .intro-grid { grid-template-columns: 1fr; }
    .intro-copy { padding-left: 0; }
    .intro-media figure { height: 330px; }
    .feature-grid { grid-template-columns: repeat(3, 1fr); }
    .feature-card:nth-child(3) { border-right: 0; }
    .feature-card:nth-child(-n+3) { border-bottom: 1px solid rgba(58,79,35,.15); }
    .gallery-track { grid-auto-columns: calc((100% - 20px) / 3); }
    .location { grid-template-columns: 1fr; }
    .location-photo { min-height: 430px; background-image: linear-gradient(180deg, transparent 72%, rgba(249,244,233,.96)), url("../img/finca-view.webp"); }
    .location-copy { padding: 42px 30px 55px; }
    .contact-grid { grid-template-columns: 1fr; gap: 26px; }
    .signature { grid-column: auto; }
}

@media (max-width: 600px) {
    :root { --container: min(100% - 28px, 1180px); }
    .hero-copy { min-height: 600px; }
    .hero-copy-inner { width: calc(100% - 32px); }
    .hero h1 { font-size: 4.25rem; }
    .hero h1 span { margin-left: 20px; }
    .hero-lead, .workshop-pill, .hero .button { margin-left: 18px; }
    .hero-lead { max-width: 310px; font-size: .98rem; }
    .workshop-pill { width: calc(100% - 18px); grid-template-columns: 1fr; }
    .workshop-pill b { justify-self: start; }
    .hero .button { width: calc(100% - 18px); }
    .hero-photo { min-height: 86vw; background-position: center; }
    .hero-leaves { width: 100px; }
    .intro { padding: 58px 0; }
    .intro-copy h2 { font-size: 2.35rem; }
    .intro-media { grid-template-columns: 1fr 1fr; gap: 9px; }
    .intro-media figure { height: 270px; }
    .feature-grid { grid-template-columns: repeat(2, 1fr); }
    .feature-card:nth-child(3) { border-right: 1px solid rgba(58,79,35,.15); }
    .feature-card:nth-child(even) { border-right: 0; }
    .feature-card:nth-child(-n+4) { border-bottom: 1px solid rgba(58,79,35,.15); }
    .gallery-track { grid-auto-columns: 82%; gap: 9px; }
    .gallery-item { height: 260px; }
    .gallery-prev { left: -8px; }
    .gallery-next { right: -8px; }
    .location-photo { min-height: 350px; }
    .contact-mail { align-items: flex-start; }
    .mail-icon { width: 56px; height: 56px; flex-basis: 56px; }
    .email-address { font-size: .72rem; }
    .contact-mail .button { width: 100%; }
    .signature { display: grid; grid-template-columns: auto 1fr; }
    .signature small { grid-column: 2; margin-left: 0; }
    .site-footer .container { flex-direction: column; align-items: center; text-align: center; gap: 3px; }
    .lightbox, .video-modal { padding: 12px; }
    .lightbox-stage { width: 100%; height: calc(100vh - 24px); grid-template-columns: 42px minmax(0, 1fr) 42px; gap: 4px; }
    .modal-arrow { width: 40px; height: 40px; }
    .modal-arrow svg { width: 21px; height: 21px; }
    .modal-close { top: 12px; right: 12px; width: 44px; height: 44px; }
    .lightbox img { max-height: 74vh; }
    .lightbox figcaption { font-size: .83rem; }
}

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

/* v2.2 navigation, anchors and mobile refinements */
#inicio,
#talleres,
#galeria,
#lugar,
#contacto {
    scroll-margin-top: 92px;
}

@media (min-width: 901px) {
    .site-header:not(.is-scrolled) .main-nav {
        margin-top: 21px;
        padding: 8px 10px;
        gap: 20px;
        background: rgba(31, 53, 15, .34);
        border: 1px solid rgba(255, 255, 255, .18);
        border-radius: 999px;
        box-shadow: 0 10px 30px rgba(20, 31, 11, .16);
        backdrop-filter: blur(5px);
    }

    .site-header:not(.is-scrolled) .main-nav .nav-mail {
        margin: -1px -2px -1px 0;
    }

    .site-header.is-scrolled .main-nav {
        margin-top: 0;
        padding-top: 31px;
        background: transparent;
        border: 0;
        border-radius: 0;
        box-shadow: none;
        backdrop-filter: none;
    }
}

@media (max-width: 900px) {
    #inicio,
    #talleres,
    #galeria,
    #lugar,
    #contacto {
        scroll-margin-top: 78px;
    }

    .nav-inner {
        min-height: 112px;
        align-items: flex-start;
    }

    .logo {
        padding-top: 10px;
    }

    .menu-toggle {
        margin-top: 23px;
    }

    .site-header.is-scrolled .nav-inner {
        min-height: 72px;
        align-items: center;
    }

    .site-header.is-scrolled .logo {
        width: 118px;
        padding-top: 0;
        line-height: .72;
    }

    .site-header.is-scrolled .logo-arte {
        font-size: 2rem;
    }

    .site-header.is-scrolled .logo-sana {
        margin-left: 31px;
        font-size: 1.75rem;
    }

    .site-header.is-scrolled .logo small {
        display: none;
    }

    .site-header.is-scrolled .menu-toggle {
        margin-top: 0;
    }

    .main-nav {
        overflow-y: auto;
        overscroll-behavior: contain;
    }

    .main-nav a {
        min-height: 48px;
        display: flex;
        align-items: center;
    }

    .hero-copy {
        min-height: 0;
        padding: 154px 0 52px;
    }

    .hero-copy-inner {
        margin: 0 auto;
    }

    .intro-grid {
        gap: 30px;
    }

    .intro-copy {
        padding-bottom: 8px;
    }

    .intro-leaves {
        bottom: -36px;
    }

    .contact-grid {
        gap: 22px;
    }
}

@media (max-width: 600px) {
    .nav-inner {
        width: calc(100% - 24px);
        min-height: 118px;
    }

    .logo {
        width: 148px;
    }

    .logo-arte {
        font-size: 2.45rem;
    }

    .logo-sana {
        margin-left: 38px;
        font-size: 2.15rem;
    }

    .logo small {
        margin-top: 8px;
        font-size: .41rem;
        letter-spacing: .14em;
    }

    .menu-toggle {
        width: 44px;
        height: 44px;
        margin-top: 21px;
    }

    .hero-copy {
        padding: 166px 0 44px;
    }

    .hero-copy-inner {
        width: calc(100% - 28px);
    }

    .hero h1 {
        font-size: clamp(3.35rem, 16vw, 4.15rem);
        line-height: .96;
    }

    .hero h1 span {
        margin-left: 14px;
    }

    .hero-lead,
    .workshop-pill,
    .hero .button {
        margin-left: 8px;
    }

    .hero-lead {
        margin-top: 24px;
        margin-bottom: 18px;
    }

    .workshop-pill {
        width: calc(100% - 16px);
        padding: 12px 13px;
        gap: 5px 10px;
    }

    .workshop-pill b {
        grid-column: 2;
        grid-row: 1;
        align-self: center;
        justify-self: end;
    }

    .workshop-pill small {
        margin-top: 2px;
    }

    .hero .button {
        width: auto;
        max-width: calc(100% - 16px);
        padding-inline: 17px;
    }

    .hero-photo {
        min-height: 72vw;
        max-height: none;
        background-position: center 48%;
    }

    .intro {
        padding: 52px 0 50px;
    }

    .intro-grid {
        gap: 24px;
    }

    .intro-copy h2 {
        margin-bottom: 20px;
        font-size: clamp(2.05rem, 10.5vw, 2.65rem);
    }

    .intro-copy p {
        margin-bottom: 14px;
        font-size: .92rem;
    }

    .intro-leaves {
        width: 128px;
        bottom: -22px;
        opacity: .82;
    }

    .intro-media {
        gap: 8px;
    }

    .intro-media figure {
        height: 218px;
        border-radius: 2px;
    }

    .features {
        padding: 32px 0 34px;
    }

    .section-title h2 {
        font-size: clamp(2rem, 10vw, 2.55rem);
    }

    .section-title p {
        font-size: .79rem;
    }

    .feature-grid {
        margin-top: 17px;
        gap: 1px;
        background: rgba(58, 79, 35, .12);
    }

    .feature-card,
    .feature-card:nth-child(3),
    .feature-card:nth-child(even),
    .feature-card:nth-child(-n+4) {
        min-height: 126px;
        padding: 12px 9px 10px;
        background: #f8f2e8;
        border: 0;
    }

    .feature-icon {
        width: 52px;
        height: 52px;
    }

    .feature-card p {
        margin-top: 8px;
        font-size: .79rem;
    }

    .gallery-section {
        padding: 30px 0 24px;
    }

    .paint-line {
        margin-bottom: 15px;
    }

    .gallery-stage {
        padding-inline: 12px;
    }

    .gallery-track {
        grid-auto-columns: 78%;
    }

    .gallery-item {
        height: 245px;
    }

    .gallery-prev {
        left: -2px;
    }

    .gallery-next {
        right: -2px;
    }

    .gallery-arrow {
        width: 36px;
        height: 36px;
    }

    .video-row {
        margin-top: 14px;
    }

    .video-row .button {
        max-width: 100%;
        padding-inline: 14px;
        font-size: .62rem;
    }

    .location-photo {
        min-height: 286px;
        background-position: center 52%;
    }

    .location-copy {
        padding: 34px 22px 42px;
    }

    .location-copy h2 {
        font-size: clamp(2rem, 10vw, 2.55rem);
    }

    .location-copy > p {
        font-size: .87rem;
    }

    .location-leaves {
        width: 108px;
        right: -30px;
        bottom: -22px;
        opacity: .5;
    }

    .contact {
        padding: 39px 0 34px;
    }

    .contact-grid {
        gap: 20px;
    }

    .contact-intro h2 {
        font-size: clamp(2.15rem, 11vw, 2.8rem);
    }

    .contact-intro p {
        font-size: .82rem;
    }

    .contact-mail {
        display: grid;
        grid-template-columns: 52px minmax(0, 1fr);
        align-items: center;
        gap: 12px;
    }

    .mail-icon {
        width: 52px;
        height: 52px;
        flex-basis: auto;
    }

    .contact-mail > div {
        min-width: 0;
    }

    .email-address {
        margin-bottom: 9px;
        font-size: .7rem;
    }

    .contact-mail .button {
        width: auto;
        min-width: 0;
        padding-inline: 15px;
    }

    .signature {
        min-height: 0;
        padding: 17px 0 0;
        display: grid;
        grid-template-columns: auto minmax(0, 1fr);
        column-gap: 10px;
        row-gap: 1px;
        border-top: 1px solid rgba(255,255,255,.22);
        border-left: 0;
    }

    .signature > span {
        grid-row: 1 / 3;
        align-self: center;
    }

    .signature small {
        grid-column: 2;
    }

    .contact-flower {
        left: -22px;
        bottom: -34px;
        font-size: 6.5rem;
        opacity: .55;
    }

    .lightbox-stage {
        height: calc(100dvh - 24px);
        grid-template-columns: 36px minmax(0, 1fr) 36px;
        gap: 2px;
    }

    .modal-arrow {
        width: 34px;
        height: 34px;
    }

    .lightbox img {
        max-height: 68dvh;
    }

    .lightbox figcaption {
        padding-inline: 4px;
        line-height: 1.35;
    }
}

@media (max-width: 360px) {
    .hero-copy {
        padding-top: 158px;
    }

    .hero h1 {
        font-size: 3.2rem;
    }

    .workshop-pill {
        grid-template-columns: 1fr;
    }

    .workshop-pill b {
        grid-column: 1;
        grid-row: auto;
        justify-self: start;
    }

    .intro-media figure {
        height: 195px;
    }

    .gallery-item {
        height: 225px;
    }
}

body.menu-open { overflow: hidden; }
.main-nav > a.is-active:not(.nav-mail) { color: var(--coral-dark); }
.site-header:not(.is-scrolled) .main-nav > a.is-active:not(.nav-mail) { color: #ffe0d9; }
@media (max-width: 900px) {
    .site-header:not(.is-scrolled) .main-nav > a.is-active:not(.nav-mail) { color: var(--coral-dark); }
}

.hero-copy-inner { position: relative; z-index: 1; }

@media (max-width: 900px) {
    .intro-leaves {
        position: static;
        display: block;
        width: 138px;
        height: 72px;
        margin: -6px 0 -10px;
    }

    .signature {
        min-height: 0;
        padding: 17px 0 0;
        display: grid;
        grid-template-columns: auto minmax(0, 1fr);
        column-gap: 10px;
        row-gap: 1px;
        border-top: 1px solid rgba(255,255,255,.22);
        border-left: 0;
    }

    .signature > span {
        grid-row: 1 / 3;
        align-self: center;
    }

    .signature small {
        grid-column: 2;
        margin-left: 0;
    }

    .contact-flower {
        top: 18px;
        right: 18px;
        bottom: auto;
        left: auto;
        font-size: 4.5rem;
        opacity: .16;
        transform: rotate(-12deg);
    }

    .reveal {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

@media (max-width: 600px) {
    .intro-leaves {
        width: 116px;
        height: 62px;
        margin: -8px 0 -8px;
    }
}

@media (max-width: 900px) {
    .hero-leaves { display: none; }
}

/* v2.3 social sharing */
.share-panel {
    grid-column: 1 / -1;
    min-width: 0;
    padding-top: 20px;
    display: grid;
    grid-template-columns: minmax(190px, .75fr) minmax(0, 1.25fr);
    align-items: center;
    gap: 18px 28px;
    border-top: 1px solid rgba(255,255,255,.22);
}
.share-copy {
    display: flex;
    flex-direction: column;
    line-height: 1.35;
}
.share-copy strong { font: 600 1rem var(--serif); }
.share-copy small { color: rgba(255,255,255,.76); font-size: .74rem; }
.share-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 10px; }
.share-button {
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    padding: 9px 16px;
    border: 1px solid rgba(255,255,255,.38);
    border-radius: 999px;
    color: #fff;
    background: rgba(255,255,255,.08);
    text-decoration: none;
    cursor: pointer;
    font-size: .67rem;
    font-weight: 850;
    letter-spacing: .03em;
    text-transform: uppercase;
    transition: transform .2s ease, background-color .2s ease, border-color .2s ease;
}
.share-button:hover { transform: translateY(-2px); background: rgba(255,255,255,.15); border-color: rgba(255,255,255,.62); }
.share-button:focus-visible { outline: 3px solid rgba(255,255,255,.65); outline-offset: 3px; }
.share-button svg { width: 19px; height: 19px; flex: 0 0 19px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.share-whatsapp { color: var(--green-dark); background: #fffaf0; border-color: #fffaf0; }
.share-whatsapp:hover { background: #fff; border-color: #fff; }
.share-whatsapp svg path:first-child { fill: none; }
.share-status { grid-column: 1 / -1; min-height: 1em; margin-top: -10px; color: #ffe3dc; text-align: right; font-size: .72rem; }

@media (max-width: 900px) {
    .share-panel { grid-template-columns: 1fr; gap: 13px; }
    .share-actions { justify-content: flex-start; }
    .share-status { margin-top: -4px; text-align: left; }
}

@media (max-width: 600px) {
    .share-panel { padding-top: 18px; }
    .share-actions { display: grid; grid-template-columns: 1fr; }
    .share-button { width: 100%; padding-inline: 13px; }
}

/* Events / booking module v3 */
.eyebrow { display:block; margin-bottom:7px; color:var(--coral-dark); font-size:.7rem; font-weight:850; letter-spacing:.14em; text-transform:uppercase; }
.events-section { padding:76px 0 84px; background:linear-gradient(180deg,#f8f2e7 0%,#fffdf8 100%); }
.event-card-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; margin-top:34px; }
.event-card { min-width:0; overflow:hidden; background:#fff; border:1px solid rgba(63,92,36,.12); border-radius:21px; box-shadow:0 18px 44px rgba(41,67,21,.1); transition:transform .22s ease,box-shadow .22s ease; }
.event-card:hover { transform:translateY(-5px); box-shadow:0 24px 52px rgba(41,67,21,.16); }
.event-card-image { position:relative; display:block; height:245px; overflow:hidden; background:var(--sand); }
.event-card-image img { width:100%; height:100%; object-fit:cover; transition:transform .4s ease; }
.event-card:hover .event-card-image img { transform:scale(1.035); }
.event-date-badge { position:absolute; top:15px; left:15px; width:58px; min-height:64px; display:grid; place-content:center; text-align:center; color:#fff; background:rgba(41,67,21,.93); border-radius:14px; box-shadow:0 8px 20px rgba(0,0,0,.18); }
.event-date-badge b { font:700 1.45rem/1 var(--serif); }
.event-date-badge small { margin-top:4px; font-size:.62rem; font-weight:850; letter-spacing:.1em; }
.event-card-body { padding:23px 23px 21px; }
.event-meta { display:flex; flex-wrap:wrap; gap:8px 16px; color:var(--green-soft); font-size:.72rem; font-weight:750; }
.event-card h3 { margin:10px 0 9px; color:var(--green-dark); font:600 1.55rem/1.18 var(--serif); }
.event-card h3 a { text-decoration:none; }
.event-card-body>p { min-height:3.2em; margin:0 0 17px; color:var(--muted); font-size:.88rem; }
.event-card-facts { display:grid; grid-template-columns:1fr 1fr; gap:10px; padding:13px 0; border-top:1px solid rgba(63,92,36,.12); border-bottom:1px solid rgba(63,92,36,.12); font-size:.73rem; color:var(--muted); }
.event-card-facts strong { color:var(--ink); }
.event-card-footer { display:flex; align-items:center; justify-content:space-between; gap:12px; padding-top:17px; }
.availability { display:inline-flex; align-items:center; width:max-content; padding:6px 10px; border-radius:999px; font-size:.66rem; font-weight:850; letter-spacing:.025em; }
.availability-open { color:#31561e; background:#e5f1db; }
.availability-limited { color:#704f05; background:#fff1c7; }
.availability-last { color:#8a3037; background:#ffe0e3; }
.availability-full,.availability-closed { color:#6e5c55; background:#eee7e2; }
.availability-cancelled { color:#fff; background:#9e444b; }
.text-link { color:var(--coral-dark); font-size:.73rem; font-weight:850; text-decoration:none; }
.workshop-pill b.status-open { background:var(--green); }
.workshop-pill b.status-limited { background:#9b740e; }
.workshop-pill b.status-last,.workshop-pill b.status-full,.workshop-pill b.status-closed { background:var(--coral); }

/* Event detail */
.inner-page { background:#fffdf8; }
.inner-site-header { position:fixed!important; }
.event-page-main { padding-top:98px; }
.event-detail-hero { display:grid; grid-template-columns:minmax(0,1.12fr) minmax(420px,.88fr); min-height:570px; background:var(--cream); }
.event-detail-image { min-height:570px; overflow:hidden; }
.event-detail-image img { width:100%; height:100%; object-fit:cover; }
.event-detail-heading { display:flex; flex-direction:column; justify-content:center; align-items:flex-start; padding:70px clamp(35px,6vw,92px); }
.back-link { margin-bottom:24px; color:var(--green); font-size:.78rem; font-weight:800; text-decoration:none; }
.event-detail-heading h1 { max-width:620px; margin:18px 0 15px; color:var(--green-dark); font:500 clamp(2.5rem,4.4vw,4.8rem)/1.02 var(--serif); }
.event-detail-heading>p { max-width:550px; margin:0 0 25px; color:var(--muted); font-size:1rem; }
.event-detail-meta { width:100%; display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.event-detail-meta span { padding:13px 14px; background:rgba(255,255,255,.66); border:1px solid rgba(63,92,36,.12); border-radius:13px; color:var(--ink); font-size:.8rem; }
.event-detail-meta b { display:block; margin-bottom:3px; color:var(--coral-dark); font-size:.62rem; letter-spacing:.1em; text-transform:uppercase; }
.event-detail-content { width:var(--container); margin:0 auto; padding:72px 0 90px; display:grid; grid-template-columns:minmax(0,1fr) 390px; align-items:start; gap:72px; }
.event-copy h2 { margin:0 0 22px; color:var(--green-dark); font:500 2.5rem/1.1 var(--serif); }
.event-copy h3 { margin:34px 0 12px; color:var(--green-dark); font:600 1.45rem/1.2 var(--serif); }
.event-copy p { max-width:760px; }
.policy-box { margin-top:36px; padding:22px 25px; background:#f6efe3; border-left:4px solid var(--coral); border-radius:0 15px 15px 0; }
.policy-box h3 { margin-top:0; }
/* v3.7.5 event sharing */
.event-share {
    display: grid;
    gap: 11px;
    margin-top: 32px;
    padding-top: 24px;
    border-top: 1px solid rgba(63,92,36,.13);
    font-size: .78rem;
}
.event-share-label { color: var(--muted); font-weight: 750; }
.event-share-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; }
.event-share-option {
    min-height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 8px 13px;
    border: 1px solid rgba(63,92,36,.16);
    border-radius: 999px;
    background: #fff;
    color: var(--green-dark);
    box-shadow: 0 5px 14px rgba(41,67,21,.055);
    font: inherit;
    font-weight: 800;
    text-decoration: none;
    cursor: pointer;
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}
.event-share-option[hidden] { display: none !important; }
.event-share-option:hover { transform: translateY(-2px); border-color: rgba(63,92,36,.32); box-shadow: 0 8px 18px rgba(41,67,21,.1); }
.event-share-option:focus-visible { outline: 3px solid rgba(223,102,112,.25); outline-offset: 2px; }
.event-share-option svg { width: 17px; height: 17px; flex: 0 0 17px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.event-share-whatsapp { color: #235d36; background: #f1f8ef; border-color: rgba(35,93,54,.18); }
.event-share-facebook { color: #315a9d; background: #f1f5fc; border-color: rgba(49,90,157,.18); }
.event-share-facebook svg { fill: currentColor; stroke: none; }
.event-share-instagram { color: #9a3d68; background: #fff2f3; border-color: rgba(154,61,104,.18); }
.event-share-instagram .event-share-dot { fill: currentColor; stroke: none; }
.event-share-copy { background: #fffdf8; }
.event-share .share-status { min-height: 1.1em; margin: 0; color: var(--muted); text-align: left; font-size: .72rem; }

@media (max-width: 580px) {
    .event-share-actions { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); }
    .event-share-option { width: 100%; padding-inline: 10px; }
}

@media (max-width: 390px) {
    .event-share-actions { grid-template-columns: 1fr; }
}
.booking-card { position:sticky; top:125px; padding:26px; background:#fff; border:1px solid rgba(63,92,36,.13); border-radius:20px; box-shadow:var(--shadow); }
.booking-price { padding-bottom:18px; border-bottom:1px solid rgba(63,92,36,.13); }
.booking-price span,.booking-price small { display:block; color:var(--muted); font-size:.75rem; }
.booking-price strong { display:block; margin:2px 0; color:var(--green-dark); font:700 2.1rem var(--serif); }
.booking-form { display:grid; gap:14px; margin-top:19px; }
.booking-form label:not(.check-label) { display:grid; gap:5px; color:var(--green-dark); font-size:.72rem; font-weight:800; }
.booking-form input,.booking-form select,.booking-form textarea { width:100%; min-height:45px; padding:10px 12px; border:1px solid rgba(63,92,36,.24); border-radius:10px; background:#fff; font:inherit; }
.booking-form input:focus,.booking-form select:focus,.booking-form textarea:focus { outline:2px solid rgba(223,102,112,.28); border-color:var(--coral); }
.booking-summary { display:grid; gap:8px; margin-top:4px; padding:14px; background:var(--cream); border-radius:12px; }
.booking-summary>div { display:flex; justify-content:space-between; gap:12px; font-size:.78rem; }
.booking-summary>div:nth-child(2) strong { color:var(--coral-dark); }
.check-label { display:flex!important; align-items:flex-start; gap:9px; color:var(--muted); font-size:.7rem; line-height:1.45; }
.check-label input { width:auto; min-height:auto; margin-top:3px; }
.button-wide { width:100%; }
.button[disabled] { opacity:.55; cursor:not-allowed; transform:none; }
.secure-note { margin:0; color:var(--muted); text-align:center; font-size:.66rem; }
.waitlist-intro h2 { margin:19px 0 7px; color:var(--green-dark); font:600 1.7rem var(--serif); }
.notice { padding:11px 13px; margin:15px 0; border-radius:10px; font-size:.76rem; }
.notice-warn { background:#fff1c7; color:#704f05; }

/* Status and legal pages */
.status-page,.legal-page { min-height:100vh; background:radial-gradient(circle at 50% 0,#fffdf8,#f0e6d6); }
.status-shell,.legal-shell { width:min(760px,calc(100% - 36px)); margin:0 auto; padding:45px 0 70px; }
.status-logo { display:block; margin-bottom:25px; color:var(--green-dark); font:700 1.8rem var(--script); text-decoration:none; text-align:center; }
.status-card,.legal-shell article { padding:clamp(26px,5vw,48px); background:#fff; border-radius:22px; box-shadow:var(--shadow); }
.status-card { text-align:center; }
.status-heart { color:var(--coral); font-size:3rem; }
.status-card h1,.legal-shell h1 { margin:7px 0 18px; color:var(--green-dark); font:500 clamp(2rem,5vw,3.4rem)/1.05 var(--serif); }
.status-card dl { margin:25px 0; text-align:left; }
.status-card dl>div { display:flex; justify-content:space-between; gap:18px; padding:11px 0; border-bottom:1px solid rgba(63,92,36,.12); }
.status-card dt { color:var(--muted); }
.status-card dd { margin:0; font-weight:800; text-align:right; }
.status-back { display:block; margin-top:20px; color:var(--green); }
.legal-shell article { text-align:left; }
.legal-shell h2 { margin-top:28px; color:var(--green-dark); font:600 1.4rem var(--serif); }

@media (max-width: 1050px) {
  .event-card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .event-detail-hero { grid-template-columns:1fr; }
  .event-detail-image { min-height:440px; max-height:58vh; }
  .event-detail-heading { padding:45px var(--container); }
  .event-detail-content { grid-template-columns:minmax(0,1fr) 350px; gap:35px; }
}
@media (max-width: 760px) {
  .events-section { padding:58px 0 64px; }
  .event-card-grid { grid-template-columns:1fr; gap:22px; }
  .event-card-image { height:230px; }
  .event-card-body>p { min-height:0; }
  .event-detail-hero { min-height:0; }
  .event-detail-image { min-height:310px; }
  .event-detail-heading { padding:34px 24px 42px; }
  .event-detail-meta { grid-template-columns:1fr; }
  .event-detail-content { width:min(100% - 36px,760px); grid-template-columns:1fr; padding:48px 0 68px; }
  .booking-card { position:static; }
  .event-card-facts { grid-template-columns:1fr; }
  .event-card-footer { align-items:flex-start; flex-direction:column; }
}
.notice-success { background:#e5f1db; color:#31561e; }
.events-empty { max-width:700px; margin:34px auto 0; padding:38px; text-align:center; background:#fff; border:1px solid rgba(63,92,36,.12); border-radius:21px; box-shadow:0 18px 44px rgba(41,67,21,.08); }
.events-empty>span { color:var(--coral); font-size:2.4rem; }
.events-empty h3 { margin:8px 0 10px; color:var(--green-dark); font:600 2rem/1.1 var(--serif); }
.events-empty p { max-width:560px; margin:0 auto 22px; color:var(--muted); }
.hp-field { position:absolute!important; left:-10000px!important; width:1px!important; height:1px!important; overflow:hidden!important; opacity:0!important; pointer-events:none!important; }
.footer-legal{display:inline-flex;gap:14px}.footer-legal a{color:inherit;text-decoration:underline;text-underline-offset:3px}

/* Admin preview while maintenance mode is active */
.maintenance-preview{position:fixed;z-index:10000;left:50%;top:12px;transform:translateX(-50%);width:min(920px,calc(100% - 24px));display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;padding:10px 16px;border:1px solid rgba(117,55,61,.2);border-radius:14px;background:rgba(255,239,218,.97);box-shadow:0 12px 35px rgba(35,45,24,.18);color:#623f22;font:700 .76rem/1.35 Inter,system-ui,sans-serif;backdrop-filter:blur(9px)}.maintenance-preview strong{color:#8a3037}.maintenance-preview span{font-weight:550}.maintenance-preview a{padding:5px 9px;border-radius:999px;background:#fff;color:#304b1d;text-decoration:none}.maintenance-preview~.site-header{top:58px}.maintenance-preview~main.event-page-main{padding-top:156px}@media(max-width:760px){.maintenance-preview{top:7px;gap:5px;padding:8px 10px;text-align:center}.maintenance-preview span{display:none}.maintenance-preview~.site-header{top:50px}.maintenance-preview~main.event-page-main{padding-top:148px}}

/* v3.2 — workshop type index, detail pages and resilient media */
.event-card-image,.workshop-type-image,.event-detail-image,.workshop-type-hero-image,.admin-preview-image{background:#e9ecdf}
.event-card-image img,.workshop-type-image img,.event-detail-image img,.workshop-type-hero-image img{display:block;width:100%;height:100%;object-fit:cover}
.workshop-types-home{padding:78px 0 86px;background:#fffdf8}.workshop-type-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin-top:34px}.workshop-type-card{min-width:0;overflow:hidden;background:#fff;border:1px solid rgba(63,92,36,.12);border-radius:22px;box-shadow:0 18px 44px rgba(41,67,21,.09);transition:transform .22s ease,box-shadow .22s ease}.workshop-type-card:hover{transform:translateY(-5px);box-shadow:0 24px 52px rgba(41,67,21,.15)}.workshop-type-image{display:block;aspect-ratio:16/10;overflow:hidden}.workshop-type-image img{transition:transform .45s ease}.workshop-type-card:hover .workshop-type-image img{transform:scale(1.035)}.workshop-type-body{padding:23px}.type-count{display:inline-flex;padding:6px 9px;border-radius:999px;background:#e9f1e3;color:var(--green);font-size:.65rem;font-weight:850}.workshop-type-card h2,.workshop-type-card h3{margin:13px 0 9px;color:var(--green-dark);font:600 1.65rem/1.15 var(--serif)}.workshop-type-card h2 a,.workshop-type-card h3 a{color:inherit;text-decoration:none}.workshop-type-card p{min-height:4.3em;margin:0;color:var(--muted);font-size:.88rem}.type-card-footer{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-top:20px;padding-top:15px;border-top:1px solid rgba(63,92,36,.12)}.type-card-footer>span{max-width:55%;color:var(--muted);font-size:.68rem;line-height:1.4}.types-home-action{display:flex;justify-content:center;margin-top:32px}.button-outline{color:var(--green-dark);background:transparent;border:1px solid rgba(63,92,36,.3)}
.type-index-main,.workshop-page-main{padding-top:98px}.type-index-hero{padding:95px 0 82px;background:radial-gradient(circle at 80% 5%,rgba(223,102,112,.13),transparent 35%),linear-gradient(135deg,#f4eadb,#fffdf8)}.type-index-hero h1{max-width:780px;margin:12px 0 20px;color:var(--green-dark);font:500 clamp(3.3rem,7vw,6.5rem)/.98 var(--serif)}.type-index-hero p{max-width:720px;margin:0;color:var(--muted);font-size:1.05rem;line-height:1.8}.type-index-section{padding:70px 0 95px;background:#fffdf8}
.workshop-type-hero{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(420px,.92fr);min-height:610px;background:var(--cream)}.workshop-type-hero-image{min-height:610px;overflow:hidden}.workshop-type-hero-copy{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:72px clamp(36px,6vw,94px)}.workshop-type-hero-copy h1{max-width:640px;margin:14px 0 19px;color:var(--green-dark);font:500 clamp(2.8rem,5vw,5.2rem)/1 var(--serif)}.workshop-type-hero-copy>p{max-width:580px;margin:0 0 28px;color:var(--muted);font-size:1.02rem;line-height:1.75}.workshop-type-content{width:var(--container);display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:70px;align-items:start;margin:0 auto;padding:78px 0 90px}.workshop-type-copy h2{margin:0 0 23px;color:var(--green-dark);font:500 2.65rem/1.05 var(--serif)}.workshop-type-copy h3{margin:35px 0 12px;color:var(--green-dark);font:600 1.5rem var(--serif)}.workshop-type-copy p{max-width:760px;line-height:1.8}.type-practical-card{position:sticky;top:125px;padding:25px;background:#fff;border:1px solid rgba(63,92,36,.13);border-radius:20px;box-shadow:var(--shadow)}.type-practical-card h2{margin:0 0 12px;color:var(--green-dark);font:600 1.6rem var(--serif)}.type-practical-card div{padding:13px 0;border-bottom:1px solid rgba(63,92,36,.12)}.type-practical-card div:last-child{border-bottom:0}.type-practical-card span{display:block;color:var(--muted);font-size:.69rem}.type-practical-card strong{display:block;margin-top:3px;color:var(--ink);font-size:.88rem}.type-dates-section{padding:75px 0 92px;background:linear-gradient(180deg,#f8f2e7,#fffdf8)}.type-context-link{display:inline-flex;align-items:center;gap:5px;margin-bottom:21px;padding:8px 11px;border-radius:999px;background:#edf3e8;color:var(--green);font-size:.72rem;text-decoration:none}.type-context-link strong{font-weight:850}
@media(max-width:1050px){.workshop-type-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.workshop-type-hero{grid-template-columns:1fr}.workshop-type-hero-image{min-height:440px;max-height:58vh}.workshop-type-hero-copy{padding:48px var(--container)}.workshop-type-content{grid-template-columns:minmax(0,1fr) 320px;gap:36px}}
@media(max-width:760px){.workshop-types-home{padding:58px 0 64px}.workshop-type-grid{grid-template-columns:1fr;gap:22px}.workshop-type-card p{min-height:0}.type-card-footer{align-items:flex-start;flex-direction:column}.type-card-footer>span{max-width:none}.type-index-main,.workshop-page-main{padding-top:88px}.type-index-hero{padding:67px 0 58px}.type-index-hero h1{font-size:3.6rem}.type-index-section{padding:48px 0 68px}.workshop-type-hero{min-height:0}.workshop-type-hero-image{min-height:310px}.workshop-type-hero-copy{padding:35px 24px 45px}.workshop-type-content{width:min(100% - 36px,760px);grid-template-columns:1fr;padding:50px 0 68px}.type-practical-card{position:static}.type-dates-section{padding:55px 0 68px}}


/* v3.5.4 — warmer boxed event page and compact maintenance indicator */
.maintenance-preview {
    position: fixed;
    z-index: 10000;
    top: 10px;
    left: clamp(215px, 22vw, 350px);
    right: auto;
    width: auto;
    max-width: 190px;
    min-height: 30px;
    transform: none;
    display: inline-flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 5px 8px 5px 10px;
    border: 1px solid rgba(138,48,55,.16);
    border-radius: 999px;
    background: rgba(255,250,242,.9);
    box-shadow: 0 6px 20px rgba(35,45,24,.09);
    color: #6d4a31;
    font: 750 .65rem/1.15 Inter,system-ui,sans-serif;
    white-space: nowrap;
    backdrop-filter: blur(12px);
}
.maintenance-preview-dot {
    width: 7px;
    height: 7px;
    flex: 0 0 7px;
    border-radius: 50%;
    background: var(--coral);
    box-shadow: 0 0 0 3px rgba(223,102,112,.13);
}
.maintenance-preview strong {
    color: #7f373e;
    font-size: inherit;
}
.maintenance-preview a {
    padding: 4px 7px;
    border-radius: 999px;
    background: rgba(255,255,255,.82);
    color: var(--green-dark);
    font-size: .61rem;
    text-decoration: none;
}
.maintenance-preview a:hover { background: #fff; }
.maintenance-preview ~ .site-header { top: 0; }
.maintenance-preview ~ main.event-page-main { padding-top: 98px; }

.event-page-main {
    min-height: 100vh;
    padding-top: 98px;
    background:
        radial-gradient(circle at 12% 8%, rgba(223,102,112,.10), transparent 29rem),
        radial-gradient(circle at 88% 24%, rgba(151,176,116,.15), transparent 32rem),
        linear-gradient(180deg, #f9f2e7 0%, #fffaf3 42%, #fffdf8 100%);
}
.event-detail-hero {
    width: min(1240px, calc(100% - 48px));
    min-height: 0;
    margin: 34px auto 0;
    grid-template-columns: minmax(390px, .92fr) minmax(410px, 1.08fr);
    overflow: hidden;
    border: 1px solid rgba(63,92,36,.12);
    border-radius: 30px;
    background: rgba(255,253,248,.92);
    box-shadow: 0 28px 70px rgba(58,67,35,.13);
}
.event-detail-image {
    min-height: 520px;
    max-height: 650px;
    padding: 22px;
    display: grid;
    place-items: center;
    overflow: hidden;
    background:
        linear-gradient(135deg, rgba(238,225,202,.94), rgba(246,238,224,.98)),
        var(--sand);
}
.event-detail-image .event-media {
    display: block;
    border-radius: 20px;
    box-shadow: 0 18px 42px rgba(47,55,29,.16);
}
.event-detail-image .event-media-portrait {
    width: auto;
    max-width: 100%;
    height: 100%;
    max-height: 606px;
    object-fit: contain;
    background: #fffaf2;
}
.event-detail-image .event-media-landscape {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.event-detail-heading {
    position: relative;
    padding: clamp(48px, 5vw, 76px) clamp(38px, 5vw, 78px);
    background:
        radial-gradient(circle at 92% 5%, rgba(223,102,112,.10), transparent 15rem),
        linear-gradient(145deg, rgba(255,253,248,.98), rgba(249,239,223,.83));
}
.event-detail-heading::after {
    content: "♡";
    position: absolute;
    right: 32px;
    bottom: 24px;
    color: rgba(223,102,112,.12);
    font: 700 5.5rem/1 var(--script);
    transform: rotate(-9deg);
    pointer-events: none;
}
.event-detail-heading h1 {
    max-width: 590px;
    font-size: clamp(2.65rem, 4.2vw, 4.55rem);
}
.event-detail-heading > p {
    max-width: 590px;
    font-size: 1.02rem;
    line-height: 1.75;
}
.event-detail-meta { position: relative; z-index: 1; }
.event-detail-meta span {
    background: rgba(255,255,255,.78);
    box-shadow: 0 8px 18px rgba(58,67,35,.04);
}
.event-detail-content {
    width: min(1180px, calc(100% - 48px));
    padding: 46px 0 92px;
    grid-template-columns: minmax(0,1fr) 370px;
    gap: 34px;
}
.event-copy {
    padding: clamp(28px, 4vw, 46px);
    border: 1px solid rgba(63,92,36,.11);
    border-radius: 26px;
    background: rgba(255,255,255,.76);
    box-shadow: 0 20px 52px rgba(58,67,35,.08);
}
.event-copy h2 { font-size: clamp(2.2rem, 4vw, 3rem); }
.event-copy p { line-height: 1.78; }
.policy-box {
    background: linear-gradient(135deg, #f7eddd, #fbf5eb);
    box-shadow: inset 0 0 0 1px rgba(223,102,112,.06);
}
.booking-card {
    top: 112px;
    padding: 27px;
    border-radius: 24px;
    background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,249,239,.98));
    box-shadow: 0 23px 58px rgba(58,67,35,.13);
}

@media (max-width: 1050px) {
    .event-detail-hero {
        width: min(900px, calc(100% - 38px));
        grid-template-columns: 1fr;
    }
    .event-detail-image {
        min-height: 390px;
        max-height: 610px;
    }
    .event-detail-image .event-media-portrait { max-height: 566px; }
    .event-detail-heading { padding: 44px clamp(28px, 6vw, 60px) 52px; }
    .event-detail-content {
        width: min(900px, calc(100% - 38px));
        grid-template-columns: minmax(0,1fr) 340px;
        gap: 26px;
    }
}

@media (max-width: 760px) {
    .maintenance-preview {
        top: 8px;
        left: auto;
        right: 66px;
        max-width: calc(100% - 145px);
        transform: none;
        padding: 5px 7px;
    }
    .maintenance-preview strong { overflow: hidden; text-overflow: ellipsis; }
    .maintenance-preview a { display: none; }
    .maintenance-preview ~ .site-header { top: 0; }
    .maintenance-preview ~ main.event-page-main { padding-top: 88px; }
    .event-page-main { padding-top: 88px; }
    .event-detail-hero {
        width: calc(100% - 24px);
        margin-top: 16px;
        border-radius: 22px;
    }
    .event-detail-image {
        min-height: 310px;
        max-height: 62vh;
        padding: 12px;
    }
    .event-detail-image .event-media { border-radius: 15px; }
    .event-detail-image .event-media-portrait { max-height: calc(62vh - 24px); }
    .event-detail-heading { padding: 31px 23px 38px; }
    .event-detail-heading::after { right: 18px; bottom: 15px; font-size: 4rem; }
    .event-detail-heading h1 { margin-top: 15px; font-size: clamp(2.45rem, 13vw, 3.6rem); }
    .event-detail-meta { grid-template-columns: 1fr; }
    .event-detail-content {
        width: calc(100% - 24px);
        grid-template-columns: 1fr;
        padding: 24px 0 64px;
    }
    .event-copy { padding: 25px 22px; border-radius: 22px; }
    .booking-card { position: static; border-radius: 22px; }
}

/* v3.5.5 — consistent warm boxed layouts for workshop types and public views */
.workshop-page-main,
.type-index-main {
    min-height: 100vh;
    background:
        radial-gradient(circle at 12% 8%, rgba(223,102,112,.10), transparent 29rem),
        radial-gradient(circle at 88% 24%, rgba(151,176,116,.15), transparent 32rem),
        linear-gradient(180deg, #f9f2e7 0%, #fffaf3 42%, #fffdf8 100%);
}

.workshop-type-hero {
    width: min(1240px, calc(100% - 48px));
    min-height: 0;
    margin: 34px auto 0;
    grid-template-columns: minmax(390px, .92fr) minmax(410px, 1.08fr);
    overflow: hidden;
    border: 1px solid rgba(63,92,36,.12);
    border-radius: 30px;
    background: rgba(255,253,248,.92);
    box-shadow: 0 28px 70px rgba(58,67,35,.13);
}
.workshop-type-hero-image {
    min-height: 520px;
    max-height: 650px;
    padding: 22px;
    display: grid;
    place-items: center;
    overflow: hidden;
    background:
        linear-gradient(135deg, rgba(238,225,202,.94), rgba(246,238,224,.98)),
        var(--sand);
}
.workshop-type-hero-image .workshop-media {
    display: block;
    border-radius: 20px;
    box-shadow: 0 18px 42px rgba(47,55,29,.16);
}
.workshop-type-hero-image .workshop-media-portrait {
    width: auto;
    max-width: 100%;
    height: 100%;
    max-height: 606px;
    object-fit: contain;
    background: #fffaf2;
}
.workshop-type-hero-image .workshop-media-landscape {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.workshop-type-hero-copy {
    position: relative;
    padding: clamp(48px, 5vw, 76px) clamp(38px, 5vw, 78px);
    background:
        radial-gradient(circle at 92% 5%, rgba(223,102,112,.10), transparent 15rem),
        linear-gradient(145deg, rgba(255,253,248,.98), rgba(249,239,223,.83));
}
.workshop-type-hero-copy::after {
    content: "♡";
    position: absolute;
    right: 32px;
    bottom: 24px;
    color: rgba(223,102,112,.12);
    font: 700 5.5rem/1 var(--script);
    transform: rotate(-9deg);
    pointer-events: none;
}
.workshop-type-hero-copy h1 {
    max-width: 590px;
    font-size: clamp(2.65rem, 4.2vw, 4.55rem);
}
.workshop-type-hero-copy > p {
    position: relative;
    z-index: 1;
    max-width: 590px;
    font-size: 1.02rem;
    line-height: 1.75;
}
.workshop-type-hero-copy .button,
.workshop-type-hero-copy .back-link,
.workshop-type-hero-copy .eyebrow {
    position: relative;
    z-index: 1;
}

.workshop-type-content {
    width: min(1180px, calc(100% - 48px));
    padding: 46px 0 92px;
    grid-template-columns: minmax(0,1fr) 370px;
    gap: 34px;
}
.workshop-type-copy {
    padding: clamp(28px, 4vw, 46px);
    border: 1px solid rgba(63,92,36,.11);
    border-radius: 26px;
    background: rgba(255,255,255,.76);
    box-shadow: 0 20px 52px rgba(58,67,35,.08);
}
.workshop-type-copy h2 { font-size: clamp(2.2rem, 4vw, 3rem); }
.workshop-type-copy p { line-height: 1.78; }
.type-practical-card {
    top: 112px;
    padding: 27px;
    border-radius: 24px;
    background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,249,239,.98));
    box-shadow: 0 23px 58px rgba(58,67,35,.13);
}
.type-dates-section {
    padding: 68px 0 92px;
    background: linear-gradient(180deg, rgba(248,242,231,.72), rgba(255,253,248,.94));
}

.type-index-main { padding-top: 98px; }
.type-index-hero {
    width: min(1180px, calc(100% - 48px));
    margin: 34px auto 0;
    padding: 72px 0 66px;
    overflow: hidden;
    border: 1px solid rgba(63,92,36,.11);
    border-radius: 28px;
    background:
        radial-gradient(circle at 84% 10%, rgba(223,102,112,.14), transparent 27rem),
        linear-gradient(135deg, rgba(244,234,219,.96), rgba(255,253,248,.98));
    box-shadow: 0 24px 60px rgba(58,67,35,.10);
}
.type-index-hero .container { width: min(940px, calc(100% - 56px)); }
.type-index-section { background: transparent; }
.workshop-type-card {
    background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,250,243,.98));
}

.maintenance-preview ~ main.workshop-page-main,
.maintenance-preview ~ main.type-index-main {
    padding-top: 98px;
}

@media (max-width: 1050px) {
    .workshop-type-hero {
        width: min(900px, calc(100% - 38px));
        grid-template-columns: 1fr;
    }
    .workshop-type-hero-image {
        min-height: 390px;
        max-height: 610px;
    }
    .workshop-type-hero-image .workshop-media-portrait { max-height: 566px; }
    .workshop-type-hero-copy { padding: 44px clamp(28px, 6vw, 60px) 52px; }
    .workshop-type-content {
        width: min(900px, calc(100% - 38px));
        grid-template-columns: minmax(0,1fr) 340px;
        gap: 26px;
    }
}

@media (max-width: 760px) {
    .maintenance-preview ~ main.workshop-page-main,
    .maintenance-preview ~ main.type-index-main {
        padding-top: 88px;
    }
    .workshop-page-main,
    .type-index-main { padding-top: 88px; }
    .workshop-type-hero {
        width: calc(100% - 24px);
        margin-top: 16px;
        border-radius: 22px;
    }
    .workshop-type-hero-image {
        min-height: 310px;
        max-height: 62vh;
        padding: 12px;
    }
    .workshop-type-hero-image .workshop-media { border-radius: 15px; }
    .workshop-type-hero-image .workshop-media-portrait { max-height: calc(62vh - 24px); }
    .workshop-type-hero-copy { padding: 31px 23px 38px; }
    .workshop-type-hero-copy::after { right: 18px; bottom: 15px; font-size: 4rem; }
    .workshop-type-hero-copy h1 { margin-top: 15px; font-size: clamp(2.45rem, 13vw, 3.6rem); }
    .workshop-type-content {
        width: calc(100% - 24px);
        grid-template-columns: 1fr;
        padding: 24px 0 64px;
    }
    .workshop-type-copy { padding: 25px 22px; border-radius: 22px; }
    .type-practical-card { position: static; border-radius: 22px; }
    .type-index-hero {
        width: calc(100% - 24px);
        margin-top: 16px;
        padding: 50px 0 47px;
        border-radius: 22px;
    }
    .type-index-hero .container { width: calc(100% - 36px); }
    .type-index-hero h1 { font-size: clamp(3rem, 16vw, 4.4rem); }
}

/* v3.5.6 — logged-in concept preview on the public website */
.admin-preview-note {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 25px 0 4px;
    padding: 13px 16px;
    border: 1px solid rgba(197, 68, 82, .18);
    border-radius: 14px;
    background: linear-gradient(90deg, rgba(255, 235, 233, .9), rgba(255, 249, 241, .86));
    color: #73585a;
    font-size: .78rem;
    box-shadow: 0 10px 28px rgba(83, 54, 40, .06);
}
.admin-preview-note strong {
    flex: 0 0 auto;
    color: #b43e50;
    font-size: .68rem;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.event-card.is-concept-preview,
.workshop-pill.is-concept-preview,
.workshop-type-card.is-concept-type {
    border-color: rgba(207, 76, 91, .34);
    box-shadow: 0 18px 46px rgba(128, 64, 57, .13);
}
.event-card.is-concept-preview {
    background: linear-gradient(180deg, #fff, #fff9f7);
}
.event-card.is-concept-preview:hover {
    box-shadow: 0 25px 56px rgba(128, 64, 57, .18);
}
.concept-preview-badge {
    position: absolute;
    top: 15px;
    right: 15px;
    z-index: 4;
    display: inline-flex;
    align-items: center;
    min-height: 29px;
    padding: 6px 10px;
    border: 1px solid rgba(255,255,255,.68);
    border-radius: 999px;
    color: #fff;
    background: rgba(190, 57, 76, .94);
    box-shadow: 0 8px 22px rgba(73, 29, 32, .2);
    font-size: .63rem;
    font-weight: 900;
    letter-spacing: .12em;
}
.concept-card-footer {
    align-items: flex-start;
}
.concept-card-status,
.concept-type-badge {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    padding: 6px 9px;
    border-radius: 999px;
    color: #ae364a;
    background: #ffe5e5;
    font-size: .62rem;
    font-weight: 900;
    letter-spacing: .1em;
    text-transform: uppercase;
}
.concept-card-actions {
    display: flex;
    align-items: flex-end;
    gap: 7px;
    flex-direction: column;
    text-align: right;
}
.concept-edit-link,
.admin-concept-edit,
.concept-type-row a {
    color: #aa3347;
    font-size: .69rem;
    font-weight: 850;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.hero-event-actions {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-left: 51px;
}
.hero-event-actions .button {
    margin-left: 0;
}
.workshop-pill b.status-concept {
    background: #bf4053;
}

.concept-type-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 10px;
}
.workshop-type-card.is-concept-type {
    background: linear-gradient(180deg, #fff, #fff8f6);
}

.concept-detail-toolbar {
    width: min(1180px, calc(100% - 48px));
    margin: 28px auto 16px;
    padding: 12px 16px;
    display: flex;
    align-items: center;
    gap: 12px;
    border: 1px solid rgba(196, 64, 82, .22);
    border-radius: 15px;
    background: linear-gradient(90deg, rgba(255,231,229,.94), rgba(255,249,240,.94));
    box-shadow: 0 12px 30px rgba(81, 48, 39, .07);
}
.concept-detail-toolbar > span {
    flex: 0 0 auto;
    padding: 6px 9px;
    border-radius: 999px;
    color: #fff;
    background: #bd3d50;
    font-size: .63rem;
    font-weight: 900;
    letter-spacing: .11em;
}
.concept-detail-toolbar p {
    flex: 1;
    margin: 0;
    color: #73585a;
    font-size: .78rem;
}
.concept-detail-toolbar a {
    flex: 0 0 auto;
    color: #983044;
    font-size: .74rem;
    font-weight: 900;
}
.concept-heading-status {
    margin-top: 3px;
}
.concept-booking-preview {
    padding: 8px 0 2px;
}
.concept-booking-preview > span {
    display: inline-block;
    margin-bottom: 9px;
    color: #bc4053;
    font-size: .66rem;
    font-weight: 900;
    letter-spacing: .12em;
}
.concept-booking-preview h2 {
    margin: 0 0 10px;
    color: var(--green-dark);
    font: 600 1.7rem/1.15 var(--serif);
}
.concept-booking-preview p {
    margin: 0 0 20px;
    color: var(--muted);
    font-size: .86rem;
    line-height: 1.6;
}

@media (max-width: 760px) {
    .admin-preview-note,
    .concept-detail-toolbar {
        align-items: flex-start;
        flex-direction: column;
    }
    .concept-detail-toolbar {
        width: calc(100% - 24px);
        margin-top: 16px;
    }
    .concept-card-actions {
        align-items: flex-start;
        text-align: left;
    }
    .hero-event-actions {
        align-items: flex-start;
        flex-direction: column;
        margin-left: 18px;
    }
}

/* v3.6 invoice request */
.invoice-request-box{margin:18px 0;padding:16px;border:1px solid rgba(48,75,29,.16);border-radius:16px;background:#fffaf0}
.invoice-toggle{align-items:flex-start;margin:0}
.invoice-toggle span{display:grid;gap:4px}
.invoice-toggle small{display:block;font-size:.83rem;line-height:1.45;color:#6e715f;font-weight:400}
.invoice-request-fields{display:grid;gap:13px;margin-top:15px;padding-top:15px;border-top:1px solid rgba(48,75,29,.13)}
.invoice-request-fields[hidden]{display:none}
.invoice-request-fields p{margin:0;padding:11px 13px;border-radius:12px;background:#f6eddc;color:#655936;font-size:.84rem;line-height:1.5}
.invoice-request-fields label small{display:block;margin-top:5px;color:#777667;font-size:.78rem;font-weight:400}
.field-optional{font-size:.72rem;color:#8b887a;font-weight:400}
.payment-documents{display:grid;gap:10px;margin:18px 0;padding:16px;border-radius:16px;background:#fffaf0;border:1px solid rgba(48,75,29,.14)}
.payment-documents h2,.payment-documents h3{margin:0;color:#304b1d}
.payment-document-actions{display:flex;flex-wrap:wrap;gap:9px}
.payment-document-actions a{display:inline-flex;align-items:center;justify-content:center;padding:10px 14px;border-radius:999px;background:#304b1d;color:#fff;text-decoration:none;font-weight:700;font-size:.88rem}
.payment-document-actions a.secondary{background:#fff;color:#304b1d;border:1px solid rgba(48,75,29,.2)}

/* v3.6.3 booking modes and business billing */
.booking-type-chooser{display:grid;gap:10px;margin:0 0 16px;padding:0;border:0}
.booking-type-chooser legend{margin-bottom:7px;color:var(--green-dark);font-weight:800}
.booking-type-option{display:flex;gap:11px;align-items:flex-start;padding:13px;border:1px solid rgba(48,75,29,.16);border-radius:15px;background:#fff;cursor:pointer;transition:border-color .18s ease,background-color .18s ease,transform .18s ease}
.booking-type-option:hover{border-color:rgba(48,75,29,.42);transform:translateY(-1px)}
.booking-type-option:has(input:checked){border-color:var(--green);background:#f2f7eb;box-shadow:0 7px 20px rgba(48,75,29,.08)}
.booking-type-option input{width:18px;height:18px;margin-top:2px;accent-color:var(--green-dark);flex:0 0 auto}
.booking-type-option span{display:grid;gap:4px}
.booking-type-option strong{color:var(--green-dark);line-height:1.25}
.booking-type-option small{color:#706f65;font-size:.78rem;line-height:1.4}
.booking-type-option.is-disabled{opacity:.58;cursor:not-allowed;background:#f6f4ef}
.booking-type-option.is-disabled:hover{transform:none;border-color:rgba(48,75,29,.16)}
.exclusive-policy-note{margin:14px 0;padding:14px 15px;border-left:3px solid var(--coral);border-radius:0 14px 14px 0;background:#fff2e4;color:#5d5139;font-size:.84rem;line-height:1.5}
.exclusive-policy-note strong{display:block;margin-bottom:4px;color:var(--green-dark)}
.exclusive-policy-note p{margin:0}
.invoice-toggle.is-required{background:#f0f6e8;border-radius:12px;padding:8px}
.billing-address-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.billing-address-grid label:first-child{grid-column:1/-1}
.invoice-request-fields select{width:100%;min-height:45px;padding:10px 12px;border:1px solid rgba(48,75,29,.2);border-radius:10px;background:#fff;color:var(--green-dark)}
@media(max-width:600px){.billing-address-grid{grid-template-columns:1fr}.billing-address-grid label:first-child{grid-column:auto}}

/* v3.6.4 shared groups, business payment and clearer booking choices */
.booking-type-copy{display:grid;gap:6px;min-width:0;flex:1}
.booking-type-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.booking-type-heading strong{font-size:.96rem}
.booking-type-tag{display:inline-flex;align-items:center;min-height:24px;padding:4px 9px;border-radius:999px;background:#edf4e5;color:#496333;font-size:.68rem;font-style:normal;font-weight:800;letter-spacing:.02em;white-space:nowrap}
.booking-type-tag.tag-exclusive{background:#fff0e2;color:#9a4e3d}
.booking-type-tag.tag-unavailable{background:#eeeae2;color:#766f65}
.booking-type-option.is-disabled{opacity:1;border-style:dashed;background:#f5f1e9;color:#746f65}
.booking-type-option.is-disabled input{opacity:.45}
.booking-type-option.is-disabled strong{color:#6d685f}
.booking-type-option.is-disabled small{color:#79746b}
.booking-policy-card{margin:14px 0;padding:15px 16px;border:1px solid rgba(48,75,29,.14);border-radius:16px;background:linear-gradient(135deg,#fff9ed,#f7f1e3);color:#5d5139;font-size:.84rem;line-height:1.52}
.booking-policy-card>div{display:grid;gap:5px}
.booking-policy-card>div[hidden]{display:none}
.booking-policy-card strong{color:var(--green-dark);font-size:.88rem}
.booking-policy-card p{margin:0}
.invoice-toggle.is-required:after{content:'Obligatoria para una sesión exclusiva';display:block;margin-left:29px;color:#5f7544;font-size:.72rem;font-weight:700}
@media(max-width:520px){.booking-type-heading{align-items:flex-start;flex-direction:column;gap:6px}.booking-type-tag{align-self:flex-start}}

/* v3.7 request-only public registration */
.request-policy-box{background:linear-gradient(135deg,#fff7e8,#f6f0df)}
.request-mode-intro{display:grid;gap:8px;margin:2px 0 18px}
.request-mode-intro>span{display:inline-flex;width:max-content;padding:6px 10px;border-radius:999px;background:#edf5e5;color:#3d612b;font-size:.68rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.request-mode-intro h2{margin:0;color:var(--green-dark);font:600 1.72rem/1.12 var(--serif)}
.request-mode-intro p{margin:0;color:#6f7167;font-size:.86rem;line-height:1.55}
.request-booking-form textarea{width:100%;min-height:104px;padding:12px 13px;border:1px solid rgba(48,75,29,.2);border-radius:11px;background:#fff;color:var(--green-dark);resize:vertical}
.request-booking-form select{width:100%;min-height:45px;padding:10px 12px;border:1px solid rgba(48,75,29,.2);border-radius:10px;background:#fff;color:var(--green-dark)}
.request-mode-summary{display:grid;gap:5px;margin:5px 0 16px;padding:14px 15px;border:1px solid rgba(48,75,29,.14);border-radius:15px;background:#f3f7ed;color:#58684c;font-size:.82rem;line-height:1.5}
.request-mode-summary strong{color:var(--green-dark)}
.request-mode-summary p{margin:0}


/* v3.7.1 clear request confirmation */
.request-success-card{display:grid;gap:14px;text-align:center;padding:8px 0 2px}
.request-success-icon{display:grid;place-items:center;width:58px;height:58px;margin:0 auto 2px;border-radius:50%;background:#e4f1d9;color:#2f5a20;font-size:1.8rem;font-weight:900;box-shadow:0 10px 28px rgba(48,75,29,.13)}
.request-success-kicker{justify-self:center;padding:6px 11px;border-radius:999px;background:#edf5e5;color:#3d612b;font-size:.67rem;font-weight:900;letter-spacing:.09em;text-transform:uppercase}
.request-success-card h2{margin:0;color:var(--green-dark);font:600 2rem/1.08 var(--serif)}
.request-success-lead{margin:0;color:#60645a;font-size:.94rem;line-height:1.55}
.request-success-summary{display:grid;gap:9px;margin-top:3px;text-align:left}
.request-success-summary span{display:grid;gap:3px;padding:12px 13px;border:1px solid rgba(48,75,29,.11);border-radius:13px;background:#fafbf7}
.request-success-summary small{color:#777a70;font-size:.68rem;text-transform:uppercase;letter-spacing:.05em}
.request-success-summary strong{overflow-wrap:anywhere;color:var(--green-dark);font-size:.88rem}
.request-success-important{padding:15px 16px;border:1px solid rgba(188,133,25,.17);border-radius:15px;background:#fff3d9;text-align:left;color:#735713}
.request-success-important strong{display:block;margin-bottom:5px;font-size:.9rem}
.request-success-important p{margin:0;font-size:.82rem;line-height:1.5}
.request-success-mail{margin:0;color:#74776e;font-size:.78rem;line-height:1.45}
.request-success-actions{display:grid;gap:9px;margin-top:2px}
.request-success-contact{color:var(--green-dark);font-size:.84rem;font-weight:800}
@media(min-width:620px){.request-success-summary{grid-template-columns:1fr 1fr}.request-success-summary span:first-child{grid-column:1/-1}}


/* v3.7.8 privacy-first Google Analytics consent */
.analytics-consent{position:fixed;z-index:10050;left:0;right:0;bottom:0;padding:14px;pointer-events:none}
.analytics-consent__box{width:min(980px,calc(100% - 12px));margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px 20px;background:rgba(255,253,248,.98);border:1px solid rgba(48,75,29,.18);border-radius:18px;box-shadow:0 18px 55px rgba(34,56,17,.2);backdrop-filter:blur(8px);pointer-events:auto}
.analytics-consent__copy{max-width:650px;color:#47483f;font-size:.9rem;line-height:1.55}
.analytics-consent__copy strong{display:block;margin-bottom:3px;color:#294315;font-family:Georgia,serif;font-size:1.08rem}
.analytics-consent__copy p{margin:0}
.analytics-consent__copy a{color:#294315;font-weight:750}
.analytics-consent__actions{display:flex;flex:0 0 auto;gap:9px;align-items:center}
.analytics-consent__button{appearance:none;border:1px solid #df6670;border-radius:999px;padding:11px 16px;background:#df6670;color:#fff;font:800 .78rem/1 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;cursor:pointer;white-space:nowrap}
.analytics-consent__button:hover,.analytics-consent__button:focus-visible{filter:brightness(.96);transform:translateY(-1px)}
.analytics-consent__button--secondary{border-color:rgba(48,75,29,.28);background:#fff;color:#304b1d}
@media (max-width:720px){.analytics-consent{padding:10px}.analytics-consent__box{align-items:stretch;flex-direction:column;gap:14px;padding:16px}.analytics-consent__actions{display:grid;grid-template-columns:1fr 1fr}.analytics-consent__button{white-space:normal;line-height:1.2}}
@media (max-width:420px){.analytics-consent__actions{grid-template-columns:1fr}}
