/*! Proyecto El Santuario
   Creado por Sergio Gómez Barrio — Duartec Instalaciones Informáticas (Burgos, España)
*/
@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-15px)}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(360deg)}}@keyframes fadeInZoom{0%{opacity:0;transform:scale(1.1)}to{opacity:1;transform:scale(1)}}:root{--color-primary:#1a2633;--color-primary-dark:#0f161f;--color-secondary:#e6d5b8;--color-accent:#9ccbb8;--color-text:#2c333a;--color-muted:#687078;--bg-light:#fdfbf7;--shadow-soft:0 12px 40px rgba(0, 0, 0, 0.06);--shadow-glass:0 8px 32px 0 rgba(31, 38, 135, 0.07);--radius:24px;--font-body:'Manrope', sans-serif;--font-heading:'Playfair Display', serif}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);color:var(--color-text);background:radial-gradient(circle at 0% 0%,rgba(156,203,184,.15),transparent 40%),radial-gradient(circle at 100% 0%,rgba(230,213,184,.15),transparent 40%),radial-gradient(circle at 50% 100%,rgba(156,203,184,.1),transparent 50%),var(--bg-light);line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden;touch-action:manipulation}main#main-content{min-height:100vh;transform:none}.glass{background:rgba(255,255,255,.65);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.4);box-shadow:var(--shadow-glass)}a{color:inherit;text-decoration:none}img{max-width:100%;height:auto;display:block;border-radius:var(--radius)}button,input,select,textarea{font:inherit}.container{width:min(1200px,92%);margin:0 auto}.mb-14{margin-bottom:14px}.mb-18,.section h2{margin-bottom:18px}.mb-24{margin-bottom:24px}.mb-30{margin-bottom:30px}.mt-12{margin-top:12px}.mt-20{margin-top:20px}.mt-30{margin-top:30px}.ml-18{margin-left:18px}.p-0{padding:0}.border-0{border:0}.overflow-hidden{overflow:hidden}.text-center{text-align:center}.muted-sm,.section p.lead{font-size:.95rem;color:var(--color-muted)}.gap-12{gap:12px}.span-full{grid-column:1/-1}.grid-auto-280{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.section{padding:80px 0}.section h2{font-family:var(--font-heading);letter-spacing:-.01em;font-size:2.35rem;color:var(--color-primary)}.section p.lead{font-size:1.08rem;margin-bottom:24px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;margin-right:10px;padding:14px 28px;border-radius:999px;border:1px solid transparent;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-dark) 100%);color:#fff;font-weight:600;cursor:pointer;box-shadow:0 10px 20px rgba(31,47,61,.15);transition:all .3s cubic-bezier(.25,.8,.25,1);position:relative;overflow:hidden;z-index:1;-webkit-user-select:none;-moz-user-select:none;user-select:none}.btn>:last-child{margin-right:0}.btn::before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,var(--color-primary-dark) 0%,var(--color-primary) 100%);opacity:0;z-index:-1;transition:opacity .3s ease}.btn:hover::before{opacity:1}.btn.loading,.btn:disabled{opacity:.8;cursor:not-allowed;transform:none;box-shadow:none}.btn.loading::before,.btn:disabled::before{display:none}.btn.loading::after{content:"";position:absolute;right:18px;width:16px;height:16px;border-radius:50%;border:2px solid rgba(255,255,255,.7);border-top-color:#fff;animation:spin .8s linear infinite}.btn.secondary{background:rgba(255,255,255,.5);color:var(--color-primary);border-color:rgba(31,47,61,.1);box-shadow:none;backdrop-filter:blur(4px)}.btn:focus-visible,.btn:hover{transform:translateY(-3px);box-shadow:0 15px 30px rgba(31,47,61,.2)}.btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:4px}.card{background:rgba(255,255,255,.7);border-radius:var(--radius);box-shadow:var(--shadow-glass);padding:32px;height:100%;border:1px solid rgba(255,255,255,.5);transition:transform .3s ease,box-shadow .3s ease}.card:hover{transform:translateY(-8px);box-shadow:0 20px 40px rgba(0,0,0,.08)}header{position:sticky;top:0;z-index:1000;background:rgba(253,251,247,.8);backdrop-filter:blur(20px);border-bottom:1px solid rgba(255,255,255,.3);transition:background .3s ease,box-shadow .3s ease}header.scrolled{background:rgba(255,255,255,.95);box-shadow:0 4px 20px rgba(0,0,0,.05)}.logo,.navbar{align-items:center}.navbar{display:flex;justify-content:space-between;padding:16px 0}.logo{font-family:var(--font-heading);font-size:1.25rem;font-weight:700;color:var(--color-primary);letter-spacing:.2px;display:inline-flex;gap:12px}.logo>:not(:last-child),.newsletter form>:not(:last-child){margin-right:12px}.logo .logo-mark{width:42px;height:42px;border-radius:12px;box-shadow:0 10px 26px rgba(17,17,17,.08);background:#fff}nav ul{list-style:none;display:flex;gap:18px;align-items:center}nav ul>:not(:last-child){margin-right:18px}nav a{padding:10px 12px;border-radius:12px;color:var(--color-text);font-weight:700;letter-spacing:.01em;transition:background .2s ease,color .2s ease,transform .2s ease}nav a.active,nav a:focus-visible,nav a:hover{background:rgba(31,47,61,.08);color:var(--color-primary);outline:0;transform:translateY(-1px)}.hamburger,.mobile-nav{display:none;flex-direction:column}.hamburger{gap:5px;cursor:pointer}.hamburger span{width:26px;height:3px;background:var(--color-text);border-radius:999px;transition:transform .2s ease,opacity .2s ease}.mobile-nav{gap:12px;margin-top:12px}.mobile-nav a{padding:10px;border-radius:12px;background:#fff;box-shadow:var(--shadow-soft);border:1px solid rgba(31,47,61,.06)}.hero{position:relative;padding:160px 0 120px;overflow:hidden;min-height:90vh;display:flex;align-items:center}.hero-bg-parallax,.hero::before{position:absolute;top:0;right:0;bottom:0;left:0}.hero-bg-parallax{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;border-radius:0;opacity:1;z-index:-1;animation:none}.hero::before{content:"";background:linear-gradient(90deg,rgba(253,251,247,.95)0,rgba(253,251,247,.8) 50%,rgba(253,251,247,.4) 100%);z-index:0}.hero .container{position:relative;z-index:2}.hero-content-wrapper{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:60px}.hero-content-wrapper>*{align-self:center}.floating-card strong,.hero-copy h1{font-family:var(--font-heading);color:var(--color-primary)}.hero-copy h1{font-size:clamp(3rem,5vw,4.5rem);line-height:1.1;margin-bottom:24px;letter-spacing:-.02em}.hero-copy p{color:var(--color-muted);margin-bottom:32px;font-size:1.2rem;max-width:540px}.eyebrow{display:inline-flex;align-items:center;gap:10px;padding:8px 16px;border-radius:999px;background:rgba(156,203,184,.2);color:#2c5e4c;font-weight:700;letter-spacing:.05em;text-transform:uppercase;font-size:.85rem;margin-bottom:20px;backdrop-filter:blur(4px)}.eyebrow::before{content:"";width:8px;height:8px;background:var(--color-accent);border-radius:50%;box-shadow:0 0 0 2px rgba(156,203,184,.4)}.hero-visual{position:relative;height:600px;border-radius:32px;box-shadow:0 25px 50px -12px rgba(0,0,0,.25);transform:perspective(1000px) rotateY(-5deg);transition:transform .5s ease;overflow:hidden}.hero-visual:hover{transform:perspective(1000px) rotateY(0deg)}.hero-visual__media{position:absolute;inset:0;margin:0;display:block}.gift-card img,.hero-visual__media img{width:100%;-o-object-fit:cover;object-fit:cover}.hero-visual__media img{height:100%;border-radius:32px;display:block}.floating-card{position:absolute;bottom:40px;left:-40px;padding:24px;border-radius:20px;max-width:260px;display:grid;gap:4px;animation:float 6s ease-in-out infinite}.floating-card strong{font-size:2.5rem;line-height:1}@media (max-width:900px){.hero-bg-parallax{display:none}.hero{padding:120px 0 80px;text-align:center}.hero-content-wrapper{grid-template-columns:1fr;gap:40px}.hero-copy p{margin:0 auto 32px}.hero-actions{justify-content:center}.hero-visual{height:400px;margin-top:20px}.hero-visual,.hero-visual:hover{transform:none}.floating-card{left:50%;transform:translateX(-50%);bottom:-20px;width:90%;animation:none}}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px}.gifts-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));align-items:stretch}.gift-card{display:flex;flex-direction:column;gap:12px;height:500px;border:1.5px solid rgba(31,47,61,.12);background:radial-gradient(circle at 40%0,rgba(140,183,166,.08),transparent 26%),radial-gradient(circle at 85% 20%,rgba(217,200,165,.12),transparent 30%),linear-gradient(180deg,#fff 0,#f9f5ed 100%)}.gift-card figure{margin:-4px -4px 4px}.gift-card img{height:180px;border-radius:calc(var(--radius) - 4px)}.gift-card h3,.icon-bubble{font-size:1.1rem;color:var(--color-primary)}.gift-card p{color:var(--color-muted);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden;overflow-wrap:break-word;word-break:break-all}.gift-card .btn{margin-top:auto;align-self:flex-start;border-color:rgba(31,47,61,.14)}.icon-bubble{width:46px;height:46px;display:grid;place-items:center;border-radius:14px;background:rgba(31,47,61,.08);font-size:1.3rem;margin-bottom:12px}.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}.step{padding:32px;border-radius:var(--radius);position:relative;transition:transform .3s ease}.step:hover{transform:translateY(-5px)}.step-number{position:absolute;top:-14px;left:18px;background:#fff;color:var(--color-primary);font-weight:800;width:34px;height:34px;border-radius:12px;display:grid;place-items:center;box-shadow:var(--shadow-soft)}.icon-bubble>*,.step-number>*{-ms-grid-row-align:center;-ms-grid-column-align:center;place-self:center}.blog-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}.blog-card{border-radius:var(--radius);overflow:hidden;transition:transform .3s ease,box-shadow .3s ease}.blog-card:hover{transform:translateY(-8px);box-shadow:0 20px 40px rgba(0,0,0,.1)}.blog-card figure{aspect-ratio:4/3;background:#f3f6fb;overflow:hidden}.blog-card figure img,.media-card img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.blog-card,.blog-card .content{display:flex;flex-direction:column}.blog-card .content{padding:18px;gap:10px;flex:1}.blog-card .content>:not(:last-child){margin-bottom:10px}.badge{align-self:flex-start;padding:6px 12px;background:rgba(31,47,61,.07);border-radius:999px;font-weight:700;color:var(--color-primary)}.newsletter{background:linear-gradient(120deg,rgba(31,47,61,.08),rgba(140,183,166,.18));border-radius:24px;padding:40px;box-shadow:var(--shadow-soft);display:grid;gap:18px;border:1px solid rgba(31,47,61,.06)}.newsletter form{display:flex;flex-wrap:wrap;gap:12px}.newsletter input[type=email]{flex:1 1 240px;padding:12px 14px;border-radius:12px;border:2px solid transparent;background:#fff;box-shadow:inset 0 1px 2px rgba(0,0,0,.04)}.newsletter input:focus-visible{outline:3px solid var(--color-accent);border-color:var(--color-accent)}form .field{display:flex;flex-direction:column;gap:8px}form label{font-weight:700;color:#3a2c2c}form input,form select,form textarea{padding:12px 14px;border-radius:12px;border:1.5px solid #e2dcd4;background:#fff;transition:border .2s ease,box-shadow .2s ease}form textarea{min-height:120px;resize:vertical}form input:focus-visible,form select:focus-visible,form textarea:focus-visible{outline:3px solid var(--color-accent);border-color:var(--color-accent);box-shadow:0 0 0 3px rgba(122,183,217,.2)}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}.form-actions{margin-top:14px}.alert{padding:12px 14px;border-radius:12px;margin-top:10px;font-weight:700}.alert.success{background:#e5f7ed;color:#1f7a45}.alert.error{background:#ffe9e9;color:#b53333}.table-wrapper{overflow-x:auto;background:#fff;padding:16px;border-radius:var(--radius);box-shadow:var(--shadow-soft)}table{width:100%;border-collapse:collapse;min-width:520px}thead{background:var(--color-secondary)}td,th{padding:14px 12px;border-bottom:1px solid #f0e8df;text-align:left}tbody tr:hover{background:#fff6f3}.calendar-card{transition:none}.calendar-card:hover{transform:none;box-shadow:var(--shadow-glass)}.calendar-panel{margin-top:14px;padding:16px;border-radius:18px;background:linear-gradient(180deg,#fff 0,#f7f2eb 100%);border:1px solid rgba(26,38,51,.08);box-shadow:0 12px 30px rgba(0,0,0,.04)}.calendar-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.calendar-nav button{width:44px;height:44px;border-radius:14px;border:1px solid rgba(26,38,51,.12);background:#f2efe8;color:var(--color-primary);font-weight:700;cursor:pointer;box-shadow:none;transition:none}.calendar-nav button:focus-visible,.calendar-nav button:hover{background:#e8e1d4;border-color:rgba(26,38,51,.2);outline:0}#mes-actual{flex:1;text-align:center;font-weight:700;color:var(--color-primary);padding:10px 14px;border-radius:14px;background:rgba(156,203,184,.14);border:1px solid rgba(156,203,184,.55)}.calendar-legend{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px;color:var(--color-muted);font-size:.95rem}.calendar-legend .legend-item{display:inline-flex;align-items:center;gap:8px;padding:8px 10px;background:rgba(26,38,51,.03);border-radius:12px;border:1px solid rgba(26,38,51,.06)}.calendar-legend .legend-swatch{width:14px;height:14px;border-radius:6px;border:1px solid rgba(26,38,51,.12)}.calendar-legend .legend-swatch.available{background:#e7f2ed;border-color:#c9e2d6}.calendar-legend .legend-swatch.booked{background:#fbe1e1;border-color:#e7b4b4}.calendar-legend .legend-swatch.blocked{background:#eef1f5;border-color:#d3dae4}.calendar{display:grid;grid-template-columns:repeat(7,minmax(40px,1fr));gap:12px;margin-top:12px;padding:8px;border-radius:14px;background:rgba(255,255,255,.8);border:1px solid rgba(26,38,51,.06);box-shadow:inset 0 1px 0 rgba(255,255,255,.8)}.calendar .day,.calendar .weekday{text-align:center;padding:14px 10px;border-radius:16px;background:#fff;border:1px solid rgba(26,38,51,.08);box-shadow:none;font-weight:700;color:var(--color-primary);transition:none}.calendar .weekday{background:#f2ede2;color:#7a5135;border-color:rgba(122,81,53,.15);letter-spacing:.06em}.calendar .day{cursor:pointer}.calendar .day.empty{background:0 0;border-style:dashed;border-color:rgba(26,38,51,.08);cursor:default}.calendar .day:hover{background:#f7f9fb;border-color:#dfe7ef}.calendar .day:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.calendar .day.ocupado{color:#b53535;cursor:not-allowed}.calendar .day.ocupado,.calendar .day.ocupado:hover{background:#fbe7e7;border-color:#f0c4c4}.calendar .day.bloqueado{color:#6b7580;cursor:not-allowed}.calendar .day.bloqueado,.calendar .day.bloqueado:hover{background:#edf1f5;border-color:#d2dae4}@media (max-width:640px){.calendar-panel{padding:12px}.calendar-nav{gap:8px}#mes-actual{font-size:1rem;padding:10px}.calendar-legend{font-size:.9rem}.calendar{gap:8px;padding:6px;grid-template-columns:repeat(7,minmax(36px,1fr))}.calendar .day,.calendar .weekday{padding:10px 6px;font-size:.95rem}.calendar .weekday{letter-spacing:.04em}}footer{background:linear-gradient(160deg,var(--color-primary-dark),#0f151c);color:#f4f0eb;padding:60px 0 30px;border-top:1px solid rgba(255,255,255,.08)}.footer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px}footer h3{font-family:var(--font-heading);margin-bottom:12px;letter-spacing:.01em}footer a{color:#f4f0eb;display:inline-flex;gap:8px;align-items:center;margin-bottom:8px}footer a>:not(:last-child){margin-right:8px}footer a:focus-visible,footer a:hover{color:var(--color-secondary)}footer ul{list-style:none}footer .legal{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px;font-size:.95rem}.filters>:not(:last-child),footer .legal>:not(:last-child){margin-right:10px}@media (max-width:640px){footer{text-align:center}.footer-grid{justify-items:center}footer .legal{justify-content:center}}.hero-simple{padding:90px 0 50px;background:linear-gradient(140deg,rgba(31,47,61,.12),rgba(140,183,166,.18));text-align:center}.hero-simple h1{font-family:var(--font-heading);font-size:2.4rem;color:var(--color-primary)}.main-content{padding:40px 0 80px}.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:20px}.filter-btn{padding:10px 14px;border-radius:10px;border:1.5px solid #e5d9d2;background:#fff;cursor:pointer;transition:background .2s ease,color .2s ease,border .2s ease}.filter-btn.active,.filter-btn:focus-visible,.filter-btn:hover{background:var(--color-primary);border-color:var(--color-primary);color:#fff;outline:0}.media-grid,figure{display:grid;gap:10px}figcaption{color:var(--color-muted);font-style:italic}.media-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}.media-card,.media-tag{box-shadow:var(--shadow-soft)}.media-card{position:relative;overflow:hidden;border-radius:var(--radius);background:#fff;aspect-ratio:4/3;isolation:isolate}.media-card figcaption{position:absolute;inset:auto 0 0 0;padding:12px 14px;background:linear-gradient(180deg,rgba(12,17,23,0)0,rgba(12,17,23,.72) 95%);color:#fff;font-weight:700;letter-spacing:.01em}.media-tag{position:absolute;top:12px;left:12px;background:rgba(255,255,255,.9);color:var(--color-primary);padding:6px 10px;border-radius:999px;font-weight:700;font-size:.9rem}.gallery-card .media-grid{margin-top:14px}@supports (-ms-ime-align:auto){.blog-grid,.calendar,.footer-grid,.form-grid,.gifts-grid,.grid,.media-grid,.steps{display:flex;flex-wrap:wrap;gap:16px}.blog-grid>*,.calendar>*,.footer-grid>*,.form-grid>*,.gifts-grid>*,.grid>*,.media-grid>*,.steps>*{flex:1 1 240px}.hero-content-wrapper{display:block}}@media (max-width:900px){nav ul{display:none}.hamburger,.mobile-nav.open{display:flex}.hero{padding-top:80px}}@media (max-width:700px){.section{padding:60px 0}.hero-copy h1{font-size:2.1rem}table{min-width:unset}.table-wrapper{padding:12px}}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mb-sm{margin-bottom:14px}.mb-md{margin-bottom:20px}.mb-lg{margin-bottom:30px}.mt-sm{margin-top:12px}.ml-md{margin-left:18px}.skip-link{position:absolute;top:0;left:0;transform:translateY(-120%);padding:12px 20px;background:#1a2633;color:#fff;font-weight:700;z-index:1100;border-radius:0 0 12px 0;transition:transform .3s ease,box-shadow .3s ease;box-shadow:0 10px 30px rgba(0,0,0,.35);text-decoration:none}.skip-link:focus-visible{transform:translateY(0)}@media (prefers-reduced-motion:reduce){*,::after,::before{animation-duration:0!important;transition-duration:0!important;scroll-behavior:auto!important}}