.memory-share { box-sizing:border-box; width:min(94vw,620px); max-width:620px; max-height:92vh; max-height:92dvh; padding:0; border:0; border-radius:22px; background:#fffdf9; color:#17317f; font:16px/1.5 Arial,sans-serif; overflow:auto; overscroll-behavior:contain; box-shadow:0 20px 80px #071c4b66; }
.memory-share::backdrop { background:#071c4bc9; }
.memory-share *, .memory-share *::before, .memory-share *::after { box-sizing:border-box; }
.memory-share [hidden] { display:none!important; }
.memory-share-header { position:sticky; top:0; z-index:1; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 18px; background:#fffdf9; border-bottom:1px solid #d8e0ed; }
.memory-share-header h2 { margin:0; color:#17317f; font:800 16px/1.3 Arial,sans-serif; letter-spacing:.04em; }
.memory-share button.memory-share-close { flex:0 0 44px; width:44px; height:44px; min-height:44px; margin:0; padding:0; border:1px solid #b4c2d9; border-radius:50%; color:#17317f; background:white; font:28px/1 Arial,sans-serif; }
.memory-share-body { padding:0 20px 22px; }
.memory-share p { margin:14px 0; font:14px/1.5 Arial,sans-serif; color:#314d7b; letter-spacing:0; }
.memory-share .memory-share-image { display:block; width:100%; max-width:100%; height:auto; aspect-ratio:4 / 5; max-height:none; margin:16px auto; object-fit:contain; border-radius:12px; -webkit-touch-callout:default; user-select:auto; }
.memory-share label { display:block; margin:18px 0 8px; font:bold 13px/1.4 Arial,sans-serif; letter-spacing:.03em; }
.memory-share textarea { display:block; width:100%; resize:vertical; min-height:145px; padding:12px; border:1px solid #9cadc9; border-radius:12px; background:white; color:#17317f; font:16px/1.5 Arial,sans-serif; user-select:text; }
.memory-share-row { display:flex; gap:10px; flex-wrap:wrap; margin-top:10px; }
.memory-share button, .memory-share a[data-download-image] { cursor:pointer; display:block; min-height:44px; margin:0; padding:11px 14px; border:1px solid #9cadc9; border-radius:12px; background:#edf2fa; color:#17317f; font:700 12px/1.5 Arial,sans-serif; letter-spacing:.02em; text-align:center; text-decoration:none; white-space:normal; }
.memory-share-row button { flex:1 1 110px; }
.memory-share button.memory-share-primary { width:100%; background:#17317f; border-color:#17317f; color:white; font-size:14px; min-height:48px; margin:16px 0 8px; }
.memory-share button:disabled { opacity:.55; cursor:wait; }
.memory-share .memory-share-tip { font-size:13px; }
.memory-share [data-share-status] { color:#17317f; font-weight:700; min-height:1.5em; }
.memory-share-fallback { align-items:center; justify-content:space-between; }
.memory-share a[data-instagram-profile] { color:#17317f; font:700 11px/1.5 Arial,sans-serif; max-width:200px; padding:12px 0; text-underline-offset:3px; }
.memory-share :focus-visible { outline:3px solid #c28d45; outline-offset:3px; }
#aperture #recommendation-countdown { flex:0 0 auto; margin:12px 0 0; font:700 clamp(11px,2.5cqw,17px)/1.4 Arial,sans-serif; color:#fff4df; letter-spacing:.06em; text-align:center; }
#aperture #booking-share { display:block; width:100%; min-height:44px; padding:12px 16px; margin:12px 0 0; border:1px solid #17317f; border-radius:999px; background:#e8eef9; color:#17317f; font-size:clamp(11px,2.8cqw,20px); }
#aperture #booking-share-status { margin:4px 0 0; font:12px/1.4 Arial,sans-serif; color:#425d89; text-align:center; }
#aperture #booking-share-status:empty { display:none; }
@media(max-height:650px) {
  #aperture #recommendation-countdown { margin-top:8px; font-size:11px; }
  #aperture #recommendation-screen .recommendation-brand { margin-bottom:6px; }
  #aperture #recommendation-definition { margin-top:6px; }
  #aperture #recommendation-answers { margin-top:7px; gap:4px; }
  #aperture #recommendation-screen :is(.answer-chip,.reason-chip) { padding-top:4px; padding-bottom:4px; }
  #aperture #recommendation-why, #aperture #recommendation-city { margin-top:8px; }
  #aperture #recommendation-route { margin-top:6px; }
  #aperture #booking-share { margin-top:8px; }
  #aperture #booking-panel .instagram-guide { margin-top:8px; }
}
@media(max-height:650px) {
  body[data-channel="online"] #aperture #booking-screen { top:12px; bottom:max(72px,calc(env(safe-area-inset-bottom) + 60px)); }
  #aperture #booking-persona { margin-top:8px; }
  #aperture #booking-country { margin-top:8px; }
  #aperture #booking-button { min-height:48px; margin-top:12px; padding-top:12px; padding-bottom:12px; }
  #aperture #booking-helper { margin-top:8px; }
  #aperture #booking-panel .card-label { margin-top:10px; }
  #aperture #try-again { min-height:44px; padding-top:8px; padding-bottom:8px; }
}

/* Headings receive focus for screen-reader orientation, never a visual box. */
:is(h1,h2,h3,h4,p)[tabindex="-1"]:focus { outline:none !important; }
html[data-input-mode="pointer"] :is(button,a,[role="radio"]):focus { outline:none !important; }
html[data-input-mode="keyboard"] :is(button,a,[role="radio"]):focus { outline:3px solid #c28d45; outline-offset:3px; }

.booking-dates input { display:block; width:100%; min-width:0; min-height:48px; border:1px solid #9cadc9; border-radius:10px; padding:10px; color:#17317f; background:#fff; font:16px Arial,sans-serif; box-sizing:border-box; }
.booking-dates [data-flight-route] { font-size:18px; font-weight:700; }
.memory-share [data-link-fallback] { overflow-wrap:anywhere; user-select:text; }
