/* FLM polish: existing paper/ink/blue palette and real photography stay primary.
   Motion belongs to the opening hero and deliberate user actions. */
html { scroll-padding-top: 108px; }
html.flm-enhanced :is(a,button,input,select,textarea,summary,[tabindex]):focus-visible {
  outline: 3px solid #2458cf !important; outline-offset: 4px;
}
/* The supplied complete wordmark stays visible, including at narrow phone widths. */
html.flm-enhanced #fmHeader .flm-brand.flm-brand-approved {
  display:flex; align-items:center; flex:0 1 210px; min-width:0; min-height:44px; width:210px; gap:0;
}
html.flm-enhanced #fmHeader .flm-approved-logo { display:block; width:100%; height:auto; }
html.flm-enhanced #fmHeader .flm-brand-approved ~ .flm-reserve { flex-shrink:0; }
@media (max-width:760px) {
  html.flm-enhanced #fmHeader .flm-brand.flm-brand-approved { flex-basis:180px; width:180px; }
}
@media (max-width:359px) {
  html.flm-enhanced #fmHeader .flm-header-bar:has(.flm-brand-approved) { gap:8px; padding-inline:10px; }
  html.flm-enhanced #fmHeader .flm-brand-approved ~ .flm-reserve { padding-inline:10px; }
}
html.flm-enhanced :is(.flm-rollout,.flm-social,.flm-smm-2026,#fm-app) :is(button,a.btn,a.social-btn,.fm-btn) {
  touch-action: manipulation;
}
/* One opening on the copy group; old staggered child entrances cannot restart. */
html.flm-enhanced .flm-rollout .enter { animation:none !important; opacity:1 !important; transform:none !important; }
html.flm-enhanced :is(.flm-rollout .hero .copy,.social-hero-grid>div:first-child) { animation:flm-stable-open 380ms ease-out both; }
@keyframes flm-stable-open { from { opacity:.72; } to { opacity:1; } }
html.flm-skip-intro :is(.flm-rollout .hero .copy,.social-hero-grid>div:first-child,.hero-copy,.hero-example) { animation:none !important; }
/* The renderer assigns these values; no DOM-ready grid reconstruction is needed. */
.gallery-grid[data-preview-gallery=static] .flm-static-gallery { display:grid !important; grid-template-columns:repeat(var(--flm-gallery-wide),minmax(0,1fr)) !important; gap:var(--flm-gallery-gutter) !important; padding:var(--flm-gallery-gutter) !important; }
.gallery-grid[data-preview-gallery=static] .gallery-grid-item-wrapper { opacity:1 !important; transform:none !important; }
@media(max-width:992px) { .gallery-grid[data-preview-gallery=static] .flm-static-gallery { grid-template-columns:repeat(var(--flm-gallery-medium),minmax(0,1fr)) !important; } }
@media(max-width:768px) { .gallery-grid[data-preview-gallery=static] .flm-static-gallery { grid-template-columns:repeat(var(--flm-gallery-tablet),minmax(0,1fr)) !important; } }
@media(max-width:576px) { .gallery-grid[data-preview-gallery=static] .flm-static-gallery { grid-template-columns:repeat(var(--flm-gallery-phone),minmax(0,1fr)) !important; } }
html.flm-enhanced .flm-rollout :is(.d1,.delay1) { animation-delay: 40ms !important; }
html.flm-enhanced .flm-rollout :is(.d2,.delay2) { animation-delay: 80ms !important; }
html.flm-enhanced .flm-rollout :is(.d3,.delay3) { animation-delay: 120ms !important; }
html.flm-enhanced .flm-rollout :is(.d4,.delay4) { animation-delay: 160ms !important; }
html.flm-enhanced .flm-rollout :is(.d5,.delay5) { animation-delay: 200ms !important; }
html.flm-enhanced :is(.flm-rollout,.flm-social,.flm-smm-2026) :is(.btn,.social-btn,.flm-card-button) {
  transition: background-color 160ms, box-shadow 160ms, transform 160ms !important;
}
@media (hover:hover) and (pointer:fine) {
  html.flm-enhanced :is(.flm-rollout,.flm-social,.flm-smm-2026) :is(.btn,.social-btn,.flm-card-button):hover {
    transform: translateY(-2px); box-shadow: 0 6px 16px #16244418;
  }
  .flm-photo-trigger:hover img { transform: scale(1.025); }
}
.flm-photo-trigger { cursor: zoom-in; border-radius: inherit; }
.flm-photo-trigger img { transition: transform 240ms ease; }
.gallery-grid-item-wrapper.flm-photo-trigger { overflow: hidden; }
#flm-photo-viewer { width: min(1180px,calc(100vw - 32px)); max-width: none; max-height: calc(100dvh - 32px); padding: 0; border: 1px solid #dae2f0; border-radius: 18px; margin: auto; background: #fbfcff; color: #162444; font: 15px/1.5 "DM Sans",sans-serif; overflow: auto; }
#flm-photo-viewer::backdrop { background: #08132bea; backdrop-filter: blur(5px); }
#flm-photo-viewer .flm-photo-toolbar { display:flex; align-items:center; gap:16px; justify-content:space-between; padding:12px 16px; }
#flm-photo-viewer .flm-photo-toolbar p { margin:0; font-weight:650; }
#flm-photo-viewer button { border:1px solid #dae2f0; background:white; color:#162444; min-width:44px; min-height:44px; border-radius:999px; cursor:pointer; font:600 16px/1 sans-serif; padding:10px 14px; touch-action:manipulation; }
#flm-photo-viewer figure { margin:0; }
#flm-photo-viewer .flm-photo-stage { position:relative; display:grid; place-items:center; background:#101827; min-height:180px; }
#flm-photo-viewer img { width:100%; height:auto; max-height:min(72dvh,760px); object-fit:contain; display:block; margin:0; }
#flm-photo-viewer .flm-photo-prev,#flm-photo-viewer .flm-photo-next { position:absolute; top:50%; transform:translateY(-50%); background:#fffef5; box-shadow:0 2px 12px #0003; }
#flm-photo-viewer .flm-photo-prev { left:12px; }
#flm-photo-viewer .flm-photo-next { right:12px; }
#flm-photo-viewer figcaption { padding:12px 16px; line-height:1.5; }
html.flm-photo-open { overflow:hidden !important; }
#flm-menu-scrim { position:fixed; inset:0; z-index:90; border:0; margin:0; padding:0; background:#16244470; backdrop-filter:blur(3px); cursor:pointer; }
#flm-menu-scrim[hidden] { display:none; }
/* Compact preview tools leave the site's bottom actions visible. */
#flm-preview-bar { padding:5px 9px; gap:8px; border-radius:999px; bottom:12px; left:12px; }
#flm-preview-bar .flm-preview-label { font-size:11px; }
#flm-preview-bar a { padding:6px 2px; }
#flm-preview-bar button { width:44px; height:44px; display:grid; place-items:center; }
#flm-preview-bar button.flm-preview-dismiss { font-size:17px; }
#flm-preview-bar.flm-preview-collapsed { padding:3px; }
#flm-preview-bar.flm-preview-collapsed :is(.flm-preview-dot,.flm-preview-label,a,.flm-preview-dismiss) { display:none; }
@media (max-width:1180px) {
  html.flm-enhanced,html.flm-enhanced body { overflow-x:clip !important; overflow-y:visible !important; }
  html.flm-enhanced #fmHeader.flm-site-header { position:sticky !important; top:0; z-index:100; padding-top:max(10px,env(safe-area-inset-top)); background:#fbfcfff2; backdrop-filter:blur(12px); }
  html.flm-enhanced #fmHeader .flm-header-wrap { position:relative; }
  html.flm-enhanced #fmHeader #flm-site-mobile { position:absolute !important; top:calc(100% + 6px); left:16px; right:16px; margin:0 !important; max-height:calc(100dvh - 120px - env(safe-area-inset-top)); box-shadow:0 18px 40px #16244426; background:#fbfcff; }
  html.flm-enhanced body.flm-menu-open { overflow:hidden !important; }
  html.flm-enhanced body.flm-menu-open #flm-preview-bar { visibility:hidden; }
  html.flm-enhanced #flm-pricing-tabs .flm-tabs-scroll { top:98px !important; scroll-padding-inline:12px; }
  html.flm-enhanced #flm-pricing-tabs .flm-tab-button { min-height:46px; }
  html.flm-enhanced.flm-photo-open,html.flm-enhanced:has(dialog[open]) { overflow:hidden !important; }
}
@media (max-width:700px) {
  html { scroll-padding-top:106px; }
  html.flm-enhanced .flm-rollout .wrap { padding-inline:20px; }
  html.flm-enhanced .flm-rollout .hero>.hero-grid { padding:24px 18px 30px !important; gap:18px; }
  html.flm-enhanced .flm-rollout .hero .copy { padding:26px 22px !important; }
  html.flm-enhanced .flm-rollout .hero .location { font-size:18px; line-height:1.55; }
  html.flm-enhanced .flm-rollout .hero .actions { gap:12px; }
  html.flm-enhanced .flm-rollout .hero .actions>.btn { min-height:50px; width:100%; justify-content:center; text-align:center; }
  html.flm-enhanced .flm-rollout .hero .actions>.secondary { min-height:44px; padding:8px 0; display:inline-flex; align-items:center; }
  html.flm-enhanced .flm-rollout :is(.step,.review,.p2-card) { min-width:0; }
  html.flm-enhanced .flm-social .social-hero-grid { gap:28px; }
  html.flm-enhanced .flm-social .social-dialog:not(.social-video-dialog) { padding:22px 18px; width:calc(100vw - 24px); max-height:calc(100dvh - 24px - env(safe-area-inset-bottom)); }
  html.flm-enhanced .flm-social .social-dialog :is(input,select,textarea) { font-size:16px; }
  html.flm-enhanced :is(.flm-social,.flm-smm-2026,#fm-app) :is(input:not([type=checkbox]):not([type=radio]),select,textarea) { font-size:16px !important; min-height:46px; max-width:100%; }
  html.flm-enhanced :is(.flm-social,.flm-smm-2026,#fm-app) :is(button,.social-btn,.fm-btn) { min-height:46px; }
  html.flm-enhanced .flm-smm-2026 .survey-choices { grid-template-columns:1fr; }
  html.flm-enhanced .flm-smm-2026 label.survey-choice { font-size:14px; padding:12px; min-height:48px; }
  html.flm-enhanced :is(.flm-rollout,.flm-social,.flm-smm-2026) summary { min-height:44px; cursor:pointer; }
  #flm-photo-viewer { width:calc(100vw - 16px); max-height:calc(100dvh - 16px); border-radius:14px; }
  #flm-photo-viewer img { max-height:min(68dvh,680px); }
  #flm-photo-viewer .flm-photo-toolbar { padding:8px 10px; gap:8px; }
  #flm-photo-viewer .flm-photo-prev { left:8px; }
  #flm-photo-viewer .flm-photo-next { right:8px; }
  #flm-preview-bar .flm-preview-label { font-size:10px; }
  #flm-preview-bar { bottom:max(8px,env(safe-area-inset-bottom)); left:8px; gap:6px; }
  html:has(#fm-app) #flm-preview-bar { bottom:calc(82px + env(safe-area-inset-bottom)); }
}
@media (prefers-reduced-motion:reduce) {
  html,html.flm-enhanced * { scroll-behavior:auto !important; animation:none !important; transition:none !important; }
  html.flm-enhanced :is(.enter,.reveal,[data-animation-role]) { opacity:1 !important; transform:none !important; }
}
@media (max-width:360px) {
  #flm-preview-bar .flm-preview-label { display:none; }
}
