/* ============================================================
   DetailedByDenise — shared styles
   Palette: Laptop Blue, Script Coral, Deep Rose, Blush, Cream, Rust, Light Yellow
   Fonts: Benjola (logo), Fort Collins Caps (headings),
          Fort Collins Script (accents), Revenika (body)
   ============================================================ */

/* ---- Fonts ---- */
@font-face{font-family:"Benjola";src:url("fonts/Benjola.woff2") format("woff2");font-display:swap;}
@font-face{font-family:"FortCollinsCaps";src:url("fonts/FortCollins-Caps.woff2") format("woff2");font-display:swap;}
@font-face{font-family:"FortCollinsScript";src:url("fonts/FortCollins-Script.woff2") format("woff2");font-display:swap;}
@font-face{font-family:"Revenika";src:url("fonts/Revenika-Regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:"Revenika";src:url("fonts/Revenika-Italic.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap;}

:root{
  --blue:#8cbbe1; --coral:#d97a8e; --rose:#c25a6e; --blush:#fdd0db;
  --cream:#fbe4e8; --rust:#be3519; --yellow:#dfdac3;
  --ink:#4a2a32; --muted:#8a6470; --white:#fffafb;

  --f-logo:"Benjola",cursive;
  --f-head:"FortCollinsCaps","Arial Narrow",sans-serif;
  --f-script:"FortCollinsScript",cursive;
  --f-body:"Revenika","Georgia",serif;
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:var(--f-body); color:var(--ink);
  line-height:1.7; -webkit-font-smoothing:antialiased;
  font-size:1.18rem;
  position:relative;
  background:
    radial-gradient(1100px 620px at 6% 3%, rgba(140,187,225,.30), transparent 60%),
    radial-gradient(1000px 640px at 100% 42%, rgba(217,122,142,.16), transparent 60%),
    radial-gradient(900px 600px at 0% 80%, rgba(253,208,219,.28), transparent 60%),
    linear-gradient(180deg,
      var(--blue) 0%,
      var(--blush) 16%,
      var(--cream) 34%,
      var(--white) 60%,
      var(--cream) 82%,
      var(--blush) 100%);
  background-attachment:fixed, fixed, fixed, fixed;
}
/* fine grain overlay for depth, sits above bg, below content */
body::before{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.045;
  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='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)'/%3E%3C/svg%3E");
}
/* keep all real content above the grain layer */
.site-header,main,section,footer,.site-footer{position:relative;z-index:1;}
.wrap{max-width:1180px;margin:0 auto;padding:0 28px;}
img{max-width:100%;display:block;}
a{color:inherit;}

/* ---- Type scale ---- */
h1,h2,h3{font-family:var(--f-head);font-weight:normal;letter-spacing:.04em;line-height:1.1;text-transform:uppercase;}
.script{font-family:var(--f-script);text-transform:none;letter-spacing:0;}
.eyebrow{font-family:var(--f-head);letter-spacing:.28em;font-size:.72rem;text-transform:uppercase;color:var(--rose);}

/* ---- Header ---- */
.site-header{
  position:sticky;top:0;z-index:100;background:rgba(251,228,232,.92);
  backdrop-filter:blur(8px);border-bottom:1px solid rgba(194,90,110,.18);
}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;padding-top:14px;padding-bottom:14px;}
.brand{font-family:var(--f-logo);font-size:2rem;color:var(--rose);text-decoration:none;line-height:1;}
.nav{display:flex;gap:26px;align-items:center;}
.nav a{font-family:var(--f-head);text-transform:uppercase;letter-spacing:.12em;font-size:.82rem;text-decoration:none;color:var(--ink);transition:color .15s;}
.nav a:hover,.nav a.active{color:var(--rose);}
.nav a.cta{background:var(--coral);color:var(--white);padding:9px 18px;border-radius:8px;}
.nav a.cta:hover{background:var(--rose);color:var(--white);}
.nav-toggle{display:none;background:none;border:0;cursor:pointer;font-size:1.6rem;color:var(--rose);}

/* ---- Buttons ---- */
.btn{display:inline-block;font-family:var(--f-head);text-transform:uppercase;letter-spacing:.14em;font-size:.82rem;
  padding:14px 30px;border-radius:10px;text-decoration:none;transition:transform .15s,background .15s;cursor:pointer;border:0;}
.btn-coral{background:var(--coral);color:var(--white);}
.btn-coral:hover{background:var(--rose);transform:translateY(-2px);}
.btn-outline{background:transparent;color:var(--rose);border:1.5px solid var(--rose);}
.btn-outline:hover{background:var(--rose);color:var(--white);}

/* ---- Sections ---- */
section{padding:84px 0;}
.section-head{text-align:center;margin-bottom:48px;}
.section-head h2{font-size:2.6rem;color:var(--ink);margin:8px 0;}
.section-head .divider{width:60px;height:3px;background:var(--coral);margin:16px auto 0;}
.section-head p{color:var(--muted);max-width:600px;margin:12px auto 0;font-style:italic;}

/* ---- Footer ---- */
.site-footer{background:rgba(74,42,50,.92);color:var(--cream);padding:64px 0 30px;backdrop-filter:blur(2px);}
.site-footer .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.4fr;gap:36px;}
.site-footer .brand-lg{font-family:var(--f-logo);font-size:2.4rem;color:var(--blush);}
.site-footer .tagline{font-style:italic;color:var(--blue);margin-top:8px;font-size:.95rem;}
.site-footer h4{font-family:var(--f-head);letter-spacing:.2em;color:var(--coral);font-size:.8rem;margin-bottom:14px;}
.site-footer a{color:var(--cream);text-decoration:none;display:block;margin-bottom:8px;font-size:.95rem;}
.site-footer a:hover{color:var(--blush);}
.site-footer .socials{display:flex;gap:14px;margin-top:6px;}
.site-footer .socials a{width:40px;height:40px;border:1px solid var(--coral);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0;}
.site-footer .socials svg{width:18px;height:18px;fill:var(--cream);}
.site-footer .bottom{text-align:center;margin-top:44px;padding-top:20px;border-top:1px solid rgba(217,122,142,.3);color:var(--muted);font-size:.82rem;}

/* ---- Responsive ---- */
@media(max-width:860px){
  .nav{position:fixed;inset:60px 0 auto 0;flex-direction:column;background:var(--cream);padding:20px 0;gap:18px;
    transform:translateY(-120%);transition:transform .25s;box-shadow:0 12px 24px rgba(0,0,0,.1);}
  .nav.open{transform:translateY(0);}
  .nav-toggle{display:block;}
  .site-footer .cols{grid-template-columns:1fr 1fr;}
}
@media(max-width:520px){ .site-footer .cols{grid-template-columns:1fr;} }
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto;transition:none!important;}}

/* ============================================================
   LEGIBILITY PASS — larger, easier-to-read type across the site
   ============================================================ */
p{font-size:1.12rem;line-height:1.7;}
.page-hero p, .section-head p{font-size:1.18rem;}
.eyebrow{font-size:.85rem;}
.nav a{font-size:.92rem;}
.btn{font-size:.92rem;}
.section-head h2{font-size:2.9rem;}
.page-hero h1{font-size:3rem;}
.site-footer a{font-size:1.05rem;}
.site-footer .tagline{font-size:1.05rem;}
.site-footer h4{font-size:.9rem;}
.hero-copy p.lead{font-size:1.25rem;line-height:1.6;}
.tm-card p{font-size:1.12rem;line-height:1.65;}
.card p, .pkg li, .book-form label, .cover-card h3{font-size:1.05rem;}
/* mobile keeps it readable but not oversized */
@media(max-width:640px){
  body{font-size:1.1rem;}
  p{font-size:1.05rem;}
  .section-head h2{font-size:2.2rem;}
  .page-hero h1{font-size:2.3rem;}
}

/* ===== Client Portal links ===== */
.nav .portal-link{color:var(--rose);font-weight:600}
.nav .portal-link:hover{color:var(--coral)}
.portal-callout{max-width:520px;margin:1.6rem auto 0;text-align:center;background:var(--white);border:1px solid var(--blush);border-radius:14px;padding:1.8rem}
.portal-callout h3{font-family:var(--f-head);color:var(--ink);margin:0 0 .4rem}
.portal-callout p{color:var(--muted);margin:0 0 1.1rem}
