body { margin: 0; background: #fbfaf8; font-family: 'Inter', system-ui, sans-serif; -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4 { font-family: 'Manrope', system-ui, sans-serif; margin: 0; }
a { color: #1f3864; text-decoration: none; }
a:hover { color: #16223d; }
* { box-sizing: border-box; }
::selection { background: #1f3864; color: #fff; }

@keyframes fadeUp { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: translateY(0); } }
@keyframes floatSlow { 0%, 100% { transform: translateY(0px); } 50% { transform: translateY(-16px); } }
@keyframes pulseRing { 0% { box-shadow: 0 0 0 0 rgba(255,255,255,0.35); } 100% { box-shadow: 0 0 0 22px rgba(255,255,255,0); } }
@keyframes kenBurns { from { transform: scale(1.06); } to { transform: scale(1.14); } }

.reveal { animation: fadeUp .9s cubic-bezier(.2,.8,.2,1) both; }

.modal-overlay[hidden] { display: none !important; }

::-webkit-scrollbar { width: 10px; }
::-webkit-scrollbar-thumb { background: #d8d5cd; border-radius: 10px; }

.booking-modal-scroll { scrollbar-width: thin; scrollbar-color: #d8d5cd transparent; }
.booking-modal-scroll::-webkit-scrollbar { width: 6px; }
.booking-modal-scroll::-webkit-scrollbar-thumb { background: #d8d5cd; border-radius: 10px; }
.booking-modal-scroll::-webkit-scrollbar-track { background: transparent; }

.hover-lift { transition: transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s; }
.hover-lift:hover { transform: translateY(-6px); box-shadow: 0 20px 40px rgba(17,17,17,0.08); }

.portfolio-tile { break-inside: avoid; margin-bottom: 16px; border-radius: 18px; overflow: hidden; position: relative; cursor: pointer; }
.portfolio-tile .tile-overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0) 55%, rgba(0,0,0,0.62) 100%); opacity: 0; transition: opacity .3s; }
.portfolio-tile .tile-caption { position: absolute; bottom: 0; left: 0; right: 0; padding: 18px; color: #fff; opacity: 0; transform: translateY(6px); transition: all .3s; }
.portfolio-tile:hover .tile-overlay, .portfolio-tile:hover .tile-caption { opacity: 1; transform: translateY(0); }

.insta-tile .insta-overlay { position: absolute; inset: 0; background: rgba(0,0,0,0.35); opacity: 0; transition: opacity .25s; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 20px; }
.insta-tile:hover .insta-overlay { opacity: 1; }

.filter-btn { border: none; padding: 10px 20px; border-radius: 100px; font-size: 13.5px; font-weight: 600; cursor: pointer; font-family: 'Inter', sans-serif; background: rgba(17,17,17,0.06); color: #111; transition: opacity .2s; }
.filter-btn:hover { opacity: 0.85; }
.filter-btn.active { background: #111; color: #fff; }

.testimonial-dot { border: none; border-radius: 100px; background: #d8d5cd; cursor: pointer; padding: 0; width: 8px; height: 8px; transition: width .2s, background .2s; }
.testimonial-dot.active { width: 24px; background: #111; }

@media (max-width: 860px) {
  .nav-links-desktop { display: none !important; }
  .editorial-hero { grid-template-columns: 1fr !important; }
  .featured-grid { grid-template-columns: 1fr !important; }
  .process-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .process-line { display: none !important; }
  .footer-grid { grid-template-columns: 1fr 1fr !important; }
  .insta-grid { grid-template-columns: repeat(3, 1fr) !important; }
  .service-row { grid-template-columns: 1fr !important; }
  .service-row > div { order: initial !important; }
}
