/* Motion and interaction layer */
body { font-size:16px; }
/* Keep utility text readable instead of shrinking it with the viewport. */
.text-action, .btn { font-size:clamp(10px, .72vw, 12px); }
@keyframes rise-in { from { opacity:0; transform:translateY(24px); } to { opacity:1; transform:translateY(0); } }
@keyframes image-in { from { clip-path:inset(0 100% 0 0); transform:scale(1.04); } to { clip-path:inset(0); transform:scale(1); } }
@keyframes shimmer { 0%,100% { transform:translateX(-110%); } 50% { transform:translateX(210%); } }
.hero-content > * { animation:rise-in .75s cubic-bezier(.2,.7,.2,1) both; }
.hero-content .eyebrow { animation-delay:.08s; }.hero-content h1 { animation-delay:.16s; }.hero-intro { animation-delay:.25s; }.actions { animation-delay:.34s; }.hero-meta { animation-delay:.43s; }
.hero-photo { animation:image-in 1s cubic-bezier(.2,.7,.2,1) .12s both; }
.heritage-card { animation:rise-in .65s cubic-bezier(.2,.7,.2,1) .65s both; }
.btn,.contact,.footer-cta { position:relative; overflow:hidden; transition:transform .25s ease,background .25s ease; }
.btn::before,.contact::before,.footer-cta::before { content:""; position:absolute; inset:0; width:40%; background:#ffffff28; transform:translateX(-110%) skewX(-22deg); }
.btn:hover,.contact:hover,.footer-cta:hover { transform:translateY(-2px); background:#285340; }.btn:hover::before,.contact:hover::before,.footer-cta:hover::before { animation:shimmer .7s ease; }
.collection-card { transition:transform .35s ease,box-shadow .35s ease; }.collection-card:hover { transform:translateY(-7px); box-shadow:0 18px 35px #13251b30; }.collection-card:hover:after { background:linear-gradient(0deg,#07120cdc,transparent 78%); }
.round-link { transition:background .3s ease,color .3s ease,transform .3s ease; }.round-link:hover { background:var(--forest); color:white; transform:rotate(-8deg); }
.hamburger-lines { width:23px; height:16px; display:flex; flex-direction:column; justify-content:space-between; pointer-events:none; }.hamburger-lines span { display:block; width:100%; height:1.5px; background:var(--forest); transition:transform .28s ease,opacity .2s ease,width .28s ease; }.menu.is-active .hamburger-lines span:nth-child(1) { transform:translateY(7px) rotate(45deg); }.menu.is-active .hamburger-lines span:nth-child(2) { opacity:0; width:0; }.menu.is-active .hamburger-lines span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }
.testimonials figure { display:grid; grid-template-rows:auto minmax(256px, auto) auto; align-content:start; }
.testimonials blockquote { min-height:0; transition:opacity .18s ease, transform .18s ease; }
.testimonials blockquote.is-changing { opacity:0; transform:translateY(8px); }
.nav-links a, .category-toggle, .category-menu a, .search { transition:color .2s ease, border-color .2s ease, transform .2s ease; }
.category-menu a:hover { color:var(--coral); transform:translateX(4px); }
.feature-item { transition:transform .35s ease, filter .35s ease; }
.feature-item:hover { transform:translateY(-5px); filter:saturate(1.08); }
@media (max-width:900px) { .testimonials blockquote { min-height:175px; } }
@media (max-width:560px) { .testimonials blockquote { min-height:210px; } }
@media (max-width:900px) { .menu { padding:10px 0 10px 10px; } .nav-links.is-open { animation:rise-in .28s ease both; } .nav-links.is-open li { animation:rise-in .3s ease both; }.nav-links.is-open li:nth-child(2){animation-delay:.04s}.nav-links.is-open li:nth-child(3){animation-delay:.08s}.nav-links.is-open li:nth-child(4){animation-delay:.12s}.nav-links.is-open li:nth-child(5){animation-delay:.16s} }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; scroll-behavior:auto!important; } }

.feature-item { transition:transform .35s ease, filter .35s ease, box-shadow .35s ease; }
.feature-item:hover { transform:translateY(-5px); filter:saturate(1.12) contrast(1.03); box-shadow:0 18px 30px #13251b2e; }
.feature-item b i { display:inline-block; transition:transform .25s ease; }
.feature-item:hover b i { transform:translateX(5px); }

/* Preserve readable labels across large screens. */
.eyebrow { font-size:11px; }
.hero-meta span, .heritage-card span, .intro-strip p:last-child { font-size:10px; }
.feature-item span, .collection-card span { font-size:11px; }
.collection-card b { font-size:11px; }

/* Site-wide readable type scale (desktop-first). */
body { font-size:17px; line-height:1.55; }
.eyebrow { font-size:12px; letter-spacing:2px; }
.hero-intro { font-size:18px; line-height:1.7; }
.btn, .text-action { font-size:13px; letter-spacing:1.05px; }
.hero-meta b { font-size:25px; }
.hero-meta span { font-size:11px; letter-spacing:1px; }
.intro-strip { font-size:21px; }
.intro-strip p:last-child { font-size:12px; }
.collection-card span, .feature-item span { font-size:12px; }
.collection-card b { font-size:12px; }
.collection-card h3 { font-size:37px; }
.service-grid span { font-size:12px; }
.service-grid h3 { font-size:26px; }
.service-grid p, .featured-heading > p, .showroom-copy > p:not(.eyebrow), .custom-copy > p:not(.eyebrow), .craft-copy > p:not(.eyebrow) { font-size:16px; }
.feature-item b { font-size:27px; }
.quote-nav button { font-size:20px; }
.testimonials figcaption { font-size:13px; }
.testimonials figcaption b { font-size:14px; }
.showroom-details { font-size:12px; }
.newsletter label { font-size:14px; }
.newsletter input { font-size:16px; }
.footer-grid p, .footer-grid li { font-size:15px; }
.footer-grid h4, .footer-cta, .footer-bottom { font-size:12px; }
@media (max-width:900px) {
  body { font-size:16px; }
  .hero-intro { font-size:17px; }
  .service-grid p, .featured-heading > p, .showroom-copy > p:not(.eyebrow), .custom-copy > p:not(.eyebrow), .craft-copy > p:not(.eyebrow) { font-size:15px; }
}
@media (max-width:560px) {
  .eyebrow { font-size:11px; }
  .btn, .text-action { font-size:12px; }
  .collection-card h3 { font-size:34px; }
  .feature-item b { font-size:24px; }
}
