/* Mobile home R4: owner-reference composition. Desktop and other routes are untouched. */
.mobile-home-r4 { display: none; }

@media (max-width: 900px) {
  body.mobile-home-page {
    --r4-bg: #07080a;
    --r4-panel: #0d0d0f;
    --r4-line: #34383d;
    --r4-muted: #a9adb0;
    --r4-white: #f3f2ef;
    background: var(--r4-bg);
    color: var(--r4-white);
  }

  body.mobile-home-page .site-header {
    position: sticky !important;
    top: 0;
    z-index: 200;
    width: 100%;
    height: 52px;
    min-height: 52px !important;
    margin: 0;
    padding: 0 14px 0 15px !important;
    border: 0 !important;
    border-bottom: 1px solid #24282c !important;
    border-radius: 0 !important;
    background: rgba(5, 6, 7, .98) !important;
    backdrop-filter: none;
  }

  body.mobile-home-page .site-header .brand {
    display: inline-flex;
    gap: 4px;
    min-height: 44px;
    color: var(--r4-white);
    font-size: 15px !important;
    font-weight: 600 !important;
    letter-spacing: -.02em;
  }
  body.mobile-home-page .site-header .brand::before { content: none !important; }
  body.mobile-home-page .site-header .brand > span {
    display: inline !important;
    color: inherit;
    font-size: inherit !important;
    font-weight: inherit !important;
  }
  body.mobile-home-page .menu-toggle {
    display: grid !important;
    place-items: center;
    flex: 0 0 40px;
    width: 40px !important;
    height: 34px !important;
    padding: 0;
    border: 1px solid #2c3034 !important;
    border-radius: 5px !important;
    background: transparent !important;
  }
  body.mobile-home-page .menu-icon,
  body.mobile-home-page .menu-icon::before,
  body.mobile-home-page .menu-icon::after { width: 18px; height: 1px; }
  body.mobile-home-page .site-nav { inset: 52px 0 auto !important; }

  body.mobile-home-page main {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    overflow: visible !important;
  }
  body.mobile-home-page main > :not(.mobile-home-r4) { display: none !important; }
  body.mobile-home-page > .site-footer,
  body.mobile-home-page > .fixed-actions { display: none !important; }

  .mobile-home-r4 {
    display: block;
    width: 100%;
    background: var(--r4-bg);
    color: var(--r4-white);
    font-family: Arial, sans-serif;
    font-size: 12px;
    line-height: 1.35;
  }
  .mobile-home-r4 *, .mobile-home-r4 *::before, .mobile-home-r4 *::after { box-sizing: border-box; }
  .mobile-home-r4 h1, .mobile-home-r4 h2, .mobile-home-r4 h3, .mobile-home-r4 p { margin: 0; }
  .mobile-home-r4 ul, .mobile-home-r4 ol { margin: 0; padding: 0; list-style: none; }
  .mobile-home-r4 a { color: inherit; text-decoration: none; }
  .mobile-home-r4 button, .mobile-home-r4 input, .mobile-home-r4 select { font: inherit; }
  .mobile-home-r4 .sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }
  .mobile-home-r4__screen { position: relative; width: 100%; overflow: hidden; background: var(--r4-bg); }
  .mobile-home-r4__screen--01 { height: 792px; }
  .mobile-home-r4__screen--02,
  .mobile-home-r4__screen--03,
  .mobile-home-r4__screen--04 { height: 970px; }

  /* Screen 01 */
  .mobile-home-r4__portrait { position: absolute; inset: 0 0 auto; width: 100%; height: 320px; margin: 0; overflow: hidden; }
  .mobile-home-r4__portrait::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, #07080a 0, rgba(7,8,10,.12) 35%, transparent 64%); }
  .mobile-home-r4__portrait img { display: block; width: 100%; height: 320px; object-fit: cover; object-position: center; }
  .mobile-home-r4__hero-copy { position: absolute; inset: 320px 0 0; }
  .mobile-home-r4__eyebrow { position: absolute; top: 21px; left: 43px; color: #b9bdc0; font-size: 10px; letter-spacing: .015em; text-transform: uppercase; }
  .mobile-home-r4__eyebrow::before { content: ""; position: absolute; top: 7px; left: -28px; width: 21px; height: 1px; background: #b9bdc0; }
  .mobile-home-r4__h1 { position: absolute; top: 46px; left: 15px; color: #f5f4f1; font-size: 48px; font-weight: 700; line-height: .86; letter-spacing: -.055em; }
  .mobile-home-r4__h1 span { display: block; }
  .mobile-home-r4__lead { position: absolute; top: 146px; left: 15px; width: 272px; color: #c9ccce; font-size: 16px; line-height: 1.42; }
  .mobile-home-r4__hero-actions { position: absolute; top: 222px; left: 15px; display: grid; width: 360px; gap: 11px; }
  .mobile-home-r4__button { display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; height: 44px; border: 1px solid #60656a; border-radius: 5px; font-size: 14px; font-weight: 600; }
  .mobile-home-r4__button--light { border-color: #efeeeb; background: #efeeeb; color: #090a0b; }
  .mobile-home-r4__button--ghost { background: transparent; color: #f1f0ed; }
  .mobile-home-r4__button > span { font-size: 20px; line-height: 1; }
  .mobile-home-r4__pillars { position: absolute; top: 341px; left: 15px; display: grid; grid-auto-flow: column; grid-auto-columns: 159px; width: 375px; height: 132px; overflow: hidden; border: 1px solid var(--r4-line); border-radius: 5px 0 0 0; background: var(--r4-panel); }
  .mobile-home-r4__pillars li { height: 132px; padding: 15px 11px; border-right: 1px solid var(--r4-line); }
  .mobile-home-r4__pillars li > span { display: block; height: 30px; font-size: 28px; line-height: 1; }
  .mobile-home-r4__pillars strong { display: block; margin: 10px 0 4px; font-size: 12px; font-weight: 500; line-height: 1.1; }
  .mobile-home-r4__pillars small { color: #b3b7b9; font-size: 9px; line-height: 1.3; }

  /* Screen 02 */
  .mobile-home-r4__language { position: absolute; top: 63px; left: 20px; width: 350px; height: 96px; padding: 12px 10px; border: 1px solid var(--r4-line); border-radius: 5px; background: var(--r4-panel); color: #d3d5d6; font-size: 11px; line-height: 1.48; }
  .mobile-home-r4__process { position: absolute; inset: 174px 20px auto; }
  .mobile-home-r4__process > h2 { font-size: 16px; font-weight: 500; letter-spacing: 0; }
  .mobile-home-r4__process ol { position: absolute; top: 20px; left: 39px; width: 311px; }
  .mobile-home-r4__process li { position: relative; display: grid; grid-template-columns: 42px 1fr 18px; align-items: start; width: 311px; height: 58px; margin-bottom: 5px; padding: 8px 9px; border: 1px solid var(--r4-line); border-radius: 5px; background: var(--r4-panel); }
  .mobile-home-r4__process li.is-open { height: 132px; }
  .mobile-home-r4__process li > b { position: absolute; top: 7px; left: -40px; display: grid; place-items: center; width: 28px; height: 28px; border: 1px solid #4b5054; border-radius: 50%; background: #0a0b0d; font-size: 10px; font-weight: 400; }
  .mobile-home-r4__process li:not(:last-child)::before { content: ""; position: absolute; top: 34px; left: -27px; width: 1px; height: calc(100% + 6px); background: #34383d; }
  .mobile-home-r4__step-icon { display: grid; place-items: center; width: 34px; height: 34px; border: 1px solid #4a5054; border-radius: 7px; font-size: 17px; }
  .mobile-home-r4__process h3 { margin: 1px 0 2px; font-size: 12px; font-weight: 600; }
  .mobile-home-r4__process p { color: #aeb2b4; font-size: 9px; line-height: 1.28; }
  .mobile-home-r4__process .is-open p + p { margin-top: 8px; color: #c0c3c4; }
  .mobile-home-r4__chevron { padding-top: 7px; text-align: right; }
  .mobile-home-r4__formats { position: absolute; top: 530px; left: 20px; width: 370px; }
  .mobile-home-r4__formats > h2 { margin-bottom: 8px; font-size: 15px; font-weight: 500; letter-spacing: 0; }
  .mobile-home-r4__format-rail { display: grid; grid-auto-flow: column; grid-auto-columns: 306px; gap: 7px; width: 370px; overflow-x: auto; scrollbar-width: none; }
  .mobile-home-r4__format-rail::-webkit-scrollbar { display: none; }
  .mobile-home-r4__format-rail a { position: relative; isolation: isolate; height: 143px; overflow: hidden; padding: 14px 16px; border: 1px solid var(--r4-line); border-radius: 5px; background: #0b0c0e; }
  .mobile-home-r4__format-rail a::before { content: ""; position: absolute; z-index: -2; inset: 0; background: center/cover no-repeat; }
  .mobile-home-r4__format-rail a::after { content: ""; position: absolute; z-index: -1; inset: 0; background: linear-gradient(0deg, rgba(5,6,7,.9), rgba(5,6,7,.03) 75%); }
  .mobile-home-r4__format-rail a:nth-child(1)::before { background-image: url('/gagarin/assets/desktop-wedding-hero-reference.png'); background-position: 20% center; }
  .mobile-home-r4__format-rail a:nth-child(2)::before { background-image: url('/gagarin/assets/desktop-blue-suit-portrait.png'); background-position: center 24%; }
  .mobile-home-r4__format-rail a:nth-child(3)::before { background-image: url('/gagarin/assets/desktop-wedding-stage-reference.png'); }
  .mobile-home-r4__format-rail a > span { font-size: 10px; font-weight: 700; letter-spacing: .12em; }
  .mobile-home-r4__format-rail h3 { margin: 46px 0 3px; font-size: 17px; font-weight: 500; }
  .mobile-home-r4__format-rail p { color: #d0d2d3; font-size: 10px; line-height: 1.2; }
  .mobile-home-r4__showreel { position: absolute; top: 713px; left: 20px; width: 350px; }
  .mobile-home-r4__showreel h2 { margin-bottom: 7px; font-size: 15px; font-weight: 500; }
  .mobile-home-r4__showreel-frame { position: relative; display: grid; place-items: center; width: 350px; height: 197px; overflow: hidden; border: 1px solid var(--r4-line); border-radius: 5px; background: linear-gradient(90deg, rgba(4,9,16,.78), rgba(10,20,39,.35)), url('/gagarin/assets/desktop-wedding-stage-reference.png') center/cover no-repeat; filter: saturate(.72) hue-rotate(158deg); }
  .mobile-home-r4__showreel-frame > span { display: grid; place-items: center; width: 49px; height: 49px; padding-left: 3px; border: 2px solid #f2f1ee; border-radius: 50%; color: #fff; font-size: 25px; filter: hue-rotate(-158deg); }

  /* Screen 03 */
  .mobile-home-r4__reason-cards { position: absolute; top: 63px; left: 20px; display: grid; gap: 5px; width: 350px; }
  .mobile-home-r4__reason-cards article { display: grid; grid-template-columns: 44px 1fr 14px; width: 350px; min-height: 66px; padding: 10px 9px; border: 1px solid var(--r4-line); border-radius: 5px; background: var(--r4-panel); }
  .mobile-home-r4__reason-cards article:nth-child(2) { min-height: 79px; }
  .mobile-home-r4__reason-cards article:nth-child(3) { min-height: 85px; }
  .mobile-home-r4__reason-cards article > span { display: grid; place-items: center; align-self: start; width: 34px; height: 34px; border: 1px solid #4a5054; border-radius: 6px; font-size: 16px; }
  .mobile-home-r4__reason-cards h2 { margin: 1px 0 4px; font-size: 12px; font-weight: 600; line-height: 1.18; letter-spacing: 0; }
  .mobile-home-r4__reason-cards p { color: #aaafb1; font-size: 9px; line-height: 1.3; }
  .mobile-home-r4__reason-cards article > b { padding-top: 7px; font-size: 20px; font-weight: 300; text-align: right; }
  .mobile-home-r4__order { position: absolute; top: 321px; left: 20px; width: 350px; }
  .mobile-home-r4__order > h2 { margin-bottom: 7px; font-size: 15px; font-weight: 500; letter-spacing: 0; }
  .mobile-home-r4__order ol { margin-left: 39px; }
  .mobile-home-r4__order li { position: relative; display: grid; grid-template-columns: 42px 1fr; width: 311px; height: 55px; margin-bottom: 5px; padding: 7px 10px; border: 1px solid var(--r4-line); border-radius: 5px; background: var(--r4-panel); }
  .mobile-home-r4__order li > b { position: absolute; top: 7px; left: -39px; display: grid; place-items: center; width: 28px; height: 28px; border: 1px solid #4b5054; border-radius: 50%; font-size: 10px; font-weight: 400; }
  .mobile-home-r4__order li:not(:last-child)::before { content: ""; position: absolute; top: 34px; left: -26px; width: 1px; height: 27px; background: #34383d; }
  .mobile-home-r4__order li > span { display: grid; place-items: center; width: 34px; height: 34px; border: 1px solid #4a5054; border-radius: 6px; font-size: 16px; }
  .mobile-home-r4__order h3 { font-size: 11px; font-weight: 600; }
  .mobile-home-r4__order p { color: #aeb2b4; font-size: 8.5px; line-height: 1.2; }
  .mobile-home-r4__accordions { position: absolute; top: 586px; left: 20px; display: grid; gap: 5px; width: 350px; }
  .mobile-home-r4__accordions details { min-height: 35px; border: 1px solid var(--r4-line); border-radius: 5px; background: var(--r4-panel); }
  .mobile-home-r4__accordions summary { display: flex; align-items: center; justify-content: space-between; height: 34px; padding: 0 11px; font-size: 11px; cursor: pointer; list-style: none; }
  .mobile-home-r4__accordions summary::-webkit-details-marker { display: none; }
  .mobile-home-r4__accordions summary::after { content: "+"; font-size: 18px; }
  .mobile-home-r4__accordions details[open] summary::after { content: "−"; }
  .mobile-home-r4__accordions details p { padding: 0 11px 9px; color: var(--r4-muted); font-size: 9px; }
  .mobile-home-r4__notice { position: absolute; top: 753px; left: 20px; width: 350px; height: 56px; padding: 13px 12px 10px 45px; border: 1px solid var(--r4-line); border-radius: 5px; background: var(--r4-panel); color: #8e9396; font-size: 10px; line-height: 1.35; }
  .mobile-home-r4__notice span { position: absolute; top: 14px; left: 15px; color: #aab0b2; }

  /* Screen 04 */
  .mobile-home-r4__gallery { position: absolute; top: 66px; left: 20px; width: 370px; }
  .mobile-home-r4__gallery h2 { margin-bottom: 7px; font-size: 14px; font-weight: 500; letter-spacing: 0; }
  .mobile-home-r4__gallery > div { display: grid; grid-auto-flow: column; grid-auto-columns: 150px; gap: 6px; width: 370px; overflow-x: auto; scrollbar-width: none; }
  .mobile-home-r4__gallery > div::-webkit-scrollbar { display: none; }
  .mobile-home-r4__gallery figure { position: relative; width: 150px; height: 91px; margin: 0; overflow: hidden; border: 1px solid var(--r4-line); border-radius: 5px; }
  .mobile-home-r4__gallery img { display: block; width: 100%; height: 100%; object-fit: cover; }
  .mobile-home-r4__gallery figure:nth-child(1) img { object-position: center 24%; filter: saturate(.72) hue-rotate(158deg); }
  .mobile-home-r4__gallery figcaption { position: absolute; inset: auto 0 0; padding: 20px 7px 5px; background: linear-gradient(transparent, rgba(0,0,0,.84)); font-size: 9px; }
  .mobile-home-r4__faq { position: absolute; top: 193px; left: 21px; width: 350px; }
  .mobile-home-r4__faq > h2 { margin-bottom: 7px; font-size: 15px; font-weight: 500; letter-spacing: 0; }
  .mobile-home-r4__faq details { min-height: 36px; border: 1px solid var(--r4-line); border-bottom: 0; background: #090a0b; }
  .mobile-home-r4__faq details:last-child { border-bottom: 1px solid var(--r4-line); }
  .mobile-home-r4__faq summary { display: flex; align-items: center; justify-content: space-between; height: 35px; padding: 0 13px; font-size: 10px; list-style: none; cursor: pointer; }
  .mobile-home-r4__faq summary::-webkit-details-marker { display: none; }
  .mobile-home-r4__faq summary::after { content: "+"; font-size: 18px; }
  .mobile-home-r4__faq details[open] summary::after { content: "−"; }
  .mobile-home-r4__faq details p { padding: 0 13px 9px; color: var(--r4-muted); font-size: 9px; }
  .mobile-home-r4__request { position: absolute; top: 447px; left: 21px; width: 350px; }
  .mobile-home-r4__request > h2 { font-size: 15px; font-weight: 500; letter-spacing: 0; }
  .mobile-home-r4__request > p { margin: 2px 0 7px; color: #a9adb0; font-size: 9px; }
  .mobile-home-r4__form fieldset { min-width: 0; height: 46px; margin: 0 0 5px; padding: 0; border: 1px solid var(--r4-line); border-radius: 5px; background: var(--r4-panel); }
  .mobile-home-r4__form fieldset.is-open { height: 145px; }
  .mobile-home-r4__form legend { width: 100%; padding: 0; }
  .mobile-home-r4__form legend button { display: flex; align-items: center; gap: 9px; width: 100%; height: 31px; padding: 0 9px; border: 0; background: transparent; color: var(--r4-white); font-size: 11px; font-weight: 600; text-align: left; }
  .mobile-home-r4__form legend button span { display: grid; place-items: center; width: 27px; height: 25px; border-radius: 5px; background: #202327; color: #cbd0d2; font-size: 9px; }
  .mobile-home-r4__form legend button b { margin-left: auto; font-size: 16px; }
  .mobile-home-r4__form fieldset > div { display: grid; grid-template-columns: 1fr; gap: 4px; padding: 0 10px 7px; }
  .mobile-home-r4__form [hidden] { display: none !important; }
  .mobile-home-r4__form input:not([type=checkbox]),
  .mobile-home-r4__form select { display: block; width: 100%; height: 26px; min-height: 26px; padding: 4px 8px; border: 1px solid #292d31; border-radius: 3px; background: #08090a; color: #e7e7e5; font-size: 9px; }
  .mobile-home-r4__consent { display: flex; gap: 7px; align-items: center; font-size: 8px; }
  .mobile-home-r4__consent input { width: 14px; height: 14px; }
  .mobile-home-r4__submit { display:flex; align-items:center; justify-content:center; width: 100%; height: 30px; margin-top: 5px; border: 0; border-radius: 4px; background: #efeeeb; color: #08090a; font-size: 11px; font-weight: 600; }
  .mobile-home-r4__form > p:empty { display: none; }
  .mobile-home-r4__request aside { height: 112px; margin-top: 12px; padding: 13px 15px; border: 1px solid var(--r4-line); border-radius: 5px; background: var(--r4-panel); }
  .mobile-home-r4__request aside h2 { font-size: 14px; font-weight: 500; letter-spacing: 0; }
  .mobile-home-r4__request aside p { margin: 2px 0 9px; color: var(--r4-muted); font-size: 9px; }
  .mobile-home-r4__request aside a { display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; height: 38px; border: 1px solid #50565a; border-radius: 4px; font-size: 11px; font-weight: 600; }
  .mobile-home-r4__fixed-actions { position: absolute; top: 915px; left: 20px; display: grid; grid-template-columns: 149px 196px; gap: 5px; width: 350px; height: 48px; padding: 2px 4px; border: 1px solid #292d31; border-radius: 5px; background: #07080a; }
  .mobile-home-r4__fixed-actions a { display: flex; align-items: center; justify-content: center; gap: 7px; height: 34px; border: 1px solid #4b5054; border-radius: 3px; font-size: 10px; font-weight: 600; }
  .mobile-home-r4__fixed-actions a:last-child { border-color: #efeeeb; background: #efeeeb; color: #08090a; }
}

@media (max-width: 900px) {
  body.mobile-home-page .menu-toggle,
  .mobile-home-r4 summary,
  .mobile-home-r4__form legend button,
  .mobile-home-r4__form input:not([type="checkbox"]),
  .mobile-home-r4__form select,
  .mobile-home-r4__submit,
  .mobile-home-r4__request aside a,
  .mobile-home-r4__fixed-actions a { min-width:44px; min-height:44px !important; height:auto; }
  body.mobile-home-page .menu-toggle { min-width:44px; }
}

/* R5: exact 390px chapter geometry with genuine 44px interactive targets. */
@media (max-width: 900px) {
  .mobile-home-r4__screen--02,
  .mobile-home-r4__screen--03,
  .mobile-home-r4__screen--04 {
    height: 844px;
    scroll-margin-top: 0;
  }

  .mobile-home-r4__pillars li:nth-child(3) { margin-left: 7px; }

  .mobile-home-r4__format-rail h3 { margin-top: 14px; }
  .mobile-home-r4__format-more {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 92px;
    min-height: 30px;
    margin-top: 5px;
    padding: 4px 12px;
    border: 1px solid #64696d;
    border-radius: 4px;
    font-size: 10px;
    font-weight: 500;
  }

  .mobile-home-r4__accordions details { min-height: 44px; }
  .mobile-home-r4__accordions summary { height: 44px; min-height: 44px; }
  .mobile-home-r4__notice { top: 786px; }

  .mobile-home-r4__gallery figure:first-child img {
    object-position: 18% center;
    filter: saturate(.72) hue-rotate(158deg) brightness(.82);
  }
  .mobile-home-r4__faq { top: 193px; }
  .mobile-home-r4__faq details,
  .mobile-home-r4__faq summary { min-height: 44px; }
  .mobile-home-r4__faq summary { height: 44px; }
  .mobile-home-r4__faq details + details { margin-top: -8px; }

  .mobile-home-r4__request { top: 408px; }
  .mobile-home-r4__form fieldset,
  .mobile-home-r4__form fieldset.is-open { height: 44px; }
  .mobile-home-r4__form fieldset.is-open { height: 96px; }
  .mobile-home-r4__form fieldset:first-of-type.is-open,
  .mobile-home-r4__form fieldset:nth-of-type(3).is-open { height: 145px; }
  .mobile-home-r4__form legend button { height: 44px; min-height: 44px !important; }
  .mobile-home-r4__form fieldset > div {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 4px;
    padding: 0 10px 7px;
  }
  .mobile-home-r4__form fieldset:first-of-type > div { grid-template-columns: minmax(0, 1fr); }
  .mobile-home-r4__form input:not([type="checkbox"]),
  .mobile-home-r4__form select {
    height: 44px;
    min-height: 44px !important;
  }
  .mobile-home-r4__consent {
    min-height: 44px;
    padding-inline: 4px;
    line-height: 1.2;
  }
  .mobile-home-r4__consent input { width: 18px; height: 18px; flex: 0 0 18px; }
  .mobile-home-r4__submit { min-height: 44px !important; }
  .mobile-home-r4__request aside {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 166px;
    align-items: center;
    gap: 8px;
    height: 51px;
    margin-top: 4px;
    padding: 3px 7px 3px 11px;
  }
  .mobile-home-r4__request aside h2 { font-size: 12px; line-height: 1.15; }
  .mobile-home-r4__request aside p { display: none; }
  .mobile-home-r4__request aside a { height: 44px; min-height: 44px !important; }
  .mobile-home-r4__form:has([data-mobile-r4-wa]:not([hidden])) + aside { display: none; }

  .mobile-home-r4__fixed-actions {
    top: 796px;
    height: 48px;
    padding: 1px 4px;
  }
  .mobile-home-r4__fixed-actions a { height: 44px; min-height: 44px !important; }
}
