/* Soft smoky 3D finish — image shadow geometry increased by 35%: painted depth only, never hover scaling or layout movement.
   Full-bleed hero backgrounds, studio logos and fullscreen media stay unframed. */
/* ==========================================================================
   Design tokens
   Colour, spacing and typography custom properties, plus the dark theme overrides.
   ========================================================================== */
:root {
  --raised-rim:rgba(132,110,71,.24);
  --raised-base:rgba(70,86,99,.16);
  --raised-shadow:rgba(10,29,47,.11);
  --raised-highlight:rgba(255,255,255,.75);
  --control-base:var(--raised-base);
}
[data-theme="dark"] {
  --raised-rim:rgba(204,179,124,.27);
  --raised-base:rgba(142,166,188,.14);
  --raised-shadow:rgba(0,0,0,.24);
  --raised-highlight:rgba(220,234,248,.24);
}
/* Image-bearing cards and editorial frames across Home, About, Services,
   Projects, project stories and the photo/video Gallery. */
body :is(.project-image,.service-picture,.intro-visual,.service-detail-image,
  .service-image,.wide-editorial,.booking-visual,.comparison-stage,.media-open),
body .story-gallery figure > img {
  border-radius:12px;
  box-shadow:0 0 0 1px var(--raised-rim),0 4.05px 1.35px var(--raised-base),
    0 9.45px 4.05px -1.35px var(--raised-base),0 21.6px 35.1px -10.8px var(--raised-shadow);
  transition:box-shadow 240ms ease;
}
body :is(.project-image,.service-picture,.intro-visual,.service-detail-image,
  .service-image,.wide-editorial,.booking-visual) > img { border-radius:inherit; }
body :is(.project-image,.service-picture,.intro-visual,.service-detail-image,
  .service-image,.wide-editorial,.booking-visual,.comparison-stage,.media-open):hover,
body .project-open:hover .project-image,
body .story-gallery figure:hover > img {
  box-shadow:0 0 0 1px var(--raised-rim),0 4.05px 1.35px var(--raised-base),
    0 9.45px 4.05px -1.35px var(--raised-base),0 27px 43.2px -10.8px var(--raised-shadow);
  transform:none;
  scale:none;
}
body :is(.project-open,.media-open,.service-picture,.intro-visual,
  .service-detail-image,.wide-editorial,.booking-visual):hover img {
  transform:none;
  scale:none;
}
/* Preserve every existing button face/brand colour and dimensions. */
body :is(.button,.icon-button,.filter-button,.round-arrow,.project-select-trigger,
  .whatsapp-float,.media-play,.glass-link,.hero-actions .text-link,.socials a,.mobile-contact-bar a,
  button:not(.project-open):not(.media-open):not([role="option"]):not(.slider-dot)) {
  box-shadow:inset 0 1px 0 var(--raised-highlight),inset 0 -2px 0 rgba(0,0,0,.06),
    0 5px 3px var(--control-base),0 10px 18px -3px var(--raised-shadow);
}
body :is(.button,.icon-button,.filter-button,.round-arrow,.project-select-trigger,
  .whatsapp-float,.media-play,.glass-link,.hero-actions .text-link,.socials a,.mobile-contact-bar a,
  button:not(.project-open):not(.media-open):not([role="option"]):not(.slider-dot)):hover {
  box-shadow:inset 0 1px 0 var(--raised-highlight),inset 0 -2px 0 rgba(0,0,0,.06),
    0 5px 3px var(--control-base),0 14px 22px -3px var(--raised-shadow);
}
body .button { --control-base:var(--raised-base); }
body .button.secondary { --control-base:var(--raised-base); }
body :is(.filter-button.active,.filter-button[aria-pressed="true"],.media-filters button[aria-pressed="true"]) { --control-base:var(--raised-base); }
/* Match the higher specificity of existing colour-specific WhatsApp styles. */
body a[data-whatsapp][href]:not(.text-link),
body a[data-share="whatsapp"][href] {
  --control-base:rgba(57,99,74,.18);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.65),inset 0 -2px 0 rgba(0,0,0,.05),
    0 5px 3px rgba(57,99,74,.18),0 10px 18px -3px rgba(8,65,35,.12);
}
body a[data-whatsapp][href]:not(.text-link):hover,
body a[data-share="whatsapp"][href]:hover {
  box-shadow:inset 0 1px 0 rgba(255,255,255,.75),inset 0 -2px 0 rgba(0,0,0,.05),
    0 5px 3px rgba(57,99,74,.18),0 14px 22px -3px rgba(8,65,35,.15);
}
/* Pressed and unavailable controls remain recognisable; focus rules untouched. */
body :is(.button,.icon-button,.filter-button,.round-arrow,.project-select-trigger,
  .whatsapp-float,.media-play,.glass-link,.hero-actions .text-link,.socials a,.mobile-contact-bar a,
  button:not(.project-open):not(.media-open):not([role="option"]):not(.slider-dot)):active {
  box-shadow:inset 0 2px 4px rgba(0,0,0,.09),0 2px 0 var(--control-base),0 5px 10px var(--raised-shadow);
}
body :is(.button,.icon-button,.filter-button,.round-arrow,.project-select-trigger,
  .whatsapp-float,.media-play,.glass-link,.hero-actions .text-link,.socials a,.mobile-contact-bar a,
  button:not(.project-open):not(.media-open):not([role="option"]):not(.slider-dot)):disabled {
  box-shadow:inset 0 1px 0 var(--raised-highlight),0 1px 0 var(--raised-base);
}
body .slider-dot { box-shadow:inset 0 1px 0 var(--raised-highlight),0 2px 0 var(--raised-base); }
/* Fixed mobile bar keeps its existing height and touch targets. */
body .mobile-contact-bar a,
body .mobile-contact-bar a[data-whatsapp][href] {
  box-shadow:inset 0 1px 0 var(--raised-highlight),inset 0 -3px 0 rgba(0,0,0,.09),0 2px 0 var(--control-base);
}
@media (prefers-reduced-motion:reduce) {
  body :is(.project-image,.service-picture,.intro-visual,.service-detail-image,
    .service-image,.wide-editorial,.booking-visual,.comparison-stage,.media-open),
  body .story-gallery figure > img { transition:none; }
}
