
:root{--bg:#f8f1e4;--bg-soft:#efe2ca;--surface:rgba(255,250,240,.88);--surface-strong:#fffaf0;--ink:#10131a;--muted:#766653;--line:rgba(16,19,26,.1);--navy:#07111f;--emerald:#063f34;--gold:#d9a24a;--gold-soft:#f4d79a;--shadow:0 24px 70px rgba(7,17,31,.15);--lift:0 34px 90px rgba(7,17,31,.22);--r-lg:1.15rem;--r-xl:1.6rem;--r-2xl:2.25rem;--content:min(74rem,calc(100vw - 1.25rem));--serif:Georgia,"Times New Roman",serif;--sans:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}body{margin:0;overflow-x:hidden;background:radial-gradient(circle at 8% 0%,rgba(217,162,74,.22),transparent 20rem),radial-gradient(circle at 92% 8%,rgba(6,63,52,.15),transparent 18rem),linear-gradient(180deg,#f3e7d2 0%,#fffaf0 16%,#f8f1e4 55%,#ead7b8 100%);padding-bottom:5rem}body:before{content:"";position:fixed;inset:0;pointer-events:none;background:linear-gradient(135deg,rgba(255,255,255,.18),transparent 30%),linear-gradient(90deg,rgba(16,19,26,.025) 1px,transparent 1px) 0 0/42px 42px;z-index:-1}img{display:block;max-width:100%;height:auto;background:#d9c4a4}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.container{width:var(--content);margin-inline:auto}.skip{position:absolute;left:-999px;top:.75rem;background:#fff;color:#000;padding:.75rem;z-index:99}.skip:focus{left:.75rem}.site-header{position:sticky;top:0;z-index:50;backdrop-filter:blur(18px);background:rgba(248,241,228,.82);border-bottom:1px solid var(--line)}.header-shell{min-height:4.9rem;display:flex;align-items:center;justify-content:space-between;gap:.75rem;position:relative}.brand{display:grid;place-items:center;width:6.65rem;height:3.15rem;border-radius:1.05rem;background:linear-gradient(145deg,var(--navy),#182942);color:#fff;box-shadow:0 16px 32px rgba(7,17,31,.18);line-height:.95;flex:0 0 auto}.brand span{font:800 .82rem var(--sans);letter-spacing:.16em;text-transform:uppercase}.brand em{font:700 1.16rem var(--serif);color:var(--gold-soft);font-style:italic}.menu-toggle{width:3rem;height:3rem;border:1px solid var(--line);border-radius:999px;background:var(--surface);box-shadow:0 12px 30px rgba(7,17,31,.09);display:grid;place-items:center;cursor:pointer}.menu-toggle span,.menu-toggle span:before,.menu-toggle span:after{content:"";display:block;width:1.1rem;height:.125rem;background:var(--navy);border-radius:9rem;position:relative;transition:.22s}.menu-toggle span:before{position:absolute;top:-.38rem}.menu-toggle span:after{position:absolute;top:.38rem}#nav-toggle{position:absolute;opacity:0;pointer-events:none}#nav-toggle:checked+label span{background:transparent}#nav-toggle:checked+label span:before{transform:translateY(.38rem) rotate(45deg)}#nav-toggle:checked+label span:after{transform:translateY(-.38rem) rotate(-45deg)}.site-nav{position:absolute;top:calc(100% - .2rem);left:0;right:0;max-height:0;opacity:0;overflow:hidden;pointer-events:none;transform:translateY(-.35rem);transition:.25s}.site-nav-inner{margin-top:.5rem;background:rgba(255,250,240,.98);border:1px solid var(--line);border-radius:1.35rem;box-shadow:var(--lift);padding:.45rem;display:grid;gap:.18rem}.site-nav a{display:block;padding:.9rem 1rem;border-radius:1rem;font-size:.8rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase;color:var(--navy)}.site-nav a:hover{background:rgba(217,162,74,.13)}#nav-toggle:checked~.site-nav{max-height:22rem;opacity:1;pointer-events:auto;transform:translateY(0)}.header-cta{display:none}.hero{padding:1rem 0 1.6rem}.hero-shell{position:relative;min-height:calc(100svh - 7rem);border-radius:var(--r-2xl);overflow:hidden;border:1px solid rgba(255,255,255,.5);box-shadow:var(--shadow);isolation:isolate;background:var(--navy)}.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(1.05) contrast(1.02)}.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,17,31,.25),rgba(7,17,31,.72) 66%,rgba(7,17,31,.88)),radial-gradient(circle at 20% 20%,rgba(217,162,74,.24),transparent 18rem)}.hero-content{position:absolute;left:clamp(1.1rem,4vw,4.5rem);right:clamp(1.1rem,6vw,34rem);bottom:clamp(8.8rem,18vw,6rem);z-index:2;color:#fff}.eyebrow{margin:0 0 .9rem;font-size:.74rem;font-weight:850;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-soft)}.eyebrow.dark{color:var(--emerald)}h1,h2,h3,p{margin-top:0}h1{font:800 clamp(2.35rem,12vw,5.8rem)/.9 var(--serif);letter-spacing:-.055em;margin-bottom:1rem;max-width:11ch}h2{font:800 clamp(2rem,8vw,4.5rem)/.95 var(--serif);letter-spacing:-.05em;margin-bottom:1rem}h3{font:750 1.15rem/1.1 var(--serif);margin-bottom:.55rem}.lead,.two-col>p,.banner p,.booking p{font-size:clamp(1rem,2.6vw,1.2rem);line-height:1.75;color:rgba(255,255,255,.86);max-width:42rem}.two-col>p,.banner p,.booking p{color:var(--muted)}.hero-actions{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.45rem}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:3.15rem;padding:.9rem 1.2rem;border-radius:999px;font-size:.82rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase;border:1px solid transparent;transition:transform .2s,box-shadow .2s,background .2s}.btn:hover{transform:translateY(-2px)}.btn-primary{background:linear-gradient(135deg,var(--gold),#f0ca83);color:#211305;box-shadow:0 18px 36px rgba(217,162,74,.28)}.btn-ghost{border-color:rgba(255,255,255,.28);background:rgba(255,255,255,.12);backdrop-filter:blur(12px);color:#fff}.hero-float{position:absolute;left:1rem;right:1rem;bottom:1rem;z-index:3;background:rgba(255,250,240,.92);border:1px solid rgba(255,255,255,.52);border-radius:1.5rem;padding:1rem;box-shadow:0 18px 40px rgba(0,0,0,.18);display:grid;gap:.28rem}.hero-float strong{font:800 1rem var(--serif);color:var(--navy)}.hero-float span{font-size:.88rem;line-height:1.55;color:var(--muted)}.section{padding:3.5rem 0}.two-col{display:grid;gap:1.2rem}.feature-grid,.event-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;margin-top:1.2rem}.feature-grid article,.event-card,.booking-shell,.banner-card{background:var(--surface);border:1px solid rgba(255,255,255,.62);box-shadow:0 18px 50px rgba(7,17,31,.08);backdrop-filter:blur(12px)}.feature-grid article{border-radius:1.35rem;padding:1.15rem;min-height:12.4rem}.feature-grid span{display:inline-grid;place-items:center;width:2.25rem;height:2.25rem;border-radius:999px;background:rgba(217,162,74,.18);color:var(--emerald);font-weight:900;margin-bottom:1rem}.feature-grid p,.event-card p{color:var(--muted);line-height:1.65;font-size:.95rem}.showcase{padding-top:2rem}.section-head{margin-bottom:1.25rem}.section-head h2{max-width:11ch}.event-card{border-radius:1.5rem;overflow:hidden;display:grid}.event-card img{width:100%;height:12rem;object-fit:cover}.event-card div{padding:1.1rem}.banner{padding:1rem 0 2.5rem}.banner-card{border-radius:var(--r-2xl);padding:1.25rem;display:grid;gap:1.2rem;background:linear-gradient(135deg,rgba(7,17,31,.96),rgba(6,63,52,.93));color:#fff;overflow:hidden;position:relative}.banner-card:after{content:"";position:absolute;right:-4rem;top:-4rem;width:12rem;height:12rem;border-radius:50%;background:rgba(217,162,74,.2)}.banner-card>*{position:relative;z-index:1}.banner-card h2{font-size:clamp(2rem,8vw,3.8rem);max-width:11ch}.banner-card p{color:rgba(255,255,255,.78)}.gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.gallery-grid img{width:100%;height:12.5rem;object-fit:cover;border-radius:1.3rem;box-shadow:0 14px 38px rgba(7,17,31,.1);border:1px solid rgba(255,255,255,.45)}.gallery-grid .wide{grid-column:1/-1;height:15rem}.booking-shell{border-radius:var(--r-2xl);padding:1.25rem;display:grid;gap:1.35rem}.contact-strip{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:1.2rem}.contact-strip span{padding:.55rem .75rem;border-radius:999px;background:rgba(6,63,52,.08);color:var(--emerald);font-size:.78rem;font-weight:850}.book-form{display:grid;grid-template-columns:1fr;gap:.8rem}.book-form label{display:grid;gap:.38rem;font-size:.78rem;font-weight:850;letter-spacing:.05em;text-transform:uppercase;color:var(--emerald)}.book-form input,.book-form select,.book-form textarea{width:100%;border:1px solid var(--line);border-radius:1rem;background:rgba(255,255,255,.72);padding:1rem;color:var(--ink);text-transform:none;letter-spacing:0;font-weight:500}.book-form textarea{resize:vertical}.full{grid-column:1/-1}footer{padding:1rem 0 2rem}.footer-shell{border-top:1px solid var(--line);padding-top:1.25rem;display:grid;gap:.45rem;color:var(--muted)}.footer-shell strong{font:800 1.2rem var(--serif);color:var(--navy)}.footer-shell a{font-weight:900;color:var(--emerald)}
@media (min-width:760px){body{padding-bottom:0}.menu-toggle{display:none}.site-nav{position:static;max-height:none;opacity:1;pointer-events:auto;transform:none;overflow:visible}.site-nav-inner{margin:0;padding:.25rem;display:flex;border-radius:999px;box-shadow:none;background:rgba(255,250,240,.65)}.site-nav a{padding:.72rem .95rem;border-radius:999px}.header-cta{display:inline-flex;align-items:center;justify-content:center;min-height:2.8rem;padding:.75rem 1rem;border-radius:999px;background:var(--navy);color:#fff;font-size:.78rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.hero{padding:1.25rem 0 2rem}.hero-shell{min-height:42rem}.hero-content{bottom:4rem}.hero-float{left:auto;right:2rem;bottom:2rem;width:20rem;padding:1.25rem}.two-col{grid-template-columns:1fr 1fr;align-items:end}.feature-grid{grid-template-columns:repeat(4,1fr);gap:1rem}.feature-grid article{padding:1.2rem}.event-grid{grid-template-columns:repeat(3,1fr);gap:1rem}.event-card img{height:15rem}.banner-card{padding:2rem;grid-template-columns:1fr auto;align-items:center}.gallery-grid{grid-template-columns:1.1fr .9fr .9fr;gap:1rem}.gallery-grid img{height:18rem}.gallery-grid .wide{grid-column:auto;height:18rem}.gallery-grid .wide:first-child{grid-column:span 2;height:22rem}.booking-shell{grid-template-columns:.85fr 1.15fr;padding:2rem;gap:2rem}.book-form{grid-template-columns:1fr 1fr}.section{padding:5rem 0}.footer-shell{grid-template-columns:1fr auto auto;align-items:center}}
@media (max-width:390px){.feature-grid{grid-template-columns:1fr}.hero-content{bottom:10.5rem}.btn{width:100%}}
@media (prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}


/* Casa Cecilia v4 refinement: editorial, mobile-safe, less generic */
:root{
  --surface:rgba(255,252,244,.92);
  --surface-strong:#fffbf2;
  --line:rgba(7,17,31,.16);
  --content:min(76rem,calc(100vw - 2rem));
}
html,body{max-width:100%;overflow-x:hidden}
body{background:
  linear-gradient(90deg,rgba(7,17,31,.045) 1px,transparent 1px) 0 0/3.5rem 3.5rem,
  radial-gradient(circle at 10% 5%,rgba(217,162,74,.18),transparent 22rem),
  linear-gradient(180deg,#f8f1e4 0%,#fffaf0 24%,#f3e4c9 100%);
}
img,svg,video{max-width:100%;height:auto}
h1,h2,h3,p,a,span,label,input,select,textarea{overflow-wrap:anywhere}
.container{width:var(--content)}
h1{font-size:clamp(2.55rem,13vw,6.4rem);line-height:.9;letter-spacing:-.075em;max-width:9.4ch}
h2{font-size:clamp(2rem,9vw,4.65rem);line-height:.92;letter-spacing:-.055em}
h3{font-size:clamp(1.08rem,5vw,1.45rem);line-height:1.06}
.lead{max-width:38rem;font-size:clamp(1rem,3.7vw,1.28rem)}
.site-header{top:.65rem}
.header-shell,.site-nav-inner{
  border-radius:0;
  border:1px solid rgba(7,17,31,.14);
  box-shadow:8px 8px 0 rgba(7,17,31,.08);
}
.brand strong{letter-spacing:.01em}
.hero{padding:1rem 0 2.75rem}
.hero-shell{border-radius:0;min-height:min(47rem,calc(100svh - 2rem));box-shadow:16px 16px 0 rgba(7,17,31,.08);border:1px solid rgba(255,255,255,.42)}
.hero-img{border-radius:0}
.hero-overlay{background:linear-gradient(90deg,rgba(7,17,31,.82),rgba(7,17,31,.42) 48%,rgba(7,17,31,.16)),linear-gradient(0deg,rgba(7,17,31,.6),transparent 55%)}
.hero-content{left:clamp(1rem,5vw,4.5rem);right:1rem;bottom:clamp(10rem,20vh,5rem)}
.hero-actions{gap:.8rem;margin-top:1.7rem}
.btn{
  border-radius:0;
  min-height:3.35rem;
  padding:1rem 1.25rem;
  box-shadow:6px 6px 0 rgba(7,17,31,.18);
  position:relative;
}
.btn:hover{transform:translate(-2px,-2px);box-shadow:10px 10px 0 rgba(7,17,31,.18)}
.btn-primary{background:var(--gold);border-color:#2b1a05;color:#1f1304}
.btn-ghost{background:rgba(255,250,240,.08);border-color:rgba(255,255,255,.55)}
.hero-float{
  border-radius:0;
  border:1px solid rgba(7,17,31,.12);
  box-shadow:8px 8px 0 rgba(7,17,31,.12);
  background:#fffaf0;
}
.section{padding:4.5rem 0}
.two-col{gap:1.6rem;align-items:start}
.two-col>p,.booking-shell>div>p{font-size:1.04rem;line-height:1.8}
.feature-grid,.event-grid{gap:1rem;margin-top:1.65rem}
.feature-grid article,.event-card,.booking-shell,.banner-card{
  border-radius:0;
  box-shadow:8px 8px 0 rgba(7,17,31,.08);
  border:1px solid rgba(7,17,31,.13);
  backdrop-filter:none;
}
.feature-grid article{
  padding:1.35rem;
  min-height:auto;
  background:linear-gradient(180deg,#fffaf0,#f3e4c9);
}
.feature-grid span{
  border-radius:0;
  background:transparent;
  border-bottom:2px solid var(--gold);
  width:auto;height:auto;display:inline-block;
  padding:0 1.4rem .35rem 0;
  margin-bottom:1.2rem;
}
.event-card{background:#fffaf0}
.event-card img{border-radius:0;height:11.8rem}
.event-card div{padding:1.25rem}
.banner{padding:1.5rem 0 3rem}
.banner-card{
  padding:1.5rem;
  background:linear-gradient(135deg,#07111f,#063f34);
  overflow:visible;
}
.banner-card:after{
  border-radius:0;
  right:1rem;top:1rem;width:5.5rem;height:5.5rem;
  background:transparent;border:1px solid rgba(217,162,74,.55);
  transform:rotate(8deg);
}
.gallery-grid{gap:1rem}
.gallery-grid img{
  border-radius:0;
  box-shadow:8px 8px 0 rgba(7,17,31,.08);
  border:1px solid rgba(7,17,31,.13);
}
.booking-shell{padding:1.5rem;background:#fffaf0}
.contact-strip{gap:.7rem}
.contact-strip span{border-radius:0;background:rgba(6,63,52,.09);border-left:3px solid var(--gold)}
.book-form input,.book-form select,.book-form textarea{
  border-radius:0;
  min-width:0;
  background:#fff;
  border:1px solid rgba(7,17,31,.18);
}
.book-form input:focus,.book-form select:focus,.book-form textarea:focus{
  outline:2px solid rgba(217,162,74,.5);
  outline-offset:2px;
}
.footer-shell{gap:.8rem}

@media (max-width:759px){
  :root{--content:min(100% - 1.1rem,42rem)}
  body{padding-bottom:4.75rem}
  .site-header{top:.5rem}
  .header-shell{padding:.65rem .7rem}
  .brand{min-width:0}
  .brand strong{font-size:.9rem}
  .brand span{font-size:.66rem;white-space:normal;line-height:1.25}
  .site-nav-inner{border-radius:0;margin:.55rem}
  .site-nav a{border-radius:0}
  .hero{padding-top:.65rem}
  .hero-shell{min-height:42rem}
  .hero-content{bottom:10.7rem}
  .hero-actions{display:grid;grid-template-columns:1fr;gap:.7rem}
  .btn{width:100%;font-size:.76rem;letter-spacing:.05em}
  .hero-float{left:.75rem;right:.75rem;bottom:.75rem;padding:.9rem}
  .section{padding:3.4rem 0}
  .two-col{gap:1rem}
  .feature-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}
  .feature-grid article{padding:1rem}
  .feature-grid p,.event-card p{font-size:.9rem;line-height:1.55}
  .event-grid{grid-template-columns:1fr;gap:1rem}
  .event-card{grid-template-columns:.82fr 1fr;align-items:stretch}
  .event-card img{height:100%;min-height:11rem}
  .event-card div{padding:1rem}
  .banner-card{padding:1.15rem;gap:1rem}
  .banner-card h2{max-width:9.5ch}
  .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}
  .gallery-grid img{height:10.5rem}
  .gallery-grid .wide{grid-column:1/-1;height:13rem}
  .booking-shell{padding:1.1rem;gap:1.2rem}
  .contact-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
  .contact-strip span{font-size:.7rem;padding:.55rem .45rem;text-align:center}
  .book-form{gap:.85rem}
  .book-form label{font-size:.72rem}
  .book-form input,.book-form select,.book-form textarea{padding:.9rem;font-size:16px}
}

@media (max-width:430px){
  .feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .feature-grid article{padding:.88rem}
  .feature-grid h3{font-size:1rem}
  .feature-grid p{font-size:.84rem}
  .event-card{grid-template-columns:1fr}
  .event-card img{height:12rem;min-height:0}
  .contact-strip{grid-template-columns:1fr}
  h1{font-size:clamp(2.45rem,14vw,3.8rem)}
  h2{font-size:clamp(1.9rem,10vw,3rem)}
}
