/* =====================================================================
   V16.27 — FINAL PREMIUM POLISH
   Quiet-luxury finishing layer. No structural redesign, no new animation loop.
   Focus: typography, optical rhythm, controls, surfaces, image treatment,
   accessibility and consistent micro-interactions across desktop/mobile.
   ===================================================================== */

:root{
  --se27-ink:#2c3038;
  --se27-muted:#6d737d;
  --se27-line:rgba(44,48,56,.095);
  --se27-line-warm:rgba(155,124,109,.20);
  --se27-paper:#fffdfa;
  --se27-copper:#a97f6e;
  --se27-focus:rgba(169,127,110,.34);
  --se27-shadow-sm:0 8px 24px rgba(31,35,43,.055);
  --se27-shadow-md:0 18px 52px rgba(31,35,43,.085);
  --se27-shadow-lg:0 28px 78px rgba(31,35,43,.12);
}

html{
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  font-synthesis:none;
}
body{
  -webkit-tap-highlight-color:transparent;
}

/* Better editorial wrapping without forcing new line breaks. */
h1,h2,h3,.v160-section-head h2,.se119-hero h1,.v62-page-head h1{
  text-wrap:balance;
}
p,.v160-hero-lead,.v160-section-head p,.v62-prose p,.se-local-intro p{
  text-wrap:pretty;
}

/* Selection + focus system */
::selection{background:rgba(169,127,110,.22);color:#252932}
:where(a,button,input,select,textarea,[tabindex]):focus-visible{
  outline:2px solid var(--se27-focus)!important;
  outline-offset:4px!important;
}

/* Header: more refined glass edge, no size/layout change. */
.se116-header{
  border-bottom-color:rgba(44,48,56,.075)!important;
  box-shadow:0 8px 30px rgba(31,35,43,.045)!important;
}
.se116-header::after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:-1px;
  height:1px;
  pointer-events:none;
  background:linear-gradient(90deg,transparent 4%,rgba(169,127,110,.12) 28%,rgba(169,127,110,.20) 50%,rgba(169,127,110,.12) 72%,transparent 96%);
}

/* Common buttons: tiny optical lift + icon travel. */
.v160-btn,.se124-btn,.v62-action,.v62-submit,.btn,.btn-primary,.se-button,.se-footer-primary{
  position:relative;
  isolation:isolate;
  transform:translateZ(0);
}
.v160-btn svg,.se124-btn svg,.v62-action svg,.se-footer-primary svg{
  transition:transform .24s cubic-bezier(.2,.7,.2,1)!important;
}
.v160-btn:hover svg,.se124-btn:hover svg,.v62-action:hover svg,.se-footer-primary:hover svg{
  transform:translate(2px,-1px);
}
.v160-btn:active,.se124-btn:active,.v62-action:active,.btn:active,.se-button:active{
  transform:translateY(0)!important;
}

/* Form controls: a consistent premium focus and readable surface. */
:where(input:not([type="checkbox"]):not([type="radio"]),select,textarea){
  transition:border-color .2s ease,box-shadow .2s ease,background .2s ease!important;
}
:where(input:not([type="checkbox"]):not([type="radio"]),select,textarea):focus{
  border-color:rgba(169,127,110,.42)!important;
  box-shadow:0 0 0 4px rgba(169,127,110,.09)!important;
}

/* Homepage — preserve composition, refine materials. */
.v160-hero-visual{
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.12);
}
.v160-hero-visual::before{
  border-color:rgba(255,255,255,.50)!important;
}
.v160-hero-visual img,.v160-about-photo img,.v160-practice-card img,.v160-article-image img{
  image-rendering:auto;
  backface-visibility:hidden;
}
.v160-hero-seal{
  box-shadow:0 18px 44px rgba(31,27,26,.12)!important;
  border-color:rgba(255,255,255,.72)!important;
}
.v160-practice-card{
  box-shadow:0 14px 38px rgba(24,29,31,.08);
}
.v160-practice-card::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.12);
}
.v160-article{
  border-top-color:rgba(38,42,49,.13)!important;
}
.v160-article-image{
  overflow:hidden;
  background:#e9e3dc;
}
.v160-article-image img{
  transition:transform .5s cubic-bezier(.2,.7,.2,1),filter .35s ease!important;
}
.v160-article:hover .v160-article-image img{
  transform:scale(1.022);
  filter:saturate(1.035) contrast(1.015);
}
.v160-map{
  box-shadow:var(--se27-shadow-md);
  border-color:rgba(44,48,56,.08)!important;
}
.v160-map iframe{filter:saturate(.92) contrast(1.015)}

/* Reviews — visually equal to the rest of the site, not a plug-in block. */
.v1612-review-card{
  border-color:rgba(44,48,56,.085)!important;
  box-shadow:var(--se27-shadow-sm)!important;
  transition:transform .24s ease,border-color .24s ease,box-shadow .24s ease!important;
}
.v1612-review-card:hover{
  transform:translateY(-3px);
  border-color:rgba(169,127,110,.20)!important;
  box-shadow:var(--se27-shadow-md)!important;
}

/* Inner pages: quieter white surfaces and consistent hairlines. */
.v6-inner :where(.v62-page-head,.v72-page-hero,.se119-hero,.se124-showcase,.se-local-hero){
  border-color:var(--se27-line)!important;
}
.v6-inner :where(.v62-form,.se124-showcase,.se126-calc-screen,.se-panel,.se-local-office-note){
  box-shadow:var(--se27-shadow-sm);
}
.v6-inner :where(.v62-prose,.se168-legacy-prose,.se-local-intro){
  color:var(--se27-ink);
}

/* Editorial cards / accordion / tool surfaces. */
:where(.se166-fa-btn,.calc95-tool,.calc95-category-card,.v73-logo-card){
  transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease,background .22s ease!important;
}
:where(.se166-fa-btn,.calc95-tool,.calc95-category-card,.v73-logo-card):hover{
  border-color:rgba(169,127,110,.22)!important;
  box-shadow:var(--se27-shadow-sm)!important;
}

/* Text links feel deliberate instead of default. */
:where(.v160-text-link,.v160-article-link,.se-local-breadcrumbs a,.v62-action--light){
  text-underline-offset:4px;
}
.v160-text-link svg,.v160-article-link svg{
  transition:transform .22s ease!important;
}
.v160-text-link:hover svg,.v160-article-link:hover svg{transform:translateX(2px)}

/* Quick menus — keep V16.22 geometry, add one shared material language. */
.v98-quick-actions,.se122-utility-panel,.se122-utility-launcher{
  border-color:rgba(44,48,56,.085)!important;
}
.v98-quick-action,.se122-utility-icon,.se122-utility-close{
  box-shadow:inset 0 1px 0 rgba(255,255,255,.72),0 7px 18px rgba(31,35,43,.045)!important;
}

/* Footer: premium top edge and slightly clearer hierarchy. */
.se-footer{
  position:relative;
}
.se-footer::before{
  content:"";
  position:absolute;
  left:0;right:0;top:0;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(197,171,119,.28),transparent);
  pointer-events:none;
}
.se-footer-brand>p,.se-footer-column a,.se-footer-contact>a strong{
  text-wrap:pretty;
}

/* Native scrollbar — subtle and consistent on browsers that support it. */
@supports selector(::-webkit-scrollbar){
  ::-webkit-scrollbar{width:10px;height:10px}
  ::-webkit-scrollbar-track{background:#f2efec}
  ::-webkit-scrollbar-thumb{background:#b7aaa3;border:3px solid #f2efec;border-radius:999px}
  ::-webkit-scrollbar-thumb:hover{background:#9f8a80}
}

/* Mobile/tablet: premium should mean calmer, not denser. */
@media (max-width:900px){
  .v160-practice-card,.v1612-review-card{box-shadow:0 10px 28px rgba(31,35,43,.065)}
  .v160-map{box-shadow:0 14px 38px rgba(31,35,43,.075)}
}
@media (max-width:560px){
  :where(a,button,input,select,textarea,[tabindex]):focus-visible{outline-offset:2px!important}
  .v98-quick-actions{box-shadow:0 14px 36px rgba(31,35,43,.11)!important}
  .se122-utility-panel{box-shadow:0 22px 56px rgba(31,35,43,.14)!important}
}

/* Respect reduced-motion preference everywhere this layer touches. */
@media (prefers-reduced-motion:reduce){
  .v160-btn svg,.se124-btn svg,.v62-action svg,.se-footer-primary svg,
  .v160-article-image img,.v1612-review-card,.v160-text-link svg,.v160-article-link svg{
    transition:none!important;
  }
  .v160-article:hover .v160-article-image img,.v1612-review-card:hover{transform:none!important}
}
