:root {
  color-scheme: light;
  --cream: #f8f4ed;
  --paper: #fffbf5;
  --sage: #8b9f90;
  --sage-fog: #e7ece6;
  --forest: #334b42;
  --wine: #73354a;
  --wine-dark: #602738;
  --ink: #313c35;
  --muted: #6a776e;
  --line: #e1ded2;
  --serif: Georgia, 'Times New Roman', serif;
  --sans: 'Trebuchet MS', 'Segoe UI', Arial, sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--cream); color: var(--ink); font-family: var(--sans); line-height: 1.65; }
[hidden] { display: none !important; }
a { color: inherit; }
img { max-width: 100%; height: auto; }
:focus-visible { outline: 3px solid var(--wine); outline-offset: 4px; }
.skip-link { position: absolute; z-index: 100; left: 10px; top: -80px; padding: 10px 15px; background: #fff; }
.skip-link:focus { top: 10px; }
.aviso-pruebas { background: var(--wine); color: #fff; text-align: center; padding: .4rem 1rem; font-size: .72rem; letter-spacing: .06em; }
.site-header { width: 100%; max-width: 1320px; padding: 1.25rem clamp(1.3rem,5vw,4rem); margin: 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.brand { text-decoration: none; color: var(--forest); font-family: var(--serif); font-size: 1.55rem; letter-spacing: .06em; white-space: nowrap; }
.brand-amp { font-size: .74em; color: var(--wine); font-style: italic; }
.site-nav { display: flex; align-items: center; gap: clamp(.7rem,2vw,2rem); flex-wrap: wrap; }
.site-nav a { text-decoration: none; font-size: .74rem; letter-spacing: .08em; text-transform: uppercase; font-weight: 700; transition: color .2s; }
.site-nav a:hover { color: var(--wine); }
.hero { position: relative; isolation: isolate; max-width: 1300px; margin: 0 auto; padding: clamp(2rem,5vw,5rem) clamp(1rem,4vw,3.5rem) 4rem; text-align: center; overflow: hidden; }
.hero::before, .hero::after { content: ''; position: absolute; z-index: -1; border: 1px solid #bac7b8; width: 240px; height: 240px; border-radius: 50%; opacity: .2; }
.hero::before { left: -165px; top: 20%; }
.hero::after { right: -170px; bottom: 10%; }
.hero-eyebrow { display: flex; align-items: center; justify-content: center; gap: 1rem; color: var(--forest); font-size: .7rem; letter-spacing: .24em; font-weight: 700; }
.hero-line { display: block; width: 45px; height: 1px; background: var(--sage); }
.hero-eyebrow-text { min-width: 0; }
.hero-line { flex: 0 0 45px; }
h1, h2, h3, p { margin-top: 0; }
h1 { font-family: var(--serif); font-weight: 400; font-size: clamp(4.25rem,10.2vw,9rem); letter-spacing: -.057em; color: var(--wine); line-height: 1.11; margin: 1.1rem 0 .5rem; }
.hero-y { font-size: .6em; font-style: italic; font-weight: 400; color: var(--sage); padding: 0 .02em; }
.hero-date { font-size: clamp(.69rem,1.35vw,.86rem); letter-spacing: .18em; font-weight: 700; color: var(--forest); margin: .1rem 0 .7rem; }
.hero-tagline { font-family: var(--serif); font-style: italic; font-size: clamp(1.02rem,2vw,1.35rem); color: var(--forest); margin-bottom: 1.6rem; }
.hero-portrait { max-width: 1050px; margin: 0 auto; }
.hero-portrait img { display: block; width: 100%; height: auto; filter: drop-shadow(0 12px 14px rgb(97 62 72 / 5%)); }
.hero-intro { font-family: var(--serif); color: var(--forest); font-size: clamp(1.15rem,2.3vw,1.55rem); margin: 0 0 1.45rem; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 1rem; padding: .94rem 1.65rem; text-decoration: none; font-weight: 700; text-transform: uppercase; letter-spacing: .095em; font-size: .74rem; border-radius: 3px; transition: background-color .2s,transform .2s; }
.button:hover { transform: translateY(-2px); }
.button-dark { background: var(--wine); color: #fff; }
.button-dark:hover { background: var(--wine-dark); }
.tiny-paws { color: var(--sage); font-size: 1rem; margin: 2rem 0 0; }
.section-pad { padding: clamp(4rem,7vw,7.5rem) clamp(1.35rem,5vw,4rem); scroll-margin-top: 15px; }
.section-number { color: var(--wine); font-size: .69rem; text-transform: uppercase; font-weight: 800; letter-spacing: .21em; text-align: center; margin-bottom: 1.7rem; }
.overline { text-align: center; color: var(--sage); text-transform: uppercase; letter-spacing: .2em; font-size: .7rem; font-weight: 800; margin: 0 0 1rem; }
.overline-weather { color: var(--wine); max-width: 680px; margin-inline: auto; line-height: 1.8; }
.invite { background: linear-gradient(180deg,#e8eee9 0%,#e5ebe4 100%); }
.paper-note { position: relative; max-width: 775px; margin: 0 auto; background: var(--paper); border: 1px solid #e7dfd4; box-shadow: 0 28px 60px rgb(45 69 52 / 7%); padding: clamp(2.2rem,6vw,5rem) clamp(1.4rem,6vw,5.2rem); text-align: center; }
.paper-note::before { content: ''; inset: 12px; border: 1px solid #e6ddd4; position: absolute; pointer-events: none; }
.paper-note > * { position: relative; }
.paper-note h2 { font: 400 clamp(2.2rem,5vw,3.9rem)/1.1 var(--serif); color: var(--wine); margin: 0; }
.ornament { color: var(--wine); display: flex; align-items: center; justify-content: center; gap: 1.1rem; margin: 1.6rem 0 2.3rem; }
.ornament span { width: 54px; height: 1px; background: #d8c8bd; }
.invite-copy { max-width: 565px; margin: auto; font-size: clamp(.96rem,1.5vw,1.06rem); }
.invite-copy p { margin: 0 0 1.2rem; }
.invite-copy strong { color: #3a4940; }
.invite-copy em { color: #6a6c62; }
.invite-copy .announcement { font: 400 clamp(2.1rem,4.5vw,3.6rem)/1.2 var(--serif); color: var(--wine); margin: 1.8rem 0; }
.signature { color: var(--muted); font-family: var(--serif); font-style: italic; margin: 2.3rem auto 0; }
.signature span { font-size: 1.45rem; color: var(--wine); }
.details { background: var(--cream); }
.section-heading { font: 400 clamp(2.6rem,5.7vw,4.8rem)/1.15 var(--serif); color: var(--wine); text-align: center; margin: 0 0 1.25rem; letter-spacing: -.025em; }
.section-lead { max-width: 680px; margin: 0 auto 3rem; text-align: center; font-family: var(--serif); font-style: italic; font-size: clamp(1.1rem,2vw,1.33rem); color: var(--forest); }
.detail-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem; max-width: 1040px; margin: 0 auto; }
.detail-card { background: #fffdfa; border: 1px solid var(--line); text-align: center; padding: 2.1rem 1.2rem 2rem; min-height: 260px; }
.card-symbol { display: inline-block; font-size: 1.8rem; color: var(--sage); line-height: 1; margin-bottom: 1rem; }
.detail-card h3 { font: 400 1.65rem/1.2 var(--serif); color: var(--wine); margin-bottom: 1.3rem; }
.card-strong { font-size: .94rem; font-weight: 700; margin-bottom: .3rem; }
.detail-pending { color: #78837a; font-size: .8rem; font-style: italic; }
.countdown { margin: 2.5rem auto 0; text-align: center; }
.countdown-values { display: flex; align-items: center; justify-content: center; gap: 2rem; }
.countdown-values div { display: flex; flex-direction: column; }
.countdown-values strong { font: 400 2.6rem var(--serif); color: var(--wine); }
.countdown-values span { font-size: .75rem; color: var(--muted); }
.logistics { background: #eef0e9; }
.two-panels { display: grid; grid-template-columns: 1fr 1fr; gap: 1.3rem; max-width: 950px; margin: 0 auto; }
.logistic-panel { border-top: 2px solid var(--sage); background: #fcfaf6; padding: 2.2rem; }
.panel-label { color: var(--wine); font-size: .7rem; letter-spacing: .15em; font-weight: 800; }
.logistic-panel h3 { font: 400 1.9rem var(--serif); color: var(--forest); margin: 1rem 0; }
.logistic-panel p { font-size: .94rem; }
.button-map { margin-top: .45rem; padding: .73rem 1.1rem; font-size: .68rem; }
.rsvp { background: var(--forest); color: #fff9f2; text-align: center; position: relative; }
.rsvp .section-heading { color: #fff9f2; }
.section-number-light { color: #d5b3bf; }
.overline-light { color: #b8cbb9; }
.rsvp-lead { font: 400 clamp(1.2rem,2vw,1.5rem)/1.5 var(--serif); max-width: 620px; margin: 0 auto 2rem; }
.rsvp-lead em { color: #e1c0cb; }
.tally-form-card { background: #f7f4ed; color: var(--ink); max-width: 790px; margin: 0 auto; padding: clamp(1rem,3vw,2rem); border-radius: 3px; text-align: left; }
.tally-form-card iframe { display: block; width: 100%; border: 0; min-height: 390px; }
.tally-fallback { margin: 1rem 0 0; text-align: center; font-size: .79rem; line-height: 1.5; color: var(--muted); }
.tally-fallback a { color: var(--wine); font-weight: 700; text-underline-offset: .15em; }
.rsvp-aside { font-family: var(--serif); font-style: italic; color: #d5dfd5; margin: 2rem 0 0; }
.photos { text-align: center; background: #eef3ee; }

/* Sección de fotografías del día: preparados, pero envíos DESACTIVADOS hasta autorización */
.celebration-photo-card { max-width: 715px; margin: 0 auto; padding: clamp(1.6rem, 4vw, 3rem); border: 1px solid #dce2d8; background: #fbfdf9; box-shadow: 0 14px 32px rgba(51, 75, 66, .045); }
.celebration-photo-symbol { display:block; color:var(--sage); font-size:1.65rem; margin-bottom:.7rem; }
.celebration-photo-card h3 { font: 400 clamp(1.5rem,3vw,2rem)/1.25 var(--serif); color:var(--wine); margin-bottom:1rem; }
.celebration-photo-card > p { max-width:550px; margin:0 auto 1.7rem; font-size:.96rem; }
.celebration-photo-disabled { border-top:1px solid var(--line); padding-top:1.6rem; }
.celebration-photo-status { display:block; font-size:.74rem; font-weight:800; color:var(--forest); letter-spacing:.07em; margin-bottom:1rem; text-transform:uppercase; }
.celebration-photo-button { display:block; margin:0 auto .9rem; border:0; border-radius:3px; padding:1rem 1.5rem; color:#f9f6f0; background:#9a9295; font-family:var(--sans); font-size:.76rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; cursor:not-allowed; opacity:.78; }
.celebration-photo-button:disabled { pointer-events:none; }
#celebration-photo-hint { font-size:.85rem; color:var(--muted); max-width:440px; margin:0 auto; }

.photo-note { display: flex; align-items: center; justify-content: center; gap: 1rem; max-width: 560px; padding: 1.3rem; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); margin: 0 auto; color: var(--forest); }
.photo-note p { margin: 0; font-size: .9rem; }
.photo-note span { color: var(--wine); }
.footer { text-align: center; background: #e5e9df; padding: 4.5rem 1rem 2.5rem; }
.footer-monogram { font: 400 3.2rem var(--serif); color: var(--forest); line-height: 1; margin-bottom: 1.5rem; }
.footer-monogram span { color: var(--wine); font-style: italic; }
.footer > p:not(.footer-monogram) { margin-bottom: .4rem; font: italic 1.02rem var(--serif); }
.footer-paws { color: var(--wine); }
.footer-signoff { color: var(--muted); }
.back-top { display: inline-block; margin-top: 2rem; text-decoration: none; color: var(--forest); letter-spacing: .12em; font-size: .75rem; text-transform: uppercase; font-weight: 800; border-bottom: 1px solid var(--forest); }


/* Alojamiento para invitados: tarifas de referencia del dossier 2026 */
.accommodations { background: #f8faf6; }
.stay-guidance { max-width: 950px; margin: 0 auto 1rem; padding: 1.3rem clamp(1rem,3vw,1.7rem); background: #e9eee7; border-left: 4px solid var(--sage); display: flex; align-items: flex-start; gap: 1rem; }
.stay-guidance-symbol { flex: 0 0 42px; width: 42px; height: 42px; border: 1px solid #b6c4b5; background: #f8faf6; border-radius: 50%; display: grid; place-items: center; color: var(--wine); font-size: 1.18rem; }
.stay-guidance strong { color: var(--forest); }
.stay-guidance p { margin: .28rem 0 0; font-size: .94rem; }
.stay-alert { max-width: 950px; margin: 0 auto 1.8rem; padding: .9rem 1.3rem; border: 1px solid #e3d6d0; background: #fff8f2; color: #5a4e46; font-size: .87rem; }
.stay-alert > strong { color: var(--wine); }
.stay-alert p { margin: .25rem 0 0; }
.stay-grid { max-width: 950px; margin: 0 auto; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.15rem; }
.stay-card { background: #fffcf8; padding: clamp(1.4rem,3vw,2.1rem); border: 1px solid #dce3da; border-top: 3px solid #92a696; display: flex; flex-direction: column; align-items: flex-start; min-width: 0; }
.stay-chip { font-size: .65rem; letter-spacing: .14em; font-weight: 800; color: var(--muted); }
.stay-card h3 { font: 400 clamp(1.55rem,2.5vw,2rem)/1.19 var(--serif); color: var(--wine); margin: .7rem 0 .85rem; }
.stay-price { display: flex; align-items: baseline; flex-wrap: wrap; gap: .4rem 1rem; margin: 0 0 1rem; }
.stay-price strong { font: 400 2.2rem var(--serif); color: var(--forest); white-space: nowrap; }
.stay-price span { font-size: .8rem; color: var(--muted); max-width: 230px; }
.stay-includes { font-size: .93rem; line-height: 1.5; margin: 0 0 1.1rem; }
.stay-address { border-top: 1px solid var(--line); padding-top: .85rem; font-style: normal; font-size: .87rem; color: var(--forest); width: 100%; margin-top: auto; }
.stay-card-actions { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; align-items: center; margin-top: 1.25rem; }
.stay-call { background: var(--wine); color: white; padding: .59rem .89rem; font-weight: 800; letter-spacing: .035em; font-size: .89rem; text-decoration: none; border-radius: 3px; }
.stay-call:hover { background: var(--wine-dark); }
.stay-map { color: var(--forest); font-size: .82rem; font-weight: 700; text-decoration: underline; text-underline-offset: .2em; }
.stay-footer { max-width: 930px; margin: 1.5rem auto 0; font-size: .83rem; color: var(--muted); text-align: center; }
.stay-footer a { text-underline-offset: .15em; }
.stay-footer-playful { font-family: var(--serif); font-style: italic; font-size: .96rem; margin-top: .7rem; color: var(--forest); }

/* Dos misiones nuevas: foto privada antes de la boda y regalo opcional */
.guest-photos { background: #edf1eb; }
.photo-request-layout { display: grid; grid-template-columns: minmax(210px,.72fr) minmax(0,1.45fr); gap: clamp(1rem,4vw,3.8rem); max-width: 1020px; align-items: stretch; margin: 0 auto; }
.photo-request-decor { display: flex; flex-direction: column; align-items: center; justify-content: flex-start; text-align: center; padding: 0; min-height: 0; background: transparent; border: none; align-self: start; }
.photo-request-portrait { display: block; width: 100%; max-width: 390px; height: auto; object-fit: contain; }
.photo-request-decor > p { margin: .2rem 0 0; font: italic 1.12rem/1.3 var(--serif); color: var(--forest); max-width: 16rem; }
.photo-request-card { background: var(--paper); padding: clamp(1.5rem,4vw,3rem); border: 1px solid var(--line); border-top: 3px solid var(--wine); }
.photo-request-card h3 { font: 400 clamp(1.75rem,3.5vw,2.25rem)/1.2 var(--serif); color: var(--wine); margin: 1rem 0; }
.photo-request-card p { margin-bottom: 1rem; }
.photo-privacy { border-left: 3px solid var(--sage); padding: .8rem 1rem; background: #eef2eb; font-size: .93rem; margin-top: 1.1rem; }
/* Formulario privado de fotografías: embebido igual que el RSVP. */
.guest-photo-tally { margin-top: 1.3rem; padding: clamp(.45rem,1.4vw,.85rem); background: #f7f4ed; border: 1px solid #d9dfd5; }
.guest-photo-tally iframe { display: block; width: 100%; border: 0; min-height: 255px; }
.upload-form-intro { text-align: center; color: var(--wine); margin: 0 0 .8rem !important; }
.pending-photo-upload { border: 1px dashed #98aa9d; background: #f4f7f2; padding: 1rem; display: flex; align-items: flex-start; gap: .8rem; }
.pending-photo-upload > span { color: var(--wine); font-size: 1.6rem; line-height: 1.3; }
.pending-photo-upload strong { color: var(--forest); }
.pending-photo-upload p { margin: .25rem 0 0; font-size: .9rem; }
.small-paws { margin-top: 1.2rem; color: var(--muted); font-size: .8rem; font-style: italic; }
.gifts { background: #f8f4ed; }
.gift-human-intro { max-width: 680px; margin: 0 auto 1.5rem; text-align: center; font-size: clamp(.94rem,1.5vw,1.05rem); line-height: 1.7; color: var(--forest); }
.gift-story { max-width: 735px; margin: 0 auto; }
.gift-scene { position: relative; background: #fffcf7; border: 1px solid #e1dacf; padding: clamp(1.8rem,5vw,3rem) clamp(1.4rem,5vw,3.5rem); text-align: center; box-shadow: 0 14px 30px rgb(66 56 51 / 4%); margin-bottom: 1.5rem; }
.gift-scene:nth-child(2) { background: #fcfaf3; }

.gift-scene:not(.gift-scene-first) { border-top: 3px solid #aebcae; }
.gift-scene-ornament { color: var(--sage); display: block; font-size: 1.65rem; line-height: 1; margin-bottom: 1rem; }
.gift-scene h3 { font: 400 clamp(1.85rem,4vw,2.55rem)/1.22 var(--serif); color: var(--wine); margin: 0 0 1.4rem; }
.gift-scene p { max-width: 555px; margin: 0 auto 1.05rem; }
.gift-scene p strong { color: var(--forest); }
.gift-reveal { display: inline-flex; align-items: center; justify-content: center; gap: .75rem; margin: 1.15rem auto 0; padding: .86rem 1.35rem; max-width: 100%; background: var(--wine); color: white; border: none; border-radius: 3px; cursor: pointer; font: 700 .78rem/1.45 var(--sans); letter-spacing: .025em; text-align: center; }
.gift-reveal:hover, .gift-reveal:focus-visible { background: var(--wine-dark); }
.gift-reveal span { font-size: 1.25rem; }
.gift-scene-final { background: #f2f4ed; }
.iban-placeholder { max-width: 470px; margin: 1.3rem auto; padding: 1.2rem 1.1rem; text-align:center; background: #fcfaf5; border: 1px dashed #a8b5a6; display:flex; flex-direction:column; gap:.2rem; }
.iban-placeholder span { letter-spacing:.16em; font-size:.66rem; font-weight:800; color:var(--muted); }
.iban-placeholder .iban-number { color:var(--wine); font:400 clamp(.95rem, 3vw, 1.25rem)/1.5 var(--serif); letter-spacing:.035em; overflow-wrap:anywhere; user-select:all; }
.iban-placeholder small { font-size:.75rem; color:var(--muted); }
.gift-last-line { text-align:center; }
.gift-signature { text-align:center; margin:2rem auto 0; color:var(--muted); font:italic 1.05rem var(--serif); }
@media (max-width: 760px) {
  .photo-request-layout { grid-template-columns:1fr; max-width:530px; }
  .photo-request-decor { min-height: 0; padding: 0; }
  .photo-request-portrait { max-width: 335px; margin: 0 auto; }
  .photo-request-decor > p { margin-top: .25rem; }
  .stay-grid { grid-template-columns: 1fr; max-width: 530px; }
  .stay-guidance { padding: 1.15rem; }
  .gift-scene { margin-bottom: 1rem; }
}

@media (max-width: 760px) {
  .site-header { flex-direction: column; gap: .8rem; padding-top: 1rem; }
  .site-nav { justify-content: center; gap: .65rem 1rem; }
  .site-nav a { font-size: .65rem; }
  .hero { padding-top: 2rem; }
  h1 { font-size: clamp(3.6rem,12vw,5.3rem); }
  .hero-tagline { padding: 0 .5rem; }
  .detail-grid { grid-template-columns: 1fr; max-width: 470px; }
  .detail-card { min-height: auto; padding: 1.8rem 1rem; }
  .two-panels { grid-template-columns: 1fr; }
  .tally-form-card { padding: 1rem .4rem; }
  .paper-note { padding: 2.6rem 1.8rem; }
  .paper-note::before { inset: 8px; }
}
@media (max-width: 410px) {
  .aviso-pruebas { font-size: .62rem; }
  .site-nav { gap: .55rem .75rem; }
  .site-nav a { font-size: .59rem; }
  .hero-eyebrow { letter-spacing: .12em; font-size: .61rem; }
  .hero-line { width: 21px; flex-basis: 21px; }
  .hero { padding-left: .7rem; padding-right: .7rem; }
  .hero h1 { font-size: 3.4rem; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } .button { transition: none; } }


/* V20: navegación visible de forma permanente, incluso en móvil.
   Las opciones del menú se desplazan horizontalmente en pantallas estrechas. */
:root { --fixed-nav-height: 76px; }
html { scroll-padding-top: calc(var(--fixed-nav-height) + 12px); }
body { padding-top: var(--fixed-nav-height); }
.site-header {
  position: fixed;
  inset: 0 0 auto;
  width: 100%;
  max-width: none;
  height: var(--fixed-nav-height);
  margin: 0;
  padding: .6rem clamp(1rem, 4vw, 3rem);
  z-index: 1000;
  background: rgba(248, 244, 237, .97);
  border-bottom: 1px solid #d9ddd3;
  box-shadow: 0 4px 18px rgba(44, 60, 50, .08);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
}
.brand { flex: 0 0 auto; }
.site-nav {
  min-width: 0;
  max-width: 100%;
  flex-wrap: nowrap;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scrollbar-width: thin;
  scrollbar-color: #bdc8bc transparent;
  -webkit-overflow-scrolling: touch;
  padding: .38rem .15rem;
}
.site-nav a { flex: 0 0 auto; white-space: nowrap; }
.site-nav::-webkit-scrollbar { height: 3px; }
.site-nav::-webkit-scrollbar-thumb { background: #bdc8bc; border-radius: 8px; }
.section-pad, .hero, footer { scroll-margin-top: calc(var(--fixed-nav-height) + 12px); }
#contenido { scroll-margin-top: calc(var(--fixed-nav-height) + 12px); }
.skip-link { position: fixed; z-index: 1100; }
@media (max-width: 760px) {
  :root { --fixed-nav-height: 91px; }
  .site-header {
    flex-direction: column;
    justify-content: center;
    align-items: stretch;
    gap: .2rem;
    padding: .33rem .85rem .22rem;
  }
  .brand { text-align: center; font-size: 1.22rem; line-height: 1.2; }
  .site-nav {
    width: 100%;
    justify-content: flex-start;
    flex-wrap: nowrap;
    gap: 1.1rem;
    padding: .35rem .25rem .4rem;
  }
  .site-nav a { font-size: .74rem; letter-spacing: .045em; }
  .section-number, .overline, .panel-label { font-size: .72rem; }
  .stay-chip { font-size: .72rem; }
  .section-pad { padding-left: clamp(1rem, 4vw, 2rem); padding-right: clamp(1rem, 4vw, 2rem); }
}
@media (max-width: 410px) {
  .site-nav { gap: 1rem; }
  .site-nav a { font-size: .72rem; }
  .hero h1 { font-size: clamp(3rem, 12vw, 3.4rem); }
  .paper-note { padding: 2.5rem 1.4rem; }
}

/* V21: hora de llegada al Palacio, separada del inicio de la ceremonia. */
.ceremony-arrival {
  margin-top: 1.25rem;
  padding-top: .95rem;
  border-top: 1px solid var(--line);
}
.ceremony-arrival-label {
  display: block;
  color: var(--wine);
  font-size: .69rem;
  font-weight: 800;
  letter-spacing: .10em;
}
.ceremony-arrival p { margin: .25rem 0 0; color: var(--forest); font-size: .9rem; }


/* V22: cabecera más distinguible, en verde eucalipto oscuro.
   Conserva posición fija y navegación horizontal en móviles. */
.site-header {
  background: #34483D;
  border-bottom: 2px solid #A77B89;
  box-shadow: 0 5px 18px rgba(35, 50, 41, .22);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
.site-header .brand,
.site-header .site-nav a { color: #F9F6F0; }
.site-header .brand-amp { color: #E0BBC5; }
.site-header .site-nav a:hover,
.site-header .site-nav a:focus-visible { color: #F2CCB9; }
.site-header a:focus-visible { outline-color: #F9F6F0; }
.site-header .site-nav { scrollbar-color: #b5c3b4 transparent; }
.site-header .site-nav::-webkit-scrollbar-thumb { background: #b5c3b4; }
