/* ====================================================================
   Salón del Viejo Oeste · tema de "Fiesta Vaquera" (cumple de Rodrigo)
   Se carga DESPUÉS de secciones.css (copia idéntica de _shared/) y
   reestiliza las secciones del motor sin tocarlo.

   IDENTIDAD
   · Estilo:  cartel de "Se busca" sobre papel kraft, madera oscura, cuero y
              cuerda. Puertas de cantina y un tumbleweed rodando por el camino.
   · Trazo:   contornos gruesos de tinta marrón, sombras duras sin difuminar,
              costuras de cuero (trazo discontinuo), clavos, remaches, bordes rasgados.
   · Color:   pergamino #F4E6C6 · kraft #E3C58F · madera #3A2418 · cuero #7A4A2A
              rojo óxido #A8402A · mostaza #D9A431 · mezclilla #2F5D8A
   · Fuente:  Rye (títulos) + Special Elite (texto, como máquina de escribir)
   Prefijo propio: ow (clases y keyframes).
   ==================================================================== */

:root{
  --color-fondo:#F4E6C6; --color-superficie:#FBF1D8; --color-principal:#A8402A; --color-secundario:#7A4A2A;
  --color-acento:#D9A431; --color-madera:#3A2418; --color-madera-clara:#5A3823; --color-kraft:#E3C58F;
  --color-mezclilla:#2F5D8A; --color-texto:#3A2418; --color-texto-suave:#6E5038; --color-borde:#B58B52;

  --ow-titulo:'Rye','Georgia',serif;
  --ow-texto:'Special Elite','Courier New',monospace;
  --ow-pad:20px;
  --ow-tinta:#3A2418;
  --ow-rojo-oscuro:#7E2A18;
  --ow-latón:linear-gradient(135deg,#F3D27A 0%,#D9A431 52%,#A97618 100%);

  --oc-w-sol:#C48A12; --oc-w-sol-fondo:#F7DE92; --oc-w-nube:#7A5B43; --oc-w-nube-fondo:#FBF1D8;
  --oc-w-gota:#2F5D8A; --oc-w-rayo:#A8402A;
}
@media (min-width:768px){ :root{ --ow-pad:32px; } }

html{ scroll-behavior:smooth; }
body.ow-paper{
  margin:0; overflow-x:hidden; font-family:var(--ow-texto); font-size:16.5px; line-height:1.55; color:var(--color-texto);
  -webkit-font-smoothing:antialiased;
  background-color:var(--color-fondo);
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .4 0 0 0 0 .26 0 0 0 0 .12 0 0 0 .32 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"),
    radial-gradient(ellipse 90% 5% at 0% 12%, rgba(185,120,60,.22), transparent 70%),
    radial-gradient(ellipse 80% 5% at 100% 40%, rgba(185,120,60,.18), transparent 70%),
    radial-gradient(ellipse 90% 5% at 0% 70%, rgba(185,120,60,.2), transparent 70%),
    linear-gradient(180deg,#F6E9CB 0%,#F0DDB3 50%,#F6E9CB 100%);
}
body.ow-lock{ overflow:hidden; }
.ow-main{ position:relative; z-index:10; width:100%; }
::selection{ background:#D9A431; color:#3A2418; }
:focus-visible{ outline:3px solid #A8402A; outline-offset:3px; }

/* ---------- tipografía ---------- */
.ow-kicker{
  margin:0; font-family:var(--ow-texto); font-size:.84rem; letter-spacing:.3em; text-indent:.3em; text-transform:uppercase; color:var(--ow-rojo-oscuro);
}
.ow-titulo{ margin:0; font-family:var(--ow-titulo); font-weight:400; line-height:1.12; color:var(--color-principal); text-shadow:2px 2px 0 rgba(58,36,24,.18); }

/* ====================================================================
   TUMBLEWEED: rueda por el camino (portada, sobre y despedida)
   ==================================================================== */
.ow-rueda{ position:absolute; bottom:4px; left:0; width:62px; height:62px; z-index:3; animation:owRueda 15s linear infinite; pointer-events:none; }
.ow-rueda span{ display:block; width:100%; height:100%; animation:owSalto 1.45s cubic-bezier(.3,.1,.5,1) infinite; }
.ow-rueda img{ display:block; width:100%; height:100%; animation:owGira 4.2s linear infinite; filter:drop-shadow(0 3px 0 rgba(58,36,24,.25)); }
@keyframes owRueda{ 0%{ transform:translateX(-100px) } 100%{ transform:translateX(calc(100vw + 40px)) } }
@keyframes owSalto{ 0%,100%{ transform:translateY(0) } 45%{ transform:translateY(-26px) } 62%{ transform:translateY(-8px) } }
@keyframes owGira{ to{ transform:rotate(360deg) } }
.ow-camino{
  position:relative; height:88px; margin:6px calc(var(--ow-pad) * -1) 0; overflow:hidden;
}
.ow-camino::before{
  content:''; position:absolute; left:0; right:0; bottom:0; height:30px;
  background:linear-gradient(180deg,rgba(181,139,82,.0),rgba(181,139,82,.35)), repeating-linear-gradient(90deg,transparent 0 14px,rgba(58,36,24,.18) 14px 16px,transparent 16px 40px);
  border-top:2px dashed rgba(58,36,24,.35);
}

/* ====================================================================
   SOBRE DE ENTRADA: puertas de cantina
   ==================================================================== */
.ow-open{
  position:fixed; inset:0; z-index:100; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:16px; padding:20px;
  overflow:hidden; text-align:center;
  background:linear-gradient(180deg,#2A1530 0%,#7B2F4A 26%,#D9632E 58%,#F2A33E 80%,#F6C768 100%);
  transition:opacity .8s ease;
}
.ow-open.is-hiding{ opacity:0; pointer-events:none; }
.ow-sol{ position:absolute; left:50%; bottom:16vh; width:min(70vw,300px); aspect-ratio:1; margin-left:calc(min(70vw,300px) / -2); border-radius:50%;
  background:radial-gradient(circle,#FFF0B8 0 46%,#FFD36B 47% 62%,rgba(255,211,107,.0) 72%); }
.ow-mesas{ position:absolute; left:0; right:0; bottom:0; height:34vh; background:url("mesas.svg") center bottom/cover no-repeat; }
.ow-estrellas{ position:absolute; inset:0 0 50% 0; background:
  radial-gradient(1.5px 1.5px at 12% 14%,#fff,transparent), radial-gradient(1.5px 1.5px at 28% 8%,#fff,transparent),
  radial-gradient(2px 2px at 46% 18%,#FFE9A8,transparent), radial-gradient(1.5px 1.5px at 66% 9%,#fff,transparent),
  radial-gradient(1.5px 1.5px at 84% 16%,#fff,transparent), radial-gradient(2px 2px at 92% 6%,#FFE9A8,transparent);
  animation:owTwinkle 3.4s ease-in-out infinite alternate; }
@keyframes owTwinkle{ from{ opacity:.45 } to{ opacity:1 } }
.ow-open .ow-kicker{ position:relative; z-index:2; color:#FFE9B0; text-shadow:0 2px 0 rgba(0,0,0,.45); }
.ow-open-hint{
  position:relative; z-index:2; margin:6px 0 0; font-size:1rem; color:#FFF1CC; text-shadow:0 2px 0 rgba(0,0,0,.5); animation:owHint 2.2s ease-in-out infinite;
}
.ow-open.is-open .ow-open-hint{ animation:none; opacity:0; transition:opacity .25s; }
@keyframes owHint{ 0%,100%{ opacity:.6; transform:translateY(0) } 50%{ opacity:1; transform:translateY(-3px) } }

.ow-fachada{ position:relative; z-index:2; width:min(84vw,330px); transform-origin:50% 62%; transition:transform 1s cubic-bezier(.6,0,.9,.5), opacity .8s ease .25s; }
.ow-open.is-enter .ow-fachada{ transform:scale(4); opacity:0; }
.ow-letrero{
  position:relative; margin:0 6% -4px; padding:14px 10px 12px; text-align:center; z-index:3;
  background:repeating-linear-gradient(180deg,#6B3E22 0 13px,#2E1A0F 13px 15px); border:4px solid #2E1A0F; border-radius:6px;
  box-shadow:0 6px 0 rgba(0,0,0,.35);
}
.ow-letrero::before,.ow-letrero::after{ content:''; position:absolute; top:7px; width:9px; height:9px; border-radius:50%; background:radial-gradient(circle at 35% 30%,#E9E2D0,#7C7568); box-shadow:0 1px 0 #1D0F07; }
.ow-letrero::before{ left:8px; } .ow-letrero::after{ right:8px; }
.ow-letrero span{ display:block; font-family:var(--ow-titulo); font-size:clamp(1.55rem,7.4vw,2rem); line-height:1; letter-spacing:.04em; color:#F3D27A; text-shadow:0 3px 0 #1D0F07; }
.ow-letrero small{ display:block; margin-top:5px; font-family:var(--ow-texto); font-size:.68rem; letter-spacing:.2em; text-transform:uppercase; color:#EBD7A8; }

.ow-marco{
  position:relative; display:block; width:100%; aspect-ratio:1/.98; padding:0; border:10px solid #5A3823; border-bottom-width:0; border-radius:4px 4px 0 0; cursor:pointer;
  background:radial-gradient(ellipse at 50% 55%,#FFD27A 0%,#F09A3A 42%,#8B3A16 82%,#3A1A0C 100%);
  box-shadow:0 0 0 4px #2E1A0F, 0 26px 0 -10px rgba(0,0,0,.28); perspective:700px; -webkit-tap-highlight-color:transparent; overflow:visible;
}
.ow-marco::after{ /* piso de la cantina */
  content:''; position:absolute; left:0; right:0; bottom:0; height:22%; background:repeating-linear-gradient(90deg,#2E1A0F 0 30px,#3F2616 30px 33px); border-top:3px solid #1D0F07;
}
.ow-interior{
  opacity:0; transition:opacity .5s ease .35s;
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center; text-align:center; padding:10px;
  font-family:var(--ow-titulo); font-size:clamp(1.15rem,6vw,1.5rem); line-height:1.15; color:#3A1A0C; text-shadow:0 1px 0 rgba(255,235,170,.7);
}
.ow-open.is-open .ow-interior{ opacity:1; }
.ow-puerta{
  position:absolute; top:22%; height:56%; width:50%; z-index:3; backface-visibility:visible;
  border:6px solid #2E1A0F; border-radius:6px 6px 2px 2px; background:
    repeating-linear-gradient(172deg,#9A6034 0 10px,#4A2A16 10px 12px,transparent 12px 17px);
  box-shadow:inset 0 0 0 5px #6B3E22, inset 0 0 0 7px #2E1A0F, 4px 6px 0 rgba(0,0,0,.25);
}
.ow-puerta.izq{ left:0; transform-origin:0 50%; animation:owIdleL 3.2s ease-in-out infinite; border-right-width:3px; }
.ow-puerta.der{ right:0; transform-origin:100% 50%; animation:owIdleR 3.2s ease-in-out infinite; border-left-width:3px; }
.ow-puerta::after{ content:''; position:absolute; top:46%; width:11px; height:11px; border-radius:50%; background:radial-gradient(circle at 35% 30%,#F3D27A,#A97618); box-shadow:0 0 0 2px #2E1A0F; }
.ow-puerta.izq::after{ right:7px; } .ow-puerta.der::after{ left:7px; }
@keyframes owIdleL{ 0%,100%{ transform:rotateY(0) } 50%{ transform:rotateY(-9deg) } }
@keyframes owIdleR{ 0%,100%{ transform:rotateY(0) } 50%{ transform:rotateY(9deg) } }
@keyframes owSwingL{ 0%{ transform:rotateY(0) } 38%{ transform:rotateY(-104deg) } 58%{ transform:rotateY(-62deg) } 78%{ transform:rotateY(-92deg) } 100%{ transform:rotateY(-80deg) } }
@keyframes owSwingR{ 0%{ transform:rotateY(0) } 38%{ transform:rotateY(104deg) } 58%{ transform:rotateY(62deg) } 78%{ transform:rotateY(92deg) } 100%{ transform:rotateY(80deg) } }
.ow-open.is-open .ow-puerta.izq{ animation:owSwingL 1.15s cubic-bezier(.3,.7,.3,1) forwards; }
.ow-open.is-open .ow-puerta.der{ animation:owSwingR 1.15s cubic-bezier(.3,.7,.3,1) forwards; }
.ow-open .ow-suelo{ position:absolute; left:0; right:0; bottom:0; height:84px; z-index:1; overflow:hidden; }
.ow-open .ow-suelo .ow-rueda{ bottom:6px; }
.ow-open .ow-rueda img{ filter:brightness(1.9) saturate(1.2) drop-shadow(0 3px 0 rgba(0,0,0,.45)); }
.ow-despedida .ow-rueda img{ filter:drop-shadow(0 3px 0 rgba(58,36,24,.35)); }

/* ====================================================================
   PORTADA: cartel de "Se busca"
   ==================================================================== */
.ow-hero{ position:relative; padding:34px var(--ow-pad) 10px; overflow:hidden; }
.ow-cartel{ position:relative; max-width:410px; margin:0 auto; filter:drop-shadow(6px 8px 0 rgba(58,36,24,.28)); }
.ow-papel{
  position:relative; padding:34px 26px 34px; text-align:center; clip-path:polygon(0.0% 0.5%,3.2% 0.6%,6.4% 1.0%,9.6% 0.5%,12.8% 0.6%,16.0% 0.6%,19.2% 0.2%,22.4% 0.6%,25.6% 0.7%,28.8% 0.9%,32.0% 0.1%,35.2% 0.3%,38.4% 0.1%,41.6% 0.9%,44.8% 0.8%,48.0% 0.0%,51.2% 1.1%,54.4% 1.1%,57.6% 0.7%,60.8% 0.7%,64.0% 0.2%,67.2% 0.0%,70.4% 0.6%,73.6% 0.1%,76.8% 0.2%,80.0% 0.3%,83.2% 0.0%,86.4% 0.5%,89.6% 0.5%,92.8% 0.9%,96.0% 0.6%,99.2% 0.7%,99.5% 1.9%,99.3% 3.8%,99.5% 5.8%,99.7% 7.7%,98.9% 9.6%,98.9% 11.5%,99.1% 13.4%,99.2% 15.4%,99.7% 17.3%,99.7% 19.2%,99.7% 21.1%,99.9% 23.0%,99.2% 25.0%,99.6% 26.9%,99.1% 28.8%,99.6% 30.7%,98.9% 32.6%,99.1% 34.6%,100.0% 36.5%,99.8% 38.4%,99.0% 40.3%,99.5% 42.2%,98.9% 44.2%,99.6% 46.1%,99.9% 48.0%,99.3% 49.9%,99.1% 51.8%,99.7% 53.8%,99.9% 55.7%,99.6% 57.6%,98.9% 59.5%,99.2% 61.4%,99.9% 63.4%,99.7% 65.3%,99.9% 67.2%,99.9% 69.1%,99.1% 71.0%,99.8% 73.0%,99.4% 74.9%,99.5% 76.8%,99.8% 78.7%,99.2% 80.6%,99.9% 82.6%,99.3% 84.5%,99.9% 86.4%,99.5% 88.3%,99.8% 90.2%,99.7% 92.2%,98.9% 94.1%,99.1% 96.0%,99.7% 97.9%,100.0% 99.0%,96.8% 99.8%,93.6% 99.6%,90.4% 99.1%,87.2% 99.3%,84.0% 99.9%,80.8% 98.9%,77.6% 99.8%,74.4% 99.7%,71.2% 99.2%,68.0% 99.6%,64.8% 99.7%,61.6% 99.9%,58.4% 99.9%,55.2% 99.4%,52.0% 99.7%,48.8% 99.3%,45.6% 99.6%,42.4% 99.5%,39.2% 98.9%,36.0% 99.5%,32.8% 99.4%,29.6% 99.0%,26.4% 99.8%,23.2% 99.8%,20.0% 99.0%,16.8% 99.1%,13.6% 99.7%,10.4% 99.8%,7.2% 99.2%,4.0% 99.0%,0.8% 99.8%,1.0% 98.1%,1.0% 96.2%,0.7% 94.2%,0.5% 92.3%,0.1% 90.4%,0.0% 88.5%,1.1% 86.6%,0.3% 84.6%,0.8% 82.7%,0.3% 80.8%,0.9% 78.9%,0.7% 77.0%,0.3% 75.0%,0.2% 73.1%,0.8% 71.2%,0.1% 69.3%,0.3% 67.4%,0.6% 65.4%,0.9% 63.5%,0.7% 61.6%,0.3% 59.7%,1.0% 57.8%,0.2% 55.8%,0.0% 53.9%,0.3% 52.0%,0.5% 50.1%,0.1% 48.2%,0.2% 46.2%,0.4% 44.3%,0.6% 42.4%,0.1% 40.5%,0.4% 38.6%,1.0% 36.6%,1.1% 34.7%,0.7% 32.8%,0.8% 30.9%,0.6% 29.0%,0.2% 27.0%,0.0% 25.1%,0.0% 23.2%,1.0% 21.3%,0.8% 19.4%,1.1% 17.4%,0.0% 15.5%,0.7% 13.6%,0.5% 11.7%,0.8% 9.8%,0.4% 7.8%,1.1% 5.9%,0.1% 4.0%,0.6% 2.1%);
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .38 0 0 0 0 .24 0 0 0 0 .1 0 0 0 .38 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"),
    radial-gradient(ellipse at 18% 8%,rgba(255,255,255,.35),transparent 55%),
    radial-gradient(ellipse at 92% 100%,rgba(122,74,42,.32),transparent 60%),
    #E8CD98;
}
.ow-papel::before{ content:''; position:absolute; inset:14px; border:3px double var(--ow-tinta); pointer-events:none; }
.ow-clavo{ position:absolute; z-index:3; width:13px; height:13px; border-radius:50%; background:radial-gradient(circle at 35% 30%,#E9E2D0,#6F695D); box-shadow:0 0 0 1.5px #2E1A0F, 0 2px 0 1.5px rgba(46,26,15,.5); }
.ow-clavo.tl{ top:22px; left:22px; } .ow-clavo.tr{ top:22px; right:22px; } .ow-clavo.bl{ bottom:22px; left:22px; } .ow-clavo.br{ bottom:22px; right:22px; }
.ow-se-busca{
  margin:6px 0 4px; font-family:var(--ow-titulo); font-weight:400; font-size:clamp(2.7rem,14vw,3.8rem); line-height:1; letter-spacing:.06em; color:var(--ow-tinta);
  text-shadow:0 2px 0 rgba(255,255,255,.25);
}
.ow-sub-cartel{ margin:0 0 14px; font-size:.78rem; letter-spacing:.32em; text-indent:.32em; text-transform:uppercase; color:var(--ow-rojo-oscuro); }
.ow-foto{
  position:relative; width:76%; margin:0 auto 22px; padding:8px; background:#F7EBCB; border:4px solid var(--ow-tinta);
  box-shadow:4px 5px 0 rgba(58,36,24,.35); aspect-ratio:1/1.14; transform:rotate(-1.4deg);
}
.ow-foto img.f{ width:100%; height:100%; object-fit:cover; display:block; border:2px solid var(--ow-tinta); filter:sepia(.5) contrast(1.06) saturate(.9); }
.ow-foto .ow-placa{ position:absolute; right:-22px; bottom:-26px; width:74px; transform:rotate(14deg); filter:drop-shadow(2px 3px 0 rgba(58,36,24,.4)); }
.ow-vivo{ margin:6px 0 2px; font-size:.82rem; letter-spacing:.3em; text-indent:.3em; text-transform:uppercase; color:var(--ow-tinta); }
.ow-nombre{
  margin:0; font-family:var(--ow-titulo); font-weight:400; font-size:clamp(2.8rem,15vw,4.2rem); line-height:1.02; color:var(--color-principal);
  text-shadow:3px 3px 0 var(--ow-tinta);
}
.ow-edad{ margin:6px 0 0; font-family:var(--ow-titulo); font-size:clamp(1.3rem,6vw,1.7rem); color:var(--ow-tinta); }
.ow-recompensa{
  margin:20px auto 0; max-width:280px; padding:10px 14px 12px; border:3px solid var(--ow-tinta); background:#F4E2B4; transform:rotate(1deg);
}
.ow-recompensa small{ display:block; font-size:.74rem; letter-spacing:.34em; text-indent:.34em; text-transform:uppercase; color:var(--ow-rojo-oscuro); }
.ow-recompensa b{ display:block; margin-top:3px; font-family:var(--ow-titulo); font-weight:400; font-size:1.2rem; line-height:1.15; color:var(--ow-tinta); }
.ow-datos{ list-style:none; margin:22px auto 0; padding:0; max-width:290px; text-align:left; }
.ow-datos li{ display:flex; align-items:flex-start; gap:12px; padding:10px 2px; border-bottom:2px dashed rgba(58,36,24,.45); }
.ow-datos li:last-child{ border-bottom:0; }
.ow-datos svg{ flex:none; width:23px; height:23px; margin-top:1px; color:var(--ow-rojo-oscuro); }
.ow-datos .t{ display:block; font-size:1rem; line-height:1.3; color:var(--ow-tinta); }
.ow-datos .t small{ display:block; margin-top:2px; font-size:.86rem; color:var(--color-texto-suave); }

/* ====================================================================
   MENSAJE DEL SHERIFF
   ==================================================================== */
.ow-festejado{ position:relative; padding:54px var(--ow-pad) 22px; text-align:center; }
.ow-fest-in{ max-width:520px; margin:0 auto; }
.ow-rule{ display:block; width:190px; height:30px; margin:0 auto 8px; background:url("divisor.svg") center/contain no-repeat; }
.ow-ico{ display:block; width:92px; margin:0 auto 6px; filter:drop-shadow(3px 4px 0 rgba(58,36,24,.28)); }
.ow-fest-in .ow-titulo{ font-size:clamp(1.9rem,7.6vw,2.5rem); margin:10px 0 24px; }
.ow-tarjeta{
  position:relative; padding:34px 24px 30px; background:#FBF1D8; border:3px solid var(--ow-tinta); border-radius:6px; box-shadow:6px 7px 0 rgba(58,36,24,.28);
}
.ow-tarjeta::before{ content:''; position:absolute; inset:7px; border:2px dashed rgba(122,74,42,.7); border-radius:3px; pointer-events:none; }
.ow-frase{ margin:0 0 16px; font-family:var(--ow-titulo); font-weight:400; font-size:clamp(1.15rem,5vw,1.35rem); line-height:1.35; color:var(--color-principal); }
.ow-tarjeta .sep{ display:block; width:130px; height:20px; margin:0 auto 16px; background:url("divisor.svg") center/contain no-repeat; }
.ow-mensaje{ margin:0; font-size:1.02rem; line-height:1.65; color:var(--ow-tinta); }
.ow-anfitriones{ margin:26px 0 0; display:flex; flex-direction:column; gap:6px; align-items:center; }
.ow-anfitriones b{ font-family:var(--ow-titulo); font-weight:400; font-size:clamp(1.15rem,5vw,1.4rem); line-height:1.2; color:var(--ow-tinta); }

/* ====================================================================
   SECCIONES DEL MOTOR
   ==================================================================== */
section.oc-section.oc-section{ padding:58px var(--ow-pad); overflow-x:clip; isolation:isolate; }
@media (min-width:768px){ section.oc-section.oc-section{ padding-top:74px; padding-bottom:74px; } }
section.oc-section .oc-inner{ position:relative; z-index:1; max-width:600px; }
section.oc-section .oc-title{
  font-family:var(--ow-titulo); font-weight:400; color:var(--oc-principal); font-size:clamp(1.9rem,7.4vw,2.5rem); line-height:1.12; margin:0 0 8px;
  text-shadow:2px 2px 0 rgba(58,36,24,.18);
}
section.oc-section .oc-sub{ font-family:var(--ow-texto); font-size:1rem; color:var(--oc-suave); }

section.oc-section .oc-rule{ display:block; width:190px; height:30px; margin:0 auto 8px; gap:0; }
section.oc-section .oc-rule i{ display:none; }
section.oc-section .oc-rule::before{ content:''; display:block; width:100%; height:100%; opacity:1; background:url("divisor.svg") center/contain no-repeat; }
section.oc-section .oc-rule::after{ display:none; }

/* botones: cuero con relieve y borde de tinta */
section.oc-section .oc-btn{
  position:relative; min-height:46px; padding:11px 24px; font-family:var(--ow-texto); font-size:.95rem; letter-spacing:.12em; text-transform:uppercase;
  background:var(--color-principal); color:#FBF1D8; border:3px solid var(--ow-tinta); border-radius:6px; box-shadow:0 5px 0 var(--ow-tinta);
  transition:transform .15s ease, box-shadow .15s ease;
}
section.oc-section .oc-btn:hover{ opacity:1; transform:translateY(-2px); box-shadow:0 7px 0 var(--ow-tinta); }
section.oc-section .oc-btn:active{ transform:translateY(3px); box-shadow:0 2px 0 var(--ow-tinta); }
section.oc-section .oc-btn.is-ghost{ background:#FBF1D8; color:var(--ow-tinta); }
section.oc-section .oc-btn.is-ghost:hover{ background:#F4E2B4; }

/* tarjetas: papel con costura de cuero */
section.oc-section .oc-card{
  position:relative; background:#FBF1D8; border:3px solid var(--ow-tinta); border-radius:6px; box-shadow:6px 7px 0 rgba(58,36,24,.28);
}
section.oc-section .oc-card::before{ content:''; position:absolute; inset:6px; border:2px dashed rgba(122,74,42,.65); border-radius:3px; pointer-events:none; }
.oc-carousel{ padding:6px var(--ow-pad) 22px; margin:0 calc(var(--ow-pad) * -1); }
section.oc-section .oc-dots button{ background:#CFAE74; }
section.oc-section .oc-dots button.active{ background:var(--color-principal); width:22px; }

/* ---------- música: placa de latón ---------- */
section.oc-section.oc-musica{ padding-top:24px; padding-bottom:30px; }
section.oc-section.oc-musica .oc-rule{ display:none; }
section.oc-section.oc-musica .oc-title{ font-family:var(--ow-texto); font-size:.8rem; letter-spacing:.32em; text-indent:.32em; text-transform:uppercase; color:var(--ow-rojo-oscuro); text-shadow:none; margin:0 0 10px; }
section.oc-section .oc-song{ font-family:var(--ow-titulo); font-size:1.45rem; line-height:1.2; color:var(--ow-tinta); }
section.oc-section .oc-artist{ font-family:var(--ow-texto); font-size:.92rem; color:var(--oc-suave); }
.oc-player{
  max-width:420px; margin:14px auto 0; padding:12px 20px 12px 12px; gap:16px; background:#FBF1D8; border:3px solid var(--ow-tinta); border-radius:999px; box-shadow:5px 6px 0 rgba(58,36,24,.28);
}
section.oc-section .oc-play{ width:48px; height:48px; background:var(--ow-latón); color:var(--ow-tinta); box-shadow:0 0 0 3px var(--ow-tinta), 0 4px 0 3px var(--ow-tinta); }
section.oc-section .oc-play svg{ width:20px; height:20px; }
section.oc-section .oc-play .i-play{ margin-left:3px; }
section.oc-section .oc-player.is-playing .oc-play{ animation:owPulso 1.2s ease-in-out infinite; }
@keyframes owPulso{ 50%{ transform:scale(1.07) } }
section.oc-section .oc-bar{ height:8px; border-radius:8px; background:#E3C58F; border:2px solid var(--ow-tinta); }
section.oc-section .oc-fill{ border-radius:6px; background:var(--color-principal); }
section.oc-section .oc-times{ font-family:var(--ow-texto); color:var(--oc-suave); font-size:.8rem; }

/* ---------- bandas de madera con cuerda (cuenta regresiva y confirmación) ---------- */
section.oc-section.oc-cuenta_regresiva, section.oc-section.oc-rsvp{
  margin:50px 0; padding:74px var(--ow-pad) 72px; overflow:visible;
  background:
    linear-gradient(180deg,rgba(0,0,0,.34),transparent 16%,transparent 84%,rgba(0,0,0,.38)),
    repeating-linear-gradient(88deg,rgba(255,255,255,.035) 0 3px,transparent 3px 11px),
    repeating-linear-gradient(180deg,#4F321F 0 60px,#21120A 60px 63px),
    #3A2418;
}
section.oc-section.oc-cuenta_regresiva::before, section.oc-section.oc-cuenta_regresiva::after,
section.oc-section.oc-rsvp::before, section.oc-section.oc-rsvp::after{
  content:''; position:absolute; left:0; right:0; height:16px; z-index:2; pointer-events:none; background:url("cuerda.svg") repeat-x 0 0/64px 16px; filter:drop-shadow(0 3px 0 rgba(0,0,0,.35));
}
section.oc-section.oc-cuenta_regresiva::before, section.oc-section.oc-rsvp::before{ top:-8px; }
section.oc-section.oc-cuenta_regresiva::after, section.oc-section.oc-rsvp::after{ bottom:-8px; }
section.oc-section.oc-cuenta_regresiva .oc-title, section.oc-section.oc-rsvp .oc-title{ color:#F3D27A; text-shadow:0 3px 0 #130A05; }
section.oc-section.oc-cuenta_regresiva .oc-sub, section.oc-section.oc-rsvp .oc-sub{ color:#EBD7A8; }
section.oc-section.oc-cuenta_regresiva .oc-sub{ margin-bottom:24px; }
section.oc-section .oc-count{ gap:8px; }
section.oc-section .oc-count .sep{ display:none; }
section.oc-section .oc-count div{
  max-width:80px; padding:12px 4px 10px; background:var(--ow-latón); border:3px solid #130A05; border-radius:8px;
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.35), 0 5px 0 #130A05; position:relative;
}
section.oc-section .oc-count div::before,section.oc-section .oc-count div::after{ content:''; position:absolute; top:4px; width:5px; height:5px; border-radius:50%; background:#6B4A12; }
section.oc-section .oc-count div::before{ left:4px; } section.oc-section .oc-count div::after{ right:4px; }
section.oc-section .oc-count b{ font-family:var(--ow-titulo); font-weight:400; font-size:clamp(1.7rem,8vw,2.3rem); color:var(--ow-tinta); margin-top:6px; }
section.oc-section .oc-count small{ font-size:.66rem; letter-spacing:.12em; color:var(--ow-tinta); }
section.oc-section .oc-done{ font-family:var(--ow-titulo); font-size:1.8rem; color:#F3D27A; }

/* ---------- calendario: el día lleva estrella de sheriff ---------- */
section.oc-section .oc-cal{ max-width:340px; padding:26px 18px; }
section.oc-section .oc-cal-head{ font-family:var(--ow-titulo); font-size:1.55rem; color:var(--oc-principal); }
section.oc-section .oc-cal-grid .dow{ font-family:var(--ow-texto); font-size:.78rem; color:var(--ow-rojo-oscuro); }
section.oc-section .oc-cal-grid span{ font-family:var(--ow-texto); font-size:.98rem; }
section.oc-section .oc-cal-grid span.is-day{ color:#FBF1D8; font-weight:700; }
section.oc-section .oc-cal-grid span.is-day::before{
  width:42px; height:42px; left:50%; top:50%; margin:-21px 0 0 -21px; background:var(--color-principal);
  clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);
  filter:drop-shadow(2px 2px 0 var(--ow-tinta)); animation:owPulso 2.4s ease-in-out infinite;
}
section.oc-section .oc-cal-time{ display:inline-block; margin-top:16px; padding:6px 16px; border:2px solid var(--ow-tinta); background:#F4E2B4; color:var(--ow-tinta); font-size:.95rem; letter-spacing:.04em; }

/* ---------- ubicación ---------- */
section.oc-section .oc-place{ padding:28px 20px 24px; }
section.oc-section .oc-place h3{ font-family:var(--ow-titulo); font-weight:400; font-size:1.7rem; color:var(--oc-principal); }
section.oc-section .oc-place .oc-p-time{ font-family:var(--ow-titulo); font-size:1.15rem; color:var(--ow-tinta); }
section.oc-section .oc-place .oc-p-name{ font-size:.95rem; letter-spacing:.16em; color:var(--ow-tinta); }
section.oc-section .oc-place .oc-p-addr{ font-size:.95rem; color:var(--oc-suave); }
section.oc-section .oc-map{ border:3px solid var(--ow-tinta); border-radius:4px; filter:sepia(.55) saturate(.85) contrast(.95); margin-top:18px; box-shadow:3px 4px 0 rgba(58,36,24,.3); }

/* ---------- clima ---------- */
section.oc-section .oc-w-hero{ position:relative; border-radius:6px; background:#FBF1D8; border:3px solid var(--ow-tinta); box-shadow:6px 7px 0 rgba(58,36,24,.28); }
section.oc-section .oc-w-date{ letter-spacing:.24em; color:var(--ow-rojo-oscuro); }
section.oc-section .oc-w-city{ font-family:var(--ow-titulo); font-size:1.2rem; color:var(--oc-principal); }
section.oc-section .oc-w-now b{ font-family:var(--ow-titulo); font-weight:400; color:var(--ow-tinta); }
section.oc-section .oc-w-now .d strong{ color:var(--ow-rojo-oscuro); }
section.oc-section .oc-w-stats small{ color:var(--ow-rojo-oscuro); }
section.oc-section .oc-w-stats div + div{ border-left:2px dashed rgba(58,36,24,.4); }
section.oc-section .oc-w-tip{ color:var(--ow-rojo-oscuro); }

/* ---------- itinerario: camino de tierra con estrellas de sheriff ---------- */
section.oc-section .oc-timeline::before{ width:0; left:72px; top:-4px; bottom:-4px; opacity:1; background:none; border-left:4px dashed var(--color-secundario); }
section.oc-section .oc-t-item::before{
  width:26px; height:26px; left:-37px; top:0; border-radius:0; box-shadow:none; background:url("estrella.svg") center/contain no-repeat;
}
section.oc-section .oc-t-time{ font-family:var(--ow-texto); font-weight:700; font-size:.86rem; letter-spacing:0; white-space:nowrap; left:-108px; width:70px; color:var(--ow-rojo-oscuro); }
section.oc-section .oc-t-what{ font-family:var(--ow-titulo); font-size:1.25rem; color:var(--ow-tinta); }
section.oc-section .oc-t-desc{ font-size:.95rem; color:var(--oc-suave); }

/* ---------- galería: fotos instantáneas clavadas ---------- */
section.oc-section .oc-gallery{ gap:20px 16px; padding:6px 2px; }
section.oc-section .oc-gallery button{
  position:relative; overflow:visible; border:9px solid #FBF3DE; border-bottom-width:26px; border-radius:2px; background:#E3C58F;
  box-shadow:4px 6px 0 rgba(58,36,24,.32), 0 0 0 2px var(--ow-tinta); transform:rotate(-2.2deg);
}
section.oc-section .oc-gallery button:nth-child(even){ transform:rotate(2deg); }
section.oc-section .oc-gallery button::after{ content:''; position:absolute; top:-17px; left:50%; width:13px; height:13px; margin-left:-6px; border-radius:50%; background:radial-gradient(circle at 35% 30%,#E9E2D0,#6F695D); box-shadow:0 0 0 1.5px #2E1A0F, 0 2px 0 1.5px rgba(46,26,15,.5); }
section.oc-section .oc-gallery img{ filter:sepia(.4) contrast(1.05); }

/* ---------- video ---------- */
div.oc-video{ border-radius:4px; border:4px solid var(--ow-tinta); box-shadow:6px 7px 0 rgba(58,36,24,.3); background:#7A4A2A; }
section.oc-section .oc-video-ph::before{ background:linear-gradient(180deg,rgba(58,36,24,.1),rgba(58,36,24,.72)); }
section.oc-section .oc-video-ph{ font-family:var(--ow-titulo); font-size:1.25rem; }
section.oc-section .oc-video-ph .oc-play{ background:var(--ow-latón); color:var(--ow-tinta); }

/* ---------- vestimenta ---------- */
section.oc-section .oc-dress-figs{ color:var(--ow-tinta); }
section.oc-section .oc-dress-type{ font-family:var(--ow-titulo); font-size:1.25rem; letter-spacing:.16em; color:var(--oc-principal); border-top:3px double var(--ow-tinta); border-bottom:3px double var(--ow-tinta); }

/* ---------- hospedaje ---------- */
section.oc-section .oc-hotel svg{ color:var(--ow-tinta); }
section.oc-section .oc-hotel .tag{ border:2px solid var(--ow-tinta); background:#F4E2B4; color:var(--ow-tinta); border-radius:3px; }
section.oc-section .oc-hotel h3{ font-family:var(--ow-titulo); font-weight:400; font-size:1.3rem; color:var(--oc-principal); }
section.oc-section .oc-hotel .stars{ color:#C48A12; }
section.oc-section .oc-hotel .note{ border-top:2px dashed rgba(58,36,24,.4); }

/* ---------- regalos: herradura ---------- */
section.oc-section.oc-regalos .oc-title::before{
  content:''; display:block; width:70px; height:72px; margin:0 auto 6px; background:url("herradura.svg") center/contain no-repeat; filter:drop-shadow(2px 3px 0 rgba(58,36,24,.3));
  transform-origin:50% 0; animation:owCuelga 4s ease-in-out infinite;
}
@keyframes owCuelga{ 0%,100%{ transform:rotate(-6deg) } 50%{ transform:rotate(6deg) } }
section.oc-section.oc-regalos .oc-rule{ display:none; }
.oc-tabs{ background:#F4E2B4; box-shadow:none; border:3px solid var(--ow-tinta); padding:4px; }
section.oc-section .oc-tabs button{ font-family:var(--ow-texto); font-size:.88rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ow-tinta); padding:8px 18px; min-height:38px; }
section.oc-section .oc-tabs button[aria-selected="true"]{ background:var(--color-principal); color:#FBF1D8; box-shadow:0 3px 0 var(--ow-tinta); }
section.oc-section .oc-gift-row{ border-bottom:2px dashed rgba(58,36,24,.4); }
section.oc-section .oc-gift-row .k{ letter-spacing:.14em; color:var(--ow-rojo-oscuro); font-size:.78rem; }
section.oc-section .oc-gift-store{ font-family:var(--ow-titulo); font-size:1.8rem; color:var(--oc-principal); }
section.oc-section .oc-gift-num{ font-family:var(--ow-titulo); color:var(--ow-tinta); letter-spacing:.14em; font-size:1.4rem; }

/* ---------- agendar ---------- */
section.oc-section .oc-save-btns{ display:flex; flex-wrap:wrap; justify-content:center; gap:14px; }

/* ---------- confirmar ---------- */
section.oc-section .oc-field label{ font-size:.8rem; letter-spacing:.14em; color:var(--ow-rojo-oscuro); }
section.oc-section .oc-field input[type="text"]{ font-family:var(--ow-texto); font-size:1.1rem; border-bottom:2px solid var(--ow-tinta); }
section.oc-section .oc-field input[type="text"]:focus{ border-bottom-color:var(--color-principal); }
section.oc-section .oc-choices label{ font-family:var(--ow-texto); font-size:1rem; letter-spacing:0; text-transform:none; box-shadow:inset 0 0 0 2px var(--ow-tinta); border-radius:6px; }
section.oc-section .oc-choices label:has(input:checked){ box-shadow:inset 0 0 0 3px var(--color-principal); background:#F4E2B4; }
section.oc-section .oc-choices input{ accent-color:#A8402A; }
section.oc-section .oc-error{ color:#9A1F12; }

/* ====================================================================
   DESPEDIDA
   ==================================================================== */
.ow-despedida{ position:relative; padding:44px var(--ow-pad) 0; text-align:center; overflow:hidden; }
.ow-despedida .ow-ico{ width:110px; }
.ow-despedida .ow-titulo{ font-size:clamp(2rem,9vw,2.8rem); margin:6px 0 10px; }
.ow-despedida p{ margin:0 auto; max-width:360px; font-size:1.05rem; color:var(--ow-tinta); }
.ow-firma{ margin-top:14px !important; color:var(--color-texto-suave) !important; }
.ow-firma b{ font-family:var(--ow-titulo); font-weight:400; font-size:1.4rem; color:var(--color-principal); margin-left:6px; }
.ow-despedida .ow-rule{ margin-top:20px; }
.ow-credito{ margin-top:18px !important; font-size:.8rem !important; letter-spacing:.14em; text-transform:uppercase; }
.ow-credito a{ color:var(--ow-rojo-oscuro); text-decoration:none; border-bottom:2px solid var(--ow-tinta); }
.ow-suelo-final{ position:relative; height:150px; margin:8px calc(var(--ow-pad) * -1) 0; overflow:hidden; }
.ow-suelo-final::before{ content:''; position:absolute; left:0; right:0; bottom:0; height:44px; background:repeating-linear-gradient(90deg,#7A4A2A 0 22px,#6B3E22 22px 24px); border-top:4px solid var(--ow-tinta); }
.ow-suelo-final .cactus{ position:absolute; bottom:38px; width:64px; filter:drop-shadow(3px 3px 0 rgba(58,36,24,.3)); }
.ow-suelo-final .cactus.l{ left:7%; } .ow-suelo-final .cactus.r{ right:7%; width:80px; transform:scaleX(-1); }
.ow-suelo-final .ow-rueda{ bottom:36px; }

/* ====================================================================
   BOTÓN FLOTANTE DE MÚSICA Y MENÚ
   ==================================================================== */
.ow-music{ position:fixed; top:12px; right:12px; z-index:40; }
.ow-music[hidden]{ display:none; }
.ow-music button{
  display:flex; align-items:center; gap:8px; min-height:40px; padding:6px 14px; cursor:pointer; background:#FBF1D8; border:3px solid var(--ow-tinta); border-radius:999px; color:var(--ow-tinta);
  box-shadow:0 4px 0 var(--ow-tinta);
}
.ow-music svg{ width:17px; height:17px; }
.ow-bars{ display:flex; align-items:flex-end; gap:2px; height:14px; width:14px; }
.ow-bars i{ width:3px; height:4px; background:var(--color-principal); animation:owBar 1.1s ease-in-out infinite alternate; }
.ow-bars i:nth-child(2){ animation-delay:.3s } .ow-bars i:nth-child(3){ animation-delay:.5s } .ow-bars i:nth-child(4){ animation-delay:.15s }
.ow-bars.paused i{ animation-play-state:paused; height:4px; }
@keyframes owBar{ 0%{ height:4px } 100%{ height:14px } }

.oc-nav{ font-family:var(--ow-texto); }
.oc-nav-pill.oc-nav-pill{
  border:3px solid var(--ow-tinta); background:#FBF1D8; color:var(--ow-tinta); font-family:var(--ow-texto); font-size:13px; letter-spacing:.1em; text-transform:uppercase; box-shadow:0 4px 0 var(--ow-tinta);
}
.oc-nav-pill.oc-nav-pill:hover{ background:#F4E2B4; border-color:var(--ow-tinta); }
.oc-nav-pill.oc-nav-pill svg{ color:var(--color-principal); }
.oc-nav-drop.oc-nav-drop{ border:3px solid var(--ow-tinta); background:#FBF1D8; border-radius:8px; box-shadow:6px 8px 0 rgba(58,36,24,.35); }
.oc-nav-head.oc-nav-head{ border-bottom:2px dashed rgba(58,36,24,.4); color:var(--ow-rojo-oscuro); font-family:var(--ow-texto); }
.oc-nav-head.oc-nav-head i{ background:var(--color-principal); }
.oc-nav-drop.oc-nav-drop a{ font-family:var(--ow-texto); font-size:15px; color:var(--ow-tinta); }
.oc-nav-drop.oc-nav-drop a:hover, .oc-nav-drop.oc-nav-drop a.is-current{ background:#F0D9A4; color:var(--ow-tinta); }
.oc-nav-drop.oc-nav-drop a svg{ color:var(--ow-rojo-oscuro); }
.oc-nav-drop.oc-nav-drop a.is-cta{ background:var(--color-principal); color:#FBF1D8; box-shadow:0 3px 0 var(--ow-tinta); }
.oc-nav-drop.oc-nav-drop a.is-cta:hover{ background:var(--color-principal); color:#FBF1D8; filter:brightness(1.08); }
.oc-nav-drop.oc-nav-drop a.is-cta svg{ color:#FBF1D8; }
.oc-nav-drop.oc-nav-drop a.is-cta.is-current{ box-shadow:0 0 0 2px #FBF1D8, 0 0 0 4px var(--ow-tinta); }
.oc-demo-check span, .oc-demo-fija{ background:var(--color-principal); }
.oc-demo-check input:not(:checked) + span{ background:#CFAE74; }
.oc-nav.is-demo .oc-demo-foot{ font-family:var(--ow-texto); border-top:2px dashed rgba(58,36,24,.4); }
.oc-nav-drop.oc-nav-drop a.oc-demo-send{ border-color:var(--ow-tinta); color:var(--ow-tinta); }
.oc-demo-tip{ background:var(--ow-tinta); font-family:var(--ow-texto); }

/* ---------- movimiento reducido ---------- */
@media (prefers-reduced-motion: reduce){
  .ow-rueda, .ow-rueda span, .ow-rueda img, .ow-puerta, .ow-open-hint, .ow-estrellas, .ow-bars i,
  section.oc-section.oc-regalos .oc-title::before, section.oc-section .oc-cal-grid span.is-day::before{ animation:none !important; }
  .ow-rueda{ left:42%; }
  .ow-fachada, .ow-open{ transition-duration:.01s !important; transition-delay:0s !important; }
}
