/* =========================
   Custom Quill — site.css
   Works with the HTML you pasted
   ========================= */

/* ----- Reset / base ----- */
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
img, video { max-width: 100%; height: auto; display: block; }

:root{
  --bg: #ffffff;
  --text: #1f2328;
  --muted: #5a5f66;

  --brand: #b6403a;       /* quill red */
  --brand-dark: #8f2f2a;  /* deeper red */
  --ink: #16181c;

  --card: #ffffff;
  --line: rgba(0,0,0,.10);

  --shadow: 0 18px 50px rgba(0,0,0,.16);
  --radius: 18px;

  --container: 1120px;
}

body{
  font-family: "Inter", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color: var(--text);
  background: var(--bg);
  line-height: 1.55;
}

h1, h2, h3, h4{
  font-family: "Libre Baskerville", Georgia, serif;
  margin: 0 0 12px;
  letter-spacing: .2px;
}
p{ margin: 0 0 14px; color: var(--muted); }

a{ color: inherit; text-decoration: none; }
a:hover{ text-decoration: underline; }

.container{
  width: min(var(--container), calc(100% - 40px));
  margin: 0 auto;
}

/* =========================
   HERO HEADER (background image + nav on top)
   ========================= */
.hero-header{
  position: relative;
  min-height: 400px;
  background-image: url("../images/quill-hero2.jpg"); /* change filename if needed */
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  isolation: isolate;
}

/* subtle overlay for readability */
.hero-header::before{
  content:"";
  position:absolute;
  inset:0;
  background: linear-gradient(
    to bottom,
    rgba(0,0,0,.18) 0%,
    rgba(0,0,0,.06) 22%,
    rgba(0,0,0,0) 50%
  );
  z-index: 0;
}
.hero-header2{
  position: relative;
  min-height: 200px;
  background-image: url("../images/quill-hero-inner.jpg"); /* change filename if needed */
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  isolation: isolate;
}

/* subtle overlay for readability */
.hero-header2::before{
  content:"";
  position:absolute;
  inset:0;
  background: linear-gradient(
    to bottom,
    rgba(0,0,0,.18) 0%,
    rgba(0,0,0,.06) 22%,
    rgba(0,0,0,0) 50%
  );
  z-index: 0;
}

/* NAV WRAPPER */
.nav-wrap{
  position: absolute;
  top: 0; left: 0; right: 0;
  z-index: 2;
  padding: 14px 0;
}

.nav-inner{
  width: min(var(--container), calc(100% - 40px));
  margin: 0 auto;
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 16px;
}

/* Brand link only (logo is in hero image) */
.brand{
  display:block;
  width: 1px;
  height: 1px;
  overflow: hidden;
}


/* Desktop nav */
.nav{
  display:flex;
  align-items:center;
  gap: 18px;
  padding: 10px 14px;
  border-radius: 999px;
  background: rgba(255,255,255,.14);
  border: 1px solid rgba(255,255,255,.18);
  backdrop-filter: blur(10px);
}

.nav a{
  color: #fff;
  font-weight: 600;
  font-size: 14px;
  letter-spacing: .2px;
  padding: 8px 10px;
  border-radius: 999px;
  text-decoration: none !important;
}
.nav a:hover{
  background: rgba(255,255,255,.16);
}
.nav a.is-active{
  background: rgba(255,255,255,.22);
}

/* Hamburger button */
.nav-toggle{
  display:none;
  width: 44px;
  height: 44px;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,.22);
  background: rgba(255,255,255,.14);
  backdrop-filter: blur(10px);
  cursor: pointer;
  padding: 10px;
}

.nav-toggle span{
  display:block;
  height: 2px;
  margin: 6px 0;
  background: #fff;
  border-radius: 2px;
}

/* =========================
   HERO SECTION (text + trust card)
   ========================= */
.hero{
  padding: 54px 0 70px;
  background: #fff;
}

.hero-grid{
  display:grid;
  grid-template-columns: 1.25fr .9fr;
  gap: 28px;
  align-items: start;
}

.hero h1{
  font-size: clamp(28px, 3vw, 40px);
  line-height: 1.18;
  color: var(--ink);
  margin-bottom: 14px;
}
.hero p{
  font-size: 16px;
  color: var(--muted);
  max-width: 62ch;
}

.section{
  padding-top: 20px; /* was effectively ~34px */
}


/* =========================
   Buttons
   ========================= */

.btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 16px;
  border-radius: 999px;
  font-weight: 700;
  font-size: 14px;
  letter-spacing: .2px;
  border: 1px solid transparent;
  text-decoration: none !important;
  cursor: pointer;
}

/* Primary CTA */
.btn-primary{
  background: #6f1312;   /* matches hero / header tone */
  color: #ffffff;
   margin-bottom: 30px;
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:focus-visible{
  background: #a31e1c;
}


/* Secondary / ghost button */
.btn-ghost{
  background: transparent;
  border-color: rgba(0,0,0,.18);
  color: var(--ink);
}

.btn-ghost:hover{
  background: rgba(0,0,0,.04);
}


.hero-note{
  margin-top: 10px;
  font-size: 13px;
  color: var(--muted);
}

/* Trust card */
.hero-card{
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 18px 18px 14px;
}

.mini-title{
  font-weight: 800;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .12em;
  color: var(--brand);
  margin-bottom: 8px;
  font-family: "Inter", system-ui, sans-serif;
}

.mini{
  margin-bottom: 12px;
  color: var(--muted);
  font-size: 14px;
}

.trust-list{
  list-style: none;
  padding: 0;
  margin: 0;
  display:flex;
  flex-direction: column;
  gap: 12px;
}

.trust-item{
  display:grid;
  grid-template-columns: 22px 1fr;
  gap: 10px;
  align-items: start;
}

.check{
  width: 22px;
  height: 22px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius: 999px;
  background: rgba(182,64,58,.12);
  color: var(--brand);
  font-weight: 900;
  font-family: "Inter", system-ui, sans-serif;
}

.trust-item strong{
  display:block;
  font-family: "Inter", system-ui, sans-serif;
  font-size: 14px;
  color: var(--ink);
  margin-bottom: 2px;
}
.trust-item span{
  display:block;
  font-size: 13px;
  color: var(--muted);
}

/* =========================
   HOME HELP (two columns + video)
   ========================= */
.home-help{
  background: #faf7f6;
  padding: 70px 0;
}

.help-title{
  text-align:center;
  margin-bottom: 28px;
  color: var(--ink);
}

.help-box{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 28px;
  align-items: start;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: 0 10px 30px rgba(0,0,0,.08);
  padding: 26px;
}

.help-left{
  display:flex;
  flex-direction: column;
  gap: 6px;
}

.help-item{
  padding: 4px 14px;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 14px;
  background: #fff;
}

.help-item h3{
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: 16px;
  margin: 0 0 8px;
  color: var(--ink);
}

.help-item p{ margin: 0; color: var(--muted); font-size: 14px; }

.services-list{
  margin: 10px 0 0;
  padding-left: 18px;
  color: var(--muted);
  font-size: 14px;
}
.services-list li{ margin: 6px 0; }

/* Video */
/* Video column */
.help-right{
  display:flex;
  align-items:flex-start;
  justify-content:center;
}

/* Make it a nice homepage-friendly box (not super tall) */
.video-wrapper{
  width: 100%;
  max-width: 450px;     /* optional */
  height: 450px;        /* adjust: 280–360 */
  border-radius: var(--radius);
  overflow: hidden;
  border: 1px solid var(--line);
  background: #000;
}

/* Fill the box: no black bars */
.video-wrapper video{
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;            /* no bars */
  object-position: center bottom; /* protect bottom captions */
}




/* =========================
   FOOTER (two-tier)
   ========================= */
.footer{
  background: #6f1312;
  color: rgba(255,255,255,.86);
  padding: 44px 0 26px;
}

.footer a{
  color: rgba(255,255,255,.86);
  text-decoration: none;
}
.footer a:hover{
  text-decoration: underline;
}

.footer-tagline{
	text-align:center;
	font-family: "Libre Baskerville", Georgia, serif;
	font-size: 24px;
	color: rgba(255,255,255,.90);
	padding-bottom: 18px;
	margin-bottom: 22px;
	border-bottom: 1px solid rgba(255,255,255,.12);
}

.footer-grid{
  display:grid;
  gap: 18px;
}

.footer-grid-3{
  grid-template-columns: repeat(3, 1fr);
}

.footer-col{
  padding: 6px 0;
}

.footer-heading{
  font-size: 14px;
  margin: 0 0 10px;
  color: #fff;
}

.small{
  font-size: 13px;
  color:#ffffff;
  line-height: 1.7;
}

.footer-bottom{
  text-align:center;
  margin-top: 22px;
  padding-top: 18px;
  border-top: 1px solid rgba(255,255,255,.12);
  font-size: 12px;
  color: rgba(255,255,255,.68);
}

.footer-credit{
  display:inline-block;
  margin-top: 6px;
  color: rgba(255,255,255,.58);
}

/* =========================
   MOBILE NAV
   Your JS toggles:
   - .nav.is-open (first script)
   - body.menu-open (first script)
   - header.menu-open (second script)
   We support all of them.
   ========================= */
@media (max-width: 920px){
  .hero-grid{ grid-template-columns: 1fr; }
  .hero-card{ box-shadow: 0 12px 30px rgba(0,0,0,.10); }

  .nav-toggle{ display:block; }

  /* default: hidden menu */
  .nav{
    position: fixed;
    top: 74px;
    right: 16px;
    left: 16px;
    display: none;
    flex-direction: column;
    gap: 6px;
    padding: 12px;
    border-radius: 16px;
    background: rgba(17,19,22,.92);
    border: 1px solid rgba(255,255,255,.14);
    backdrop-filter: blur(10px);
    z-index: 999;
  }

  .nav a{
    width: 100%;
    padding: 12px 12px;
    border-radius: 12px;
    color: #fff;
  }

  /* open states */
  .nav.is-open,
  body.menu-open .nav,
  .hero-header.menu-open .nav{
    display:flex;
  }

  /* prevent page scroll behind open menu */
  body.menu-open{
    overflow: hidden;
  }

  /* HOME HELP collapses */
  .help-box{
    grid-template-columns: 1fr;
    padding: 18px;
  }

  .footer-grid-3{
    grid-template-columns: 1fr;
  }
}

@media (max-width: 560px){
  .hero-header{ min-height: 240px; background-position: center top; }
  .brand{ width: 148px; height: 40px; }
}

/* =========================
   OPTIONAL: If you want the hero section to tuck closer to header image,
   reduce top padding here:
   .hero { padding-top: 34px; }
   ========================= */
/* =========================
   PAGE HERO (About, Books, Services headers)
   ========================= */
.page-hero{
  padding: 30px 0 40px;
  background: #ffffff;
}

.books{
  padding: 30px 0;
}

.books-grid{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 60px 40px;
}

.book-card{
  display: flex;
  flex-direction: column;
}

.book-card img{
  width: 100%;
  max-width: 280px;
  margin-bottom: 16px;
  border-radius: 6px;
  border: 1px solid rgba(0,0,0,.08);
}

.book-card h3{
  margin-bottom: 6px;
}

.book-author{
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--muted);
  margin-bottom: 12px;
}

.book-tagline{
  font-weight: 600;
  color: var(--ink);
  margin-bottom: 10px;
}

.book-actions{
  margin-top: auto; /* keeps buttons aligned nicely */
  display: flex;
  gap: 12px;
}

.book-card img{
  width: 100%;
  max-width: 280px;
  margin-bottom: 16px;
  border-radius: 6px;
  border: 1px solid rgba(0,0,0,.08);
}

.book-card img{
  display: block;
  margin: 0 auto 16px;
  max-width: 280px;
}

.contact{
  padding: 50px 0 70px;
}

.contact-grid{
  display: grid;
  grid-template-columns: 1.2fr .8fr;
  gap: 40px;
  align-items: start;
}

.contact-form{
  background: #fff;
  border: 1px solid rgba(0,0,0,.10);
  border-radius: 18px;
  padding: 24px;
  box-shadow: 0 10px 30px rgba(0,0,0,.06);
}

.contact-box{
  background: #fff;
  border: 1px solid rgba(0,0,0,.10);
  border-radius: 18px;
  padding: 22px;
}

.contact-image{
  margin-top: 16px;
  border-radius: 18px;
  overflow: hidden;
  border: 1px solid rgba(0,0,0,.10);
}

/* Keep the image from being huge */
.contact-image img{
  width: 100%;
  height: 220px;        /* <-- adjust: 180–280 */
  object-fit: cover;
  display: block;
}

/* Mobile */
@media (max-width: 900px){
  .contact-grid{
    grid-template-columns: 1fr;
  }
}
/* =========================
   CONTACT — Split Layout (Clean + Safe)
   ========================= */

.contact-split{
  display: grid;
  grid-template-columns: 1fr 450px; /* left expands, right stays 450px */
  padding: 0 40px;
  gap: 40px; /* optional */
  align-items: start;
}

/* LEFT PANEL */
.contact-split-left{
  padding: 64px 56px;
  max-width: 720px;
}

.contact-title{
  font-size: clamp(44px, 5vw, 72px);
  line-height: 1.02;
  color: rgba(22,24,28,.55);
  margin: 0 0 18px;
}

.contact-lead{
  max-width: 62ch;
  font-size: 16px;
  line-height: 1.7;
  color: rgba(22,24,28,.78);
  margin: 0 0 18px;
}

.contact-email{
  margin: 0 0 24px;
}
.contact-email a{
  color: rgba(22,24,28,.75);
  text-decoration: none;
}
.contact-email a:hover{
  text-decoration: underline;
}

/* FORM */
.contact-form-split{
  margin-top: 28px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px 18px;
  align-items: start;
}

.contact-form-split .field{
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.contact-form-split .field-full{
  grid-column: 1 / -1;
}

.contact-form-split label{
  font-weight: 600;
  font-size: 13px;
  color: rgba(22,24,28,.75);
}

.contact-form-split .req{
  font-weight: 600;
  font-size: 12px;
  color: rgba(22,24,28,.55);
  margin-left: 6px;
}

.contact-form-split input,
.contact-form-split textarea,
.contact-form-split select{
  width: 100%;
  padding: 12px 14px;
  border-radius: 18px;
  border: 1px solid rgba(0,0,0,.20);
  background: transparent;
  font: inherit;
  color: rgba(22,24,28,.85);
  outline: none;
}

.contact-form-split textarea{
  min-height: 150px;
  resize: vertical;
}

/* RIGHT IMAGE PANEL (smaller + never disappears) */
.contact-split-right{
  height: 350px;
  margin-top: 60px;
  background-image: url("../images/pen_paper.jpg");
  background-size: cover;
  background-position: left;
  background-repeat: no-repeat;
}

/* MOBILE */
@media (max-width: 980px){
  .contact-split{
    grid-template-columns: 1fr;
    padding-bottom: 60px;
  }

  .contact-split-left{
    padding: 44px 20px;
    max-width: none;
  }

  .contact-form-split{
    grid-template-columns: 1fr;
  }

  .contact-split-right{
    height: 340px;                /* smaller on phones */
    background-position: center;
  }
  /* =========================
   CONTACT — Split Layout (Clean + Safe)
   ========================= */

.contact-split{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  background: #ffffff;
  padding-bottom: 80px;            /* space before footer */
}

/* LEFT PANEL */
.contact-split-left{
  padding: 64px 56px;
  max-width: 720px;
}

.contact-title{
  font-size: clamp(44px, 5vw, 72px);
  line-height: 1.02;
  color: rgba(22,24,28,.55);
  margin: 0 0 18px;
}

.contact-lead{
  max-width: 62ch;
  font-size: 16px;
  line-height: 1.7;
  color: rgba(22,24,28,.78);
  margin: 0 0 18px;
}

.contact-email{
  margin: 0 0 24px;
}
.contact-email a{
  color: rgba(22,24,28,.75);
  text-decoration: none;
}
.contact-email a:hover{
  text-decoration: underline;
}

/* FORM */
.contact-form-split{
  margin-top: 28px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px 18px;
  align-items: start;
}

.contact-form-split .field{
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.contact-form-split .field-full{
  grid-column: 1 / -1;
}

.contact-form-split label{
  font-weight: 600;
  font-size: 13px;
  color: rgba(22,24,28,.75);
}

.contact-form-split .req{
  font-weight: 600;
  font-size: 12px;
  color: rgba(22,24,28,.55);
  margin-left: 6px;
}

.contact-form-split input,
.contact-form-split textarea,
.contact-form-split select{
  width: 100%;
  padding: 12px 14px;
  border-radius: 18px;
  border: 1px solid rgba(0,0,0,.20);
  background: transparent;
  font: inherit;
  color: rgba(22,24,28,.85);
  outline: none;
}

.contact-form-split textarea{
  min-height: 150px;
  resize: vertical;
}

/* RIGHT IMAGE PANEL */
.contact-split-right{
  background-image: url("../images/pen_paper.jpg");
  background-size: cover;
  background-position: center 35%;
  background-repeat: no-repeat;

  height: 350px;
  align-self: start;

  margin-top: 0;  /* remove the margin-top */
}

 /* FORCE the image panel to sit lower on ALL devices */
.contact-split-right{
  margin-top: 60px !important;
  align-self: start;
}

.contact-split-right{
  background-image: url("../images/pen_paper.jpg");
  background-size: cover;
  background-position: center 35%;
  background-repeat: no-repeat;

  height: 350px;
  align-self: start;
  margin-top: 60px;   /* THIS is the drop */
}


/* MOBILE */
@media (max-width: 980px){
  .contact-split{
    grid-template-columns: 1fr;
    padding-bottom: 60px;
  }



}
