/* =========================================================================
   AS Hair Salon — main stylesheet
   Colour + font tokens are defined in :root and can be overridden by the
   Customizer (see functions.php -> ashs_customizer_css()).
   ========================================================================= */

:root{
  --bone:    #f4efe6;
  --cream:   #faf7f1;
  --espresso:#20180f;
  --cocoa:   #3a2c1e;
  --clay:    #20180f;
  --accent:  #b5734f;
  --sand:    #c9b79c;
  --sage:    #7c7a63;

  --font-display: 'Fraunces', Georgia, 'Times New Roman', serif;
  --font-sans:    'Manrope', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;

  --wrap: 80rem;      /* 1280px */
  --ease: cubic-bezier(.16,1,.3,1);
}

/* ---------- reset-ish ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
html,body{ -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
body{
  margin:0;
  background:var(--cream);
  color:var(--espresso);
  font-family:var(--font-sans);
  font-weight:400;
  line-height:1.6;
  overflow-x:hidden;
}
img{ display:block; max-width:100%; height:auto; }
a{ color:inherit; text-decoration:none; }
h1,h2,h3,h4,p,figure,blockquote,ul,ol{ margin:0; }
ul{ list-style:none; padding:0; }
button{ font-family:inherit; cursor:pointer; }
::selection{ background:var(--accent); color:var(--cream); }

/* skip link (accessibility) */
.skip-link{
  position:absolute; left:-9999px; top:0; z-index:200;
  background:var(--espresso); color:var(--cream);
  padding:.75rem 1.25rem; border-radius:0 0 .5rem 0;
}
.skip-link:focus{ left:0; }

/* ---------- helpers ---------- */
.wrap{ width:100%; max-width:var(--wrap); margin:0 auto; padding-left:1.5rem; padding-right:1.5rem; }
.font-display{ font-family:var(--font-display); }
.italic{ font-style:italic; }
.accent{ color:var(--accent); }
.visually-hidden{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

/* grain overlay */
.grain::before{
  content:''; position:fixed; inset:0; z-index:60; pointer-events:none;
  opacity:.05; mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* scroll progress bar */
#progress{ position:fixed; top:0; left:0; height:2px; width:0; background:var(--clay); z-index:70; }

/* ---------- reveal on scroll ---------- */
.reveal{ opacity:0; transform:translateY(28px); transition:opacity 1s var(--ease), transform 1s var(--ease); }
.reveal.in{ opacity:1; transform:none; }
.reveal[data-delay="1"]{ transition-delay:.09s; }
.reveal[data-delay="2"]{ transition-delay:.18s; }
.reveal[data-delay="3"]{ transition-delay:.27s; }
.reveal[data-delay="4"]{ transition-delay:.36s; }

/* word mask headline */
.word{ display:inline-block; overflow:hidden; vertical-align:top; }
.word>span{ display:inline-block; transform:translateY(110%); transition:transform 1.1s var(--ease); }
.word.in>span{ transform:none; }

/* animated link underline */
.link-underline{ position:relative; }
.link-underline::after{
  content:''; position:absolute; left:0; bottom:-2px; height:1px; width:100%;
  background:currentColor; transform:scaleX(0); transform-origin:right;
  transition:transform .5s var(--ease);
}
.link-underline:hover::after{ transform:scaleX(1); transform-origin:left; }

/* button with fill-up hover */
.btn{
  display:inline-flex; align-items:center; gap:.75rem;
  border-radius:999px; padding:1rem 2rem; font-weight:500; font-size:1rem;
  border:1px solid var(--espresso); background:transparent; color:var(--espresso);
  position:relative; overflow:hidden; z-index:0; line-height:1;
  transition:color .5s var(--ease);
}
.btn::before{
  content:''; position:absolute; inset:0; z-index:-1; background:var(--espresso);
  transform:translateY(101%); transition:transform .5s var(--ease);
}
.btn:hover::before{ transform:translateY(0); }
.btn:hover{ color:var(--cream); }
.btn .arrow{ transition:transform .5s var(--ease); }
.btn:hover .arrow{ transform:translateX(4px); }
.btn--sm{ padding:.65rem 1.5rem; font-size:.875rem; }
.btn--light{ border-color:var(--hero-text); color:var(--hero-text); }
.btn--light::before{ background:var(--hero-text); }
.btn--light:hover{ color:var(--espresso); }
.btn--solid{ background:var(--cream); border-color:var(--cream); color:var(--espresso); }
.btn--solid::before{ background:var(--espresso); }
.btn--solid:hover{ color:var(--cream); }

/* section eyebrow label */
.eyebrow{ font-size:.8rem; text-transform:uppercase; letter-spacing:.3em; color:var(--clay); }

/* =========================================================================
   NAV
   ========================================================================= */
.site-header{
  position:fixed; inset-inline:0; top:0; z-index:50;
  background:rgba(250,247,241,.8); backdrop-filter:blur(12px);
  transition:box-shadow .5s var(--ease), padding .4s var(--ease);
}
.site-header.scrolled{ box-shadow:0 1px 0 rgba(32,24,15,.10); }
.site-header .nav{
  display:flex; align-items:center; justify-content:space-between;
  max-width:var(--wrap); margin:0 auto; padding:1.25rem 1.5rem;
  transition:padding .4s var(--ease);
}
.site-header.scrolled .nav{ padding-top:.5rem; padding-bottom:.5rem; }
.brand{ font-family:var(--font-display); font-size:1.5rem; letter-spacing:-.04em; line-height:1; }
.brand .dot{ color:var(--accent); }
.nav-menu{ display:none; align-items:center; gap:2.25rem; font-size:.9rem; font-weight:500; }
.nav-menu a{ padding:.25rem 0; }
.nav-cta{ display:none; }
.burger{ background:none; border:0; padding:.25rem; }
.burger span{ display:block; width:1.75rem; height:1px; background:var(--espresso); transition:transform .4s var(--ease), opacity .3s; }
.burger span+span{ margin-top:6px; }

/* mobile menu overlay */
.mobile-menu{
  position:fixed; inset:0; z-index:40; background:var(--espresso); color:var(--cream);
  transform:translateY(-100%); transition:transform .5s var(--ease);
  display:flex; flex-direction:column; justify-content:center; gap:1.5rem;
  padding:2rem; font-family:var(--font-display); font-size:clamp(2rem,10vw,3rem);
}
.mobile-menu.open{ transform:translateY(0); }
.mobile-menu a.accent{ color:var(--accent); }
.mobile-menu li{ list-style:none; }
.mobile-menu a{ display:block; }
body.menu-open{ overflow:hidden; }

/* Menu items output by wp_nav_menu (footer location) render as bare <li>. */
.footer-col li{ list-style:none; }
.footer-col li a{ display:block; padding:.15rem 0; }

@media(min-width:768px){
  .nav-menu{ display:flex; }
  .nav-cta{ display:inline-flex; }
  .burger{ display:none; }
}

/* =========================================================================
   HERO
   ========================================================================= */
.hero{ position:relative; display:flex; align-items:flex-end; min-height:100vh; min-height:100svh; overflow:hidden; }
.hero__bg{ position:absolute; inset:0; }
.hero__bg img{ width:100%; height:100%; object-fit:cover; }
.hero__bg::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(to top, rgba(32,24,15,.8), rgba(32,24,15,.2) 55%, rgba(32,24,15,.4));
}
.kenburns{ animation:kb 14s ease-in-out infinite alternate; }
@keyframes kb{ from{ transform:scale(1.06); } to{ transform:scale(1.14); } }

.hero__badge{
  position:absolute; right:1.5rem; top:7rem; z-index:10; max-width:190px;
  border:1px solid rgba(250,247,241,.25); background:rgba(250,247,241,.1);
  backdrop-filter:blur(12px); border-radius:1rem; padding:1rem; color:var(--hero-text);
  display:none;
}
.hero__badge .label{ font-size:.7rem; text-transform:uppercase; letter-spacing:.2em; color:currentColor; opacity:.7; }
.hero__badge .big{ font-family:var(--font-display); font-size:1.875rem; line-height:1.1; }
.hero__badge .sub{ margin-top:.25rem; font-size:.7rem; color:currentColor; opacity:.7; }

.hero__inner{ position:relative; z-index:10; width:100%; max-width:var(--wrap); margin:0 auto; padding:0 1.5rem 4rem; color:var(--hero-text); }
.hero__eyebrow{ display:flex; align-items:center; gap:.75rem; margin-bottom:1.5rem; font-size:.8rem; text-transform:uppercase; letter-spacing:.3em; color:var(--hero-text); opacity:.8; }
.hero__eyebrow .rule{ display:inline-block; height:1px; width:2.5rem; background:currentColor; opacity:.75; }
.hero__title{ font-family:var(--font-display); color:var(--hero-text); font-weight:400; line-height:.92; letter-spacing:-.04em; font-size:clamp(3.25rem,15vw,9rem); }
.hero__title .line{ display:block; }
.hero__title .line.italic{ font-style:italic; font-weight:300; }
.hero__row{ margin-top:2rem; display:flex; flex-direction:column; align-items:flex-start; gap:1.5rem; }
.hero__lead{ max-width:28rem; font-size:1.125rem; line-height:1.7; color:var(--hero-text); opacity:.85; }

@media(min-width:768px){
  .hero__badge{ display:block; }
  .hero__inner{ padding:0 2.5rem 6rem; }
  .hero__eyebrow{ font-size:.85rem; }
  .hero__row{ flex-direction:row; align-items:flex-end; justify-content:space-between; }
}

/* =========================================================================
   MARQUEE
   ========================================================================= */
.marquee{ overflow:hidden; border-top:1px solid rgba(32,24,15,.1); border-bottom:1px solid rgba(32,24,15,.1); background:var(--bone); padding:1.25rem 0; }
.marquee__track{ display:flex; width:max-content; align-items:center; gap:2.5rem; white-space:nowrap; font-family:var(--font-display); font-size:clamp(1.5rem,4vw,1.875rem); animation:marquee 32s linear infinite; }
.marquee:hover .marquee__track{ animation-play-state:paused; }
.marquee__group{ display:flex; align-items:center; gap:2.5rem; }
.marquee__sep{ height:1.5rem; width:1.5rem; color:rgba(32,24,15,.45); flex-shrink:0; }
@keyframes marquee{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }

/* =========================================================================
   PHILOSOPHY
   ========================================================================= */
.philosophy{ max-width:var(--wrap); margin:0 auto; padding:6rem 1.5rem; }
.philosophy__grid{ display:grid; gap:3.5rem; }
.philosophy__media{ position:relative; margin-top:2rem; overflow:hidden; border-radius:2rem; }
.philosophy__media img{ height:420px; width:100%; object-fit:cover; transition:transform 1.2s var(--ease); }
.philosophy__media:hover img{ transform:scale(1.05); }
.philosophy__title{ font-family:var(--font-display); font-weight:400; letter-spacing:-.04em; line-height:1.05; font-size:clamp(2.25rem,6vw,3.75rem); }
.philosophy__title .soft{ font-style:italic; font-weight:300; color:var(--cocoa); }
.philosophy__body{ margin-top:2rem; max-width:36rem; font-size:1.125rem; line-height:1.7; color:rgba(58,44,30,.9); }

.stats{ margin-top:3rem; display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; border-top:1px solid rgba(32,24,15,.1); padding-top:2.5rem; }
.stats .num{ font-family:var(--font-display); font-size:clamp(2.25rem,5vw,3rem); line-height:1; }
.stats .cap{ margin-top:.25rem; font-size:.875rem; color:rgba(58,44,30,.7); }

@media(min-width:768px){
  .philosophy{ padding:9rem 2.5rem; }
  .philosophy__grid{ grid-template-columns:5fr 7fr; align-items:start; }
  .philosophy__copy{ padding-left:2rem; }
}

/* =========================================================================
   SERVICES
   ========================================================================= */
.services{ background:var(--espresso); color:var(--cream); }
.services__inner{ max-width:var(--wrap); margin:0 auto; padding:6rem 1.5rem; }
.services__head{ display:flex; flex-direction:column; gap:1.5rem; }
.services__title{ font-family:var(--font-display); font-weight:400; letter-spacing:-.04em; line-height:1; font-size:clamp(3rem,8vw,4.5rem); }
.services__title .soft{ font-style:italic; font-weight:300; }
.services__note{ max-width:24rem; color:rgba(250,247,241,.7); }
.services__list{ margin-top:4rem; border-top:1px solid rgba(250,247,241,.12); border-bottom:1px solid rgba(250,247,241,.12); }
.service-row{
  display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:1rem;
  padding:1.75rem 0; border-top:1px solid rgba(250,247,241,.12);
  transition:background .5s var(--ease);
}
.service-row:first-child{ border-top:0; }
.service-row:hover{ background:rgba(250,247,241,.03); }
.service-row .idx{ font-family:var(--font-display); font-size:1.125rem; color:rgba(250,247,241,.4); }
.service-row h3{ font-family:var(--font-display); font-weight:400; letter-spacing:-.04em; font-size:1.5rem; transition:transform .5s var(--ease); }
.service-row:hover h3{ transform:translateX(8px); }
.service-row .desc{ margin-top:.25rem; font-size:.875rem; color:rgba(250,247,241,.55); }
.service-row .price{ white-space:nowrap; font-size:.875rem; color:rgba(250,247,241,.7); }

@media(min-width:768px){
  .services__inner{ padding:8rem 2.5rem; }
  .services__head{ flex-direction:row; align-items:flex-end; justify-content:space-between; }
  .service-row{ gap:2rem; padding-left:1rem; padding-right:1rem; }
  .service-row h3{ font-size:2.25rem; }
  .service-row .price{ font-size:1rem; }
}

/* =========================================================================
   WORK / GALLERY
   ========================================================================= */
.work{ max-width:var(--wrap); margin:0 auto; padding:6rem 1.5rem; }
.work__head{ margin-bottom:3.5rem; display:flex; flex-direction:column; gap:1rem; }
.work__title{ margin-top:.75rem; font-family:var(--font-display); font-weight:400; letter-spacing:-.04em; font-size:clamp(3rem,8vw,4.5rem); }
.work__note{ max-width:20rem; color:rgba(58,44,30,.7); }
.work__grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:1rem; }
.work-card{ position:relative; overflow:hidden; border-radius:1rem; }
.work-card img{ height:14rem; width:100%; object-fit:cover; transition:transform 1.4s ease-out; }
.work-card:hover img{ transform:scale(1.05); }
.work-card figcaption{
  position:absolute; bottom:1rem; left:1rem; border-radius:999px;
  background:rgba(250,247,241,.9); color:var(--espresso); padding:.375rem 1rem;
  font-size:.875rem; font-weight:500; opacity:0; transform:translateY(8px);
  transition:opacity .5s var(--ease), transform .5s var(--ease);
}
.work-card:hover figcaption{ opacity:1; transform:none; }

@media(min-width:768px){
  .work{ padding:8rem 2.5rem; }
  .work__head{ flex-direction:row; align-items:flex-end; justify-content:space-between; }
  .work__grid{ grid-template-columns:repeat(4,1fr); gap:1.25rem; }
  .work-card img{ height:100%; }
  .work-card--wide{ grid-column:span 2; }
  .work-card--tall{ grid-row:span 2; }
  .work-card--wide img,.work-card--tall img{ min-height:18rem; }
}

/* =========================================================================
   VOICES / TESTIMONIALS
   ========================================================================= */
.voices{ background:var(--bone); }
.voices__inner{ max-width:64rem; margin:0 auto; padding:6rem 1.5rem; text-align:center; }
.voices__quote{ margin-top:2.5rem; }
.voices__quote blockquote{ font-family:var(--font-display); font-weight:400; letter-spacing:-.04em; line-height:1.3; font-size:clamp(1.6rem,5vw,3rem); transition:opacity .5s; }
.voices__quote figcaption{ margin-top:2rem; font-size:.875rem; text-transform:uppercase; letter-spacing:.25em; color:rgba(58,44,30,.7); transition:opacity .5s; }
.voices__dots{ margin-top:2.5rem; display:flex; align-items:center; justify-content:center; gap:.75rem; }
.voices__dots button{ height:.5rem; width:.5rem; border:0; padding:0; border-radius:999px; background:rgba(58,44,30,.25); transition:all .5s var(--ease); }
.voices__dots button.active{ width:2rem; background:var(--clay); }
@media(min-width:768px){ .voices__inner{ padding:9rem 1.5rem; } }

/* =========================================================================
   BOOK
   ========================================================================= */
.book{ position:relative; overflow:hidden; background:var(--espresso); color:var(--cream); }
.book__bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.2; pointer-events:none; }
.book__inner{ position:relative; max-width:var(--wrap); margin:0 auto; display:grid; gap:4rem; padding:6rem 1.5rem; }
.book__title{ font-family:var(--font-display); font-weight:400; letter-spacing:-.04em; line-height:1; font-size:clamp(3rem,8vw,4.5rem); }
.book__title .soft{ font-style:italic; font-weight:300; }
.book__lead{ margin-top:1.5rem; max-width:28rem; color:rgba(250,247,241,.75); }
.book__facts{ margin-top:3rem; display:flex; flex-direction:column; gap:1.5rem; color:rgba(250,247,241,.85); }
.fact{ display:flex; align-items:flex-start; gap:1rem; }
.fact .rule{ margin-top:.75rem; height:1px; width:1.25rem; flex-shrink:0; background:rgba(250,247,241,.5); }
.fact .k{ font-weight:500; }
.fact .v{ color:rgba(250,247,241,.6); }

/* form */
.book-form{ align-self:start; border:1px solid rgba(250,247,241,.15); background:rgba(250,247,241,.04); backdrop-filter:blur(6px); border-radius:1.5rem; padding:2rem; }
.book-form .grid{ display:grid; gap:1.5rem; }
.book-form .row2{ display:grid; gap:1.5rem; }
.field{ display:block; }
.field > span{ font-size:.75rem; text-transform:uppercase; letter-spacing:.2em; color:rgba(250,247,241,.6); }
.field .req{ color:var(--accent); }
.field input,.field select,.field textarea{
  margin-top:.5rem; width:100%; border:0; border-bottom:1px solid rgba(250,247,241,.25);
  background:transparent; padding:.5rem 0; color:var(--cream); font-family:inherit; font-size:1rem;
  outline:none; transition:border-color .3s;
}
.field input::placeholder,.field textarea::placeholder{ color:rgba(250,247,241,.4); }
.field input:focus,.field select:focus,.field textarea:focus{ border-color:rgba(250,247,241,.7); }
.field select option{ color:var(--espresso); }
.field textarea{ resize:none; }
.book-form .note-label{ text-transform:none; letter-spacing:normal; }
.form-msg{ text-align:center; font-size:.875rem; color:var(--accent); }
.form-msg.hidden{ display:none; }
.form-msg.ok{ color:var(--sage); }
.book-form button[type=submit]{ margin-top:.5rem; width:100%; justify-content:center; }
.book-form.is-sending{ opacity:.7; pointer-events:none; }

@media(min-width:768px){
  .book__inner{ grid-template-columns:1fr 1fr; gap:4rem; padding:8rem 2.5rem; }
  .book-form{ padding:2.5rem; }
  .book-form .row2{ grid-template-columns:1fr 1fr; }
}

/* =========================================================================
   FOOTER
   ========================================================================= */
.site-footer{ background:var(--cream); }
.site-footer__inner{ max-width:var(--wrap); margin:0 auto; padding:4rem 1.5rem; }
.site-footer__top{ display:flex; flex-direction:column; align-items:flex-start; gap:2.5rem; border-bottom:1px solid rgba(32,24,15,.1); padding-bottom:3rem; }
.site-footer .brand{ font-size:clamp(3rem,8vw,4.5rem); }
.footer-cols{ display:flex; flex-wrap:wrap; gap:2rem 3rem; font-size:.875rem; align-items:flex-start; }
.footer-col{ min-width:140px; }
.footer-col p.head,
.footer-col .head,
.footer-col .widget-title{ text-transform:uppercase; letter-spacing:.2em; color:rgba(58,44,30,.5); margin:0 0 .5rem; font-size:.8rem; font-weight:500; }
.footer-col a{ display:block; padding:.15rem 0; color:inherit; opacity:.85; transition:opacity .3s; }
.footer-col a:hover{ opacity:1; }
/* Navigation Menu widget + block list markup inside a footer column */
.footer-col ul{ list-style:none; margin:0; padding:0; }
.footer-col li{ list-style:none; }
.footer-col .menu,
.footer-col .wp-block-navigation,
.footer-col .wp-block-navigation__container{ display:block; gap:0; }
.footer-col .wp-block-navigation a,
.footer-col .wp-block-list a,
.footer-col .menu a{ display:block; padding:.15rem 0; }
.site-footer__bottom{ display:flex; flex-direction:column; gap:.75rem; padding-top:1.5rem; font-size:.875rem; color:rgba(58,44,30,.6); }
.footer-widgets{ display:grid; gap:2rem; padding:2.5rem 0; font-size:.9rem; }
.footer-widgets .head{ text-transform:uppercase; letter-spacing:.2em; color:rgba(58,44,30,.5); margin-bottom:.5rem; font-size:.8rem; }
.footer-widgets a{ text-decoration:none; }
.footer-widgets ul{ list-style:none; }
@media(min-width:768px){ .footer-widgets{ grid-template-columns:repeat(3,1fr); } }

@media(min-width:768px){
  .site-footer__inner{ padding:4rem 2.5rem; }
  .site-footer__top{ flex-direction:row; justify-content:space-between; }
  .site-footer__bottom{ flex-direction:row; justify-content:space-between; }
}

/* =========================================================================
   Generic page / post content (for non-front pages)
   ========================================================================= */

/* Interior pages are all one cream colour, so — unlike the one-page front
   layout with its coloured sections — the fixed header needs a solid
   background and the header/footer need hairline separators to read as
   distinct regions. Scoped to :not(.home) so the front page keeps its
   translucent "glass" header over the hero. */
body:not(.home) .site-header{ background:var(--cream); border-bottom:1px solid rgba(32,24,15,.10); }
body:not(.home) .site-footer{ border-top:1px solid rgba(32,24,15,.10); margin-top:2rem; }

.page-shell{ max-width:48rem; margin:0 auto; padding:9rem 1.5rem 6rem; }
.page-shell h1.entry-title{ font-family:var(--font-display); font-weight:400; letter-spacing:-.04em; line-height:1.05; font-size:clamp(2.5rem,7vw,4rem); margin-bottom:2rem; }
.entry-content{ font-size:1.075rem; line-height:1.8; }
.entry-content > * + *{ margin-top:1.25rem; }
.entry-content h2{ font-family:var(--font-display); font-size:1.9rem; margin-top:2.5rem; }
.entry-content h3{ font-family:var(--font-display); font-size:1.4rem; margin-top:2rem; }
.entry-content a{ text-decoration:underline; text-underline-offset:3px; }
.entry-content img{ border-radius:1rem; }
.entry-content blockquote{ border-left:2px solid var(--accent); padding-left:1.25rem; font-family:var(--font-display); font-style:italic; font-size:1.3rem; }
.entry-content ul,.entry-content ol{ padding-left:1.25rem; }
.entry-content ul{ list-style:disc; }
.entry-content ol{ list-style:decimal; }
.post-list{ display:grid; gap:2.5rem; }
.post-card h2{ font-family:var(--font-display); font-size:1.75rem; }
.post-card .meta{ font-size:.8rem; text-transform:uppercase; letter-spacing:.15em; color:rgba(58,44,30,.5); margin:.5rem 0; }

/* pagination */
.pagination{ margin-top:3rem; display:flex; gap:.5rem; flex-wrap:wrap; }
.pagination .page-numbers{ padding:.5rem .9rem; border:1px solid rgba(32,24,15,.15); border-radius:999px; font-size:.875rem; }
.pagination .current{ background:var(--espresso); color:var(--cream); border-color:var(--espresso); }

/* comments (minimal) */
.comments-area{ margin-top:3rem; }

/* =========================================================================
   Back-to-Top button
   ========================================================================= */
.to-top{
  position:fixed; right:1.5rem; bottom:1.5rem; z-index:45;
  width:3.25rem; height:3.25rem; border-radius:999px;
  display:inline-flex; align-items:center; justify-content:center;
  background:var(--accent); color:var(--cream); border:1px solid rgba(250,247,241,.18);
  box-shadow:0 8px 24px rgba(32,24,15,.28);
  cursor:pointer; padding:0;
  opacity:0; visibility:hidden; transform:translateY(14px) scale(.9);
  transition:opacity .5s var(--ease), transform .5s var(--ease), box-shadow .4s var(--ease);
}
.to-top.show{ opacity:1; visibility:visible; transform:none; }
.to-top svg{ width:1.15rem; height:1.15rem; transition:transform .4s var(--ease); }
.to-top:hover{ transform:translateY(-3px); box-shadow:0 14px 32px rgba(32,24,15,.34); }
.to-top:hover svg{ transform:translateY(-2px); }
.to-top:focus-visible{ outline:2px solid var(--espresso); outline-offset:3px; }
body.menu-open .to-top{ opacity:0; visibility:hidden; }
@media(max-width:767px){ .to-top{ right:1rem; bottom:1rem; width:2.9rem; height:2.9rem; } }
@media(prefers-reduced-motion:reduce){
  .to-top{ transition:opacity .3s; transform:none; }
  .to-top.show{ transform:none; }
  .to-top:hover svg{ transform:none; }
}

/* WP admin bar offset so fixed header isn't hidden */
.admin-bar .site-header{ top:32px; }
@media(max-width:782px){ .admin-bar .site-header{ top:46px; } }

/* reduced motion */
@media(prefers-reduced-motion:reduce){
  .marquee__track,.kenburns{ animation:none !important; }
  .reveal{ opacity:1; transform:none; }
  .word>span{ transform:none; }
  html{ scroll-behavior:auto; }
}
