/* UNICUS 2026 · Craft and Motion v5
   Editorial interactions, zero decorative arrows on quote buttons,
   source-curated venue photography and an accessible gallery. */
:root{
  --motion-soft:cubic-bezier(.22,1,.36,1);
  --motion-swift:cubic-bezier(.2,.8,.2,1);
  --bronze-focus:#dbb981;
}
/* Quote and contact buttons: calm, centered, no glyph box. */
.btn-solid,.header .btn-solid,.hero-v3 .btn-solid,.cta .btn-solid{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  gap:0;
  padding:16px 28px;
  min-width:188px;
  min-height:54px;
  box-shadow:0 4px 12px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.16), inset 0 1px 0 rgba(255,255,255,.31);
  transition:background-color .22s var(--motion-swift), color .22s var(--motion-swift),transform .24s var(--motion-swift), box-shadow .24s var(--motion-swift);
}
.header .btn-solid{min-width:155px;min-height:45px;padding:12px 18px}
.hero-v3 .btn-solid,.cta .btn-solid{min-width:204px;min-height:56px;padding:17px 30px}
.btn-solid .button-label{
  display:block;
  font-size:12px;
  transform:none!important;
  white-space:normal;
  margin:auto;
}
.btn-solid:hover,.header .btn-solid:hover,.hero-v3 .btn-solid:hover,.cta .btn-solid:hover{
  transform:translateY(-2px);
  box-shadow:0 10px 22px rgba(0,0,0,.22),0 2px 5px rgba(0,0,0,.09),inset 0 1px 0 rgba(255,255,255,.4);
}
.btn-solid:active,.hero-v3 .btn-solid:active,.cta .btn-solid:active,.header .btn-solid:active{
  transform:translateY(1px) scale(.989);
  box-shadow:0 2px 6px rgba(0,0,0,.12), inset 0 2px 4px rgba(0,0,0,.1);
}
.form-submit{justify-content:center;min-width:236px}
.header .main-nav{align-items:center;gap:clamp(17px,1.9vw,32px)}
.header .main-nav a{
  position:relative;
  display:inline-flex;
  align-items:center;
  min-height:48px;
  transform:translateY(0);
  transition:color .23s var(--motion-swift),opacity .23s var(--motion-swift), transform .25s var(--motion-soft);
}
.header .main-nav a::after{
  content:"";
  position:absolute;
  bottom:8px;
  left:0;right:0;
  height:1px;
  transform:scaleX(0);
  transform-origin:left center;
  background:var(--atelier-gold);
  transition:transform .3s var(--motion-soft);
}
.header .main-nav a:hover{
  color:#e6d3b3;
  transform:translateY(-2px);
}
.header .main-nav a:hover::after,
.header .main-nav a[aria-current="page"]::after,
.header .main-nav a:focus-visible::after{transform:scaleX(1)}
.header .main-nav a:focus-visible{outline:2px solid var(--bronze-focus);outline-offset:5px}
.header .main-nav a[aria-current="page"]{color:#e7d2b4;opacity:1}
/* Logo: responsive to the pointer, never recolor or modify the original file. */
.header .brand,.footer-identity>a:first-child{
  position:relative;
  display:inline-flex;
  transform-origin:center;
  isolation:isolate;
}
.header .brand img,.footer-identity>a:first-child img{
  will-change:transform;
  transition:transform .4s var(--motion-soft),filter .4s var(--motion-soft);
  transform:translateY(0) scale(1);
}
.header .brand:is(:hover,:focus-visible) img,
.footer-identity>a:first-child:is(:hover,:focus-visible) img{
  transform:translateY(-2px) scale(1.043);
  filter:drop-shadow(0px 0px 11px rgba(204,166,95,.40));
}
.header .brand::after{
  content:"";
  position:absolute;
  left:16%;right:16%;bottom:0;
  height:1px;
  background:linear-gradient(90deg,transparent,var(--atelier-gold),transparent);
  opacity:0;transform:scaleX(.25);
  transition:opacity .26s ease,transform .32s var(--motion-soft);
}
.header .brand:is(:hover,:focus-visible)::after{opacity:.75;transform:scaleX(1)}
/* Photo-led cards: intentional zoom and caption lift, not card templates. */
.service-tile .tile-text{
  transition:transform .42s var(--motion-soft);
}
.service-tile:is(:hover,:focus-visible) .tile-text{transform:translateY(-8px)}
.service-tile:is(:hover,:focus-visible) img.full-image{transform:scale(1.055)}
.service-tile .tile-glyph{transition:transform .24s var(--motion-swift),background-color .24s var(--motion-swift)}
.service-tile:is(:hover,:focus-visible) .tile-glyph{transform:translateX(3px)}
.service-tile:focus-visible{outline:3px solid var(--bronze-focus);outline-offset:4px}
/* Service route: the name and a hairline are the hover signature. */
.service-row{
  position:relative;
  overflow:hidden;
  isolation:isolate;
}
.service-row:before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:0;
  background:rgba(154,133,95,.058);
  opacity:0;
  transition:opacity .23s var(--motion-swift);
}
.service-row:after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:0;height:1px;
  background:#9e8b65;
  transform:scaleX(0);
  transform-origin:left center;
  transition:transform .42s var(--motion-soft);
}
.service-row:is(:hover,:focus-visible):before{opacity:1}
.service-row:is(:hover,:focus-visible):after{transform:scaleX(1)}
.service-row h3{transition:transform .32s var(--motion-soft),color .28s var(--motion-swift)}
.service-row:is(:hover,:focus-visible) h3{transform:translateX(9px);color:#7b6342}
.service-row:is(:hover,:focus-visible) .service-glyph{transform:translateX(4px);background:#263027;color:#e6d3b2}
.service-row:focus-visible{outline:2px solid var(--bronze-focus);outline-offset:3px}
/* Restaurant photography sourced and manually selected: varying editorial
   sizes create an art-directed gallery, not a uniform grid of AI cards. */
.gallery-grid{
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:clamp(12px,1.8vw,27px);
  align-items:stretch;
  grid-auto-flow:row dense;
}
.gallery-card{
  display:block;
  width:100%;
  grid-column:span 4;
  aspect-ratio:4/5;
  min-height:0;
  overflow:hidden;
  isolation:isolate;
  border-radius:0;
}
.gallery-card:nth-child(7n+1){
  grid-column:span 6;
  aspect-ratio:1.26;
}
.gallery-card:nth-child(7n+2),.gallery-card:nth-child(7n+3){
  grid-column:span 3;
  aspect-ratio:.64;
}
.gallery-card:nth-child(7n+4),.gallery-card:nth-child(7n+5),.gallery-card:nth-child(7n+6){
  grid-column:span 4;
  aspect-ratio:4/5;
}
.gallery-card:nth-child(7n+7){
  grid-column:span 12;
  aspect-ratio:2.45;
}
.gallery-card:nth-child(7n+7) .full-image{object-position:center 43%}
.gallery-card .full-image{object-fit:cover;transition:transform .65s var(--motion-soft),filter .5s var(--motion-soft)}
.gallery-card:is(:hover,:focus-visible) .full-image{transform:scale(1.05);filter:saturate(1.06)}
.gallery-card>span{font-size:11px;font-weight:500;letter-spacing:.035em}
.gallery-card:focus-visible{outline:3px solid var(--bronze-focus);outline-offset:3px}
.gallery-card[hidden]{display:none!important}
/* Mobile menu feels crafted, while retaining accessibility and instant keyboard focus. */
.mobile-nav>a{
  position:relative;
  padding:15px 0;
  transition:padding-left .24s var(--motion-swift),color .22s var(--motion-swift);
}
.mobile-nav>a:is(:hover,:focus-visible){padding-left:8px;color:var(--atelier-gold)}
.mobile-nav>a[aria-current="page"]{color:var(--atelier-gold)}
.mobile-nav:not([hidden])>a{animation:unicus-menu-row .32s var(--motion-soft) both}
.mobile-nav:not([hidden])>a:nth-of-type(2){animation-delay:.035s}
.mobile-nav:not([hidden])>a:nth-of-type(3){animation-delay:.06s}
.mobile-nav:not([hidden])>a:nth-of-type(4){animation-delay:.085s}
.mobile-nav:not([hidden])>a:nth-of-type(5){animation-delay:.11s}
.mobile-nav:not([hidden])>a:nth-of-type(6){animation-delay:.13s}
.mobile-nav:not([hidden])>a:nth-of-type(7){animation-delay:.15s}
.mobile-nav:not([hidden])>a:nth-of-type(8){animation-delay:.17s}
@keyframes unicus-menu-row{
  from{opacity:.2;transform:translateY(5px)}
  to{opacity:1;transform:translateY(0)}
}
@media(max-width:1080px){
 .header .main-nav a{min-height:44px}
 .gallery-grid{gap:16px}
}
@media(max-width:760px){
 .gallery-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:14px}
 .gallery-card{grid-column:span 3!important;aspect-ratio:4/5}
 .gallery-card:nth-child(5n+1){grid-column:span 6!important;aspect-ratio:1.58}
 .gallery-card:nth-child(7n+7){grid-column:span 6!important;aspect-ratio:1.58}
 .gallery-card .full-image{object-position:center}
}
@media(max-width:480px){
 .gallery-grid{gap:10px}
 .gallery-card>span{font-size:9px;padding:36px 12px 13px}
 .gallery-card .gallery-glyph{width:28px;height:28px}
 .header .brand img{max-width:115px}
 .btn-solid .button-label{font-size:12px}
 .hero-v3 .btn-solid,.cta .btn-solid{min-width:0}
}
@media(prefers-reduced-motion:reduce){
 .header .brand img,.footer-identity>a:first-child img,
 .header .brand::after,.header .main-nav a,
 .header .main-nav a::after,.service-tile .tile-text,
 .service-row::before,.service-row::after,.service-row h3,
 .gallery-card .full-image,.mobile-nav>a,.ui-arrow{
  transition:none!important;animation:none!important;transform:none!important;
 }
 .mobile-nav:not([hidden])>a{animation:none!important}
 .service-tile:is(:hover,:focus-visible) .tile-text,
 .service-tile:is(:hover,:focus-visible) img.full-image,
 .service-row:is(:hover,:focus-visible) h3{transform:none!important}
}
/* v5 visual QA: keep the mobile header focused on logo + menu. */
@media(max-width:1080px){
  .header .header-right>.btn-solid{display:none!important}
}
@media(prefers-reduced-motion:no-preference){
 .hero-v3 .hero-title{animation-duration:.86s}
 .inner-hero .inner-text .display{animation-duration:.82s}
}

/* Preserve nav state when motion is reduced: no transition, but don't reveal
   underline on every item. */
@media(prefers-reduced-motion:reduce){
 .header .main-nav a::after{transform:scaleX(0)!important}
 .header .main-nav a:hover::after,
 .header .main-nav a[aria-current="page"]::after,
 .header .main-nav a:focus-visible::after{transform:scaleX(1)!important}
}

/* Gallery V5: full-width features must be landscape scenes, never cropped
   portrait food photography. Keep the rest in honest editorial portrait ratios. */
.gallery-card:nth-child(n){grid-column:span 4;aspect-ratio:4/5}
.gallery-card:nth-child(7n+1){grid-column:span 12;aspect-ratio:2.2}
.gallery-card:nth-child(7n+7){grid-column:span 4;aspect-ratio:4/5}
@media(max-width:760px){
 .gallery-card:nth-child(n){grid-column:span 3!important;aspect-ratio:4/5!important}
 .gallery-card:nth-child(7n+1){grid-column:span 6!important;aspect-ratio:1.6!important}
 .gallery-card:nth-child(7n+7){grid-column:span 3!important;aspect-ratio:4/5!important}
}


/* Curated 25-photo gallery: wide frames only for landscape event photographs.
   Portrait food and staff pictures never stretch into letterbox panels. */
.gallery-card:nth-child(n){grid-column:span 4;aspect-ratio:4/5}
.gallery-card[data-src$="/event-canapes.webp"],
.gallery-card[data-src$="/event-platter.webp"],
.gallery-card[data-src$="/venue-wide.webp"]{
 grid-column:span 12;
 aspect-ratio:2.35;
}
@media(max-width:760px){
 .gallery-card:nth-child(n){grid-column:span 3!important;aspect-ratio:4/5!important}
 .gallery-card[data-src$="/event-canapes.webp"],
 .gallery-card[data-src$="/event-platter.webp"],
 .gallery-card[data-src$="/venue-wide.webp"]{
  grid-column:span 6!important;
  aspect-ratio:1.65!important;
 }
}
