/* Shared responsive rules, loaded after each page's styles. */
.nav-wrap { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.announcement { display:flex; align-items:center; justify-content:center; gap:8px; padding:8px 16px; text-align:center; }
:where(main, .footer-bottom, .footer-top) :where(h1,h2,h3,p,a) { overflow-wrap:break-word; }
:where(.owner-grid,.promise-grid,.contact-grid,.portfolio-category,.portfolio-process-premium,.portfolio-contact,.contact-form-section,.page-service-grid,.page-columns,.service-detail-lead,.service-detail-copy,.about-profile-grid,.footer-bottom) > * { min-width:0; }
:where(input,select,textarea) { max-width:100%; }
.mobile-panel[hidden] { display:none; }
@media (max-width:960px) {
  .nav-wrap { width:calc(100% - 32px); height:68px; gap:10px; }
  .desktop-nav { display:none; }
  .nav-wrap .wordmark { width:136px; }
  .nav-cta { min-height:44px; margin-left:auto; padding-inline:12px; font-size:11px; }
  .theme-toggle { flex:none; width:44px; min-height:44px; padding:0; }
  .theme-toggle-label { display:none; }
  .mobile-toggle { display:flex; flex:none; width:44px; height:44px; margin:0; align-items:center; justify-content:center; flex-direction:column; gap:6px; border:1px solid var(--line-strong); background:transparent; cursor:pointer; }
  .mobile-toggle span { width:16px; height:1px; background:var(--ink); transition:transform .2s; }
  .mobile-toggle[aria-expanded=true] span:first-child { transform:translateY(3.5px) rotate(45deg); }
  .mobile-toggle[aria-expanded=true] span:last-child { transform:translateY(-3.5px) rotate(-45deg); }
  .mobile-panel { position:absolute; top:100%; left:0; right:0; display:flex; flex-direction:column; max-height:calc(100dvh - 68px); overflow-y:auto; overscroll-behavior:contain; padding:8px 20px 16px; border-bottom:1px solid var(--line); }
  .mobile-panel > a { display:flex; align-items:center; min-height:48px; padding:12px 0; border-bottom:1px solid var(--line); font-size:14px; text-decoration:none; }
  .footer-top { flex-wrap:wrap; gap:16px 24px; padding-block:20px; }
  .footer-tagline { flex:1 1 200px; }
  .footer-bottom { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .footer-links,.footer-social { flex-wrap:wrap; gap:8px 18px; }
  .footer-links a,.footer-social a,.footer-top-link { display:inline-flex; min-height:44px; align-items:center; font-size:11px; }
}
@media (min-width:761px) and (max-width:960px) {
  .container-shell { width:calc(100% - 64px); }
  .owner-grid,.promise-grid { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:28px; }
  .portfolio-category,.portfolio-category:nth-child(even),.portfolio-category.portfolio-category-video { grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; }
  .portfolio-category-copy h2 { font-size:36px; }
  .portfolio-process-premium { gap:30px; }
  .portfolio-contact { grid-template-columns:1fr; gap:24px; }
  .service-page-hero,.services-overview-hero,.work-editorial-hero { grid-template-columns:1fr; gap:28px; }
  .service-page-visual { width:100%; max-width:620px; justify-self:center; }
  .about-capabilities,.about-promise-grid { gap:32px; }
}
@media (max-width:760px) {
  html { scroll-padding-top:80px; }
  .container-shell { width:calc(100% - 40px); }
  .announcement { flex-wrap:wrap; gap:3px 6px; font-size:9px; letter-spacing:.04em; }
  .announcement-dot { flex:none; }
  .owner-copy h2 { font-size:clamp(32px,8.5vw,54px); }
  .section-heading { overflow-wrap:anywhere; }
  .section-heading-row { flex-wrap:wrap; gap:16px; }
  .hero-carousel-controls { left:16px; right:16px; bottom:14px; justify-content:center; gap:4px; }
  .hero-carousel-controls .carousel-arrow,.hero-carousel-controls .carousel-rotation { min-width:44px; height:44px; }
  .carousel-rotation > span { display:none; }
  .carousel-pagination { gap:0; padding:0; }
  .carousel-pagination .carousel-dot { position:relative; width:22px; height:44px; border:0; border-radius:0; background:transparent; }
  .carousel-dot::after { position:absolute; top:19px; left:8px; width:6px; height:6px; border:1px solid white; border-radius:50%; content:""; }
  .carousel-dot.is-active::after { left:3px; width:16px; border-color:var(--rust); border-radius:5px; background:var(--rust); }
  .hero-bottom { left:20px; right:20px; bottom:72px; width:auto; justify-content:center; }
  .hero-image-caption { left:20px; right:20px; bottom:100px; }
  .portfolio-hero-byline { flex-wrap:wrap; gap:10px; }
  .portfolio-category-nav { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .portfolio-category-nav a { gap:8px; padding:12px; font-size:12px; }
  .portfolio-carousel-controls button,.service-carousel-controls button { min-width:44px; min-height:44px; }
  .portfolio-carousel-image-wrap .portfolio-video-play { width:72px; height:72px; font-size:30px; }
  .portfolio-contact-actions { width:100%; }
  .portfolio-contact-actions > a { max-width:100%; overflow-wrap:anywhere; }
  .portfolio-process-steps { gap:0 20px; }
  .contact-form > input,.contact-form > select,.contact-form > textarea { width:100%; min-width:0; font-size:16px; }
  .contact-details-grid strong,.contact-email { overflow-wrap:anywhere; }
  .footer-top { align-items:flex-start; }
  .footer-tagline { flex-basis:100%; font-size:14px; }
  .footer-top-link { margin-left:auto; }
  .footer-bottom { gap:20px; }
  .footer-social { justify-content:flex-start; }
  .copyright { line-height:1.8; font-size:9px; }
  .profile-reader { max-height:calc(100dvh - 24px); overflow-y:auto; }
  .profile-reader-downloads a { min-height:44px; display:inline-flex; align-items:center; white-space:normal; }
  .whatsapp-float { right:12px; bottom:max(12px,env(safe-area-inset-bottom)); }
}
@media (max-width:540px) {
  .page-service-grid,.page-columns { grid-template-columns:minmax(0,1fr); }
  .page-service-grid article { min-height:0; padding:22px 22px 55px; }
  .page-service-grid article > img { height:auto; aspect-ratio:4 / 3; }
  .page-gallery-grid { grid-template-columns:minmax(0,1fr); }
  .gallery-item { min-height:0; }
  .gallery-item img { height:auto; min-height:0; aspect-ratio:4 / 3; }
  .portfolio-process-steps { grid-template-columns:minmax(0,1fr); }
  .about-profile { padding:20px; }
  .about-profile-actions { justify-content:space-between; }
  .about-profile-action { min-width:0; flex:1 1 0; }
  .about-profile-action svg { width:52px; height:52px; }
  .footer-bottom { grid-template-columns:minmax(0,1fr); }
  .footer-bottom > div,.copyright { grid-column:auto; }
}
@media (max-width:374px) {
  .nav-wrap { gap:6px; width:calc(100% - 24px); }
  .nav-wrap .wordmark { width:112px; }
  .nav-cta { padding-inline:8px; gap:4px; font-size:10px; }
  .nav-cta > span { display:none; }
  .container-shell { width:calc(100% - 32px); }
  .portfolio-hero-cta,.contact-hero-cta { gap:12px; padding-inline:14px; }
  .gallery-brand-lockup,.contact-hero-lockup { gap:10px; padding:14px; }
  .gallery-brand-lockup strong,.contact-hero-lockup strong { font-size:28px; }
  .gallery-brand-lockup small,.contact-hero-lockup small { letter-spacing:.18em; }
}

.portfolio-carousel-controls[hidden] { display:none; }
