/* ═══════════════════════════════════════════════════════════════
   Desde el país del sol naciente al paraíso del Caribe
   Kenzo Yamamoto · 山本

   Un solo branding: TODOS los colores salen de las ilustraciones
   originales del libro (portada, contraportada y solapas).
   ═══════════════════════════════════════════════════════════════ */

:root{
  /* 和紙 washi — el papel del libro */
  --washi:    #FBF4E7;
  --washi-2:  #F6EADA;
  --washi-3:  #FCE3D0;   /* resplandor durazno del amanecer */
  --washi-4:  #EFDFCB;

  /* 墨 sumi — la tinta */
  --sumi:     #1D1D1B;
  --sumi-2:   #4A423C;
  --sumi-3:   #7C6F65;

  /* 朱 shu — el rojo del título y del torii */
  --shu:      #EE3230;
  --shu-2:    #D05145;   /* el sol naciente */
  --shu-3:    #B92B22;   /* profundo, para hover */

  /* 藍 ai — el añil del Fuji */
  --ai:       #1D4662;
  --ai-2:     #295B80;
  --ai-3:     #2A70A3;
  --ai-4:     #12354B;

  /* 水 mizu — el agua y la nieve */
  --mizu:     #6DADDF;
  --mizu-2:   #8BC3EB;
  --mizu-3:   #B2D9F5;

  /* 緑 midori — el verde del subtítulo */
  --midori:   #06595C;

  /* 桜 sakura */
  --sakura:   #E098B0;
  --sakura-2: #E8C8D0;

  --linea:      rgba(29,29,27,.16);
  --linea-2:    rgba(29,29,27,.08);
  --linea-luz:  rgba(251,244,231,.24);

  --wrap: 1160px;
  --nav-h: 70px;

  --f-tit: 'Shippori Mincho', 'Hiragino Mincho ProN', 'Yu Mincho', serif;
  --f-txt: 'EB Garamond', Georgia, 'Times New Roman', serif;
}

*,*::before,*::after{ box-sizing:border-box; }
[hidden]{ display:none !important; }

html{ scroll-behavior:smooth; scroll-padding-top:calc(var(--nav-h) + 16px); }

body{
  margin:0;
  background:var(--washi);
  color:var(--sumi);
  font-family:var(--f-txt);
  font-size:19px;
  line-height:1.72;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img,svg{ max-width:100%; height:auto; display:block; }
a{ color:inherit; }
p{ margin:0 0 1.05em; }
h1,h2,h3{ font-family:var(--f-tit); line-height:1.2; margin:0; font-weight:700; }
b,strong{ font-weight:600; }
::selection{ background:var(--sakura-2); color:var(--ai-4); }

:focus-visible{ outline:2.5px solid var(--shu); outline-offset:3px; }

.skip-link{
  position:absolute; left:-9999px; top:0; z-index:200;
  background:var(--ai); color:var(--washi); padding:12px 18px;
  text-decoration:none;
}
.skip-link:focus{ left:0; }

.wrap{ width:min(100% - 44px, var(--wrap)); margin-inline:auto; }
.wrap.narrow{ width:min(100% - 44px, 780px); }
.center{ text-align:center; }

/* ─────────── 印章 · el sello hanko ─────────── */
.hanko{
  display:inline-grid; place-items:center;
  width:46px; height:46px; flex:none;
  background:var(--shu);
  color:var(--washi);
  font-family:var(--f-tit); font-weight:700;
  font-size:15px; line-height:1.02; letter-spacing:0;
  writing-mode:vertical-rl;
  border-radius:3px;
  transform:rotate(-3deg);
  box-shadow:inset 0 0 0 2px rgba(251,244,231,.32);
  user-select:none;
}
.hanko--sm{ width:34px; height:34px; font-size:11.5px; }
.hanko--foto{ position:absolute; right:-14px; bottom:26px; }
.hanko--mar{ background:var(--shu); margin:22px auto 0; }

/* ─────────── 縦書き · texto vertical ─────────── */
.tate{
  writing-mode:vertical-rl;
  font-family:var(--f-tit);
  letter-spacing:.28em;
  margin:0;
  user-select:none;
}

/* ─────────── botones ─────────── */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.55em;
  font-family:var(--f-tit); font-weight:600; font-size:.92rem;
  letter-spacing:.02em;
  padding:.9em 1.7em; border:none; border-radius:2px;
  text-decoration:none; cursor:pointer; position:relative;
  transition:transform .18s ease, background .18s ease, color .18s ease, box-shadow .18s ease;
}
.btn b{ font-weight:700; }
.ico-wa{ width:1.15em; height:1.15em; fill:currentColor; flex:none; }

.btn--shu{
  background:var(--shu); color:var(--washi);
  box-shadow:4px 4px 0 rgba(185,43,34,.28);
}
.btn--shu:hover{ background:var(--shu-3); transform:translate(-1px,-1px); box-shadow:6px 6px 0 rgba(185,43,34,.3); }
.btn--shu:active{ transform:translate(2px,2px); box-shadow:1px 1px 0 rgba(185,43,34,.3); }

.btn--linea{
  background:transparent; color:var(--ai);
  box-shadow:inset 0 0 0 1.5px var(--ai);
}
.btn--linea:hover{ background:var(--ai); color:var(--washi); }

.btn--lg{ font-size:1rem; padding:1.02em 2.05em; }
.btn--block{ display:flex; width:100%; }

/* ═══════════════ NAV ═══════════════ */
.nav{
  position:sticky; top:0; z-index:100;
  background:rgba(251,244,231,.93);
  backdrop-filter:saturate(160%) blur(10px);
  -webkit-backdrop-filter:saturate(160%) blur(10px);
  border-bottom:1px solid transparent;
  transition:border-color .3s ease, box-shadow .3s ease;
}
.nav.is-stuck{ border-bottom-color:var(--linea); box-shadow:0 8px 26px rgba(29,29,27,.06); }

.nav__progress{
  position:absolute; top:0; left:0; height:2px; width:0;
  background:var(--shu); z-index:2;
}

.nav__inner{
  width:min(100% - 32px, var(--wrap)); margin-inline:auto;
  min-height:var(--nav-h); display:flex; align-items:center; gap:20px;
}
.nav__brand{ display:flex; align-items:center; gap:12px; text-decoration:none; margin-right:auto; }
.nav__brandtxt{ display:flex; flex-direction:column; line-height:1.2; }
.nav__brandtxt strong{
  font-family:var(--f-tit); font-size:.9rem; font-weight:700; color:var(--ai);
  max-width:26ch; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.nav__brandtxt small{ font-size:.72rem; color:var(--sumi-3); letter-spacing:.05em; }

.nav__links{ display:flex; gap:26px; }
.nav__links a{
  font-family:var(--f-tit); font-size:.86rem; color:var(--sumi-2);
  text-decoration:none; padding:8px 0; position:relative;
  display:flex; align-items:baseline; gap:.45em;
}
.nav__links i{ font-style:normal; font-size:.78rem; color:var(--shu); }
.nav__links a::after{
  content:''; position:absolute; left:0; right:100%; bottom:2px; height:1.5px;
  background:var(--shu); transition:right .28s ease;
}
.nav__links a:hover{ color:var(--sumi); }
.nav__links a:hover::after{ right:0; }

.nav__cta{ padding:.62em 1.15em; font-size:.83rem; }

.nav__burger{
  display:none; width:44px; height:44px; border:none; background:transparent;
  cursor:pointer; padding:10px; flex-direction:column; justify-content:space-between;
}
.nav__burger span{ display:block; height:2px; background:var(--ai); transition:transform .25s ease, opacity .2s ease; }
.nav__burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(9px) rotate(45deg); }
.nav__burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.nav__burger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-9px) rotate(-45deg); }

.nav__mobile{
  display:none; flex-direction:column; padding:4px 22px 22px;
  border-top:1px solid var(--linea); background:var(--washi);
}
.nav__mobile a{
  font-family:var(--f-tit); padding:14px 2px; text-decoration:none;
  color:var(--sumi); border-bottom:1px solid var(--linea-2);
  display:flex; align-items:baseline; gap:.7em;
}
.nav__mobile i{ font-style:normal; color:var(--shu); font-size:.85rem; }
.nav__mobile a:last-child{ border-bottom:none; }
.nav__mobile-cta{ color:var(--shu) !important; font-weight:700; }

/* ═══════════════ PORTADA ═══════════════ */
.hero{
  position:relative; overflow:hidden;
  background:
    radial-gradient(120% 80% at 78% 12%, var(--washi-3) 0%, rgba(252,227,208,0) 58%),
    linear-gradient(180deg, var(--washi) 0%, var(--washi-2) 100%);
  padding:clamp(30px,5vw,58px) 0 clamp(40px,6vw,80px);
}

/* 青海波 seigaiha — olas concéntricas, muy sutiles */
.hero__seigaiha{
  position:absolute; inset:0; z-index:0; pointer-events:none; opacity:.5;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='28' viewBox='0 0 56 28'%3E%3Cg fill='none' stroke='%231D4662' stroke-width='1' opacity='.16'%3E%3Ccircle cx='0' cy='28' r='26'/%3E%3Ccircle cx='0' cy='28' r='19.5'/%3E%3Ccircle cx='0' cy='28' r='13'/%3E%3Ccircle cx='0' cy='28' r='6.5'/%3E%3Ccircle cx='28' cy='28' r='26'/%3E%3Ccircle cx='28' cy='28' r='19.5'/%3E%3Ccircle cx='28' cy='28' r='13'/%3E%3Ccircle cx='28' cy='28' r='6.5'/%3E%3Ccircle cx='56' cy='28' r='26'/%3E%3Ccircle cx='56' cy='28' r='19.5'/%3E%3Ccircle cx='56' cy='28' r='13'/%3E%3Ccircle cx='56' cy='28' r='6.5'/%3E%3C/g%3E%3C/svg%3E");
  -webkit-mask-image:linear-gradient(180deg, rgba(0,0,0,.55), transparent 46%);
          mask-image:linear-gradient(180deg, rgba(0,0,0,.55), transparent 46%);
}

.hero__sakura{
  position:absolute; top:-128px; left:-52px; width:clamp(112px,12vw,182px);
  z-index:2; pointer-events:none; opacity:.95;
  -webkit-mask-image:linear-gradient(to bottom, #000 58%, transparent 92%);
          mask-image:linear-gradient(to bottom, #000 58%, transparent 92%);
}

/* 青海波 · cresta de olas que une el papel con el añil.
   Las mismas medias lunas del patrón, ahora al tamaño de un borde. */
.crest{
  height:clamp(34px,4.4vw,54px);
  background-color:var(--washi-2);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='48' viewBox='0 0 96 48'%3E%3Cpath d='M0 48A48 48 0 0 1 96 48Z' fill='%231D4662'/%3E%3Cg fill='none' stroke='%23B2D9F5' stroke-opacity='.3' stroke-width='1.6'%3E%3Cpath d='M16 48a32 32 0 0 1 64 0'/%3E%3Cpath d='M32 48a16 16 0 0 1 32 0'/%3E%3C/g%3E%3C/svg%3E");
  background-repeat:repeat-x;
  background-position:center bottom;
  background-size:auto 100%;
  margin-bottom:-1px;
}
/* la misma cresta al revés: el añil termina en olas de papel */
.crest--baja{
  position:relative; z-index:2;
  margin:clamp(26px,4vw,46px) 0 -1px;
  background-color:var(--ai-4);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='48' viewBox='0 0 96 48'%3E%3Cpath d='M0 48A48 48 0 0 1 96 48Z' fill='%23FAE9DC'/%3E%3Cg fill='none' stroke='%231D4662' stroke-opacity='.22' stroke-width='1.6'%3E%3Cpath d='M16 48a32 32 0 0 1 64 0'/%3E%3Cpath d='M32 48a16 16 0 0 1 32 0'/%3E%3C/g%3E%3C/svg%3E");
}

.hero__grid{
  position:relative; z-index:3;
  display:grid; grid-template-columns:1.02fr .98fr; gap:clamp(26px,4vw,60px);
  align-items:center;
}
.hero__text{ position:relative; padding-left:clamp(0px,3.4vw,60px); }

.tate--hero{
  display:none;
  position:absolute; top:112px; right:100%; margin-right:20px;
  font-size:.8rem; color:var(--ai-2); opacity:.55; height:max-content;
}
@media (min-width:1400px){ .tate--hero{ display:block; } }

.eyebrow{
  display:flex; align-items:center; gap:.85em;
  font-family:var(--f-tit); font-size:.75rem; letter-spacing:.24em;
  text-transform:uppercase; color:var(--sumi-3); margin:0 0 1.15em;
}
.eyebrow__rule{ width:32px; height:1px; background:var(--shu); flex:none; }

.hero__title{
  font-size:clamp(2.1rem,1.1rem + 4.1vw,3.7rem);
  font-weight:800; line-height:1.09; margin:0 0 .42em;
  letter-spacing:-.015em;
}
.hero__t1{ display:block; color:var(--shu); }
.hero__t2{ display:block; color:var(--midori); font-size:.8em; margin-top:.12em; }

.hero__sub{
  font-family:var(--f-tit); font-size:clamp(1.05rem,.9rem + .55vw,1.3rem);
  color:var(--ai); margin:0 0 1.1em; font-weight:500;
}
.hero__lede{ color:var(--sumi-2); max-width:44ch; font-size:1.02rem; }

.hero__actions{ display:flex; flex-wrap:wrap; gap:14px; margin:1.7em 0 2em; }

.hero__meta{
  list-style:none; margin:0; padding:20px 0 0;
  border-top:1px solid var(--linea);
  display:flex; flex-wrap:wrap; gap:12px 38px;
}
.hero__meta li{ display:flex; flex-direction:column; line-height:1.35; }
.hero__meta b{ font-family:var(--f-tit); font-size:1.02rem; color:var(--ai); }
.hero__meta li:first-child b{ color:var(--shu); font-size:1.2rem; }
.hero__meta span{ font-size:.8rem; color:var(--sumi-3); }

.hero__book{ margin:0; position:relative; }
.hero__bookwrap{
  width:min(100%,400px); margin-inline:auto;
  animation:flotar 8s ease-in-out infinite;
}
.hero__bookwrap img{ filter:drop-shadow(0 34px 46px rgba(29,45,60,.34)); }
.hero__book figcaption{
  text-align:center; margin-top:20px; font-family:var(--f-tit);
  font-size:.72rem; letter-spacing:.2em; color:var(--sumi-3);
}
@keyframes flotar{
  0%,100%{ transform:translateY(0) rotate(-.5deg); }
  50%    { transform:translateY(-15px) rotate(.5deg); }
}

/* pétalos */
.petals{ position:absolute; inset:0; z-index:2; pointer-events:none; overflow:hidden; }
.petal{
  position:absolute; top:-6%;
  width:12px; height:12px; opacity:0;
  background:var(--sakura);
  border-radius:60% 0 60% 0;
  animation:caer linear infinite;
}
@keyframes caer{
  0%   { transform:translate3d(0,-10vh,0) rotate(0deg); opacity:0; }
  10%  { opacity:.75; }
  90%  { opacity:.5; }
  100% { transform:translate3d(60px,110vh,0) rotate(420deg); opacity:0; }
}

/* ═══════════════ MAR · cita ═══════════════ */
.mar{
  position:relative; background:var(--ai); color:var(--washi);
  padding:clamp(52px,7vw,86px) 0 clamp(46px,6vw,72px);
  text-align:center; overflow:hidden;
}
.mar__olas{
  position:absolute; inset:0; opacity:.9; pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='28' viewBox='0 0 56 28'%3E%3Cg fill='none' stroke='%23B2D9F5' stroke-width='1' opacity='.18'%3E%3Ccircle cx='0' cy='28' r='26'/%3E%3Ccircle cx='0' cy='28' r='19.5'/%3E%3Ccircle cx='0' cy='28' r='13'/%3E%3Ccircle cx='0' cy='28' r='6.5'/%3E%3Ccircle cx='28' cy='28' r='26'/%3E%3Ccircle cx='28' cy='28' r='19.5'/%3E%3Ccircle cx='28' cy='28' r='13'/%3E%3Ccircle cx='28' cy='28' r='6.5'/%3E%3Ccircle cx='56' cy='28' r='26'/%3E%3Ccircle cx='56' cy='28' r='19.5'/%3E%3Ccircle cx='56' cy='28' r='13'/%3E%3Ccircle cx='56' cy='28' r='6.5'/%3E%3C/g%3E%3C/svg%3E");
}
.mar__inner{ position:relative; }
.tate--mar{
  position:absolute; left:6%; top:-14px; font-size:1.1rem;
  color:var(--mizu-3); opacity:.5;
}
.mar__cita{
  margin:0 auto; max-width:22ch;
  font-family:var(--f-tit); font-weight:500;
  font-size:clamp(1.3rem,1rem + 1.7vw,2.25rem); line-height:1.45;
  text-wrap:balance;
}
.mar__cita::before{ content:'「'; color:var(--mizu); margin-right:-.1em; }
.mar__cita::after{ content:'」'; color:var(--mizu); }
.mar__cita em{ color:var(--sakura-2); font-style:italic; }

/* ═══════════════ SECCIONES ═══════════════ */
.section{ padding:clamp(56px,7.5vw,110px) 0; position:relative; }
.section--washi{ background:var(--washi-2); }
.section--ai{
  background:linear-gradient(175deg,var(--ai) 0%, var(--ai-4) 100%);
  color:rgba(251,244,231,.9); overflow:hidden;
  padding-bottom:0;
}
.section--ai p{ color:rgba(251,244,231,.78); }

/* El lanzamiento es la única sección con este marco: en vez de un
   fondo de color distinto (se probó y no terminaba de encajar con el
   resto del sitio), se queda en el mismo crema de siempre pero
   enmarcada en bermellón —el mismo rojo de los botones y acentos—
   como una franja de cartel/entrada, para que resalte sin salirse
   del branding. */
.section--shu{
  background:var(--washi-2); overflow:hidden;
  border-top:8px solid var(--shu);
  border-bottom:8px solid var(--shu);
}
#lanzamiento .ai__olas{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 40 40'%3E%3Cg fill='none' stroke='%23EE3230' stroke-width='1' opacity='.1'%3E%3Ccircle cx='0' cy='0' r='20'/%3E%3Ccircle cx='40' cy='0' r='20'/%3E%3Ccircle cx='0' cy='40' r='20'/%3E%3Ccircle cx='40' cy='40' r='20'/%3E%3Ccircle cx='20' cy='20' r='20'/%3E%3C/g%3E%3C/svg%3E");
}

/* La papeleta de confirmación de asistencia toma el mismo borde y
   sombra en rojo que las otras dos tarjetas de la sección. */
#lanzamiento .papeleta{
  border-color:var(--shu);
  box-shadow:8px 8px 0 -1px rgba(185,43,34,.16);
}
#lanzamiento .papeleta__cab{ background:var(--shu-3); }
#lanzamiento .papeleta__jp{ color:rgba(251,244,231,.7); }
#lanzamiento .rsvp-exito{
  background:var(--shu-3); border-color:var(--washi);
  box-shadow:8px 8px 0 -1px rgba(185,43,34,.2);
}

/* encabezado de capítulo */
.cap{
  display:flex; align-items:flex-start; gap:clamp(16px,2.4vw,30px);
  margin-bottom:clamp(30px,4vw,52px);
  border-bottom:1px solid var(--linea); padding-bottom:22px;
}
.cap__num{
  font-family:var(--f-tit); font-weight:700;
  font-size:clamp(2.4rem,1.6rem + 2.4vw,3.6rem); line-height:.9;
  color:var(--shu); flex:none; padding-top:.06em;
}
.cap__jp{
  font-family:var(--f-tit); font-size:.8rem; letter-spacing:.34em;
  color:var(--sumi-2); margin:0 0 .3em;
}
.cap__kicker{
  font-family:var(--f-tit); font-size:.74rem; letter-spacing:.24em;
  text-transform:uppercase; color:var(--shu); margin:0 0 .35em;
}
.cap h2{
  font-size:clamp(1.7rem,1.1rem + 2.2vw,2.7rem);
  color:var(--ai); margin:0; text-wrap:balance;
}
.cap--claro{ border-bottom-color:var(--linea-luz); }
.cap--claro .cap__num{ color:var(--sakura); }
.cap--claro .cap__jp{ color:rgba(251,244,231,.55); }
.cap--claro .cap__kicker{ color:var(--sakura); }
.cap--claro h2{ color:var(--washi); }

/* Insignia de urgencia para el aviso del lanzamiento: más llamativa
   que el kicker de texto plano, para que se note de inmediato que el
   evento tiene fecha límite. */
.cap__kicker--urgente{
  display:inline-block;
  background:var(--shu); color:var(--washi);
  padding:.5em 1em; border-radius:999px;
  font-weight:700; letter-spacing:.08em;
}

.lede{ font-size:1.04rem; color:var(--sumi-2); max-width:62ch; }
.lede b{ color:var(--sumi); }
.lede-claro{
  color:rgba(251,244,231,.8); max-width:56ch; margin:0 0 clamp(28px,4vw,44px);
  font-size:1.02rem;
}

/* capitular */
.capitular::first-letter{
  float:left; font-family:var(--f-tit); font-weight:700;
  font-size:3.5em; line-height:.82; color:var(--shu);
  margin:.06em .12em 0 0;
}

/* ─────────── 一 · el libro ─────────── */
.libro{
  display:grid; grid-template-columns:.82fr 1.18fr;
  gap:clamp(30px,5vw,68px); align-items:start;
}
.libro__portada{ margin:0; position:relative; }
.libro__portada img{
  width:100%;
  box-shadow:
    0 2px 0 rgba(29,29,27,.1),
    22px 22px 0 -6px var(--washi-4),
    26px 26px 0 -6px var(--linea),
    0 30px 60px rgba(29,45,60,.2);
}
.libro__cinta{
  position:absolute; top:-14px; right:34px; width:26px; height:96px;
  background:var(--shu);
  clip-path:polygon(0 0,100% 0,100% 100%,50% 78%,0 100%);
  box-shadow:2px 2px 0 rgba(185,43,34,.25);
}
.libro__texto .btn{ margin-top:.6em; }

.colofon{
  margin:1.9em 0; padding:22px 24px;
  border:1px solid var(--linea); background:rgba(251,244,231,.6);
}
.colofon__t{
  font-family:var(--f-tit); font-size:.72rem; letter-spacing:.24em;
  text-transform:uppercase; color:var(--sumi-3); margin:0 0 14px;
  display:flex; align-items:center; gap:.6em;
}
.colofon__t i{ font-style:normal; color:var(--shu); letter-spacing:.12em; font-size:.9rem; }
.colofon dl{ margin:0; display:grid; grid-template-columns:repeat(3,1fr); gap:16px 22px; }
.colofon dt{ font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; color:var(--sumi-3); }
.colofon dd{ margin:2px 0 0; font-family:var(--f-tit); font-size:.98rem; color:var(--ai); }
.colofon dd#fichaPrecio{ color:var(--shu); }

/* ─────────── 二 · el autor ─────────── */
.autor{ display:grid; grid-template-columns:.78fr 1.22fr; gap:clamp(28px,4.6vw,64px); align-items:start; }
.autor__foto{ margin:0; position:relative; }
.autor__foto img{
  width:100%; max-width:340px;
  border:10px solid var(--washi);
  box-shadow:0 18px 40px rgba(29,45,60,.2);
}
.autor__foto figcaption{
  margin-top:16px; font-family:var(--f-tit); font-size:.74rem;
  letter-spacing:.2em; text-transform:uppercase; color:var(--sumi-3);
}
.autor__bio p{ color:var(--sumi-2); }
.autor__bio b{ color:var(--sumi); }

.datos{
  list-style:none; margin:1.8em 0 0; padding:0;
  display:grid; grid-template-columns:repeat(2,1fr); gap:1px;
  background:var(--linea); border:1px solid var(--linea);
}
.datos li{ background:var(--washi-2); padding:16px 18px; display:flex; flex-direction:column; }
.datos b{ font-family:var(--f-tit); font-size:1.02rem; color:var(--shu); }
.datos span{ font-size:.85rem; color:var(--sumi-3); }

/* ─────────── 三 · dos culturas ─────────── */
.ai__olas{
  position:absolute; inset:0; pointer-events:none; opacity:.75;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 40 40'%3E%3Cg fill='none' stroke='%23B2D9F5' stroke-width='1' opacity='.13'%3E%3Ccircle cx='0' cy='0' r='20'/%3E%3Ccircle cx='40' cy='0' r='20'/%3E%3Ccircle cx='0' cy='40' r='20'/%3E%3Ccircle cx='40' cy='40' r='20'/%3E%3Ccircle cx='20' cy='20' r='20'/%3E%3C/g%3E%3C/svg%3E");
}
.cruce{
  position:relative;
  display:grid; grid-template-columns:.72fr 1.28fr;
  gap:clamp(26px,5vw,64px); align-items:center;
  padding-bottom:clamp(40px,6vw,70px);
}
.cruce__mapa{ margin:0; }
.cruce__lienzo{ position:relative; }
.cruce__mapa img{ width:100%; filter:drop-shadow(0 18px 34px rgba(0,0,0,.34)); }

/* Las etiquetas de los dos países, ahora en texto real y en claro */
.mapa-tag{
  position:absolute; transform:translate(-50%,-50%);
  display:flex; flex-direction:column; align-items:center; gap:2px;
  font-family:var(--f-tit); color:var(--washi);
  font-size:clamp(.72rem,.62rem + .34vw,.92rem);
  letter-spacing:.16em; text-transform:uppercase;
  text-align:center; line-height:1.25; white-space:nowrap;
  text-shadow:0 2px 10px rgba(14,44,62,.85), 0 0 3px rgba(14,44,62,.9);
}
.mapa-tag i{
  font-style:normal; font-size:.82em; letter-spacing:.22em;
  color:var(--mizu-3); text-transform:none;
}
.mapa-tag--jp{ left:37%; top:25%; }
.mapa-tag--rd{ left:64%; top:96.5%; }

.ruta{ list-style:none; margin:0; padding:0 0 0 34px; position:relative; }
.ruta::before{
  content:''; position:absolute; left:7px; top:10px; bottom:10px; width:1px;
  background:linear-gradient(180deg,var(--sakura),rgba(224,152,176,.12));
}
.ruta li{ position:relative; padding-bottom:32px; }
.ruta li:last-child{ padding-bottom:0; }
.ruta li::before{
  content:''; position:absolute; left:-34px; top:10px;
  width:15px; height:15px; background:var(--shu);
  transform:rotate(45deg);
  box-shadow:0 0 0 5px rgba(238,50,48,.16);
}
.ruta__año{
  display:inline-block; font-family:var(--f-tit); font-size:.72rem;
  letter-spacing:.2em; text-transform:uppercase; color:var(--sakura);
  margin-bottom:5px;
}
.ruta h3{ color:var(--washi); font-size:1.14rem; margin-bottom:.28em; }
.ruta p{ margin:0; font-size:.97rem; }

/* franja del Caribe: la única vez que aparece el paisaje */
.banda-caribe{ position:relative; background:#FAE9DC; line-height:0; }
.banda-caribe img{
  width:100%; height:clamp(190px,29vw,370px);
  object-fit:cover; object-position:center 62%;
}
.banda-caribe::after{
  content:''; position:absolute; left:0; right:0; bottom:0; height:44%;
  background:linear-gradient(to bottom, rgba(251,244,231,0) 0%, var(--washi) 100%);
}

/* ─────────── 四 · por qué leerlo ─────────── */
.razones{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(232px,1fr));
  gap:1px; background:var(--linea);
  border:1px solid var(--linea);
}
.razones article{
  background:var(--washi); padding:32px 28px 30px;
  transition:background .25s ease;
}
.razones article:hover{ background:var(--washi-3); }
.kanji{
  display:block; font-family:var(--f-tit); font-weight:700;
  font-size:2.5rem; line-height:1; color:var(--shu); letter-spacing:.05em;
}
.romaji{
  margin:.5em 0 1.1em; font-size:.72rem; letter-spacing:.16em;
  text-transform:uppercase; color:var(--sumi-2);
}
.razones h3{ font-size:1.08rem; color:var(--ai); margin-bottom:.45em; }
.razones article p:last-child{ margin:0; font-size:.95rem; color:var(--sumi-2); }

/* ─────────── 五 · palabras del autor ─────────── */
.carta{
  position:relative; overflow:hidden;
  background:var(--washi);
  border:1px solid var(--linea);
  padding:clamp(30px,4.6vw,60px);
  box-shadow:0 22px 50px rgba(29,45,60,.09);
}
.carta__marca{
  position:absolute; right:-18px; bottom:-46px;
  font-family:var(--f-tit); font-weight:700; font-size:15rem; line-height:1;
  color:var(--shu); opacity:.05; pointer-events:none;
}
.carta p{ color:var(--sumi-2); position:relative; }
.carta em{ color:var(--shu); font-style:italic; }
.carta__cierre{
  font-family:var(--f-tit); font-size:1.16rem; color:var(--ai);
  border-left:3px solid var(--shu); padding-left:18px; margin-top:1.7em;
}
.firma{
  display:flex; align-items:center; justify-content:flex-end; gap:16px;
  margin-top:2em; padding-top:1.4em; border-top:1px solid var(--linea);
  position:relative;
}
.firma__nombre{
  font-family:var(--f-tit); font-size:1.05rem; color:var(--sumi-2); letter-spacing:.04em;
}

/* ─────────── 六 · lanzamiento ─────────── */
.lanzamiento{
  display:grid; grid-template-columns:1fr 1fr 1.3fr;
  gap:clamp(22px,3.2vw,40px); align-items:stretch;
  margin-top:clamp(28px,4vw,44px);
}

.evento{
  display:flex; flex-direction:column; justify-content:center;
  background:var(--washi);
  border:1.5px solid var(--shu);
  box-shadow:8px 8px 0 -1px rgba(185,43,34,.16);
  padding:clamp(22px,3vw,32px);
}
.evento__jp{
  display:block; font-family:var(--f-tit); font-size:.72rem;
  letter-spacing:.3em; color:var(--sumi-3); margin-bottom:10px;
}
.evento__tit{ color:var(--ai); font-size:1.2rem; margin-bottom:1em; }
.evento__programa-tit{
  margin:1.6em 0 .8em; font-family:var(--f-tit); font-size:.82rem;
  letter-spacing:.16em; text-transform:uppercase; color:var(--shu);
}
.evento__programa-tit--sola{
  margin-top:0; font-size:1.2rem; text-transform:none; letter-spacing:0;
  color:var(--ai); font-family:var(--f-tit);
}
.evento .btn--linea{ color:var(--shu); box-shadow:inset 0 0 0 1.5px var(--shu); margin-top:1.3em; }
.evento .btn--linea:hover{ background:var(--shu); color:var(--washi); }

/* variante clara de «.datos» para usarse sobre el fondo añil */
.datos--claro{ background:var(--linea-luz); border-color:var(--linea-luz); }
.datos--claro li{ background:var(--ai-4); }
.datos--claro b{ color:var(--sakura); }
.datos--claro span{ color:rgba(251,244,231,.6); }

.lanzamiento__rsvp{ position:relative; }

.rsvp-exito{
  background:var(--ai); color:var(--washi);
  border:1.5px solid var(--sakura);
  box-shadow:8px 8px 0 -1px rgba(29,70,98,.2);
  padding:clamp(30px,4vw,44px); text-align:center;
}
.rsvp-exito .hanko{ margin:0 auto 18px; }
.rsvp-exito h3{ color:var(--washi); font-size:1.25rem; margin-bottom:.6em; }
.rsvp-exito p{ color:rgba(251,244,231,.78); margin:0; max-width:42ch; margin-inline:auto; }

/* ─────────── AVISO del lanzamiento (modal de entrada) ─────────── */
.modal-evento{
  position:fixed; inset:0; z-index:300;
  display:flex; align-items:center; justify-content:center;
  padding:24px;
}
.modal-evento__fondo{
  position:absolute; inset:0;
  background:rgba(18,53,75,.72);
  backdrop-filter:blur(3px); -webkit-backdrop-filter:blur(3px);
  animation:modalFondo .35s ease both;
}
.modal-evento__caja{
  position:relative; z-index:1;
  width:min(100%,460px); max-height:88vh; overflow-y:auto;
  background:var(--washi);
  border:1.5px solid var(--shu);
  box-shadow:10px 10px 0 -2px rgba(185,43,34,.35);
  padding:clamp(28px,4vw,40px);
  animation:modalCaja .38s cubic-bezier(.2,.9,.3,1.2) both;
}
@keyframes modalFondo{ from{ opacity:0; } to{ opacity:1; } }
@keyframes modalCaja{
  from{ opacity:0; transform:translateY(18px) scale(.97); }
  to{ opacity:1; transform:none; }
}
.modal-evento__cerrar{
  position:absolute; top:14px; right:14px;
  width:34px; height:34px; border:none; background:transparent;
  color:var(--sumi-3); font-size:1rem; cursor:pointer; line-height:1;
  transition:color .15s ease;
}
.modal-evento__cerrar:hover{ color:var(--shu); }
.modal-evento__sello{ margin-bottom:14px; }
.modal-evento__jp{
  font-family:var(--f-tit); font-size:.72rem; letter-spacing:.3em;
  color:var(--sumi-3); margin:0 0 .6em;
}
.modal-evento h2{
  font-size:clamp(1.3rem,1.05rem + 1vw,1.6rem); color:var(--ai);
  margin:.15em 0 .6em; text-wrap:balance;
}
.modal-evento__fecha{ font-family:var(--f-tit); color:var(--shu); font-size:1.02rem; margin-bottom:.3em; }
.modal-evento__lugar{ color:var(--sumi-2); font-size:.94rem; margin-bottom:.5em; }
.modal-evento__texto{ color:var(--sumi-3); font-size:.9rem; margin-bottom:1.6em; }
.modal-evento__acciones .btn{ margin-bottom:14px; }
.modal-evento__secundarias{
  display:flex; justify-content:center; gap:22px; flex-wrap:wrap;
}
.modal-evento__link{
  border:none; background:transparent; cursor:pointer;
  font-family:var(--f-txt); font-size:.86rem; color:var(--sumi-3);
  text-decoration:underline; text-underline-offset:3px;
  padding:4px;
}
.modal-evento__link:hover{ color:var(--ai); }

/* ─────────── 七 · pedido ─────────── */
.section--pedido{ background:var(--washi); overflow:hidden; }
.pedido__shippo{
  position:absolute; inset:0; pointer-events:none; opacity:.6;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 40 40'%3E%3Cg fill='none' stroke='%23D05145' stroke-width='1' opacity='.14'%3E%3Ccircle cx='0' cy='0' r='20'/%3E%3Ccircle cx='40' cy='0' r='20'/%3E%3Ccircle cx='0' cy='40' r='20'/%3E%3Ccircle cx='40' cy='40' r='20'/%3E%3Ccircle cx='20' cy='20' r='20'/%3E%3C/g%3E%3C/svg%3E");
  -webkit-mask-image:radial-gradient(80% 60% at 50% 40%, #000, transparent 78%);
          mask-image:radial-gradient(80% 60% at 50% 40%, #000, transparent 78%);
}
.pedido__torii{
  position:absolute; right:-26px; bottom:-16px; width:clamp(130px,17vw,240px);
  opacity:.2; pointer-events:none;
}
.pedido{
  position:relative;
  display:grid; grid-template-columns:1.3fr .7fr; gap:clamp(22px,3.2vw,40px);
  align-items:start; margin-top:clamp(28px,4vw,44px);
}

/* papeleta de pedido */
.papeleta{
  background:var(--washi);
  border:1.5px solid var(--ai);
  box-shadow:8px 8px 0 -1px rgba(29,70,98,.14);
}
.papeleta__cab{
  display:flex; align-items:center; gap:14px;
  background:var(--ai); color:var(--washi);
  padding:13px 22px;
}
.papeleta__jp{ font-family:var(--f-tit); font-size:.9rem; letter-spacing:.3em; color:var(--mizu-3); }
.papeleta__tit{
  font-family:var(--f-tit); font-size:.82rem; letter-spacing:.18em;
  text-transform:uppercase; margin-right:auto;
}
.papeleta__folio{ font-family:var(--f-tit); font-size:.76rem; color:var(--mizu-2); letter-spacing:.1em; }
.papeleta__cuerpo{
  padding:clamp(22px,3vw,34px);
  display:grid; grid-template-columns:repeat(2,1fr); gap:18px;
}

.field{ grid-column:1 / -1; display:flex; flex-direction:column; }
.field--half{ grid-column:span 1; }
.field label{
  font-family:var(--f-tit); font-size:.82rem; color:var(--ai);
  margin-bottom:8px; letter-spacing:.03em;
}
.req{ color:var(--shu); }
.opt{ color:var(--sumi-3); }

input[type="text"],input[type="tel"],input[type="number"],input[type="email"],select,textarea{
  font-family:var(--f-txt); font-size:1rem; color:var(--sumi);
  background:transparent; border:none;
  border-bottom:1.5px solid var(--linea);
  padding:.6em .2em; width:100%; border-radius:0;
  transition:border-color .2s ease, background .2s ease;
}
textarea{
  resize:vertical; min-height:80px;
  border:1.5px solid var(--linea); padding:.7em .8em;
}
input:hover,select:hover,textarea:hover{ border-color:var(--sumi-3); }
input:focus,select:focus,textarea:focus{
  outline:none; border-color:var(--shu);
  background:rgba(252,227,208,.35);
}
input.is-error{ border-color:var(--shu); background:rgba(238,50,48,.07); }
.err{ margin:7px 0 0; font-size:.82rem; color:var(--shu-3); }

select{
  appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231D4662' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right .2em center; background-size:17px;
  padding-right:2em;
}

.stepper{ display:flex; align-items:center; gap:10px; }
.stepper input{ text-align:center; -moz-appearance:textfield; }
.stepper input::-webkit-outer-spin-button,
.stepper input::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }
.stepper__btn{
  flex:none; width:42px; height:42px; cursor:pointer; border-radius:0;
  border:1.5px solid var(--ai); background:transparent;
  font-size:1.2rem; color:var(--ai); line-height:1;
  transition:background .18s ease, color .18s ease;
}
.stepper__btn:hover{ background:var(--ai); color:var(--washi); }

.check{ display:flex !important; align-items:flex-start; gap:12px; cursor:pointer; margin:0 !important; }
.check input{ width:20px; height:20px; margin-top:3px; accent-color:var(--shu); flex:none; }
.check span{ font-family:var(--f-txt); font-size:.98rem; color:var(--sumi-2); line-height:1.5; }

.papeleta button[type="submit"]{ grid-column:1 / -1; margin-top:6px; }
.papeleta__nota{
  grid-column:1 / -1; margin:0; text-align:center;
  font-size:.85rem; color:var(--sumi-3);
}

/* recibo */
.recibo{
  position:relative; overflow:hidden;
  background:var(--ai); color:var(--washi);
  padding:clamp(24px,3vw,32px);
  box-shadow:8px 8px 0 -1px rgba(29,70,98,.2);
  position:sticky; top:calc(var(--nav-h) + 20px);
}
.recibo__jp{
  position:absolute; top:14px; right:16px;
  font-family:var(--f-tit); font-size:.72rem; letter-spacing:.3em;
  color:var(--mizu-2); opacity:.7;
}
.recibo__cover{
  width:124px; margin:0 auto 20px;
  filter:drop-shadow(0 16px 26px rgba(0,0,0,.42));
}
.recibo h3{ font-size:1.04rem; text-align:center; color:var(--washi); line-height:1.35; }
.recibo__sub{
  text-align:center; font-size:.85rem; color:rgba(251,244,231,.62);
  margin:.5em 0 20px; line-height:1.5;
}
.recibo__list{ list-style:none; margin:0; padding:0; }
.recibo__list li{
  display:flex; justify-content:space-between; align-items:baseline; gap:12px;
  padding:11px 0; border-bottom:1px dashed var(--linea-luz); font-size:.9rem;
}
.recibo__list span{ color:rgba(251,244,231,.6); }
.recibo__list b{ font-family:var(--f-tit); text-align:right; font-weight:600; }
.recibo__total{
  display:flex; justify-content:space-between; align-items:baseline;
  margin:16px 0 14px; padding-top:14px; border-top:1.5px solid var(--linea-luz);
  font-family:var(--f-tit);
}
.recibo__total span{ font-size:.85rem; letter-spacing:.14em; text-transform:uppercase; color:rgba(251,244,231,.66); }
.recibo__total b{ font-size:1.5rem; color:var(--sakura-2); }
.recibo__pie{ font-size:.79rem; color:rgba(251,244,231,.58); line-height:1.55; margin-bottom:18px; }
.recibo .btn--linea{ color:var(--washi); box-shadow:inset 0 0 0 1.5px rgba(251,244,231,.45); }
.recibo .btn--linea:hover{ background:var(--washi); color:var(--ai); }

/* ─────────── FAQ ─────────── */
.faq{ margin-top:clamp(24px,3.4vw,38px); border-top:1px solid var(--linea); }
.faq details{ border-bottom:1px solid var(--linea); }
.faq summary{
  cursor:pointer; list-style:none; padding:20px 48px 20px 0;
  font-family:var(--f-tit); font-size:1.04rem; color:var(--ai); position:relative;
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{
  content:''; position:absolute; right:8px; top:50%;
  width:13px; height:13px; margin-top:-7px;
  border-right:1.5px solid var(--shu); border-bottom:1.5px solid var(--shu);
  transform:rotate(45deg); transition:transform .25s ease;
}
.faq details[open] summary::after{ transform:rotate(-135deg); margin-top:-3px; }
.faq details p{ margin:0; padding:0 40px 22px 0; font-size:.98rem; color:var(--sumi-2); }
.faq details p b{ color:var(--shu); font-family:var(--f-tit); }

.faq__cta{
  margin-top:clamp(28px,4vw,42px); padding:clamp(24px,3.4vw,34px);
  background:var(--washi); border:1px solid var(--linea);
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:18px;
}
.faq__cta p{ margin:0; font-family:var(--f-tit); font-size:1.04rem; color:var(--ai); max-width:36ch; }

/* ─────────── footer ─────────── */
.footer{
  position:relative; overflow:hidden;
  background:var(--ai-4); color:rgba(251,244,231,.78);
  padding:44px 0 26px;
}
.footer__olas{
  position:absolute; inset:0; pointer-events:none; opacity:.7;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='28' viewBox='0 0 56 28'%3E%3Cg fill='none' stroke='%23B2D9F5' stroke-width='1' opacity='.13'%3E%3Ccircle cx='0' cy='28' r='26'/%3E%3Ccircle cx='0' cy='28' r='19.5'/%3E%3Ccircle cx='0' cy='28' r='13'/%3E%3Ccircle cx='0' cy='28' r='6.5'/%3E%3Ccircle cx='28' cy='28' r='26'/%3E%3Ccircle cx='28' cy='28' r='19.5'/%3E%3Ccircle cx='28' cy='28' r='13'/%3E%3Ccircle cx='28' cy='28' r='6.5'/%3E%3Ccircle cx='56' cy='28' r='26'/%3E%3Ccircle cx='56' cy='28' r='19.5'/%3E%3Ccircle cx='56' cy='28' r='13'/%3E%3Ccircle cx='56' cy='28' r='6.5'/%3E%3C/g%3E%3C/svg%3E");
}
.footer__inner{
  position:relative;
  display:flex; flex-wrap:wrap; gap:22px 34px;
  align-items:center; justify-content:space-between;
}
.footer__marca{ display:flex; align-items:center; gap:14px; }
.footer__title{ font-family:var(--f-tit); font-size:.98rem; color:var(--washi); margin:0 0 4px; }
.footer__meta{ margin:0; font-size:.82rem; color:rgba(251,244,231,.55); }
.footer__links{ display:flex; flex-wrap:wrap; gap:22px; }
.footer__links a{ font-family:var(--f-tit); font-size:.85rem; color:rgba(251,244,231,.78); text-decoration:none; }
.footer__links a:hover{ color:var(--sakura); }
.footer__copy{
  position:relative; text-align:center; font-size:.78rem; color:rgba(251,244,231,.45);
  margin:26px auto 0; padding-top:20px; border-top:1px solid var(--linea-luz);
  width:min(100% - 44px,var(--wrap));
}

/* ─────────── botón flotante ─────────── */
.fab{
  position:fixed; right:18px; bottom:18px; z-index:90;
  display:none; align-items:center; gap:9px;
  background:var(--shu); color:var(--washi);
  font-family:var(--f-tit); font-weight:700; font-size:.92rem;
  padding:14px 20px; text-decoration:none; border-radius:2px;
  box-shadow:4px 4px 0 rgba(185,43,34,.35);
}
.fab .ico-wa{ width:22px; height:22px; }
.fab.is-visible{ display:flex; }

/* ═══════════════ RESPONSIVE ═══════════════ */
@media (max-width:1040px){
  .nav__links{ display:none; }
  .nav__burger{ display:flex; }
  .nav__cta{ display:none; }
  .nav__mobile[data-open="true"]{ display:flex; }

  .hero__grid{ grid-template-columns:1fr; gap:34px; text-align:center; }
  .hero__text{ padding-left:0; }
  .hero__lede{ margin-inline:auto; }
  .hero__actions{ justify-content:center; }
  .hero__meta{ justify-content:center; gap:16px 30px; }
  .hero__book{ order:-1; }
  .hero__bookwrap{ width:min(74%,290px); }
  .eyebrow{ justify-content:center; }
  .tate--hero{ display:none; }
  .hero__sakura{ top:-70px; left:-42px; width:120px; }

  .libro,.autor,.cruce,.pedido,.lanzamiento{ grid-template-columns:1fr; }
  .libro__portada img,.autor__foto img{ max-width:330px; margin-inline:auto; }
  .libro__cinta{ right:auto; left:calc(50% + 118px); }
  .cruce__lienzo{ max-width:330px; margin-inline:auto; }
  .recibo{ position:static; }
  .fab.is-visible{ display:flex; }
}

@media (max-width:640px){
  body{ font-size:17.5px; }
  .wrap,.wrap.narrow{ width:calc(100% - 34px); }
  .hero{ padding-top:20px; }
  .eyebrow{ font-size:.7rem; letter-spacing:.18em; }
  .eyebrow__rule{ display:none; }
  .hero__actions .btn{ width:100%; }
  .hero__meta{ flex-direction:column; align-items:center; gap:14px; text-align:center; }
  .cap{ gap:14px; }
  .cap__num{ font-size:2.2rem; }
  .colofon dl{ grid-template-columns:repeat(2,1fr); }
  .datos{ grid-template-columns:1fr; }
  .papeleta__cuerpo{ grid-template-columns:1fr; }
  .field--half{ grid-column:1 / -1; }
  /* en móvil se ve el paisaje completo, sin recortar palmeras ni torii */
  .banda-caribe img{ height:auto; }
  .papeleta__cab{ gap:10px; padding:11px 16px; }
  .papeleta__jp{ white-space:nowrap; font-size:.8rem; letter-spacing:.16em; }
  .papeleta__tit{ font-size:.68rem; letter-spacing:.1em; }
  .papeleta__folio{ font-size:.68rem; }
  .carta__marca{ font-size:9rem; right:-10px; bottom:-24px; }
  .footer__inner{ flex-direction:column; text-align:center; }
  .footer__marca{ flex-direction:column; }
  .faq__cta{ flex-direction:column; text-align:center; }
  .fab span{ display:none; }
  .fab{ padding:15px; }
  .libro__cinta{ left:auto; right:28px; }

  .modal-evento{ padding:16px; }
  .modal-evento__caja{ padding:26px 22px; }
  .modal-evento__secundarias{ flex-direction:column; gap:10px; }
}

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  .petals{ display:none; }
  *,*::before,*::after{
    animation-duration:.001ms !important; animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
  }
}


/* ═══════════════ IMPRESIÓN ═══════════════
   Si alguien imprime la página o la guarda en PDF: fuera adornos,
   fondos y botones; queda el texto, la ficha del libro y el contacto. */
@media print{
  .nav, .fab, .petals, .crest, .banda-caribe, .hero__sakura,
  .hero__seigaiha, .mar__olas, .ai__olas, .pedido__shippo,
  .pedido__torii, .footer__olas, .papeleta, .skip-link, .modal-evento{ display:none !important; }

  body{ background:#fff; color:#000; font-size:11pt; }
  .section, .mar, .hero{ padding:14pt 0; background:#fff !important; color:#000 !important; }
  .section--ai, .section--shu, .mar, .footer{ background:#fff !important; color:#000 !important; }
  .cap h2, .cap--claro h2, .ruta h3, .recibo h3{ color:#000 !important; }
  .cap__num, .kanji, .capitular::first-letter{ color:#666 !important; }
  .hero__bookwrap{ width:180px; animation:none; }
  .recibo{ background:#fff !important; color:#000 !important; box-shadow:none; border:1px solid #999; }
  .recibo__list span, .recibo__pie, .recibo__sub{ color:#333 !important; }
  a[href^="http"]::after{ content:" (" attr(href) ")"; font-size:9pt; color:#555; }
  .faq details{ break-inside:avoid; }
  .faq details p{ display:block !important; }
}
