/* IMPERIA · iPhone UX, accessibility and finishing details (October 2026).
   Additive styles: never hide content when JavaScript fails. */
:root { --premium-focus:#722d45; }
html { -webkit-text-size-adjust:100%; scroll-padding-top:95px; }
body { overflow-wrap:break-word; }
button, a, input, textarea, select { -webkit-tap-highlight-color:transparent; }
button, a { touch-action:manipulation; }
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,
select:focus-visible,textarea:focus-visible {
  outline:2px solid #ffd6df;
  outline-offset:3px;
}
.application-form input:focus-visible,.application-form select:focus-visible,
.application-form textarea:focus-visible {
  outline:2px solid var(--premium-focus);
  outline-offset:2px;
  background:#fff8fb;
  border-color:#8f4058;
}
.application-form input,.application-form select,.application-form textarea {
  font-size:16px; /* prevent involuntary iOS Safari zoom */
}
.application-form ::placeholder { color:#72424f; opacity:1; }
.share-site { display:inline-flex; align-items:center; gap:7px; white-space:nowrap; }
.share-site svg { width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.8; }
.sr-only {
  position:absolute!important;width:1px;height:1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;clip-path:inset(50%);
}
.edition-touch-note { margin:0; font-size:12px; color:#bd9ba6; }
/* On touch devices, clear sticky hover styles; retain intentional photo animations. */
@media(hover:none) {
  .gallery-card:hover { box-shadow:0 20px 34px #0003; }
  .gallery-card:hover img { filter:saturate(.96); }
  .button-primary:hover { transform:none; }
}
/* Larger legible labels and controls on compact iPhone screens. */
@media(max-width:720px) {
  body { padding-bottom:0; }
  .hero .eyebrow { font-size:10px; line-height:1.5; letter-spacing:.1em; }
  .hero-description { font-size:15px; line-height:1.78; }
  .section-top .eyebrow { font-size:10px; line-height:1.6; }
  .section-note { font-size:10px; line-height:1.5; }
  .photo-coordinate { font-size:9px; }
  .hero-photo figcaption { font-size:10px; }
  .gallery-card .photo-category { font-size:9px; letter-spacing:.03em; }
  .gallery-card .photo-caption { font-size:11px; }
  .gallery-card:first-child .photo-caption { font-size:18px; }
  .join-copy .eyebrow { font-size:10px; }
  .join-copy>p:not(.eyebrow) { font-size:14px; }
  .join-copy .contact-caption { font-size:12px;line-height:1.5; }
  .form-explainer { font-size:12px; line-height:1.7; }
  .application-form label { font-size:13px; }
  .application-form textarea { min-height:96px; }
  .application-form input,.application-form select,.application-form textarea {
    min-height:49px;font-size:16px;
  }
  .filter { font-size:11px; line-height:1.35; }
  .gallery-toolbar { margin-top:28px; }
  .footer-bottom { row-gap:6px; }
  .share-site { font-size:12px; min-height:44px; justify-content:flex-start; }
  .hero, .editorial, .life-section, .join-section { isolation:isolate; }
  .mobile-dock a { font-size:13px; letter-spacing:.015em; }
  /* iOS virtual keyboard must never cover the last form fields. */
  .keyboard-active .mobile-dock { display:none!important; }
}
/* An accessible high-contrast mode; decoration must not reduce readability. */
@media(prefers-contrast:more) {
  :root { --muted:#e1d2d8; --line:#f2bec588; }
  .gallery-card .photo-caption,.hero-description,.section-note { color:#fff!important; }
  .story-photo::after,.gallery-card::after { background:linear-gradient(transparent,#10020ae8); }
  .button-primary { border:2px solid #37111f; }
}
@media(prefers-reduced-motion:reduce) {
  .hero-photo img,.gallery-card img,.button-primary::before { transition:none!important;animation:none!important; }
}


/* Candidate preparation — an editorial checklist, not a lead-capture form. */
.interview-prep {
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(22px,5vw,90px);
  align-items:center;margin:clamp(44px,7vw,100px) 0 0;padding:clamp(24px,4vw,60px);
  border:1px solid #e7b5c14a;border-radius:24px;
  background:radial-gradient(ellipse at 8% 0%,#8a2d4859,transparent 60%),linear-gradient(145deg,#32101e,#1c0b14 70%);
  box-shadow:0 28px 75px #0003;overflow:hidden;position:relative;
}
.interview-prep::after {
  content:"";position:absolute;right:-75px;top:-90px;width:260px;height:260px;
  border:1px solid #ecc3cf26;border-radius:50%;pointer-events:none;
}
.prep-kicker {color:#e9afbe;font-size:10px;letter-spacing:.18em;font-weight:700;}
.interview-prep h3 {font-size:clamp(27px,3.2vw,49px);letter-spacing:-.04em;line-height:1.16;margin:18px 0;}
.interview-prep h3 em {font-style:normal;color:#efb8c8;}
.interview-prep-copy>p:not(.prep-status) {color:#d4b7c1;line-height:1.75;font-size:14px;max-width:460px;}
.interview-prep .button {margin-top:23px;min-height:48px;color:#fff5f7;border-color:#f1b6c76e;}
.interview-prep .button:hover {background:#6b2b43;}
.interview-prep-list {list-style:none;padding:0;margin:0;display:grid;gap:0;}
.interview-prep-list li {
  display:flex;align-items:baseline;gap:19px;padding:19px 0;border-bottom:1px solid #e7b5c12a;
  color:#f4e6e9;font-size:14px;line-height:1.55;
}
.interview-prep-list li:first-child {border-top:1px solid #e7b5c12a;}
.interview-prep-list span {font-size:11px;color:#f1aabd;letter-spacing:.1em;font-variant-numeric:tabular-nums;}
.prep-status {font-size:12px;color:#f3c4d0;min-height:1.3em;margin:8px 0 0;}
@media(max-width:720px) {
  .interview-prep {grid-template-columns:1fr;gap:24px;margin-top:42px;padding:25px 22px;border-radius:18px;}
  .interview-prep h3 {font-size:32px;}
  .interview-prep-list li {padding:14px 0;font-size:13px;gap:14px;}
  .interview-prep .button {width:100%;justify-content:center;}
}
@media(prefers-reduced-motion:reduce){.interview-prep *{scroll-behavior:auto;}}

/* ÉDITION 03 — photo sharing, restrained champagne accent */
.lightbox-share{display:flex;align-items:center;justify-content:center;gap:15px;flex-wrap:wrap;margin:14px auto 2px}
.lightbox-share .button{min-height:42px;padding:10px 19px;border:1px solid #edbac37a;border-radius:999px;background:#451b2ba8;color:#fff0f2;font-size:12px;letter-spacing:.035em;transition:background .22s ease,border-color .22s ease}
.lightbox-share .button:hover{background:#71314b;border-color:#f3c6d0}
.lightbox-share [role="status"]{color:#f0c6d0;font-size:12px;line-height:1.5}
@media(max-width:720px){.lightbox-share{margin:10px auto 0;gap:8px}.lightbox-share .button{min-height:44px}}
@media(prefers-reduced-motion:reduce){.lightbox-share .button{transition:none}}
