/* claudiosiracusanophotographer.com — dirección «Secuencia».
   Apertura a pantalla completa con el título de la foto (Reza) · series montadas
   sobre paspartú negro en dípticos y trípticos (Joel Grimes) · fondo casi negro.
   Diseño de un solo tema, deliberadamente oscuro. Se genera con fuente/build.py
   (este archivo se edita a mano). */

:root {
  --ink: #121211;        /* fondo */
  --ink-2: #1a1918;      /* bandas y marcadores */
  --mat: #050505;        /* paspartú */
  --bone: #ebe7df;       /* texto principal */
  --ash: #a39c90;        /* texto secundario */
  --line: #2c2a27;       /* filetes */
  --f-display: "Bodoni Moda", "Didot", "Bodoni 72", Georgia, serif;
  --f-label: "Archivo Narrow", "Arial Narrow", "Helvetica Neue", Arial, sans-serif;
  --f-text: "Source Serif 4", Georgia, "Times New Roman", serif;
  --gutter: clamp(16px, 4vw, 56px);
  --max: 1320px;
  color-scheme: dark;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0; background: var(--ink); color: var(--bone);
  font: 300 18px/1.65 var(--f-text);
  -webkit-font-smoothing: antialiased;
}
img { display: block; max-width: 100%; }
a { color: inherit; }
a:focus-visible, button:focus-visible, summary:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 1px solid var(--bone); outline-offset: 4px;
}
h1, h2, h3, p, ol, ul, dl, dd, figure, blockquote { margin: 0; }
h1, h2, h3 { font-weight: 400; text-wrap: balance; }

.skip { position: absolute; left: -9999px; top: 0; }
.skip:focus { left: 16px; top: 16px; z-index: 50; background: var(--bone); color: var(--ink); padding: 8px 12px; }

/* ---------- etiquetas ---------- */
.kicker, .eyebrow, .open-where, .mat-meta, .bar, .foot, .btn, .link, label > span, .print-meta {
  font-family: var(--f-label); text-transform: uppercase; letter-spacing: .2em; font-weight: 400;
}
.kicker { font-size: 13px; color: var(--ash); }
.eyebrow { font-size: 12px; color: var(--ash); }

/* ---------- barra superior ---------- */
.bar {
  position: sticky; top: 0; z-index: 20;
  display: flex; align-items: center; justify-content: space-between; gap: 24px;
  padding: calc(18px + env(safe-area-inset-top, 0px)) max(var(--gutter), env(safe-area-inset-right, 0px)) 18px max(var(--gutter), env(safe-area-inset-left, 0px));
  font-size: 12px; background: var(--ink); border-bottom: 1px solid var(--line);
}
.has-open .bar {
  position: fixed; inset: 0 0 auto; background: linear-gradient(180deg, rgba(10,10,9,.72), rgba(10,10,9,0));
  border-bottom-color: transparent; transition: background .4s ease, border-color .4s ease;
}
.has-open .bar.solid { background: rgba(18,18,17,.96); border-bottom-color: var(--line); }
.mark { text-decoration: none; letter-spacing: .3em; font-size: 13px; white-space: nowrap; }
.bar ul { list-style: none; padding: 0; display: flex; gap: clamp(16px, 2vw, 32px); }
.bar nav a { text-decoration: none; opacity: .82; }
.bar nav a:hover, .bar nav a[aria-current="page"] { opacity: 1; border-bottom: 1px solid currentColor; padding-bottom: 2px; }
.nav-lang a { opacity: .6 !important; }
.menu { display: none; position: relative; }
.menu summary { list-style: none; cursor: pointer; padding: 6px 0; }
.menu summary::-webkit-details-marker { display: none; }
.menu summary::after { content: " +"; }
.menu[open] summary::after { content: " –"; }
.menu nav { position: absolute; right: 0; top: calc(100% + 14px); background: rgba(18,18,17,.98); border: 1px solid var(--line); padding: 20px 24px; min-width: 230px; }
.menu ul { flex-direction: column; gap: 14px; }
@media (max-width: 960px) { .nav-wide { display: none; } .menu { display: block; } }

/* ---------- fotos y marcadores ---------- */
.ph { position: relative; }
.ph-box { position: relative; overflow: hidden; background: var(--ink-2); }
.ph-box { aspect-ratio: var(--ar, 0.8); }
.ph-box img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ph-missing {
  position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: flex-end; gap: 6px;
  padding: clamp(10px, 2vw, 22px); color: var(--ash);
  background: radial-gradient(120% 80% at 70% 20%, #2a2826 0%, #161514 55%, #0d0d0c 100%);
  font: 400 11px/1.4 var(--f-label); letter-spacing: .08em;
}
.ph-missing span { text-transform: uppercase; letter-spacing: .2em; }
.ph-missing code { font: inherit; color: var(--bone); letter-spacing: .04em; }
.ph-missing em { font: italic 400 13px/1.35 var(--f-text); max-width: 34ch; letter-spacing: 0; }
.ph figcaption { margin-top: 10px; }
.ph figcaption i, .mat-meta i, .open-title, .word, .head-title, blockquote p, .print-text h2 {
  font-family: var(--f-display); font-style: italic; letter-spacing: -.005em;
}

/* ---------- apertura a pantalla completa ---------- */
.open { position: relative; min-height: max(560px, 100svh); display: flex; align-items: flex-end; isolation: isolate; }
.open-photo { position: absolute; inset: 0; z-index: -1; }
.open-photo .ph-box { position: absolute; inset: 0; aspect-ratio: auto; }
.open-photo .ph-missing { padding: 110px var(--gutter) 40%; justify-content: flex-start; }
.open::after {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: linear-gradient(180deg, rgba(18,18,17,0) 42%, rgba(18,18,17,.55) 72%, var(--ink) 100%);
}
.open-text {
  width: 100%; max-width: var(--max); margin: 0 auto;
  padding: 0 max(var(--gutter), env(safe-area-inset-right, 0px)) clamp(28px, 5vw, 56px) max(var(--gutter), env(safe-area-inset-left, 0px));
  display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 32px;
}
.open-title { font-size: clamp(46px, 8vw, 128px); line-height: .94; margin-top: 14px; }
.open-where { font-size: 12px; color: var(--ash); margin-top: 18px; }
.strip { display: grid; grid-template-columns: repeat(3, clamp(64px, 7vw, 104px)); gap: 6px; background: var(--mat); padding: 6px; }
@media (max-width: 720px) {
  .open-text { grid-template-columns: minmax(0, 1fr); }
  .strip { grid-template-columns: repeat(3, 1fr); max-width: 300px; }
}

/* ---------- secciones ---------- */
main > section:not(.open), .head {
  width: 100%; max-width: var(--max); margin: 0 auto;
  padding-left: max(var(--gutter), env(safe-area-inset-left, 0px));
  padding-right: max(var(--gutter), env(safe-area-inset-right, 0px));
}
.h-section { font: 400 13px/1.3 var(--f-label); letter-spacing: .22em; text-transform: uppercase; color: var(--ash); margin-bottom: 22px; }
.prose { display: grid; gap: 1em; max-width: 62ch; }
.prose strong { font-weight: 400; color: var(--bone); border-bottom: 1px solid var(--line); }

.intro { padding-block: clamp(64px, 9vw, 128px) clamp(32px, 5vw, 64px); display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 32px; }
.intro .h-section { margin: 6px 0 0; }
.intro-lead .prose p { font: italic 400 clamp(22px, 2.4vw, 32px)/1.35 var(--f-display); max-width: 30ch; }
.intro:not(:has(.h-section)) { padding-block: clamp(32px, 4vw, 56px); }
.intro:not(:has(.h-section)) .prose { grid-column: 2; }
@media (max-width: 760px) { .intro { grid-template-columns: minmax(0, 1fr); } .intro:not(:has(.h-section)) .prose { grid-column: 1; } }

/* ---------- paspartú: dípticos y trípticos ---------- */
.mat { min-width: 0; }
.mat-in { background: var(--mat); padding: clamp(8px, 1.4vw, 18px); display: grid; gap: clamp(6px, 1vw, 14px); outline: 1px solid var(--line); }
/* las columnas se reparten según la proporción de cada foto (estilo en línea): misma altura */
.mat-in { align-items: start; }
.mat-meta { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; margin-top: 14px; font-size: 11px; color: var(--ash); }
.mat-meta i { font-size: clamp(16px, 1.5vw, 20px); text-transform: none; color: var(--bone); text-align: center; flex: 1; letter-spacing: 0; }
.mat-meta span { min-width: 4em; }
.mat-meta span:last-child { text-align: right; }

.seq { padding-block: clamp(24px, 4vw, 48px); }
.seq .mat { max-width: 1040px; margin: 0 auto; }

/* ---------- índice de series (portada) ---------- */
.chapter {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.7fr); gap: clamp(28px, 5vw, 80px);
  align-items: center; padding-block: clamp(48px, 7vw, 96px); border-top: 1px solid var(--line);
}
.chapter:nth-of-type(even) .chapter-text { order: 2; }
.chapter-text { display: grid; gap: 18px; align-content: center; }
.chapter-text > p:not(.eyebrow):not(.link) { color: #cfc9be; max-width: 42ch; }
.word { font-size: clamp(56px, 7.6vw, 112px); line-height: .92; }
.word a { text-decoration: none; }
.word a:hover { opacity: .8; }
.link { font-size: 12px; }
.link a { text-decoration: none; border-bottom: 1px solid var(--line); padding-bottom: 4px; transition: border-color .3s ease; }
.link a:hover { border-color: var(--bone); }
@media (max-width: 860px) {
  .chapter { grid-template-columns: minmax(0, 1fr); }
  .chapter:nth-of-type(even) .chapter-text { order: 0; }
}

/* ---------- proceso, preguntas, cita ---------- */
.steps, .qa, .quote { padding-block: clamp(48px, 7vw, 96px); border-top: 1px solid var(--line); }
.steps ol { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 32px; counter-reset: s; }
.steps li { counter-increment: s; display: grid; gap: 10px; align-content: start; }
.steps li::before { content: counter(s, upper-roman); font: italic 400 40px/1 var(--f-display); color: var(--ash); }
.steps h3 { font: 500 15px/1.3 var(--f-label); letter-spacing: .16em; text-transform: uppercase; }
.steps p { color: #cfc9be; max-width: 40ch; }
.qa dl { display: grid; gap: 28px; max-width: 760px; }
.qa dt { font: italic 400 clamp(22px, 2.4vw, 30px)/1.25 var(--f-display); }
.qa dd { color: #cfc9be; margin-top: 8px; max-width: 56ch; }
.quote { text-align: center; display: grid; gap: 20px; justify-items: center; }
.quote blockquote p { font-size: clamp(26px, 3.4vw, 46px); line-height: 1.2; max-width: 26ch; }

/* ---------- el fotógrafo ---------- */
.about { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 80px); align-items: center; padding-block: clamp(56px, 8vw, 112px); border-top: 1px solid var(--line); }
.about-text { display: grid; gap: 28px; }
.about blockquote p { font-size: clamp(26px, 3vw, 40px); line-height: 1.15; }
@media (max-width: 860px) { .about { grid-template-columns: minmax(0, 1fr); } }

/* ---------- servicios ---------- */
.services { padding-block: clamp(56px, 8vw, 104px); border-top: 1px solid var(--line); }
.services ul { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); gap: 40px 32px; }
.services li { display: grid; gap: 12px; align-content: start; grid-template-rows: auto 1fr auto; }
.services h3 { font: italic 400 clamp(26px, 2.4vw, 32px)/1.1 var(--f-display); }
.services h3 a { text-decoration: none; }
.services li > p:not(.link) { color: #cfc9be; font-size: 17px; }
.about-solo { grid-template-columns: minmax(0, 1fr); }
.about-solo .about-text { max-width: 760px; }

/* ---------- cierre y botones ---------- */
.close { padding-block: clamp(56px, 8vw, 112px); border-top: 1px solid var(--line); display: grid; gap: 28px; justify-items: start; }
.close-text { font: italic 400 clamp(24px, 3vw, 38px)/1.25 var(--f-display); max-width: 30ch; }
.btn-row { display: flex; flex-wrap: wrap; gap: 16px; }
.btn {
  display: inline-block; font-size: 12px; text-decoration: none; color: var(--ink); background: var(--bone);
  border: 1px solid var(--bone); padding: 16px 26px; cursor: pointer; transition: background .3s ease, color .3s ease;
}
.btn:hover { background: transparent; color: var(--bone); }

/* ---------- encabezado sin foto ---------- */
.head { padding-block: clamp(72px, 11vw, 160px) clamp(32px, 5vw, 56px); display: grid; gap: 18px; }
.head-title { font-size: clamp(56px, 9vw, 136px); line-height: .92; }
.head-text { max-width: 58ch; color: #cfc9be; }
.head-text a { color: var(--bone); }

/* ---------- obras ---------- */
.store { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: clamp(40px, 5vw, 64px) clamp(20px, 3vw, 40px); padding-block: 16px clamp(64px, 9vw, 120px); }
.print { display: grid; gap: 16px; align-content: start; }
.print-text { display: grid; gap: 8px; }
.print-text h2 { font-size: clamp(24px, 2.2vw, 30px); line-height: 1.1; }
.print-text h2 span { font: 400 12px/1 var(--f-label); letter-spacing: .2em; color: var(--ash); font-style: normal; vertical-align: middle; margin-right: 6px; }
.print-meta { font-size: 11px; color: var(--ash); }

/* ---------- formulario ---------- */
.form-wrap { padding-block: 8px clamp(64px, 9vw, 120px); }
.contact { max-width: 880px; display: grid; gap: 36px; }
.fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 32px; }
.fields .wide { grid-column: 1 / -1; }
.fields label { display: grid; gap: 10px; min-width: 0; }
label > span { font-size: 11px; color: var(--ash); }
input, select, textarea {
  font: 400 18px/1.4 var(--f-text); color: var(--bone); background: transparent;
  border: 0; border-bottom: 1px solid #4a4743; padding: 8px 0; border-radius: 0; width: 100%;
}
select { appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--ash) 50%), linear-gradient(135deg, var(--ash) 50%, transparent 50%); background-position: right 6px center, right 0 center; background-size: 6px 6px; background-repeat: no-repeat; }
select option { background: var(--ink); }
textarea { resize: vertical; border: 1px solid #4a4743; padding: 12px; }
input::placeholder, textarea::placeholder { color: #6f6a62; }
input:focus, select:focus, textarea:focus { border-color: var(--bone); outline: none; }
.hp { position: absolute; left: -9999px; }
@media (max-width: 640px) { .fields { grid-template-columns: minmax(0, 1fr); } }

/* ---------- pie ---------- */
.foot { border-top: 1px solid var(--line); font-size: 11px; color: var(--ash); padding: 48px max(var(--gutter), env(safe-area-inset-right, 0px)) calc(32px + env(safe-area-inset-bottom, 0px)) max(var(--gutter), env(safe-area-inset-left, 0px)); }
.foot-in { max-width: var(--max); margin: 0 auto; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 32px; }
.foot-in > div { display: grid; gap: 10px; align-content: start; }
.foot ul { list-style: none; padding: 0; display: grid; gap: 10px; }
.foot a { text-decoration: none; }
.foot a:hover { color: var(--bone); }
.foot-mark { color: var(--bone); letter-spacing: .3em; font-size: 13px; }
.foot p { overflow-wrap: anywhere; }
.rights { max-width: var(--max); margin: 40px auto 0; text-transform: none; letter-spacing: .04em; }

@media (prefers-reduced-motion: reduce) { * { transition: none !important; } }
