/* Inner-page layouts from the supplied 24 October editable prototype.
   Public routes and source imagery are rendered by Django; no hash router. */
.editorial-page {
  --editorial-primary:var(--brand-primary,#70434a);
  --editorial-ink:var(--ink,#342e29);
  --editorial-muted:var(--muted,#756052);
  --editorial-line:var(--line,#d6cbbf);
  padding-bottom:2.5rem;
}
.editorial-page h1,.editorial-page h2,.editorial-page h3 {
  font-family:var(--font-display,'Fira Sans Extra Condensed');
  font-weight:800; font-style:normal; letter-spacing:-.025em;
  overflow-wrap:anywhere;
}
.editorial-page h1 { font-size:clamp(3.625rem,7.5vw,7rem); line-height:.96; margin:0; max-width:62.5rem; }
.editorial-page h2 { font-size:clamp(2.625rem,4.2vw,4.5rem); line-height:1.02; margin-bottom:1.25rem; }
.editorial-page h3 { font-size:clamp(1.75rem,2.7vw,2.5rem); line-height:1.12; }
.editorial-page p { max-width:65ch; }
.editorial-page .kicker { display:flex; align-items:center; gap:.75rem; color:var(--editorial-primary); font:600 .75rem/1.6 var(--font-body,'Golos Text'); letter-spacing:.08em; text-transform:uppercase; margin-bottom:1.25rem; }
.editorial-page .kicker > .ui-icon { width:1.75rem; height:1.75rem; }
.editorial-heading { padding-top:3.4375rem; padding-bottom:2.5rem; }
.editorial-page .intro { max-width:40.625rem; font-size:1.1875rem; line-height:1.55; margin-top:1.5625rem; margin-bottom:0; }
.editorial-block { padding-block:2.1875rem 4.0625rem; }
.editorial-block + .editorial-block { border-top:1px solid var(--editorial-line); }
.editorial-grid { display:grid; gap:1.75rem; }
.editorial-grid.two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.editorial-grid.three { grid-template-columns:repeat(3,minmax(0,1fr)); }
.editorial-grid > *,.editorial-page header,.editorial-page article,.editorial-page aside { min-width:0; }
.editorial-panel { background:#e8dfd3; padding:2.1875rem; border-radius:1.5rem; }
.editorial-panel h2,.editorial-panel h3 { margin-bottom:1.25rem; }
.editorial-card { border:1px solid var(--editorial-line); padding:1.5625rem; border-radius:.25rem; min-width:0; }
.editorial-page .caption,.editorial-page figcaption,.editorial-page .archive-note { font-size:.8125rem; color:var(--editorial-muted); line-height:1.6; overflow-wrap:anywhere; }
.editorial-page .archive-note { margin-top:2rem; }
.editorial-photo { min-width:0; }
.editorial-photo img { display:block; width:100%; height:auto; }
.editorial-photo a { display:block; }
.editorial-photo figcaption { margin-top:.75rem; }
.editorial-page .text-link,.editorial-page .button { gap:.75rem; }
.editorial-page .ui-icon { color:var(--editorial-primary); flex-shrink:0; }
.editorial-page .button .ui-icon { color:currentColor; }
.editorial-actions { display:flex; align-items:center; flex-wrap:wrap; gap:1.25rem; }
.editorial-breadcrumb { display:flex; flex-wrap:wrap; gap:.75rem; padding-top:1.5625rem; font-size:.875rem; }
.editorial-section-title { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:1.5rem; margin-bottom:2rem; }
.editorial-section-title h2 { margin:0; }
.editorial-page .topic-links { display:flex; flex-wrap:wrap; gap:1rem 1.5rem; }
.editorial-page .topic-links a { display:inline-flex; align-items:center; gap:.5rem; font-size:.9375rem; min-width:0; }
.retro-topic-strip { display:flex; flex-wrap:wrap; gap:1.125rem; margin-top:1.75rem; }
.retro-topic-strip .ui-icon { width:3rem; height:3rem; }

/* S01–S06: staggered room index, one general view, one detail, contextual next step. */
.room-overview { align-items:start; }
.room-overview-card { border-top:2px solid var(--editorial-ink); padding-block:1.5625rem; }
.room-overview-card:nth-child(2) { margin-top:5rem; }
.room-overview-card:nth-child(3) { margin-top:-3.75rem; }
.room-overview-card > a { display:block; margin-bottom:1.375rem; }
.room-overview-card > a img { width:100%; height:16.25rem; object-fit:cover; }
.room-overview-card h2 { font-size:2.875rem; }
.room-overview-card h2 a { text-decoration:none; }
.room-overview-card p:not(.kicker) { font-size:.9375rem; max-width:28.125rem; }
.room-wide-photo img { width:100%; max-height:38rem; object-fit:cover; }
.room-story { margin-top:4.375rem; gap:4.0625rem; align-items:center; }
.room-story p:not(.kicker) { margin-top:1.5625rem; }
.room-detail-photo img { max-height:32rem; object-fit:contain; }
.room-detail-dvd .room-detail-photo img,.room-detail-kitchen .room-detail-photo img,.room-detail-skvorechnik .room-detail-photo img { width:auto; max-width:100%; margin-inline:auto; }
.other-rooms .editorial-card img { height:16rem; width:100%; object-fit:cover; margin-bottom:1.375rem; }
.other-rooms .kicker { font-size:.6875rem; }
.other-rooms h3 { margin:1rem 0; }
.other-rooms h3 a { text-decoration:none; }

/* C01–C06: editorial alternating stories, separate from the room catalogue. */
.club-editorial-item { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); align-items:center; gap:4.0625rem; border-top:1px solid var(--editorial-line); padding-block:2.8125rem; }
.club-editorial-item.reverse > div { order:2; }
.club-editorial-item.reverse figure { order:1; }
.club-editorial-item h2 a { text-decoration:none; }
.club-editorial-item p:not(.kicker) { font-size:1rem; margin-block:1.5625rem; max-width:28.125rem; }
.club-editorial-item figure img { height:25rem; object-fit:cover; }
.club-editorial-item:nth-child(even) img { border-radius:6.25rem 0 0 0; }
.club-editorial-dance figure img { object-position:50% 0; }
.club-editorial-games figure img { object-position:50% 42%; }
.club-editorial-cinema figure img { object-fit:contain; width:auto; max-width:100%; margin-inline:auto; }
.community-wide-photo img { max-height:38rem; object-fit:contain; width:auto; max-width:100%; margin-inline:auto; }
.community-events-list { margin-top:2.5rem; }
.editorial-page .plain-list { padding-left:1.1rem; }
.editorial-page .plain-list li { margin-bottom:.75rem; }

/* P01: large numbered stages rather than a second copy of home steps. */
.first-visit-step { display:grid; grid-template-columns:11.25rem minmax(0,1fr); gap:3.125rem; border-top:1px solid var(--editorial-line); padding-block:2.8125rem; }
.step-num { color:var(--editorial-primary); font:800 7.8125rem/1 var(--font-display,'Fira Sans Extra Condensed'); }
.first-visit-step h2 { font-size:3.75rem; }
.first-visit-step p:not(.kicker) { max-width:40.625rem; margin-block:1.375rem; }
.visit-questions { align-items:center; }

/* P02: compare the two time tariffs; the day rate is an independent panel. */
.tariff-comparison { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.25rem; }
.tariff-item h2 { font-size:2.8125rem; margin:1.5rem 0 .75rem; line-height:1; }
.tariff-item h2 > span { font-size:5.625rem; }
.tariff-item hr { border:0; border-top:1px solid currentColor; opacity:.3; margin-block:1.875rem; }
.tariff-item p:not(.kicker) { font-size:1rem; }
.day-rate { display:grid; grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr); align-items:center; gap:2.5rem; margin-top:1.5625rem; }
.day-rate h2 { font-size:5.625rem; }
.calculator-layout { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.75rem; }
.cost-calculator { min-width:0; }
.cost-calculator h3 { font-size:2rem; }
.calculator-controls { display:grid; grid-template-columns:1fr; gap:1.25rem; }
.calculator-controls > label { display:flex; flex-direction:column; gap:.5rem; font-size:.875rem; font-weight:600; }
.calculator-controls input[type=number] { min-width:0; width:100%; background:#f4eee4; color:#342e29; border:1px solid #756052; padding:.6rem .75rem; min-height:3rem; border-radius:.25rem; }
.calculator-controls fieldset { min-width:0; margin:0; padding:0; border:0; }
.calculator-controls legend { font-size:.875rem; font-weight:600; padding:0; margin-bottom:.5rem; }
.calculator-controls fieldset label { display:flex; align-items:center; gap:.5rem; font-size:.875rem; min-height:2rem; }
.calculator-controls input[type=radio] { width:1.25rem; height:1.25rem; accent-color:var(--editorial-primary); flex-shrink:0; }
.cost-calculator .caption { margin-top:1rem; margin-bottom:1rem; }
.cost-result { display:block; font-weight:700; border-top:1px solid var(--editorial-muted); padding-top:1rem; font-size:1.375rem; line-height:1.4; }

/* P06–P07: organizer brief and documentary chronology. */
.organizer-layout { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:4.0625rem; align-items:start; }
.number-list { list-style:none; padding:0; margin-block:0 2rem; counter-reset:brief; }
.number-list li { counter-increment:brief; display:grid; grid-template-columns:2.1875rem minmax(0,1fr); gap:0 .9375rem; padding-block:1.25rem; border-bottom:1px solid var(--editorial-line); }
.number-list li::before { content:'0' counter(brief); color:var(--editorial-primary); font-size:.8125rem; grid-row:span 2; }
.number-list li p { font-size:.875rem; margin:0; }
.history-timeline { margin-top:3.125rem; }
.history-timeline article { display:grid; grid-template-columns:9.375rem minmax(0,1fr); gap:1.875rem; padding-block:1.875rem; border-top:1px solid var(--editorial-line); }
.history-year { color:var(--editorial-primary); font:800 4.375rem/1 var(--font-display,'Fira Sans Extra Condensed'); }
.history-timeline .editorial-photo { margin-bottom:2rem; }

/* P08–P09: the source's ordered, staggered thirteen-frame archive. */
.gallery-editorial { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.875rem; align-items:start; }
.gallery-shot { min-width:0; }
.gallery-shot > a { display:block; }
.gallery-shot img { width:100%; height:300px; object-fit:cover; }
.gallery-shot:nth-child(3n + 2) { padding-top:70px; }
.gallery-shot:nth-child(4n + 1) img { border-radius:100px 100px 0 0; }
.gallery-shot figcaption { margin-top:.75rem; }
.gallery-shot-dance img { object-position:50% 0; }
.gallery-shot-games img { object-position:50% 42%; }

/* P10: a large address number on sage, facts alongside, no invented entrance image. */
.contact-layout { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:4.375rem; }
.address-card { background:var(--surface-community,#d7dcd0); border-radius:1.875rem; padding:2.5rem; }
.address-number { color:var(--editorial-primary); font:800 13.75rem/.9 var(--font-display,'Fira Sans Extra Condensed'); margin:0; }
.address-number span { display:block; font-size:3.4375rem; }
.address-card .intro { margin-block:1.875rem; }
.address-card .caption { margin-top:1.5rem; }
.contact-facts h2 { font-size:3rem; margin-bottom:1.5625rem; }
.contact-facts h2:not(:first-child) { margin-top:2.8125rem; }
.contact-phone { display:flex; flex-wrap:wrap; align-items:center; gap:.75rem; font-size:1.5625rem; letter-spacing:-.04em; margin-block:1.5625rem; font-weight:600; text-decoration:none; }
.contact-hours { margin:0 0 2rem; }
.contact-hours > div { display:grid; grid-template-columns:1fr 1.2fr; gap:1rem; padding-block:.75rem; border-bottom:1px solid var(--editorial-line); }
.contact-hours dd { margin:0; }

/* P11–P12: native FAQ and neutral document reading. */
.faq-group { margin-bottom:2.8125rem; }
.faq-group h2 { font-size:2.625rem; margin-bottom:1.5625rem; }
.faq-group h2 > .ui-icon { width:2.1875rem; height:2.1875rem; margin-right:.9375rem; }
.faq-group details { padding-block:1.25rem; border-bottom:1px solid var(--editorial-line); }
.faq-group summary { font-size:1.25rem; font-weight:600; cursor:pointer; }
.faq-group details p { margin-block:1.25rem 0; max-width:50rem; }
.legal-page .editorial-heading h1 { font-size:clamp(2.75rem,5vw,5rem); }
.legal-reading { max-width:min(100% - 2 * var(--gutter),56.25rem); }
.legal-reading h2 { font-size:2.5rem; margin-block:2.1875rem 1.25rem; }
.legal-reading p { margin-block:1.25rem; }
.legal-notice { padding:1.5rem; border-left:3px solid var(--editorial-primary); background:#e8dfd3; }
.legal-notice p { margin:.75rem 0 0; }

@media(max-width:1000px) {
  .editorial-grid.three { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .club-editorial-item,.room-story,.organizer-layout { gap:2.1875rem; }
  .club-editorial-item h2 { font-size:3rem; }
  .club-editorial-item figure img { height:350px; }
}
@media(max-width:800px) {
  .editorial-heading { padding-block:2.1875rem 1.5625rem; }
  .editorial-page .intro { font-size:1.0625rem; }
  .room-story,.contact-layout { gap:2.1875rem; }
  .first-visit-step { grid-template-columns:5.3125rem minmax(0,1fr); gap:1.5625rem; }
  .step-num { font-size:5.9375rem; }
  .gallery-editorial { grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.25rem; }
  .gallery-shot:nth-child(3n + 2) { padding-top:0; }
  .gallery-shot:nth-child(even) { padding-top:50px; }
  .gallery-shot img { height:260px; }
  .address-card { padding:1.5625rem; }
  .address-number { font-size:10rem; }
  .address-number span { font-size:2.625rem; }
  .contact-phone { font-size:1.375rem; }
}
@media(max-width:700px) {
  .editorial-page h1 { font-size:clamp(3.25rem,12vw,4.0625rem); }
  .editorial-block { padding-block:1.5625rem 2.8125rem; }
  .editorial-grid.two,.editorial-grid.three,.organizer-layout,.contact-layout,.day-rate,.calculator-layout,.club-editorial-item { grid-template-columns:minmax(0,1fr); }
  .editorial-grid { gap:1.875rem; }
  .editorial-panel { padding:1.5625rem; border-radius:1.125rem; }
  .editorial-page h2 { font-size:clamp(2rem,7.5vw,3rem); }
  .room-overview-card:nth-child(n) { margin-top:0; }
  .room-overview-card h2 { font-size:2.625rem; }
  .room-wide-photo img { max-height:none; }
  .room-story { margin-top:2.5rem; }
  .room-detail-photo img { max-height:none; }
  .other-rooms .editorial-card img { height:auto; }
  .club-editorial-item { gap:1.5625rem; padding-block:1.875rem; }
  .club-editorial-item.reverse > div,.club-editorial-item.reverse figure { order:initial; }
  .club-editorial-item figure img { height:350px; }
  .club-editorial-dance figure img,.club-editorial-games figure img { height:auto; max-height:none; }
  .community-wide-photo img { max-height:none; }
  .first-visit-step { grid-template-columns:3.125rem minmax(0,1fr); gap:1.25rem; padding-block:1.875rem; }
  .step-num { font-size:4.0625rem; }
  .first-visit-step h2 { font-size:2.6875rem; }
  .first-visit-step p:not(.kicker) { font-size:.9375rem; }
  .tariff-comparison { grid-template-columns:1fr; }
  .tariff-item h2 > span,.day-rate h2 { font-size:5rem; }
  .history-timeline { margin-top:1rem; }
  .history-timeline article { grid-template-columns:1fr; gap:.625rem; }
  .history-year { font-size:3.75rem; }
  .gallery-editorial { gap:1rem; }
  .gallery-shot img { height:190px; }
  .gallery-shot figcaption { font-size:.75rem; }
  .contact-facts h2 { font-size:2.6875rem; }
  .address-number { font-size:11.875rem; }
  .address-card .button { font-size:.8125rem; padding:.8125rem 1.0625rem; }
  .legal-reading h2 { font-size:2rem; }
}
@media(max-width:380px) {
  .gallery-editorial { grid-template-columns:minmax(0,1fr); gap:1.75rem; }
  .gallery-shot:nth-child(n) { padding-top:0; }
  .gallery-shot img { height:auto; }
  .first-visit-step { grid-template-columns:minmax(0,1fr); gap:.75rem; }
  .first-visit-step .step-num { font-size:3.5rem; }
  .contact-hours > div { grid-template-columns:1fr; gap:.25rem; }
}
