/* Quiet tactile actions: an ivory edge, a single light pass, a turning arrow. */
:is(.button,.service-reserve,.header-cta,.about-v5-contact-button){
  position:relative;
  isolation:isolate;
  overflow:hidden;
  min-height:48px;
  max-width:100%;
  border-radius:999px;
  font-weight:600;
  line-height:1.45;
  text-decoration:none;
  -webkit-tap-highlight-color:transparent;
  transition:transform .28s cubic-bezier(.2,.7,.2,1),box-shadow .28s ease,background .28s ease,border-color .28s ease;
}
:is(.button,.service-reserve,.header-cta,.about-v5-contact-button)::before{
  content:'';
  position:absolute;
  z-index:0;
  inset:-30% -35%;
  border-radius:inherit;
  pointer-events:none;
  background:linear-gradient(105deg,transparent 35%,#ffffff00 43%,#ffffff26 50%,#ffffff00 57%,transparent 65%);
  transform:translateX(-120%) skewX(-12deg);
  opacity:0;
}
:is(.button,.service-reserve,.header-cta,.about-v5-contact-button)>*{
  position:relative;
  z-index:1;
}
.button-dark:not(.contact .button),.about-v5-contact-button{
  border:1px solid #bfa39366;
  background:linear-gradient(135deg,#6b5144,var(--green,#59443b) 70%);
  color:#fff9f3;
  box-shadow:inset 0 1px 0 #ffffff29,0 6px 18px #48312614;
}
.button-glass:not(.contact .button){
  border:1px solid #ffffff99;
  background:linear-gradient(125deg,#f8f0e32b,#ffffff13);
  color:#fffdf8;
  -webkit-backdrop-filter:blur(18px) saturate(1.15);
  backdrop-filter:blur(18px) saturate(1.15);
  box-shadow:inset 0 1px 0 #ffffff54,0 8px 26px #21150e1a;
}
.button-outline:not(.contact .button){
  border:1px solid #ad93827d;
  background:linear-gradient(130deg,#ffffff70,#ffffff29);
  color:var(--ink,#403630);
  box-shadow:inset 0 1px 0 #ffffffa8;
}
.services .service-card .service-reserve,.services .service-card.featured .service-reserve{
  min-height:50px;
  padding:9px 10px 9px 20px;
  border:1px solid #fff8;
  background:linear-gradient(135deg,#fffaf2,#eadbd0);
  color:#49352a;
  box-shadow:inset 0 1px 0 #fff,0 5px 17px #21160f12;
  font-size:13px;
  font-weight:600;
  line-height:1.45;
}
.header-cta{
  min-height:48px;
  padding:7px 8px 7px 21px;
  border:1px solid #fff9;
  background:linear-gradient(125deg,#fffaf3,#ece1d6);
  color:#49372c;
  box-shadow:inset 0 1px 0 #fff,0 5px 18px #24180f0d;
}
.site-header.scrolled .header-cta,.page-mode .header-cta{
  border-color:#bfa39366;
  background:linear-gradient(135deg,#6b5144,var(--green,#59443b) 70%);
  color:#fff9f3;
}
:is(.button:not(.contact .button),.service-reserve,.header-cta,.about-v5-contact-button)>span[aria-hidden="true"]{
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  flex:0 0 34px;
  margin-right:0;
  border:1px solid #bba79878;
  border-radius:50%;
  line-height:1;
  transition:transform .38s cubic-bezier(.2,.7,.2,1),background .28s ease,border-color .28s ease;
}
.button-dark:not(.contact .button)>span[aria-hidden="true"],.about-v5-contact-button>span[aria-hidden="true"]{
  border-color:#ffffff45;
  background:#ffffff12;
  color:inherit;
}
.button-glass:not(.contact .button)>.button-round{
  border-color:#fff9;
  background:#faf4e9;
  color:#5c4334;
  box-shadow:inset 0 1px 0 #fff;
}
:is(.button,.service-reserve,.header-cta,.about-v5-contact-button) .ui-icon{
  width:18px;
  height:18px;
  flex:none;
  transition:transform .38s cubic-bezier(.2,.7,.2,1);
}
.button:not(.contact .button)>.ui-icon{
  box-sizing:content-box;
  padding:8px;
  border:1px solid #bba79878;
  border-radius:50%;
}
.text-link{
  position:relative;
  min-height:44px;
  gap:26px;
  border-bottom-color:#aa938366;
  font-weight:600;
  text-decoration:none;
  transition:color .22s ease,border-color .22s ease;
}
.text-link::after{
  content:'';
  position:absolute;
  left:0;
  right:0;
  bottom:-1px;
  height:1px;
  background:currentColor;
  transform:scaleX(0);
  transform-origin:left center;
  transition:transform .34s cubic-bezier(.2,.7,.2,1);
}
.text-link .ui-icon{transition:transform .3s cubic-bezier(.2,.7,.2,1)}

/* Hover is limited to precise pointers, avoiding a sticky state on touch screens. */
@media(hover:hover) and (pointer:fine){
  :is(.button,.service-reserve,.header-cta,.about-v5-contact-button):hover{
    transform:translateY(-2px);
    box-shadow:inset 0 1px 0 #ffffff45,0 10px 26px #48312623;
  }
  .button-dark:not(.contact .button):hover,.about-v5-contact-button:hover,
  .site-header.scrolled .header-cta:hover,.page-mode .header-cta:hover{
    background:linear-gradient(135deg,#735444,#4b342a 75%);
    border-color:#d1b29a91;
    color:#fff9f3;
  }
  .button-glass:not(.contact .button):hover{background:linear-gradient(125deg,#fff4e540,#ffffff21);border-color:#ffffffcf}
  .button-outline:not(.contact .button):hover{background:linear-gradient(130deg,#ffffffc2,#f2e7dc80);border-color:#9f806b}
  .services .service-card .service-reserve:hover,.services .service-card.featured .service-reserve:hover,.header-cta:hover{
    background:linear-gradient(135deg,#fffdf8,#f0dfce);
    border-color:#fff;
    color:#49352a;
  }
  :is(.button,.service-reserve,.header-cta,.about-v5-contact-button):hover::before{
    opacity:1;
    transform:translateX(120%) skewX(-12deg);
    transition:transform .82s cubic-bezier(.2,.6,.3,1),opacity .2s ease;
  }
  :is(.button,.service-reserve,.header-cta,.about-v5-contact-button):hover>span[aria-hidden="true"]{transform:rotate(-12deg)}
  :is(.button,.service-reserve,.header-cta,.about-v5-contact-button):hover>span[aria-hidden="true"]>.ui-icon{transform:rotate(12deg) translateY(-1px)}
  .button:hover>.ui-icon{transform:rotate(-8deg)}
  .text-link:hover{gap:26px;border-bottom-color:#aa938366}
  .text-link:hover::after{transform:scaleX(1)}
  .text-link:hover .ui-icon{transform:rotate(-8deg)}
}
:is(.button,.service-reserve,.header-cta,.about-v5-contact-button):focus-visible,
.services .service-card .service-reserve:focus-visible{
  outline:2px solid #fff9f1;
  outline-offset:3px;
  box-shadow:0 0 0 5px #59443b,0 8px 22px #48312624;
}
.text-link:focus-visible{outline:2px solid var(--accent,#94644f);outline-offset:5px}
.text-link:focus-visible::after{transform:scaleX(1)}
:is(.button,.service-reserve,.header-cta,.about-v5-contact-button):active{transform:translateY(0) scale(.985)}
:is(.button,.service-reserve,.header-cta,.about-v5-contact-button):disabled,
:is(.button,.service-reserve,.header-cta,.about-v5-contact-button)[aria-disabled="true"]{transform:none;box-shadow:none;opacity:.62;cursor:default}

@media(max-width:760px){
  :is(.button,.service-reserve,.about-v5-contact-button){min-height:48px;font-size:12px;line-height:1.45}
  .button:not(.contact .button){gap:20px;padding:7px 8px 7px 20px}
  .services .service-card .service-reserve,.services .service-card.featured .service-reserve{min-height:49px;padding:8px 9px 8px 18px;font-size:13px}
  .about-v5-contact-button{min-height:50px;padding:8px 10px 8px 20px;gap:23px}
  :is(.button:not(.contact .button),.service-reserve,.about-v5-contact-button)>span[aria-hidden="true"]{width:32px;height:32px;flex-basis:32px}
  .button:not(.contact .button)>.ui-icon{padding:7px}
  .text-link,.text-link:hover{min-height:44px;gap:20px}
}
@media(prefers-reduced-motion:reduce){
  :is(.button,.service-reserve,.header-cta,.about-v5-contact-button,.text-link),
  :is(.button,.service-reserve,.header-cta,.about-v5-contact-button,.text-link)::before,
  :is(.button,.service-reserve,.header-cta,.about-v5-contact-button,.text-link)::after,
  :is(.button,.service-reserve,.header-cta,.about-v5-contact-button,.text-link)>span,
  :is(.button,.service-reserve,.header-cta,.about-v5-contact-button,.text-link) .ui-icon{animation:none!important;transition:none!important;transform:none!important}
  :is(.button,.service-reserve,.header-cta,.about-v5-contact-button)::before{display:none}
}
