/* ==========================================================================
   Components - buttons, cards, badges, forms, header, footer, sections
   ========================================================================== */

/* --- Buttons --------------------------------------------------------------- */
.am-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  font-family:var(--am-sans);font-weight:600;font-size:1rem;
  text-transform:uppercase;letter-spacing:.08em;
  padding:18px 32px;min-height:56px;border-radius:var(--radius);
  border:1px solid transparent;cursor:pointer;
  transition:transform .18s ease,background-color .18s ease,color .18s ease,border-color .18s ease;
  will-change:transform;
}
.am-btn--primary{background:var(--am-ember);color:var(--am-bone);border-color:var(--am-ember)}
.am-btn--primary:hover{background:var(--am-ember-lift);border-color:var(--am-ember-lift);transform:translateY(-2px)}
.am-btn--primary:active{transform:none}
.am-btn--secondary{background:transparent;color:var(--am-text-light);border-color:var(--am-line-light)}
.am-btn--secondary:hover{border-color:var(--am-text-light)}
.am-bone .am-btn--secondary,.am-bone-warm .am-btn--secondary,.am-sand .am-btn--secondary{color:var(--am-text-dark);border-color:var(--am-text-dark)}

/* --- Cards ----------------------------------------------------------------- */
.am-card{
  background:transparent;border:1px solid var(--am-line-dark);
  border-radius:var(--radius);padding:var(--sp-4);
}
.am-ink .am-card,.am-ink-deep .am-card{border-color:var(--am-line-light);background:var(--am-ink-soft)}

/* --- Proof strip: continuous ticker ---------------------------------------- */
.am-proof{
  background:var(--am-ember);color:var(--am-bone);
  padding-block:1.15rem;overflow:hidden;position:relative;
  border-top:1px solid rgba(255,255,255,.18);border-bottom:1px solid rgba(0,0,0,.12);
}
/* fade the ends so lines enter and leave rather than getting chopped */
.am-proof::before,.am-proof::after{
  content:"";position:absolute;top:0;bottom:0;width:12%;z-index:2;pointer-events:none;
}
.am-proof::before{left:0;background:linear-gradient(90deg,var(--am-ember),transparent)}
.am-proof::after{right:0;background:linear-gradient(270deg,var(--am-ember),transparent)}
.am-ticker{display:flex;width:100%}
.am-ticker__track{display:flex;width:max-content;animation:am-ticker 38s linear infinite}
.am-ticker__group{display:flex;align-items:center;flex:0 0 auto}
.am-proof__item{
  font-family:var(--am-sans);font-weight:600;font-size:var(--fs-small);
  text-transform:uppercase;letter-spacing:.14em;white-space:nowrap;
}
/* diamond separator between lines */
.am-ticker__sep{
  width:6px;height:6px;margin-inline:clamp(1.5rem,4vw,3.5rem);flex:0 0 auto;
  background:var(--am-bone);transform:rotate(45deg);opacity:.7;
}
@keyframes am-ticker{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.am-proof:hover .am-ticker__track{animation-play-state:paused}
@media (prefers-reduced-motion: reduce){
  .am-ticker__track{animation:none;width:100%;justify-content:center;flex-wrap:wrap}
  .am-ticker__group:nth-child(2){display:none}
  .am-proof__item{white-space:normal}
}

/* --- Editorial figure ------------------------------------------------------ */
.am-figure{margin:0;position:relative}
.am-figure img{
  width:100%;height:auto;display:block;border-radius:var(--radius-lg);
  box-shadow:var(--am-shadow-md);
}
.am-figure figcaption{
  margin-top:.85rem;font-size:var(--fs-small);color:var(--am-text-mid);
  padding-left:.9rem;border-left:2px solid var(--am-ember);
}
.am-ink .am-figure figcaption,.am-ink-deep .am-figure figcaption{color:var(--am-text-dim)}

/* --- Facts band ------------------------------------------------------------ */
.am-facts{padding-block:clamp(3rem,2rem + 4vw,5.5rem)}
.am-facts__head{max-width:38ch;margin-bottom:clamp(2rem,1rem + 3vw,3.5rem)}
.am-facts__head h2{margin:0}

/* --- Facts / stat row ------------------------------------------------------ */
.am-stats{
  display:grid;grid-template-columns:repeat(3,1fr);
  border-top:1px solid var(--am-line-dark);
}
.am-stat{
  text-align:left;padding:clamp(2rem,1.25rem + 2.5vw,3.25rem) 0 0;
  padding-right:var(--sp-4);position:relative;
}
.am-stat + .am-stat{padding-left:clamp(1.25rem,3vw,3rem);border-left:1px solid var(--am-line-dark)}
/* ember tick above each figure, echoing the eyebrow rule */
.am-stat::before{
  content:"";position:absolute;top:-1px;left:0;width:44px;height:3px;background:var(--am-ember);
}
.am-stat + .am-stat::before{left:clamp(1.25rem,3vw,3rem)}
.am-stat__num{
  display:block;
  /* Inter for figures: Fraunces defaults to old-style numerals, which read as
     inconsistent heights at display size. */
  font-family:var(--am-sans);font-weight:600;
  font-size:clamp(3.25rem,2rem + 5.5vw,5.25rem);line-height:1;
  color:var(--am-ink);letter-spacing:-.035em;
  font-variant-numeric:lining-nums tabular-nums;
  font-feature-settings:"lnum" 1,"tnum" 1;
}
.am-ink .am-stat__num,.am-ink-deep .am-stat__num{color:var(--am-bone)}
.am-stat__label{
  display:block;margin-top:.6rem;max-width:16ch;
  font-family:var(--am-sans);font-size:var(--fs-small);font-weight:600;
  text-transform:uppercase;letter-spacing:.12em;color:var(--am-text-mid);line-height:1.4;
}
@media (max-width:767px){
  .am-stats{grid-template-columns:1fr;border-top:0}
  .am-stat{padding:var(--sp-3) 0;border-top:1px solid var(--am-line-dark)}
  .am-stat + .am-stat{padding-left:0;border-left:0}
  .am-stat::before,.am-stat + .am-stat::before{left:0}
  .am-stat__label{max-width:none}
}

/* --- Pull quote ------------------------------------------------------------ */
.am-quote{
  text-align:center;position:relative;isolation:isolate;overflow:hidden;
  background-image:url("../img/quote-bg.jpg");
  background-size:cover;background-position:center;background-repeat:no-repeat;
}
/* Hold contrast directly under the quote only - the artwork stays visible
   everywhere else. Ink on sand is already high contrast, so this can be light. */
.am-quote::before{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(ellipse 42% 56% at 50% 48%,
    rgba(216,194,154,.88) 0%,
    rgba(216,194,154,.58) 48%,
    rgba(216,194,154,.14) 76%,
    rgba(216,194,154,0) 100%);
}
@media (max-width:767px){
  .am-quote{background-image:url("../img/quote-bg-mobile.jpg");background-position:center 46%}
  /* On a narrow screen the quote fills most of the band, so the art needs a
     flat knock-back underneath the centre wash or it reads straight through
     the text. */
  .am-quote::before{
    background:
      radial-gradient(ellipse 96% 56% at 50% 44%,
        rgba(216,194,154,.95) 0%,
        rgba(216,194,154,.8) 46%,
        rgba(216,194,154,.4) 76%,
        rgba(216,194,154,.12) 100%),
      linear-gradient(rgba(216,194,154,.5),rgba(216,194,154,.5));
  }
}
.am-quote blockquote{
  font-family:var(--am-serif);font-weight:500;font-style:italic;
  font-size:clamp(1.9rem,1.2rem + 4.4vw,3.75rem);line-height:1.22;
  margin:0 auto;max-width:20ch;letter-spacing:-.015em;
  font-variation-settings:"opsz" 96,"SOFT" 40,"WONK" 1;
  text-wrap:balance;
}
.am-quote cite{
  display:block;margin-top:var(--sp-3);font-style:normal;
  font-family:var(--am-sans);font-size:var(--fs-small);font-weight:600;
  text-transform:uppercase;letter-spacing:.14em;color:var(--am-ember-mute);
}

/* --- Inside-the-book cards ------------------------------------------------- */
.am-inside{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--sp-4)}
.am-inside__card{
  padding:var(--sp-4);border:1px solid var(--am-line-light);background:var(--am-ink-soft);
  border-radius:var(--radius);will-change:transform;
  transition:border-color .3s ease,box-shadow .3s ease,transform .3s ease;
}
@media (hover:hover){
  .am-inside__card:hover{
    border-color:var(--am-ember);
    box-shadow:0 0 0 1px var(--am-ember),0 0 28px -4px rgba(222,84,35,.55),0 0 60px -12px rgba(222,84,35,.35);
    transform:translateY(-3px);
  }
  .am-inside__card:hover h3{color:var(--am-ember-lift)}
}
.am-inside__card h3{transition:color .3s ease}
.am-inside__card h3{color:var(--am-text-light);margin-bottom:.5em}
.am-inside__card p{color:var(--am-text-dim);margin:0}
@media (max-width:767px){.am-inside{grid-template-columns:1fr}}

/* --- Two-column editorial + author ---------------------------------------- */
.am-cols{display:grid;grid-template-columns:1.1fr .9fr;gap:var(--sp-6);align-items:center}
.am-cols--author{grid-template-columns:.8fr 1.2fr}
@media (max-width:900px){.am-cols,.am-cols--author{grid-template-columns:1fr;gap:var(--sp-4)}}

/* --- Spec list ------------------------------------------------------------- */
.am-spec{list-style:none;margin:var(--sp-3) 0 0;padding:0;display:flex;flex-wrap:wrap;gap:var(--sp-2)}
.am-spec li{
  font-family:var(--am-sans);font-size:var(--fs-small);letter-spacing:.04em;
  padding:.4rem .9rem;border:1px solid var(--am-line-light);border-radius:var(--radius);
}

/* --- Order card ------------------------------------------------------------ */
.am-order-card{border:1px solid var(--am-line-light);border-radius:var(--radius);padding:var(--sp-5);max-width:520px;background:var(--am-ink-soft)}
.am-order-card__row{display:flex;justify-content:space-between;gap:var(--sp-3);padding-block:.6rem;border-bottom:1px solid var(--am-line-light)}
.am-order-card__row:last-of-type{border-bottom:0}
.am-order-card__price{font-family:var(--am-serif);color:var(--am-ember);font-weight:600}
.am-order-card .am-btn{width:100%;margin-top:var(--sp-3)}

/* --- Header / nav ---------------------------------------------------------- */
.am-header{position:sticky;top:0;z-index:100;transition:background-color .3s ease,backdrop-filter .3s ease,box-shadow .3s ease}
.am-header__inner{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding-block:var(--sp-2)}
.am-header.is-solid{background:var(--am-ink);backdrop-filter:blur(10px);box-shadow:0 1px 0 var(--am-line-light)}
.am-logo{font-family:var(--am-serif);font-weight:600;font-size:1.5rem;letter-spacing:-.02em;color:var(--am-text-light);display:inline-flex;align-items:center;min-height:44px}
.am-logo .dot{color:var(--am-ember)}
.am-header.is-solid .am-logo{transform:scale(.92);transform-origin:left center;transition:transform .3s ease}
.am-nav{display:flex;align-items:center;gap:var(--sp-4);min-width:0}
/* was an inline style in the markup, which beat the display:none below */
.am-nav__links{display:flex;align-items:center;gap:var(--sp-4)}
.am-nav a{font-family:var(--am-sans);font-size:.95rem;font-weight:500;color:var(--am-text-light);letter-spacing:.02em;min-height:44px;display:inline-flex;align-items:center}
.am-nav a:hover{color:var(--am-ember-lift)}
.am-nav .am-btn{min-height:44px;padding:12px 22px}
.am-burger{display:none;background:none;border:0;color:var(--am-text-light);width:48px;height:48px;cursor:pointer}
@media (max-width:900px){
  .am-nav__links{display:none}
  .am-burger{display:inline-flex;align-items:center;justify-content:center;margin-right:-10px}
  .am-nav{gap:var(--sp-2)}
  .am-header__inner{gap:var(--sp-2)}
}
/* At true phone widths the logo, the priced CTA and the burger together
   exceeded the viewport and forced a horizontal scrollbar on every page.
   Tighten the button and drop the price - the sticky bottom bar carries it. */
@media (max-width:560px){
  .am-nav .am-btn{padding:12px 16px;font-size:.8rem;letter-spacing:.06em}
  .am-nav .am-btn .am-nav__price{display:none}
  .am-logo{font-size:1.3rem}
  .am-header__inner{gap:.5rem}
}
@media (max-width:360px){
  .am-nav .am-btn{padding:12px 12px;font-size:.75rem}
}

/* Mobile full-screen menu.
   The open/close gate is opacity + visibility + pointer-events, NOT a transform
   toggle - a transform-based reveal was being overridden somewhere in the
   cascade and the panel never slid in. A small translate is layered on top
   purely for polish and is safe to lose. */
.am-menu{
  position:fixed;inset:0;z-index:1000;
  background:var(--am-ink-deep);color:var(--am-text-light);
  display:flex;flex-direction:column;justify-content:center;
  gap:clamp(.5rem,2vw,1rem);
  padding:clamp(1.5rem,6vw,3rem);
  padding-top:max(5rem,env(safe-area-inset-top));
  opacity:0;visibility:hidden;pointer-events:none;
  transform:translateY(-12px);
  transition:opacity .3s ease,transform .35s cubic-bezier(.16,1,.3,1),visibility .3s;
}
.am-menu.is-open{opacity:1!important;visibility:visible!important;pointer-events:auto!important;transform:none!important}
.am-menu__nav{display:flex;flex-direction:column;gap:clamp(.25rem,1.5vw,.75rem)}
.am-menu a{
  font-family:var(--am-serif);font-size:clamp(2rem,1rem + 6vw,3.25rem);
  color:var(--am-text-light);min-height:56px;display:flex;align-items:center;
}
.am-menu a:hover{color:var(--am-ember-lift)}
.am-menu .am-btn{
  align-self:flex-start;margin-top:clamp(1.25rem,5vw,2.25rem);
  font-family:var(--am-sans);font-size:1rem;line-height:1;   /* not the giant link scale */
  min-height:56px;
}
/* Large, unmistakable close control - ember circle, top right, thumb-reachable. */
.am-menu__close{
  position:absolute;top:max(1rem,env(safe-area-inset-top));right:1.25rem;
  width:52px;height:52px;border-radius:50%;
  background:var(--am-ember);border:0;color:var(--am-bone);cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;
  box-shadow:0 8px 20px -8px rgba(222,84,35,.7);
  transition:background-color .18s ease,transform .18s ease;
}
.am-menu__close:hover{background:var(--am-ember-lift)}
.am-menu__close:active{transform:scale(.94)}
.am-menu__label{
  position:absolute;top:calc(max(1rem,env(safe-area-inset-top)) + 14px);left:1.5rem;
  font-family:var(--am-sans);font-size:var(--fs-eyebrow);font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;color:var(--am-text-dim);
}

/* --- Footer ---------------------------------------------------------------- */
.am-footer{background:var(--am-ink-deep);color:var(--am-text-dim)}
.am-footer__grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:var(--sp-4);padding-block:var(--sp-6)}
.am-footer h4{color:var(--am-text-light);font-family:var(--am-sans);font-size:var(--fs-eyebrow);text-transform:uppercase;letter-spacing:.18em;font-weight:600}
.am-footer ul{list-style:none;margin:var(--sp-1) 0 0;padding:0;display:grid;gap:.15rem}
.am-footer li{display:flex}
/* Comfortable tap targets: links fill a 44px row rather than hugging the text */
.am-footer li a,.am-footer li{min-height:44px;display:flex;align-items:center}
.am-footer a:hover{color:var(--am-ember-lift)}
@media (min-width:901px){
  .am-footer ul{gap:.35rem}
  .am-footer li a,.am-footer li{min-height:0}
}
.am-footer__brand .am-logo{color:var(--am-text-light)}
.am-footer__bottom{display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-4);justify-content:space-between;align-items:center;padding-block:var(--sp-3);border-top:1px solid var(--am-line-light);font-size:var(--fs-small)}
.am-footer__bottom a{display:inline-flex;align-items:center;min-height:44px}
/* Leave room for the sticky order bar so the footer is never obscured */
@media (max-width:900px){.am-footer__bottom{padding-bottom:calc(var(--sp-3) + 76px)}}
@media (max-width:767px){
  /* One column, four rows - the 2x2 grid left orphaned words and ragged
     columns at phone widths. */
  .am-footer__grid{grid-template-columns:1fr;gap:var(--sp-4);padding-block:var(--sp-5)}
  .am-footer__grid > div{padding-bottom:var(--sp-3);border-bottom:1px solid var(--am-line-light)}
  .am-footer__grid > div:last-child{padding-bottom:0;border-bottom:0}
  .am-footer__brand p{max-width:none}
  .am-footer ul{gap:.75rem}
}

/* --- Sticky mobile order bar ---------------------------------------------- */
.am-stickybar{
  position:fixed;left:0;right:0;bottom:0;z-index:150;
  display:none;align-items:center;justify-content:space-between;gap:var(--sp-2);
  background:var(--am-ink);color:var(--am-text-light);
  padding:.75rem var(--gutter);padding-bottom:calc(.75rem + env(safe-area-inset-bottom));
  border-top:1px solid var(--am-line-light);
  transform:translateY(120%);transition:transform .35s ease;
}
.am-stickybar.is-visible{transform:none}
.am-stickybar__label{
  font-size:var(--fs-small);font-weight:600;
  flex:1 1 auto;min-width:0;               /* allows the text to give way */
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.am-stickybar .am-btn{
  min-height:48px;padding:10px 22px;
  flex:0 0 auto;white-space:nowrap;        /* never let the CTA be clipped */
}
@media (max-width:900px){.am-stickybar{display:flex}}
@media (max-width:420px){
  .am-stickybar{padding-inline:1rem;gap:.75rem}
  .am-stickybar .am-btn{padding:10px 18px;font-size:.85rem}
}
/* Below this the full title plus a price cannot share the row with the button,
   so show the price alone - the button already says what it does. */
@media (max-width:360px){
  .am-stickybar__title{display:none}
  .am-stickybar .am-btn{padding:10px 16px}
}
.am-stickybar.is-hidden{transform:translateY(120%)}

/* --- Scroll cue ------------------------------------------------------------ */
.am-scrollcue{font-family:var(--am-sans);font-size:var(--fs-small);letter-spacing:.12em;text-transform:uppercase;color:var(--am-text-dim);margin-top:var(--sp-4)}

/* --- Hero ------------------------------------------------------------------ */
.am-hero__inner{display:grid;grid-template-columns:1.1fr .9fr;gap:var(--sp-6);align-items:center}
.am-hero__cta{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-top:var(--sp-4)}
.am-hero__micro{margin-top:var(--sp-3);color:var(--am-text-dim);font-size:var(--fs-small)}
.am-hero__visual{display:flex;justify-content:center}
.am-hero .am-display .am-hero-line{display:inline-block}
@media (max-width:900px){
  .am-hero__inner{grid-template-columns:1fr;gap:var(--sp-4)}
  /* Copy first so the headline + CTA sit above the fold; book follows. */
  .am-hero__copy{order:1}
  .am-hero__visual{order:2}
  .am-hero__visual .am-book,.am-hero__visual .am-book-fallback{max-width:min(52vw,220px)}
  .am-hero{padding-top:calc(var(--sp-5))}
}

/* --- The book as a real object -------------------------------------------- */
.am-book{
  --bk-thick:44px;
  perspective:1600px;width:100%;max-width:400px;margin-inline:auto;position:relative;
  padding-bottom:3.5%;
}
.am-book__inner{
  position:relative;transform-style:preserve-3d;
  transform:rotateY(-17deg) rotateX(2deg);
  transition:transform .6s cubic-bezier(.16,1,.3,1);
  will-change:transform;
}
.am-book__cover{
  display:block;width:100%;height:auto;
  border-radius:2px 5px 5px 2px;
  box-shadow:0 2px 6px rgba(0,0,0,.3), 0 22px 44px -18px rgba(0,0,0,.6);
}
/* binding fold on the spine side */
.am-book__fold{
  position:absolute;inset:0 auto 0 0;width:7%;pointer-events:none;
  border-radius:2px 0 0 2px;
  background:linear-gradient(90deg,
    rgba(255,255,255,.16) 0%,
    rgba(0,0,0,.42) 26%,
    rgba(0,0,0,.14) 62%,
    rgba(0,0,0,0) 100%);
}
/* page block on the fore-edge - the detail that makes it read as a book */
.am-book__pages{
  position:absolute;top:1.2%;right:0;height:97.6%;width:var(--bk-thick);
  transform-origin:right center;transform:rotateY(90deg);
  background:
    /* darkening into the gutter, so the block reads as depth not a stripe */
    linear-gradient(90deg, rgba(0,0,0,.34) 0%, rgba(0,0,0,.06) 18%, rgba(0,0,0,0) 45%,
                    rgba(0,0,0,.05) 82%, rgba(0,0,0,.22) 100%),
    /* individual leaves */
    repeating-linear-gradient(90deg,
      #f7f2e8 0 1px, #e6dfd0 1px 2px, #d8cfbc 2px 3px, #f2ece0 3px 4px);
  box-shadow:inset 0 0 14px rgba(0,0,0,.3), inset 0 2px 3px rgba(255,255,255,.35);
  border-radius:0 2px 2px 0;
}
/* head and tail edges - the thickness is visible from above and below too */
.am-book__pages::before,.am-book__pages::after{
  content:"";position:absolute;left:0;right:0;height:2px;
  background:linear-gradient(90deg,rgba(0,0,0,.35),rgba(0,0,0,.08));
}
.am-book__pages::before{top:0}
.am-book__pages::after{bottom:0}
/* soft contact shadow on the ground */
.am-book::after{
  content:"";position:absolute;left:6%;right:0;bottom:0;height:34px;
  background:radial-gradient(ellipse at 50% 50%,rgba(0,0,0,.62),rgba(0,0,0,0) 70%);
  filter:blur(13px);transform:translateY(38%) rotateX(70deg);z-index:-1;
}
.am-bone .am-book::after,.am-bone-warm .am-book::after{background:radial-gradient(ellipse at 50% 50%,rgba(20,16,13,.32),rgba(0,0,0,0) 70%)}
/* gentle response to the cursor on fine pointers */
@media (hover:hover) and (pointer:fine){
  .am-book:hover .am-book__inner{transform:rotateY(-9deg) rotateX(1deg) translateY(-6px)}
}
@media (max-width:900px){
  .am-book{--bk-thick:30px;max-width:min(58vw,240px)}
}

/* --- Author portrait ------------------------------------------------------ */
.am-portrait{margin:0;position:relative;max-width:440px}
.am-portrait img{
  width:100%;height:auto;display:block;border-radius:var(--radius);
  box-shadow:var(--am-shadow-lg);
}
.am-portrait::after{
  /* thin ember frame offset, editorial detail */
  content:"";position:absolute;inset:0;border:1px solid var(--am-line-light);
  border-radius:var(--radius);transform:translate(14px,14px);z-index:-1;
  border-color:rgba(222,84,35,.5);
}
.am-bone .am-portrait::after,.am-bone-warm .am-portrait::after{border-color:rgba(222,84,35,.4)}
@media (max-width:900px){.am-portrait{max-width:340px;margin-inline:auto}.am-portrait::after{transform:translate(10px,10px)}}

/* --- Typographic cover fallback (no stock art) ---------------------------- */
.am-cover{aspect-ratio:170/240;width:100%;max-width:340px;background:linear-gradient(160deg,var(--am-ink-soft),var(--am-ink-deep));border:1px solid var(--am-line-light);display:flex;align-items:center;justify-content:center;padding:var(--sp-4)}
.am-cover__inner{text-align:center;color:var(--am-text-light);display:grid;gap:var(--sp-2);justify-items:center}
.am-cover__eyebrow{font-family:var(--am-sans);font-size:var(--fs-eyebrow);letter-spacing:.18em;text-transform:uppercase;color:var(--am-ember)}
.am-cover__title{font-family:var(--am-serif);font-weight:600;font-size:clamp(2rem,1rem + 5vw,3.25rem);line-height:1;font-variation-settings:"opsz" 72}
.am-cover__rule{width:40px;height:2px;background:var(--am-ember)}
.am-cover__author{font-family:var(--am-sans);letter-spacing:.22em;text-transform:uppercase;font-size:var(--fs-small);color:var(--am-text-dim)}
.am-cover--portrait{background:linear-gradient(160deg,var(--am-sand),var(--am-bone-warm))}
.am-cover--portrait .am-cover__title{color:var(--am-ink)}

/* --- Career timeline ------------------------------------------------------ */
.am-tl{margin-top:var(--sp-4);position:relative}
.am-tl__track{
  list-style:none;margin:0;padding:0;display:grid;gap:var(--sp-4);
}
.am-tl__item{position:relative;padding-left:var(--sp-4)}
.am-tl__year{
  font-family:var(--am-sans);font-weight:600;letter-spacing:.12em;
  text-transform:uppercase;font-size:var(--fs-small);color:var(--am-ember);
}
.am-tl__item h3{margin:.25em 0 .35em}
.am-tl__item p{margin:0;color:var(--am-text-mid)}
.am-ink .am-tl__item p,.am-ink-deep .am-tl__item p{color:var(--am-text-dim)}
.am-tl__bar,.am-tl__hint{display:none}

/* marker: dot on a rail, with a soft ember halo that pulses in on reveal */
.am-tl__marker{
  position:absolute;left:0;top:.35em;width:13px;height:13px;border-radius:50%;
  background:var(--am-ember);z-index:1;
}
.am-tl__marker::after{
  content:"";position:absolute;inset:-6px;border-radius:50%;
  border:1px solid var(--am-ember);opacity:.45;
  animation:am-tl-pulse 3s ease-out infinite;animation-delay:calc(var(--i) * .35s);
}
@keyframes am-tl-pulse{
  0%{transform:scale(.6);opacity:.55}
  70%{transform:scale(1.5);opacity:0}
  100%{transform:scale(1.5);opacity:0}
}
/* vertical rail on mobile */
.am-tl__item::before{
  content:"";position:absolute;left:6px;top:.35em;width:1px;height:calc(100% + var(--sp-4));
  background:var(--am-line-dark);
}
.am-ink .am-tl__item::before,.am-ink-deep .am-tl__item::before{background:var(--am-line-light)}
.am-tl__item:last-child::before{display:none}

/* Desktop: horizontal rail with snap, custom progress bar, no native scrollbar */
@media (min-width:1024px){
  .am-tl__track{
    grid-auto-flow:column;grid-auto-columns:minmax(260px,1fr);gap:var(--sp-5);
    overflow-x:auto;scroll-snap-type:x proximity;
    padding:var(--sp-4) 0 var(--sp-4);
    scrollbar-width:none;-ms-overflow-style:none;
    cursor:grab;
  }
  .am-tl__track::-webkit-scrollbar{display:none}
  .am-tl__track.is-dragging{cursor:grabbing;scroll-snap-type:none}
  .am-tl__item{
    scroll-snap-align:start;padding-left:0;padding-top:var(--sp-4);
  }
  .am-tl__marker{left:0;top:0}
  /* horizontal rail */
  .am-tl__item::before{
    left:6px;top:6px;width:calc(100% + var(--sp-5));height:1px;
  }
  .am-tl__bar{
    display:block;height:3px;border-radius:2px;overflow:hidden;
    background:var(--am-line-dark);margin-top:var(--sp-2);
  }
  .am-ink .am-tl__bar,.am-ink-deep .am-tl__bar{background:var(--am-line-light)}
  .am-tl__fill{
    display:block;height:100%;width:22%;border-radius:2px;
    background:linear-gradient(90deg,var(--am-ember),var(--am-ember-lift));
    transition:width .18s ease-out;
  }
  .am-tl__hint{
    display:block;margin:.7rem 0 0;font-size:var(--fs-small);letter-spacing:.1em;
    text-transform:uppercase;color:var(--am-text-mid);transition:opacity .4s ease;
  }
  .am-ink .am-tl__hint,.am-ink-deep .am-tl__hint{color:var(--am-text-dim)}
  .am-tl.is-scrolled .am-tl__hint{opacity:0}
}
@media (prefers-reduced-motion: reduce){
  .am-tl__marker::after{animation:none;opacity:.35}
}

/* --- Spec table (The Book) ------------------------------------------------ */
.am-spec-table{width:100%;border-collapse:collapse;margin-top:var(--sp-3);background:var(--am-bone);border:1px solid var(--am-line-dark);border-radius:var(--radius-lg);overflow:hidden}
.am-spec-table tr{border-bottom:1px solid var(--am-line-dark)}
.am-spec-table tr:last-child{border-bottom:0}
.am-spec-table th,.am-spec-table td{text-align:left;padding:1.05rem 1.4rem;font-size:var(--fs-body);vertical-align:middle}
.am-spec-table th{
  font-family:var(--am-sans);font-weight:600;width:40%;color:var(--am-text-mid);
  text-transform:uppercase;letter-spacing:.1em;font-size:var(--fs-eyebrow);
  border-right:1px solid var(--am-line-dark);position:relative;
}
.am-spec-table th::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:14px;background:var(--am-ember);opacity:0;transition:opacity .2s}
.am-spec-table tr:hover th::before{opacity:1}
.am-spec-table td{font-family:var(--am-serif);font-size:var(--fs-lead);color:var(--am-text-dark)}
@media (max-width:560px){
  .am-spec-table th,.am-spec-table td{padding:.85rem 1rem}
  .am-spec-table td{font-size:var(--fs-body)}
}

/* --- Drop cap (extract) --------------------------------------------------- */
.am-dropcap>p:first-of-type::first-letter{
  font-family:var(--am-serif);font-weight:600;float:left;line-height:.8;
  font-size:4.2em;padding:.05em .12em 0 0;color:var(--am-ember-mute);
  font-variation-settings:"opsz" 96;
}
.am-dropcap p{font-family:var(--am-serif);font-size:var(--fs-lead);line-height:1.6}

/* --- Style guide swatches ------------------------------------------------- */
.am-swatches{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--sp-2);margin-block:var(--sp-3)}
.am-swatch span{display:block;height:64px;border-radius:var(--radius);border:1px solid var(--am-line-dark)}
.am-swatch b{display:block;margin-top:.4rem;font-size:var(--fs-small)}
.am-swatch code{font-size:.75rem;color:var(--am-text-mid)}

/* --- Contact form (CF7) --------------------------------------------------- */
.am-form{margin-top:var(--sp-3)}
.am-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3)}
.am-form-row{margin:0 0 var(--sp-3)}
.am-form-row--full{grid-column:1/-1}
@media (max-width:600px){.am-form-grid{grid-template-columns:1fr}}
.am-form label{display:block;font-family:var(--am-sans);font-weight:600;font-size:var(--fs-small);color:var(--am-text-dark);letter-spacing:.01em}
.am-form input[type=text],
.am-form input[type=email],
.am-form input[type=tel],
.am-form select,
.am-form textarea{
  width:100%;margin-top:.4rem;min-height:54px;padding:.9rem 1rem;
  background:#fff;border:1px solid var(--am-line-dark);border-radius:var(--radius);
  font-family:var(--am-sans);font-size:16px;color:var(--am-text-dark);
  transition:border-color .15s ease,box-shadow .15s ease;
}
.am-form textarea{min-height:150px;line-height:1.55;resize:vertical}
.am-form input:focus,.am-form select:focus,.am-form textarea:focus{outline:none;border-color:var(--am-ember);box-shadow:0 0 0 3px rgba(222,84,35,.14)}
.am-form .wpcf7-submit{
  background:var(--am-ember);color:var(--am-bone);border:0;border-radius:var(--radius);
  min-height:56px;padding:0 2rem;font-family:var(--am-sans);font-weight:600;font-size:1rem;
  text-transform:uppercase;letter-spacing:.08em;cursor:pointer;transition:background-color .18s ease,transform .18s ease;
  box-shadow:0 12px 24px -12px rgba(222,84,35,.6);
}
.am-form .wpcf7-submit:hover{background:var(--am-ember-lift);transform:translateY(-1px)}
.am-form .wpcf7-spinner{margin:0 0 0 .75rem}
.am-form .wpcf7-not-valid-tip{color:var(--am-ember-mute);font-size:var(--fs-small);margin-top:.3rem}
.am-form .wpcf7-response-output{border-radius:var(--radius);border-width:1px;margin:var(--sp-2) 0 0;padding:.85rem 1.1rem;font-size:var(--fs-small)}

/* --- Small note + endorsement empty state --------------------------------- */
.am-note{
  margin-top:var(--sp-3);padding-left:var(--sp-2);border-left:2px solid var(--am-ember);
  font-size:var(--fs-small);color:var(--am-text-mid);font-style:italic;
}
.am-quote-card{
  margin-top:var(--sp-3);padding:var(--sp-4);background:var(--am-bone);
  border:1px solid var(--am-line-dark);border-radius:var(--radius-lg);position:relative;
}
.am-quote-card::before{
  content:"\201C";position:absolute;top:-.15em;left:.35rem;
  font-family:var(--am-serif);font-size:5rem;line-height:1;color:var(--am-ember);opacity:.25;
}
.am-quote-card p{font-family:var(--am-serif);font-size:var(--fs-lead);color:var(--am-text-dark);margin:0 0 .6em;position:relative}
.am-quote-card span{font-size:var(--fs-small);color:var(--am-text-mid)}
.am-quote-card a{color:var(--am-ember-mute);text-decoration:underline;text-underline-offset:3px}

/* --- Contact layout ------------------------------------------------------- */
.am-contact{display:grid;grid-template-columns:1.35fr .8fr;gap:var(--sp-6);align-items:start}
@media (max-width:900px){.am-contact{grid-template-columns:1fr;gap:var(--sp-4)}}
.am-contact__aside{display:grid;gap:var(--sp-2);position:sticky;top:var(--sp-4)}
@media (max-width:900px){.am-contact__aside{position:static}}
.am-infocard{
  border:1px solid var(--am-line-dark);border-radius:var(--radius-lg);
  padding:var(--sp-3) var(--sp-3) calc(var(--sp-3) - .25rem);
  background:var(--am-bone-warm);
}
.am-infocard__label{
  display:block;font-size:var(--fs-eyebrow);font-weight:600;letter-spacing:.16em;
  text-transform:uppercase;color:var(--am-ember-mute);margin-bottom:.45rem;
}
.am-infocard__value{display:block;font-size:var(--fs-body);color:var(--am-text-dark);line-height:1.5;word-break:break-word}
a.am-infocard__value:hover{color:var(--am-ember-mute);text-decoration:underline;text-underline-offset:3px}
.am-infocard--accent{background:var(--am-ink);border-color:var(--am-ink)}
.am-infocard--accent .am-infocard__label{color:var(--am-ember-lift)}
.am-infocard--accent .am-infocard__value{color:var(--am-text-light)}
.am-infocard--accent .am-btn{width:100%;margin-top:var(--sp-2)}

/* --- Long-form legal pages ------------------------------------------------ */
.am-longform h2{font-size:var(--fs-h3);margin-top:var(--sp-4)}
.am-longform p{color:var(--am-text-mid)}
.am-longform p:first-of-type{color:var(--am-text-dark)}

/* --- Page content default rhythm ------------------------------------------ */
.am-page-content section:first-child{padding-top:calc(var(--section-y) + 40px)} /* clear sticky header */
.am-main .am-hero{padding-top:calc(var(--section-y) + 24px)}

/* --- Hero book: ring + price badge (reference treatment) ------------------- */
.am-book-stage{position:relative;display:flex;justify-content:center}
.am-book-stage.has-ring{padding:clamp(1.5rem,1rem + 3vw,3rem) 0}
.am-book-ring{
  position:absolute;top:50%;left:50%;translate:-50% -50%;
  width:min(115%,460px);aspect-ratio:1;border-radius:50%;
  border:1px solid var(--am-line-light);
  pointer-events:none;z-index:0;
  animation:am-ring-drift 18s linear infinite;
}
.am-bone .am-book-ring,.am-bone-warm .am-book-ring{border-color:var(--am-line-dark)}
.am-book-stage.has-ring .am-book{position:relative;z-index:1}
@keyframes am-ring-drift{to{transform:rotate(360deg)}}

.am-book-badge{
  position:absolute;right:2%;bottom:6%;z-index:3;
  width:clamp(84px,17vw,108px);aspect-ratio:1;border-radius:50%;
  background:var(--am-ember);color:var(--am-bone);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  box-shadow:0 14px 30px -12px rgba(222,84,35,.75);
  text-align:center;line-height:1;
}
.am-book-badge b{font-family:var(--am-serif);font-size:clamp(1.25rem,4vw,1.6rem);font-weight:600;letter-spacing:-.01em}
.am-book-badge i{font-style:normal;font-family:var(--am-sans);font-size:.6rem;font-weight:600;text-transform:uppercase;letter-spacing:.12em;margin-top:.25rem;opacity:.92}
@media (prefers-reduced-motion: reduce){.am-book-ring{animation:none}}

/* --- Book extract ---------------------------------------------------------- */
.am-extract__meta{
  margin:-.4rem 0 var(--sp-3);font-family:var(--am-sans);font-size:var(--fs-small);
  font-weight:600;text-transform:uppercase;letter-spacing:.14em;color:var(--am-text-mid);
}
.am-extract__end{
  margin-top:var(--sp-3);padding-top:var(--sp-3);border-top:1px solid var(--am-line-dark);
  font-size:var(--fs-small);color:var(--am-text-mid);
}


/* ===== Reviews carousel (am-reviews) ===== */
.am-reviews{position:relative;margin-top:32px;}
.am-reviews-track{display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x proximity;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:4px 2px;}
.am-reviews-track::-webkit-scrollbar{display:none;}
.am-reviews .am-quote-card{flex:0 0 100%;box-sizing:border-box;scroll-snap-align:start;margin:0;opacity:1!important;transform:none!important;display:flex;flex-direction:column;}
.am-reviews .am-quote-card p{flex:1 0 auto;}
.am-rev-nav{position:absolute;top:calc(50% - 12px);transform:translateY(-50%);z-index:3;width:44px;height:44px;border-radius:50%;border:none;background:rgb(20,16,13);color:rgb(245,239,228);font-size:24px;line-height:44px;text-align:center;cursor:pointer;padding:0;opacity:.9;transition:opacity .2s,transform .2s;box-shadow:0 2px 10px rgba(0,0,0,.18);}
.am-rev-nav:hover,.am-rev-nav:focus{opacity:1;background:rgb(20,16,13);color:rgb(245,239,228);transform:translateY(-50%) scale(1.06);}
.am-rev-prev{left:-22px;}
.am-rev-next{right:-22px;}
.am-reviews-dots{display:flex;gap:8px;justify-content:center;margin-top:24px;}
.am-reviews-dots button{width:8px;height:8px;border-radius:50%;border:none;background:rgba(20,16,13,.22);cursor:pointer;padding:0;transition:background .2s,transform .2s;}
.am-reviews-dots button.is-active{background:rgb(222,84,35);transform:scale(1.25);}
@media(max-width:820px){.am-rev-prev{left:6px;}.am-rev-next{right:6px;}}
