:root{
  --black:#111315;--dark:#171a1c;--dark2:#222528;--silver:#d8d9d8;
  --platinum:#e9e8e5;--gold:#c9a46a;--gold2:#e4c58c;--white:#f7f5f0;
  --muted:#aeb0af;--serif:"Playfair Display",Georgia,serif;
  --display:"Cinzel",Georgia,serif;--sans:"Manrope",Arial,sans-serif;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--dark);color:var(--white);font-family:var(--sans);overflow-x:hidden}
img{display:block;width:100%;height:100%;object-fit:cover}.loader{position:fixed;inset:0;z-index:1000;background:#121416;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:opacity .8s,visibility .8s}.loader.hide{opacity:0;visibility:hidden}.loader img{width:min(330px,62vw);height:auto;max-height:180px;object-fit:contain;filter:brightness(.95)}.loader-line{width:100px;height:1px;background:var(--gold);margin:24px 0 14px;animation:load 1.8s ease-in-out infinite}.loader span{font-size:10px;letter-spacing:.3em;color:#b9b7b1}
@keyframes load{0%,100%{transform:scaleX(.2);opacity:.35}50%{transform:scaleX(1);opacity:1}}
.hero{min-height:100svh;position:relative;display:flex;align-items:center;overflow:hidden}.hero-photo,.finale-photo,.statement-bg{position:absolute;inset:0;background-size:cover;background-position:center}.hero-photo{background-image:url("img/abo1.webp");filter:brightness(.55) saturate(.7)}.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,10,11,.86),rgba(8,10,11,.43) 55%,rgba(8,10,11,.72)),linear-gradient(0deg,rgba(8,10,11,.75),transparent 50%)}
.nav{position:absolute;top:0;left:0;right:0;z-index:4;height:92px;display:flex;align-items:center;justify-content:space-between;padding:0 5vw;border-bottom:1px solid rgba(220,210,190,.13)}.brand{color:var(--gold2);text-decoration:none;font-family:var(--display);font-size:20px;letter-spacing:.1em}.brand span{font-family:var(--sans);font-size:10px;border:1px solid var(--gold);padding:4px 6px;margin-left:8px;vertical-align:3px}.nav-links{display:flex;gap:30px}.nav-links a{color:#e7e4dd;text-decoration:none;font-size:10px;letter-spacing:.16em;text-transform:uppercase}.menu{display:none;background:none;border:0}.menu i{display:block;width:25px;height:1px;background:var(--gold);margin:5px}
.hero-content{position:relative;z-index:2;width:min(850px,90vw);margin-left:10vw;padding-top:80px}.eyebrow,.section-tag{font-size:10px;letter-spacing:.3em;font-weight:700;color:var(--gold2)}.number,.finale-number{font-family:var(--display);font-size:clamp(100px,17vw,210px);line-height:.82;color:transparent;-webkit-text-stroke:1px rgba(224,194,143,.72);margin:18px 0 0}.years{font-size:12px;letter-spacing:.65em;margin:10px 0 24px;color:#d9d8d3}.hero h1{font-family:var(--display);font-size:clamp(31px,4vw,60px);line-height:1.05;font-weight:500;margin:0;max-width:800px}.hero h1 em,.section-light h2 em,.story h2 em,.rsvp h2 em,.finale h2 em{font-family:var(--serif);font-weight:500;color:var(--gold2)}.hero-copy{max-width:550px;color:#d0d1ce;line-height:1.8;font-size:14px;margin:26px 0}.gold-button{display:inline-flex;align-items:center;gap:28px;color:var(--gold2);border:1px solid rgba(201,164,106,.7);padding:15px 21px;text-decoration:none;font-size:10px;letter-spacing:.22em;font-weight:700}.gold-button span{font-size:18px}.scroll-mark{position:absolute;z-index:3;right:5vw;bottom:36px;font-size:8px;letter-spacing:.25em;color:#bfc0bd;writing-mode:vertical-rl}.scroll-mark span{height:60px;width:1px;background:var(--gold);display:block;margin-top:14px}
section{position:relative}.section-dark{background:var(--dark)}.section-light{background:linear-gradient(135deg,#e9e9e7,#d5d6d5);color:#202326}.intro{padding:140px 10vw 125px;display:grid;grid-template-columns:.7fr 1.3fr;gap:60px}.intro h2,.section-light h2,.story h2,.rsvp h2,.section-heading h2{font-family:var(--display);font-weight:500;font-size:clamp(32px,4vw,58px);line-height:1.08;margin:0}.intro h2 strong{color:var(--gold2);font-weight:500}.lead{font-family:var(--serif);font-size:clamp(20px,2vw,28px);line-height:1.55;max-width:820px;margin:28px 0 0;color:#c9c9c6}.intro .lead{grid-column:2;margin-top:-20px}
.story{display:grid;grid-template-columns:1.05fr .95fr;background:var(--platinum);color:#25282a;min-height:720px}.story-image{min-height:600px}.story-copy{padding:10vw 8vw;display:flex;flex-direction:column;justify-content:center}.story-copy h2{font-family:var(--display);font-size:clamp(34px,4vw,56px);line-height:1.08;font-weight:500;margin:20px 0}.story-copy p{font-size:14px;line-height:1.9;max-width:560px;color:#55585a}.signature{margin-top:30px;font-family:var(--display);font-size:24px;letter-spacing:.12em;color:#8d6c38}.signature small{display:block;font-family:var(--sans);font-size:8px;letter-spacing:.24em;color:#777;margin-top:5px}
.statement{min-height:620px;display:flex;align-items:center;justify-content:center;overflow:hidden}.statement-bg{background-image:linear-gradient(rgba(10,11,12,.65),rgba(10,11,12,.82)),url("img/abo3.webp");filter:grayscale(.7)}.statement-inner{position:relative;text-align:center;max-width:900px;padding:80px 30px}.quote-mark{display:block;font-family:Georgia,serif;color:var(--gold);font-size:90px;line-height:.5}.statement p{font-family:var(--serif);font-style:italic;font-size:clamp(30px,4vw,54px);line-height:1.22;margin:25px 0;color:#f3f0e9}.gold-rule{display:block;width:80px;height:1px;background:var(--gold);margin:25px auto}.statement small{font-size:9px;letter-spacing:.3em;color:#c8c6c0}
.celebration{padding:125px 10vw 140px;text-align:center}.celebration .lead{margin:25px auto;max-width:780px;color:#5f6262}.countdown-wrap{margin:65px auto 80px;max-width:920px;border-top:1px solid rgba(40,42,43,.18);border-bottom:1px solid rgba(40,42,43,.18);padding:35px 0}.countdown-title{font-size:9px;letter-spacing:.3em;color:#777;margin-bottom:25px}.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.countdown strong{font-family:var(--display);font-size:clamp(38px,5vw,68px);font-weight:500;color:#242628}.countdown span{display:block;font-size:8px;letter-spacing:.25em;color:#777;margin-top:8px}.date-note{font-size:9px;letter-spacing:.25em;color:#977541;margin-top:25px}.event-grid{display:grid;grid-template-columns:repeat(3,1fr);max-width:1000px;margin:auto;border-top:1px solid rgba(40,42,43,.18)}.event-card{padding:40px 20px;border-right:1px solid rgba(40,42,43,.15)}.event-card:last-child{border:0}.event-number{font-size:9px;letter-spacing:.2em;color:#9a9b9a}.event-icon{color:#ad8550;font-size:18px;margin:18px}.event-card h3{font-family:var(--display);font-weight:500;letter-spacing:.08em}.event-card p{font-size:11px;letter-spacing:.1em;color:#686b6b}
.full-photo{height:76vh;min-height:500px;position:relative;overflow:hidden}.full-photo img{filter:brightness(.62) saturate(.75)}.photo-caption{position:absolute;left:6vw;bottom:45px;font-size:10px;letter-spacing:.32em;color:#eee}
.gallery{padding:130px 5vw}.section-heading{margin-left:5vw;margin-bottom:55px}.section-heading h2{margin-top:18px}.gallery-grid{display:grid;grid-template-columns:1.3fr .7fr 1fr;grid-auto-rows:250px;gap:14px}.gallery figure{margin:0;overflow:hidden;background:#252729}.gallery figure img{transition:transform .8s}.gallery figure:hover img{transform:scale(1.035)}.g-large{grid-row:span 2}.g-tall{grid-row:span 2}.g-wide{grid-column:span 1}.g-small{grid-column:span 1}.gallery-grid figure:nth-child(4){grid-column:span 2}.gallery-grid figure:nth-child(5),.gallery-grid figure:nth-child(6){grid-column:span 1}
.team{display:grid;grid-template-columns:.8fr 1.2fr;align-items:stretch}.team-copy{padding:10vw 8vw;display:flex;flex-direction:column;justify-content:center}.team-copy h2{margin:20px 0;font-size:clamp(32px,4vw,54px)}.team-copy p{line-height:1.9;max-width:530px;color:#56595b;font-size:14px}.team-photo{min-height:600px}
.values{padding:125px 8vw}.centered{text-align:center;margin:0 auto 65px}.values-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(220,210,190,.15)}.value{padding:35px 28px;border-right:1px solid rgba(220,210,190,.15)}.value:last-child{border:0}.value b{font-size:9px;letter-spacing:.2em;color:var(--gold)}.value h3{font-family:var(--display);font-size:24px;font-weight:500;color:#eee}.value p{font-size:12px;color:#aeb0af;line-height:1.7}
.rsvp{display:grid;grid-template-columns:1fr 1fr;background:#dfe0de;color:#232628}.rsvp-image{min-height:680px}.rsvp-copy{padding:10vw 8vw;display:flex;flex-direction:column;justify-content:center}.rsvp-copy h2{margin:20px 0}.rsvp-copy>p{font-size:14px;line-height:1.9;max-width:500px;color:#5a5d5e}.rsvp-form{margin-top:15px;max-width:540px;display:grid;gap:14px}.rsvp-form label{display:grid;gap:7px}.rsvp-form label span{font-size:8px;letter-spacing:.22em;color:#806538;font-weight:700}.rsvp-form input,.rsvp-form select{width:100%;border:0;border-bottom:1px solid rgba(80,82,82,.32);background:transparent;padding:11px 2px;font:500 13px var(--sans);color:#252729;outline:none}.rsvp-form input:focus,.rsvp-form select:focus{border-color:#aa8350}.rsvp-submit{margin-top:8px;border:1px solid #9b7745;background:#202326;color:#e7cf9c;padding:16px 20px;font:700 9px var(--sans);letter-spacing:.2em;cursor:pointer;text-align:center}.rsvp-submit span{font-size:15px;margin-left:12px}.rsvp-note{font-size:10px!important;line-height:1.6!important;margin-top:13px;color:#777!important}.event-actions{display:flex;justify-content:center;gap:14px;margin:45px auto 20px;flex-wrap:wrap}.event-action{background:transparent;cursor:pointer;font-family:var(--sans)}.event-action .action-icon{font-size:16px;margin-right:8px}.venue-link{display:inline-block;margin-top:18px;color:#8f6d3c;text-decoration:none;font-size:9px;font-weight:700;letter-spacing:.18em;border-bottom:1px solid rgba(143,109,60,.35);padding-bottom:5px}.event-card small{display:block;margin-top:10px;font-size:9px;line-height:1.5;color:#777;letter-spacing:.05em}
.finale{min-height:100svh;display:flex;align-items:center;justify-content:center;position:relative;text-align:center}.finale-photo{background-image:url("img/aboFach.png");background-position:center}.finale-overlay{position:absolute;inset:0;background:linear-gradient(rgba(8,9,10,.55),rgba(8,9,10,.82))}.finale-content{position:relative;z-index:2;padding:80px 20px}.mini-logo{display:inline-flex;width:60px;height:60px;border:1px solid var(--gold);align-items:center;justify-content:center;font-family:var(--display);color:var(--gold2);font-size:18px;margin-bottom:30px}.finale-number{font-size:clamp(90px,14vw,180px);margin:25px 0 5px}.finale h2{font-family:var(--display);font-weight:500;font-size:clamp(32px,4vw,58px);line-height:1.08}.finale p:not(.eyebrow){font-family:var(--serif);font-size:22px;color:#ddd8cf}.finale-content small{font-size:8px;letter-spacing:.3em;color:#bdb9b0}
footer{
  text-align:center;
  padding:44px 28px 52px;
  background:linear-gradient(to bottom,#242024 0%,#0d0c0d 45%,#000 100%);
  color:rgba(251,250,243,0.55);
  font-size:30px;
  letter-spacing:.08em;
}
footer .credit{margin-top:18px;font-family:'Cormorant Garamond',Georgia,serif;font-size:14px;font-variant:small-caps;letter-spacing:.08em;line-height:1.7;color:#E8C94A}
footer .credit a{color:#E8C94A;text-decoration:underline;text-underline-offset:3px;transition:opacity .2s ease}
footer .credit a:hover{opacity:.75}
footer .credit .credit-line{display:block}
.reveal{opacity:0;transform:translateY(35px);transition:opacity .8s ease,transform .8s ease}.reveal.visible{opacity:1;transform:none}
@media(max-width:800px){
  .nav{height:75px;padding:0 6vw}.nav-links{position:absolute;top:75px;left:0;right:0;background:rgba(16,18,19,.97);padding:25px 6vw;display:none;flex-direction:column}.nav-links.open{display:flex}.menu{display:block}.hero-content{margin-left:7vw;padding-top:50px}.hero h1{font-size:34px}.number{font-size:115px}.intro{display:block;padding:95px 8vw}.intro .lead{margin-top:25px}.story,.team,.rsvp{grid-template-columns:1fr}.story-image,.team-photo,.rsvp-image{min-height:450px}.story-copy,.team-copy,.rsvp-copy{padding:80px 8vw}.event-grid{grid-template-columns:1fr}.event-card{border-right:0;border-bottom:1px solid rgba(40,42,43,.15)}.countdown{gap:0}.countdown strong{font-size:36px}.gallery{padding:90px 5vw}.gallery-grid{grid-template-columns:1fr 1fr;grid-auto-rows:190px}.g-large,.g-tall{grid-row:span 2}.gallery-grid figure:nth-child(4){grid-column:span 2}.values{padding:90px 8vw}.values-grid{grid-template-columns:1fr 1fr}.value:nth-child(2){border-right:0}.value:nth-child(3),.value:nth-child(4){border-top:1px solid rgba(220,210,190,.15)}footer{gap:20px;flex-direction:column;font-size:24px}.full-photo{height:55vh}.section-heading{margin-left:2vw}
}
@media(max-width:500px){
  .hero-content{padding-top:30px}.hero-copy{font-size:13px}.scroll-mark{display:none}.countdown-wrap{margin-bottom:50px}.gallery-grid{grid-template-columns:1fr;grid-auto-rows:230px}.g-large,.g-tall,.gallery-grid figure:nth-child(4){grid-row:span 1;grid-column:span 1}.values-grid{grid-template-columns:1fr}.value{border-right:0!important;border-bottom:1px solid rgba(220,210,190,.15)}.value:last-child{border-bottom:0}
}

.hotel-venue-photo{position:relative;overflow:hidden}
.hotel-venue-photo img{filter:brightness(.72) saturate(.72)}
.hotel-photo-caption{position:absolute;left:30px;bottom:25px;color:#f1eee7;font-size:9px;letter-spacing:.28em;text-shadow:0 2px 12px #000}
.venue-feature{max-width:1100px;margin:75px auto 20px;display:grid;grid-template-columns:1.25fr .75fr;min-height:430px;background:#202326;color:#eee;text-align:left}
.venue-feature-image{min-height:430px;overflow:hidden}
.venue-feature-image img{filter:brightness(.68) saturate(.7);transition:transform .8s}
.venue-feature:hover img{transform:scale(1.025)}
.venue-feature-copy{padding:55px 50px;display:flex;flex-direction:column;justify-content:center}
.venue-feature-copy h3{font-family:var(--display);font-size:clamp(28px,3vw,44px);line-height:1.1;font-weight:500;margin:18px 0}
.venue-feature-copy h3 em{font-family:var(--serif);color:var(--gold2);font-weight:500}
.venue-feature-copy p{font-size:13px;line-height:1.8;color:#bfc0be}
.venue-feature-actions{display:flex;gap:20px;margin-top:20px;flex-wrap:wrap}
.venue-feature-actions a{font-size:9px;letter-spacing:.18em;color:var(--gold2);text-decoration:none;border-bottom:1px solid rgba(201,164,106,.45);padding-bottom:7px}
@media(max-width:800px){
  .venue-feature{grid-template-columns:1fr;margin-top:55px}
  .venue-feature-image{min-height:300px}
  .venue-feature-copy{padding:40px 30px}
}

/* Foto del Hotel Delfines: presentación pequeña y elegante */
.venue-feature{
  max-width:900px !important;
}
.venue-feature-image{
  min-height:260px !important;
  max-height:260px !important;
}
.venue-feature-image img{
  width:100% !important;
  height:260px !important;
  object-fit:cover !important;
}
@media(max-width:800px){
  .venue-feature-image,
  .venue-feature-image img{
    height:210px !important;
    min-height:210px !important;
    max-height:210px !important;
  }
}
