/* KeLoKe Corner component styles. Loaded after tokens.css. Prefix kk-. */
:root { --container: 1200px; --gutter: clamp(16px, 4vw, 40px); --ease: cubic-bezier(.2,.7,.2,1); --dur: .25s; }
:root {
  --pattern-azulejo-bandera: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2296%22%20height%3D%2296%22%20viewBox%3D%220%200%2096%2096%22%3E%20%3Crect%20width%3D%2296%22%20height%3D%2296%22%20fill%3D%22%23002D62%22%2F%3E%20%3Ccircle%20cx%3D%2248%22%20cy%3D%2248%22%20r%3D%2230%22%20fill%3D%22none%22%20stroke%3D%22%234FC1D0%22%20stroke-width%3D%222%22%2F%3E%20%3Cg%20fill%3D%22%23F6EBD3%22%3E%3Ccircle%20cx%3D%2248%22%20cy%3D%2226%22%20r%3D%2211%22%2F%3E%3Ccircle%20cx%3D%2270%22%20cy%3D%2248%22%20r%3D%2211%22%2F%3E%3Ccircle%20cx%3D%2248%22%20cy%3D%2270%22%20r%3D%2211%22%2F%3E%3Ccircle%20cx%3D%2226%22%20cy%3D%2248%22%20r%3D%2211%22%2F%3E%3C%2Fg%3E%20%3Ccircle%20cx%3D%2248%22%20cy%3D%2248%22%20r%3D%229%22%20fill%3D%22%23CE1126%22%2F%3E%3Ccircle%20cx%3D%2248%22%20cy%3D%2248%22%20r%3D%223.5%22%20fill%3D%22%23FFC93C%22%2F%3E%20%3Cg%20fill%3D%22%23FFC93C%22%3E%3Cpath%20d%3D%22M0-12L12%200%200%2012-12%200Z%22%20transform%3D%22translate(0%200)%22%2F%3E%3Cpath%20d%3D%22M0-12L12%200%200%2012-12%200Z%22%20transform%3D%22translate(96%200)%22%2F%3E%3Cpath%20d%3D%22M0-12L12%200%200%2012-12%200Z%22%20transform%3D%22translate(0%2096)%22%2F%3E%3Cpath%20d%3D%22M0-12L12%200%200%2012-12%200Z%22%20transform%3D%22translate(96%2096)%22%2F%3E%3C%2Fg%3E%20%3Cg%20fill%3D%22%23CE1126%22%3E%3Ccircle%20cx%3D%2248%22%20cy%3D%224%22%20r%3D%223%22%2F%3E%3Ccircle%20cx%3D%2248%22%20cy%3D%2292%22%20r%3D%223%22%2F%3E%3Ccircle%20cx%3D%224%22%20cy%3D%2248%22%20r%3D%223%22%2F%3E%3Ccircle%20cx%3D%2292%22%20cy%3D%2248%22%20r%3D%223%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
  --pattern-azulejo-sol: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2296%22%20height%3D%2296%22%20viewBox%3D%220%200%2096%2096%22%3E%20%3Crect%20width%3D%2296%22%20height%3D%2296%22%20fill%3D%22%23E4561C%22%2F%3E%20%3Ccircle%20cx%3D%2248%22%20cy%3D%2248%22%20r%3D%2230%22%20fill%3D%22none%22%20stroke%3D%22%23F6EBD3%22%20stroke-width%3D%222%22%2F%3E%20%3Cg%20fill%3D%22%23FFC93C%22%3E%3Ccircle%20cx%3D%2248%22%20cy%3D%2226%22%20r%3D%2211%22%2F%3E%3Ccircle%20cx%3D%2270%22%20cy%3D%2248%22%20r%3D%2211%22%2F%3E%3Ccircle%20cx%3D%2248%22%20cy%3D%2270%22%20r%3D%2211%22%2F%3E%3Ccircle%20cx%3D%2226%22%20cy%3D%2248%22%20r%3D%2211%22%2F%3E%3C%2Fg%3E%20%3Ccircle%20cx%3D%2248%22%20cy%3D%2248%22%20r%3D%229%22%20fill%3D%22%23002D62%22%2F%3E%3Ccircle%20cx%3D%2248%22%20cy%3D%2248%22%20r%3D%223.5%22%20fill%3D%22%23FFF9EE%22%2F%3E%20%3Cg%20fill%3D%22%23FFF9EE%22%3E%3Cpath%20d%3D%22M0-12L12%200%200%2012-12%200Z%22%20transform%3D%22translate(0%200)%22%2F%3E%3Cpath%20d%3D%22M0-12L12%200%200%2012-12%200Z%22%20transform%3D%22translate(96%200)%22%2F%3E%3Cpath%20d%3D%22M0-12L12%200%200%2012-12%200Z%22%20transform%3D%22translate(0%2096)%22%2F%3E%3Cpath%20d%3D%22M0-12L12%200%200%2012-12%200Z%22%20transform%3D%22translate(96%2096)%22%2F%3E%3C%2Fg%3E%20%3Cg%20fill%3D%22%23002D62%22%3E%3Ccircle%20cx%3D%2248%22%20cy%3D%224%22%20r%3D%223%22%2F%3E%3Ccircle%20cx%3D%2248%22%20cy%3D%2292%22%20r%3D%223%22%2F%3E%3Ccircle%20cx%3D%224%22%20cy%3D%2248%22%20r%3D%223%22%2F%3E%3Ccircle%20cx%3D%2292%22%20cy%3D%2248%22%20r%3D%223%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
  --pattern-azulejo-larimar: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2296%22%20height%3D%2296%22%20viewBox%3D%220%200%2096%2096%22%3E%20%3Crect%20width%3D%2296%22%20height%3D%2296%22%20fill%3D%22%234FC1D0%22%2F%3E%20%3Ccircle%20cx%3D%2248%22%20cy%3D%2248%22%20r%3D%2230%22%20fill%3D%22none%22%20stroke%3D%22%23002D62%22%20stroke-width%3D%222%22%2F%3E%20%3Cg%20fill%3D%22%23FFF9EE%22%3E%3Ccircle%20cx%3D%2248%22%20cy%3D%2226%22%20r%3D%2211%22%2F%3E%3Ccircle%20cx%3D%2270%22%20cy%3D%2248%22%20r%3D%2211%22%2F%3E%3Ccircle%20cx%3D%2248%22%20cy%3D%2270%22%20r%3D%2211%22%2F%3E%3Ccircle%20cx%3D%2226%22%20cy%3D%2248%22%20r%3D%2211%22%2F%3E%3C%2Fg%3E%20%3Ccircle%20cx%3D%2248%22%20cy%3D%2248%22%20r%3D%229%22%20fill%3D%22%23002D62%22%2F%3E%3Ccircle%20cx%3D%2248%22%20cy%3D%2248%22%20r%3D%223.5%22%20fill%3D%22%23CE1126%22%2F%3E%20%3Cg%20fill%3D%22%23CE1126%22%3E%3Cpath%20d%3D%22M0-12L12%200%200%2012-12%200Z%22%20transform%3D%22translate(0%200)%22%2F%3E%3Cpath%20d%3D%22M0-12L12%200%200%2012-12%200Z%22%20transform%3D%22translate(96%200)%22%2F%3E%3Cpath%20d%3D%22M0-12L12%200%200%2012-12%200Z%22%20transform%3D%22translate(0%2096)%22%2F%3E%3Cpath%20d%3D%22M0-12L12%200%200%2012-12%200Z%22%20transform%3D%22translate(96%2096)%22%2F%3E%3C%2Fg%3E%20%3Cg%20fill%3D%22%23002D62%22%3E%3Ccircle%20cx%3D%2248%22%20cy%3D%224%22%20r%3D%223%22%2F%3E%3Ccircle%20cx%3D%2248%22%20cy%3D%2292%22%20r%3D%223%22%2F%3E%3Ccircle%20cx%3D%224%22%20cy%3D%2248%22%20r%3D%223%22%2F%3E%3Ccircle%20cx%3D%2292%22%20cy%3D%2248%22%20r%3D%223%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
  --pattern-azulejo-rojo: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2296%22%20height%3D%2296%22%20viewBox%3D%220%200%2096%2096%22%3E%20%3Crect%20width%3D%2296%22%20height%3D%2296%22%20fill%3D%22%23CE1126%22%2F%3E%20%3Ccircle%20cx%3D%2248%22%20cy%3D%2248%22%20r%3D%2230%22%20fill%3D%22none%22%20stroke%3D%22%23FFC93C%22%20stroke-width%3D%222%22%2F%3E%20%3Cg%20fill%3D%22%23FFF9EE%22%3E%3Ccircle%20cx%3D%2248%22%20cy%3D%2226%22%20r%3D%2211%22%2F%3E%3Ccircle%20cx%3D%2270%22%20cy%3D%2248%22%20r%3D%2211%22%2F%3E%3Ccircle%20cx%3D%2248%22%20cy%3D%2270%22%20r%3D%2211%22%2F%3E%3Ccircle%20cx%3D%2226%22%20cy%3D%2248%22%20r%3D%2211%22%2F%3E%3C%2Fg%3E%20%3Ccircle%20cx%3D%2248%22%20cy%3D%2248%22%20r%3D%229%22%20fill%3D%22%23002D62%22%2F%3E%3Ccircle%20cx%3D%2248%22%20cy%3D%2248%22%20r%3D%223.5%22%20fill%3D%22%23FFC93C%22%2F%3E%20%3Cg%20fill%3D%22%23FFC93C%22%3E%3Cpath%20d%3D%22M0-12L12%200%200%2012-12%200Z%22%20transform%3D%22translate(0%200)%22%2F%3E%3Cpath%20d%3D%22M0-12L12%200%200%2012-12%200Z%22%20transform%3D%22translate(96%200)%22%2F%3E%3Cpath%20d%3D%22M0-12L12%200%200%2012-12%200Z%22%20transform%3D%22translate(0%2096)%22%2F%3E%3Cpath%20d%3D%22M0-12L12%200%200%2012-12%200Z%22%20transform%3D%22translate(96%2096)%22%2F%3E%3C%2Fg%3E%20%3Cg%20fill%3D%22%23002D62%22%3E%3Ccircle%20cx%3D%2248%22%20cy%3D%224%22%20r%3D%223%22%2F%3E%3Ccircle%20cx%3D%2248%22%20cy%3D%2292%22%20r%3D%223%22%2F%3E%3Ccircle%20cx%3D%224%22%20cy%3D%2248%22%20r%3D%223%22%2F%3E%3Ccircle%20cx%3D%2292%22%20cy%3D%2248%22%20r%3D%223%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
  --pattern-arcos: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22240%22%20height%3D%2264%22%20viewBox%3D%220%200%20240%2064%22%3E%20%3Crect%20width%3D%22240%22%20height%3D%2264%22%20fill%3D%22%23F6EBD3%22%2F%3E%20%3Cg%3E%3Cpath%20d%3D%22M0%2064V30a30%2030%200%200%201%2060%200v34Z%22%20fill%3D%22%23CE1126%22%2F%3E%3Cpath%20d%3D%22M12%2064V32a18%2018%200%200%201%2036%200v32Z%22%20fill%3D%22%23FFC93C%22%2F%3E%3Cpath%20d%3D%22M22%2064V34a8%208%200%200%201%2016%200v30Z%22%20fill%3D%22%23002D62%22%2F%3E%3C%2Fg%3E%20%3Cg%20transform%3D%22translate(60)%22%3E%3Cpath%20d%3D%22M0%2064V30a30%2030%200%200%201%2060%200v34Z%22%20fill%3D%22%23002D62%22%2F%3E%3Cpath%20d%3D%22M12%2064V32a18%2018%200%200%201%2036%200v32Z%22%20fill%3D%22%234FC1D0%22%2F%3E%3Cpath%20d%3D%22M22%2064V34a8%208%200%200%201%2016%200v30Z%22%20fill%3D%22%23CE1126%22%2F%3E%3C%2Fg%3E%20%3Cg%20transform%3D%22translate(120)%22%3E%3Cpath%20d%3D%22M0%2064V30a30%2030%200%200%201%2060%200v34Z%22%20fill%3D%22%23E4561C%22%2F%3E%3Cpath%20d%3D%22M12%2064V32a18%2018%200%200%201%2036%200v32Z%22%20fill%3D%22%23F6EBD3%22%2F%3E%3Cpath%20d%3D%22M22%2064V34a8%208%200%200%201%2016%200v30Z%22%20fill%3D%22%231E7A52%22%2F%3E%3C%2Fg%3E%20%3Cg%20transform%3D%22translate(180)%22%3E%3Cpath%20d%3D%22M0%2064V30a30%2030%200%200%201%2060%200v34Z%22%20fill%3D%22%231E7A52%22%2F%3E%3Cpath%20d%3D%22M12%2064V32a18%2018%200%200%201%2036%200v32Z%22%20fill%3D%22%23FFC93C%22%2F%3E%3Cpath%20d%3D%22M22%2064V34a8%208%200%200%201%2016%200v30Z%22%20fill%3D%22%23E8457A%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
}

/* KeLoKe Corner – component styles. Requires tokens.css + patterns.css. Prefix: kk- */
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; background: var(--surface); color: var(--ink); font: 1rem/1.6 var(--font-body); -webkit-font-smoothing: antialiased; }
img { max-width: 100%; display: block; }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }

/* ---------- type ---------- */
.kk-display { font-family: var(--font-display); font-weight: 900; font-stretch: 68%; text-transform: uppercase; line-height: .88; letter-spacing: -.005em; margin: 0; text-wrap: balance; }
.kk-display.xl { font-size: clamp(3.4rem, 9vw, 7.5rem); } .kk-display.l { font-size: clamp(2.6rem, 6vw, 4.8rem); } .kk-display.m { font-size: clamp(2rem, 4vw, 3rem); }
.kk-accent { font-family: var(--font-display); font-style: italic; font-weight: 500; font-stretch: 78%; font-size: .6em; letter-spacing: .01em; }
.kk-serif { font-family: var(--font-serif); font-weight: 500; line-height: 1.15; letter-spacing: -.01em; margin: 0; }
.kk-lead { font-size: 1.2rem; line-height: 1.55; max-width: 38em; }
.kk-eyebrow { font: 700 .75rem/1 var(--font-body); letter-spacing: .22em; text-transform: uppercase; }
.kk-eyebrow.italic { font: italic 500 1.1rem/1 var(--font-display); font-stretch: 78%; letter-spacing: .02em; text-transform: uppercase; }

/* ---------- colour-block section themes ---------- */
.kk-section { --s-bg: var(--arena); --s-fg: var(--caoba); --s-display: var(--rojo); --s-accent: var(--rojo); --s-btn-bg: var(--rojo); --s-btn-fg: var(--cal);
  background: var(--s-bg); color: var(--s-fg); padding: var(--space-9) var(--gutter); position: relative; }
.kk-section .kk-display { color: var(--s-display); }
.kk-section .kk-eyebrow, .kk-section a:not(.kk-btn) { color: var(--s-accent); }
.kk-section[data-theme="arena"]      { }
.kk-section[data-theme="cal"]        { --s-bg: var(--cal); --s-display: var(--bandera); }
.kk-section[data-theme="bandera"]    { --s-bg: var(--bandera); --s-fg: var(--cal); --s-display: var(--sol); --s-accent: var(--sol); --s-btn-bg: var(--sol); --s-btn-fg: var(--caoba); }
.kk-section[data-theme="rojo"]       { --s-bg: var(--rojo); --s-fg: var(--cal); --s-display: var(--cal); --s-accent: var(--sol); --s-btn-bg: var(--sol); --s-btn-fg: var(--caoba); }
.kk-section[data-theme="sol"]        { --s-bg: var(--sol); --s-fg: var(--caoba); --s-display: var(--rojo); --s-accent: var(--bandera); --s-btn-bg: var(--bandera); --s-btn-fg: var(--cal); }
.kk-section[data-theme="flamboyan"]  { --s-bg: var(--flamboyan); --s-fg: var(--cal); --s-display: var(--sol); --s-accent: var(--cal); --s-btn-bg: var(--sol); --s-btn-fg: var(--caoba); }
.kk-section[data-theme="larimar"]    { --s-bg: var(--larimar); --s-fg: var(--medianoche); --s-display: var(--bandera); --s-accent: var(--bandera); --s-btn-bg: var(--bandera); --s-btn-fg: var(--cal); }
.kk-section[data-theme="palma"]      { --s-bg: var(--palma); --s-fg: var(--cal); --s-display: var(--sol); --s-accent: var(--sol); --s-btn-bg: var(--sol); --s-btn-fg: var(--caoba); }
.kk-section[data-theme="medianoche"] { --s-bg: var(--medianoche); --s-fg: var(--arena); --s-display: var(--oro); --s-accent: var(--oro); --s-btn-bg: var(--oro); --s-btn-fg: var(--medianoche); }

/* split layout: 50/50 text + image, stacks on mobile */
.kk-split { display: grid; grid-template-columns: 1fr 1fr; }
.kk-split > * { min-height: 380px; }
.kk-split .kk-split-text { padding: var(--space-8) var(--gutter); display: flex; flex-direction: column; justify-content: center; gap: var(--space-4); }
.kk-split .kk-split-media { position: relative; display: grid; place-items: center; padding: var(--space-7); background-size: 96px; }
.kk-split.flip .kk-split-text { order: 2; }
@media (max-width: 760px) { .kk-split { grid-template-columns: 1fr; } .kk-split.flip .kk-split-text { order: 0; } }
.kk-pat-bandera { background-image: var(--pattern-azulejo-bandera); } .kk-pat-sol { background-image: var(--pattern-azulejo-sol); }
.kk-pat-larimar { background-image: var(--pattern-azulejo-larimar); } .kk-pat-rojo { background-image: var(--pattern-azulejo-rojo); }

/* decorative bands */
.kk-band-arcos { height: 64px; background: var(--pattern-arcos) repeat-x; background-size: auto 64px; }
.kk-band-flag { height: 10px; background: linear-gradient(90deg, var(--bandera) 0 33.3%, var(--cal) 33.3% 66.6%, var(--rojo) 66.6%); }
.kk-rule-oro { height: 2px; border: 0; background: linear-gradient(90deg, transparent, var(--oro), transparent); }

/* ---------- buttons ---------- */
.kk-btn { --b-bg: var(--s-btn-bg, var(--rojo)); --b-fg: var(--s-btn-fg, var(--cal));
  display: inline-flex; align-items: center; gap: .6em; padding: .8em 1.4em; border: 2px solid var(--b-bg); border-radius: var(--radius-sm);
  background: var(--b-bg); color: var(--b-fg); font: 700 .75rem/1 var(--font-body); letter-spacing: .18em; text-transform: uppercase; text-decoration: none; cursor: pointer;
  transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease); }
.kk-btn:hover { transform: translate(-2px,-2px); box-shadow: 4px 4px 0 var(--caoba); }
.kk-btn:active { transform: none; box-shadow: none; }
.kk-btn.outline { background: transparent; color: var(--b-bg); }
.kk-btn.pill { border-radius: var(--radius-pill); }
.kk-btn.large { padding: 1.05em 1.9em; font-size: .85rem; }
.kk-btn.larimar { --b-bg: var(--larimar); --b-fg: var(--medianoche); }  /* nav "Book now" */

/* ---------- stickers, stamps, tags ---------- */
.kk-sticker { display: inline-grid; place-items: center; text-align: center; width: 130px; aspect-ratio: 1; padding: 1rem; color: var(--cal); background: var(--rojo);
  font: 900 1.6rem/1 var(--font-display); font-stretch: 70%; text-transform: uppercase; transform: rotate(-9deg);
  clip-path: polygon(50% 0, 61% 8%, 75% 6%, 80% 19%, 93% 25%, 92% 39%, 100% 50%, 92% 61%, 93% 75%, 80% 81%, 75% 94%, 61% 92%, 50% 100%, 39% 92%, 25% 94%, 20% 81%, 7% 75%, 8% 61%, 0 50%, 8% 39%, 7% 25%, 20% 19%, 25% 6%, 39% 8%); }
.kk-sticker.oval { aspect-ratio: 1.6; width: 150px; border-radius: 50%; clip-path: none; background: var(--caoba); border: 3px solid var(--cal); }
.kk-stamp { width: 110px; aspect-ratio: 1; border-radius: 50%; border: 2px solid var(--rojo); color: var(--rojo); display: grid; place-items: center; text-align: center;
  font: 700 .62rem/1.3 var(--font-body); letter-spacing: .2em; text-transform: uppercase; transform: rotate(8deg); outline: 1px solid var(--rojo); outline-offset: 4px; }
.kk-stamp b { display: block; font: 900 1.6rem/1 var(--font-display); font-stretch: 70%; letter-spacing: .02em; }
.kk-tag { display: inline-block; padding: .25em .7em; border-radius: var(--radius-sm); font: 700 .68rem/1.2 var(--font-body); letter-spacing: .14em; text-transform: uppercase; background: var(--bandera); color: var(--cal); }
.kk-tag.rojo { background: var(--rojo); } .kk-tag.sol { background: var(--sol); color: var(--caoba); } .kk-tag.larimar { background: var(--larimar); color: var(--medianoche); } .kk-tag.palma { background: var(--palma); }

/* ---------- framed "photo print" – tilted, with a pattern border ---------- */
.kk-frame { --tilt: 3deg; --pad: 14px; background-size: 96px; padding: var(--pad); transform: rotate(var(--tilt)); box-shadow: var(--shadow-paper); max-width: 360px; }
.kk-frame > .kk-photo { background: var(--cal); padding: 8px 8px 0; }
.kk-frame > .kk-photo > .ph { aspect-ratio: 4/5; background: #bbb; filter: grayscale(1) contrast(1.05) sepia(.15); } /* heritage = B&W with warm tone */
.kk-frame.colour > .kk-photo > .ph { filter: none; }
.kk-frame figcaption { font: italic 500 .95rem var(--font-serif); text-align: center; padding: .6rem 0 .8rem; color: var(--caoba); }
.kk-frame.tilt-l { --tilt: -3deg; }

/* ---------- nav ---------- */
.kk-nav { display: flex; align-items: center; justify-content: space-between; gap: var(--space-5); padding: var(--space-4) var(--gutter); background: var(--arena); }
.kk-nav .links { display: flex; gap: var(--space-5); }
.kk-nav .links a { color: var(--caoba); font: 700 .75rem var(--font-body); letter-spacing: .18em; text-transform: uppercase; text-decoration: none; }
.kk-nav .links a:hover { color: var(--rojo); }
.kk-wordmark { font: 900 1.5rem/1 var(--font-display); font-stretch: 75%; letter-spacing: .12em; color: var(--rojo); text-decoration: none; text-transform: uppercase; text-align: center; }
.kk-wordmark small { display: block; font: 500 .62rem var(--font-body); letter-spacing: .5em; color: var(--bandera); margin-top: .3em; }

/* ---------- cards ---------- */
.kk-card { background: var(--cal); border: 2px solid var(--caoba); border-radius: var(--radius-md); padding: var(--space-5); box-shadow: var(--shadow-hard-sm); color: var(--caoba); }
.kk-event { display: grid; grid-template-columns: 72px 1fr; gap: var(--space-4); align-items: start; }
.kk-date { background: var(--bandera); color: var(--cal); border-radius: var(--radius-sm); text-align: center; padding: .5rem 0; }
.kk-date b { display: block; font: 900 2rem/1 var(--font-display); font-stretch: 68%; color: var(--sol); }
.kk-date span { font: 700 .65rem var(--font-body); letter-spacing: .2em; text-transform: uppercase; }
.kk-event h3 { margin: 0; font: 900 1.5rem/1 var(--font-display); font-stretch: 70%; text-transform: uppercase; color: var(--rojo); }
.kk-event .meta { font-size: .875rem; color: var(--ink-muted); margin: .25rem 0 .5rem; }

.kk-menu-item { display: grid; grid-template-columns: 1fr auto; gap: .2rem 1rem; padding: var(--space-3) 0; border-bottom: 2px dotted rgba(59,13,18,.3); }
.kk-menu-item h4 { margin: 0; font: 900 1.25rem/1.1 var(--font-display); font-stretch: 72%; text-transform: uppercase; color: var(--bandera); }
.kk-menu-item .price { font: 900 1.25rem/1.1 var(--font-display); font-stretch: 72%; color: var(--rojo); }
.kk-menu-item p { grid-column: 1 / -1; margin: 0; font-size: .875rem; color: var(--ink-muted); }

/* ---------- forms ---------- */
.kk-field label { display: block; font: 700 .75rem var(--font-body); letter-spacing: .18em; text-transform: uppercase; margin-bottom: .4rem; }
.kk-field input, .kk-field select, .kk-field textarea { width: 100%; padding: .8em 1em; font: inherit; color: var(--caoba); background: var(--cal); border: 2px solid var(--caoba); border-radius: var(--radius-sm); }
.kk-field input:focus, .kk-field textarea:focus, .kk-field select:focus { outline: 3px solid var(--larimar); outline-offset: 0; }
.kk-field .hint { font-size: .875rem; color: var(--ink-muted); margin-top: .3rem; }

/* ---------- calendar chip ---------- */
.kk-day { width: 44px; aspect-ratio: 1; display: grid; place-items: center; border: 2px solid transparent; border-radius: var(--radius-sm); font: 700 .95rem var(--font-body); background: var(--cal); color: var(--caoba); position: relative; }
.kk-day.has::after { content: ''; position: absolute; bottom: 5px; width: 6px; height: 6px; border-radius: 50%; background: var(--rojo); }
.kk-day.today { border-color: var(--bandera); } .kk-day.sel { background: var(--rojo); color: var(--cal); } .kk-day.sel::after { background: var(--sol); }

/* ---------- footer ---------- */
.kk-footer { background: var(--medianoche); color: var(--arena); padding: var(--space-7) var(--gutter); }
.kk-footer a { color: var(--oro); }

.display-xl, .display-l, .display-m { font-stretch: 68%; text-transform: uppercase; }
.accent { font-stretch: 78%; text-transform: uppercase; }
.eyebrow { text-transform: uppercase; }

/* ---------- bilingual (English / Español) ---------- */
.kk-t > .es { display: none; }
html[data-lang="es"] .kk-t > .es { display: inline; }
html[data-lang="es"] .kk-t > .en { display: none; }
.kk-t.block > .en, html[data-lang="es"] .kk-t.block > .es { display: block; }
.kk-lang { display: inline-flex; border: 2px solid currentColor; border-radius: var(--radius-pill); overflow: hidden; }
.kk-lang button { background: transparent; color: inherit; border: 0; padding: .45em .95em; font: 700 .75rem/1 var(--font-body); letter-spacing: .16em; cursor: pointer; }
.kk-lang button[aria-pressed="true"] { background: var(--s-btn-bg, var(--rojo)); color: var(--s-btn-fg, var(--on-rojo)); }
.kk-lang button:focus-visible { outline-offset: -3px; }

/* ---------- logo ---------- */
.kk-logo { display: block; height: 72px; width: auto; }
.kk-logo.lg { height: 220px; } .kk-logo.sm { height: 48px; }
.kk-logo-disc { display: inline-grid; place-items: center; background: var(--cal); border-radius: 50%; padding: 10px; }

/* ---------- Dominican flag (simplified, no coat of arms) ---------- */
.kk-flag-rd { display: inline-block; width: 54px; aspect-ratio: 3 / 2; border-radius: 3px; box-shadow: 0 0 0 1.5px var(--caoba);
  background: linear-gradient(var(--cal), var(--cal)) center / 100% 22% no-repeat, linear-gradient(var(--cal), var(--cal)) center / 14% 100% no-repeat,
    linear-gradient(90deg, var(--bandera) 50%, var(--rojo) 50%) top / 100% 50% no-repeat, linear-gradient(90deg, var(--rojo) 50%, var(--bandera) 50%) bottom / 100% 50% no-repeat; }

/* ---------- phrases ---------- */
.kk-phrase-band { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--space-3) var(--space-7); padding: var(--space-5) var(--gutter); background: var(--rojo); color: var(--on-rojo); }
.kk-phrase-band .kk-phrase b { color: var(--on-rojo); }
.kk-phrase { display: flex; flex-direction: column; gap: 2px; }
.kk-phrase b { font: 900 2rem/.95 var(--font-display); font-stretch: 68%; text-transform: uppercase; color: var(--heading); }
.kk-phrase small { font: italic 500 .95rem/1.2 var(--font-serif); opacity: .9; }
.kk-phrase-band .kk-phrase + .kk-phrase { position: relative; }
.kk-phrase-band .kk-phrase + .kk-phrase::before { content: ''; position: absolute; left: calc(var(--space-7) / -2 - 5px); top: .6em; width: 10px; height: 10px; background: var(--sol); transform: rotate(45deg); }
.kk-phrase-card { background: var(--surface-raised); border: 2px solid var(--line); border-radius: var(--radius-md); padding: var(--space-4) var(--space-5); box-shadow: var(--shadow-hard-sm); }

/* ---------- nav with crest ---------- */
.kk-nav .kk-logo { height: 64px; margin: -6px 0; }
.kk-nav .right { display: flex; align-items: center; gap: var(--space-4); }
