/* Final editorial polish: legibility, touch targets and restrained motion. */
:root { --accent-text: #bf241b; }
.brand img { mix-blend-mode: normal; filter: none; }
.gallery-filters button { min-height: 44px; padding: 9px 2px; font-size: 12px; }
.gallery-item-caption h3 { font-size: 13px; line-height: 1.5; }
.gallery-item-caption p { font-size: 10px; letter-spacing: .065em; }
.text-link { min-height: 44px; font-size: 12px; }
.hero-caption, .portfolio-end, .regular-price, .package-subnote, .pricing-note, .set-footnote { font-size: 12px; }
.image-note { font-size: 10px; }
.social-handle { color: var(--accent-text); font-size: 12px; }
.social-card>p { font-size: 13px; }
.social-action { font-size: 12px; }
.button { font-size: 13px; }
.package-whatsapp { font-size: 12px; min-height: 54px; line-height: 1.45; text-align: left; }
.package-whatsapp > span { flex: none; }
.package-customize { width: 100%; min-height: 44px; padding: 10px 4px; font-size: 12px; line-height: 1.5; color: var(--muted); text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
.featured .package-customize { color: #b9bbaf; }
.package-customize:hover { color: var(--ink); }
.featured .package-customize:hover { color: var(--paper); }
.package-guidance { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 4px 24px; margin-top: 26px; padding-top: 18px; border-top: 1px solid var(--line); font-size: 13px; }
.package-guidance > p { color: var(--muted); }
.package-guidance .text-link { margin: 0; gap: 22px; }
.footer-links { font-size: 12px; gap: 10px 24px; }
.footer-links a, .footer-links button { display: inline-flex; align-items: center; min-height: 44px; }
.session-header p:last-child { font-size: 12px; }
.session-explore { font-size: 12px; }
.session-explore select { min-height: 44px; font-size: 16px; }
.booking-dialog select { font-size: 16px; min-height: 48px; }
.booking-dialog label[for], .booking-dialog legend { font-size: 12px; }
.extra-option { min-height: 50px; font-size: 13px; gap: 12px; }
.extra-option input { width: 20px; height: 20px; }
.extra-option small, .extra-option b, .booking-fineprint, .booking-total>p { font-size: 11px; }
.booking-total>div+div strong { color: var(--accent-text); }
.booking-dialog>.dialog-close, .privacy-dialog>.dialog-close { width: 44px; height: 44px; }
.contact-bottom { font-size: 13px; }
.contact-bottom>a { min-height: 44px; font-size: 13px; }
.contact-bottom>a>span { font-size: 12px; }
.hero-top { animation: intro-arrive .6s ease both; }
.hero-intro { animation: intro-arrive .75s cubic-bezier(.2,.7,.2,1) .06s both; }
.hero-film { animation: intro-arrive .8s cubic-bezier(.2,.7,.2,1) .15s both; }
.js-motion .gallery-item.reveal, .js-motion .social-card.reveal { transition-delay: var(--reveal-delay,0ms); }
.social-card:nth-child(2) { --reveal-delay: 60ms; }
.social-card:nth-child(3) { --reveal-delay: 120ms; }
.lightbox-stage:not(.is-loading) #lightbox-img { animation: photo-arrive .24s ease both; }
.motion-paused { scroll-behavior: auto; }
.motion-paused .hero-top, .motion-paused .hero-intro, .motion-paused .hero-film,
.motion-paused #lightbox-img { animation: none !important; }
@keyframes intro-arrive { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
@keyframes photo-arrive { from { opacity: 0; } to { opacity: 1; } }
@media (hover:hover) and (prefers-reduced-motion:no-preference) {
  .button>span { transition: transform .25s ease; }
  .button:hover>span { transform: translate(3px,-3px); }
}
@media (max-width:700px) {
  .menu-toggle { width: 44px; height: 44px; }
  .mobile-nav a { min-height: 44px; display: flex; align-items: center; }
  .mobile-nav:not([hidden]) { gap: 8px; }
  .hero-top .eyebrow { font-size: 9px; letter-spacing: .075em; }
  .hero-caption { font-size: 10px; align-items: center; gap: 12px; }
  .hero-caption a { min-height: 44px; align-items: center; gap: 9px; }
  .section-kicker .eyebrow { font-size: 9px; letter-spacing: .075em; }
  .manifesto-copy p, .section-heading>p, .process-grid p, .faq-list details>p { font-size: 14px; }
  .set-option small, .service-row p, .package-list li, .faq-list summary { font-size: 13px; }
  .set-footnote, .pricing-note, .regular-price, .package-subnote { font-size: 11px; }
  .gallery-filters { display: grid; grid-template-columns: .7fr 1fr .9fr 1.4fr; gap: 10px; }
  .gallery-filters button { min-width: 0; font-size: 11px; line-height: 1.4; }
  .gallery-item-caption h3 { font-size: 12px; }
  .gallery-item-caption p { font-size: 9px; letter-spacing: .035em; }
  .portfolio-end { font-size: 11px; gap: 15px; }
  .portfolio-end>p { max-width: 45%; }
  .portfolio-end .text-link { font-size: 11px; gap: 10px; }
  .package-tabs { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); overflow: visible; border-bottom: 0; }
  .package-tabs button { min-height: 48px; font-size: 12px; padding: 12px 10px; border-bottom: 1px solid var(--line); }
  .package-card-top { gap: 10px; flex-wrap: wrap; }
  .package-card .card-tag { font-size: 9px; }
  .session-header .lightbox-close { flex-basis: 44px; width: 44px; height: 44px; }
  .lightbox-stage { grid-template-columns: 44px minmax(0,1fr) 44px; gap: 4px; }
  .lightbox-prev, .lightbox-next { width: 44px; height: 44px; }
  .session-header p:last-child { font-size: 11px; }
  .lightbox-bottom { font-size: 9px; padding-left: 0; padding-right: 0; }
  .session-explore { display: grid; grid-template-columns: minmax(0,1fr); gap: 5px; }
  .session-explore label { font-size: 11px; }
  .session-explore select { width: 100%; max-width: none; font-size: 16px; }
  .social-heading>p { font-size: 14px; }
  .social-card>p { font-size: 13px; }
  .footer-links { gap: 4px 18px; font-size: 11px; }
  .footer-links a, .footer-links button { text-align: left; }
  .footer-links>*:nth-child(2n+1):not(:first-child) { justify-content: flex-end; }
  .contact-bottom { font-size: 11px; flex-wrap: wrap; }
  .contact-bottom>a { font-size: 11px; }
  .contact-bottom>a>span { font-size: 11px; }
}
@media (max-height:550px) and (orientation:landscape) {
  .session-thumbnails { padding-top: 2px; padding-bottom: 3px; }
  .session-explore { display: flex; padding-top: 5px; }
  .session-explore select { max-width: 330px; }
}
@media (prefers-reduced-motion:reduce) {
  .hero-top,.hero-intro,.hero-film,#lightbox-img { animation: none !important; }
}
