/* styles.css */
:root{
  --ink:#2e2e2e;
  --paper:#fafafc;
  --accent-main:#7c9885;
  --accent-secondary:#c3a68c;
  --neutral:#e4e4e8;
  --radius:18px;
  --shadow:0 10px 30px rgba(0,0,0,.06);
  --maxw:1040px;
  --base:18px;
}

/* Base */
html,body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:"Helvetica Neue",-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  font-size:var(--base);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
a{
  color:var(--accent-main);
  text-decoration:none;
}
a:hover{
  color:var(--accent-secondary);
}
.wrap{
  max-width:var(--maxw);
  margin:0 auto;
  padding:0 20px 80px;
}

/* Reduce bottom padding on pages without back-top button to match Home spacing */
.wrap-no-backtop{
  padding-bottom:0;
}

/* Sections */
section{
  margin:40px 0;
  scroll-margin-top:90px;
}

/* Services page anchor targets - account for taller nav bar */
#contract-backlogs,
#board-financing-governance,
#strategic-partnerships,
#outside-counsel{
  scroll-margin-top:100px;
}

/* NAV */
header.site{
  position:sticky;
  top:0;
  background:linear-gradient(#fafafc,rgba(250,250,252,.94));
  backdrop-filter:saturate(1.1) blur(4px);
  border-bottom:1px solid var(--neutral);
  z-index:50;
}
.topbar{
  max-width:var(--maxw);
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:13px 20px;
}
.brand-left{
  font-family:'Libre Baskerville',serif;
  font-weight:700;
  font-size:33px;
  color:var(--accent-main);
}
nav.links{
  display:flex;
  gap:18px;
  align-items:center;
  font-weight:500;
}
nav.links a{
  font-size:25px;
}

/* Desktop nav - reduce link size only */
@media(min-width:900px){
  nav.links a{
    font-size:17px;
  }
}

.hamburger{
  display:none;
  flex-direction:column;
  gap:5px;
  cursor:pointer;
}
.hamburger span{
  width:25px;
  height:3px;
  background:var(--accent-main);
  border-radius:2px;
}

/* Mobile nav */
@media(max-width:740px){
  nav.links{
    display:none;
    flex-direction:column;
    gap:12px;
    background:#fff;
    position:absolute;
    top:100px;
    right:20px;
    padding:20px;
    border:1px solid var(--neutral);
    border-radius:var(--radius);
    box-shadow:var(--shadow);
  }
  nav.links.active{
    display:flex;
  }
  .hamburger{
    display:flex;
  }
}

/* Type hierarchy */
.hero-title,
section header h2{
  font-family:'Libre Baskerville',serif;
  color:var(--ink);
}

/* Hero title (Level 1) */
.hero-title{
  font-size:min(6vw,78px); /* doubled */
  line-height:1.05;
  margin:6px 0 20px;
  text-align:center;
  color:#7c9885; /* green */
}

.hero-title-wrap{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
}
.hero-icon svg{
  width:540px;   /* 3x wider */
  height:150px;  /* proportional height */
}

.hero-headshot{
  width:140px;
  height:auto;
  margin-top:14px;
  border-radius:14px;
  border:2px solid var(--accent-main);
  box-shadow:0 6px 18px rgba(0,0,0,.12);
}



/* Section headers (Level 1) */
section header h2{
  font-size:29px;
  margin:4px 0 6px;
  text-align:left;
  line-height:1.05;
}

/* Page headers - About, Services, Contact (50% larger) */
.page-header h2{
  font-size:44px !important; /* ~50% increase from 29px */
  text-align:center !important;
}

.page-header .subhead{
  font-size:33px !important; /* ~50% increase from 22px */
  text-align:center !important;
}

/* About page header uses accent color */
body.about .page-header h2{
  color:var(--accent-main) !important;
}


section header h2:hover{
  color:#5f7a69;
  transition:color .18s ease;
}




/* Titles with icons */
.title-with-icon{
  display:flex;
  align-items:center;
  gap:10px;
}
.title-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.title-icon svg{
  width:45px;
  height:45px;
  opacity:0.9;
}

/* Subheaders / taglines (Level 2) */
.hero-tagline,
.hero-subhead,
.subhead{
  font-size:27px;
  font-weight:600;
  color:#555555;
  text-align:left;
  max-width:none;
  margin:0 0 12px 0;
}

.hero-tagline{
  max-width:640px;
  margin:0 0 6px 0; /* remove auto centering */
  padding:0;
  text-align:left;
}

/* Body text (Level 3) */
.body-text{
  font-size:18px;
  line-height:1.35;
}

.section-body{
  font-size:18px;
}

/* HERO */
section.hero{
  margin:0px 0 18px;
}
.hero{
  padding:20px 0 32px;
}
.hero-inner{
  max-width:1040px;
  margin:12px auto 0 auto; /* adds space below navbar */
  display:grid;
  grid-template-columns:30% 1fr; /* exact 30/70 split */
  gap:32px;
  align-items:flex-start;
}

/* Force tagline + body into right column of hero grid */
.hero-tagline,
.hero-body{
  grid-column:2;
}

.hero-text{
  display:flex;
  flex-direction:column;
  max-width:640px;  /* matching other sections */
  margin:0;         /* aligns with left grid edge */
}

.hero-tagline{
  margin:0 0 8px 0; /* reduces gap */
  padding:0;
}

.hero-body{
  max-width:640px;
  color:var(--ink);
  margin:0;
  padding:0;
  text-align:left;
}



.hero-body p{
  margin:.5em 0;
}

/* Generic card */
.card{
  background:#ffffff;
  border:1px solid var(--neutral);
  border-radius:var(--radius);
  padding:20px 22px 22px;
  box-shadow:var(--shadow);
}

/* About card specific */
#about h2{
  text-decoration:underline;
}
.about-card-top{
  display:flex;
  align-items:flex-start;
  gap:16px;
  margin-bottom:12px; /* tighten spacing */
}
.about-photo img{
  width:220px;
  height:265px;
  border-radius:16px;
  object-fit:cover;
  box-shadow:0 6px 18px rgba(0,0,0,.1);
  border:2px solid var(--accent-main);
}

.about-body-wrap{
  display:flex;
  flex-direction:row;
  align-items:flex-start;
  gap:18px;
}

.about-body-wrap p{
  flex:1;
  width:auto;
  margin-top:0;
}

.about-photo{
  flex:0 0 auto;
}

@media(max-width:640px){
  .about-body-wrap{
    flex-direction:column;
  }
  .about-card-top{
    flex-direction:column;
    align-items:flex-start;
  }
  .about-photo{
    width:100%;
    margin-bottom:18px;
  }
  .about-photo img{
    width:100%;
    height:auto;
    max-width:100%;
    aspect-ratio:220/265;
    object-fit:cover;
  }
}

/* Band section */
.band{
  background:#f3f3f8;
  border:1px solid var(--neutral);
  border-left:3px solid var(--accent-main);
  border-radius:14px;
  padding:20px 22px 24px;
  box-shadow:var(--shadow);
}

/* Contact section (Home page) */
.contact-wrap{
  background:#f0f0f6;
  border:1px solid var(--neutral);
  border-radius:20px;
  padding:20px;
  box-shadow:var(--shadow);
}

.contact-top{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:24px;
}

.contact-header{
  max-width:640px;
}

.contact-photo img{
  width:120px;
  height:120px;
  border-radius:50%;
  object-fit:cover;
  border:2px solid var(--accent-main);
  box-shadow:0 6px 18px rgba(0,0,0,.08);
}

.contact-ctas{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:22px;
  margin-top:16px;
}

.contact-cta p{
  margin:0 0 8px;
}

@media(max-width:640px){
  .contact-top{
    flex-direction:column;
    align-items:flex-start;
  }
  .contact-ctas{
    grid-template-columns:1fr;
    margin-top:10px;
  }
  .contact-photo{
    justify-content:flex-start;
    margin-top:10px;
  }
  .contact-photo img{
    width:90px;
    height:90px;
  }
}

/* Scattered graphic card */
.graphic-card{
  margin:18px auto 0;
  border-radius:var(--radius);
  box-shadow:0 6px 12px rgba(0,0,0,0.04);
  overflow:hidden;
  background:#ffffff;
  max-width:680px; /* reduced visual size */
}
.scattered-img{
  display:block;
  width:100%;
  height:auto;
}

.support-cards{
  display:grid;
  grid-template-columns:1fr; /* stack vertically */
  row-gap:16px;
  margin:18px 0 24px; /* slightly more breathing room */
}

/* Two-column layout for How I Support section */
.support-section-layout{
  display:grid;
  grid-template-columns:1fr 2fr;
  gap:32px;
  align-items:flex-start;
  margin:18px 0 24px;
}

.support-text{
  max-width:640px;
}

@media(max-width:900px){
  .support-section-layout{
    grid-template-columns:1fr;
    gap:24px;
  }
}


.support-card{
  background:#ffffff;
  border-left:4px solid var(--accent-main);
  border-radius:14px;
  padding:12px 18px 14px;
  box-shadow:var(--shadow);
  margin-left:32px;
  max-width:640px;
  text-decoration:none;
  color:inherit;
  display:block;

  /* animation + interaction */
  opacity:0;
  transform:translateX(16px);
  transition:
    opacity .5s ease,
    transform .5s ease,
    box-shadow .18s ease,
    border-color .18s ease;
}

.support-card.is-visible{
  opacity:1;
  transform:translateX(0);
}

.support-card:hover{
  transform:translateY(-3px);
  box-shadow:0 14px 34px rgba(0,0,0,.10);
  border-left-color:#5f7a69;
}

.support-card:hover .support-title{
  color:#5f7a69;
}

.support-title{
  margin:0 0 8px 0;
  font-weight:700;
  font-size:22px;
  position:relative;
  padding-bottom:8px;
  line-height:1.2;
  font-family:inherit; /* Use site's sans-serif font */
}

/* Services page card titles have green accent rule */
.services-main .support-card .support-title::after,
.services-main .support-card h3.support-title::after{
  content:'';
  position:absolute;
  bottom:0;
  left:0;
  width:28px;
  height:2px;
  background:var(--accent-main);
}

/* Support title can be h3 or p */
.support-card h3.support-title,
.support-card p.support-title{
  margin:0 0 8px 0;
  font-weight:700;
  font-size:22px;
  position:relative;
  padding-bottom:8px;
  line-height:1.2;
  font-family:inherit; /* Use site's sans-serif font */
}

/* Highlight card when navigated to via anchor */
.support-card:target{
  animation:highlightCard 1.5s ease;
}

@keyframes highlightCard{
  0%, 100%{
    background:#ffffff;
  }
  50%{
    background:#f0f8f3;
  }
}

.support-desc{
  margin:0;
  line-height:1.35;
}

/* When .support-desc is a list (Services page) */
ul.support-desc{
  padding-left:20px;
  list-style-type:disc;
}

ul.support-desc li{
  margin-bottom:4px;
  line-height:1.35;
}

ul.support-desc li:last-child{
  margin-bottom:0;
}

.support-card p:last-child{
  margin-bottom:0;
}

@media(max-width:780px){
  .support-cards{
    grid-template-columns:1fr;
  }
}

/* Scroll reveal helpers (re-used across pages) */
.reveal.is-visible{
  opacity:1;
  transform:translateY(0);
}

/* Direction variants */
.reveal.right{ transform:translateX(18px); }
.reveal.up{ transform:translateY(18px); }
.reveal.right.is-visible{ transform:translateX(0); }
.reveal.up.is-visible{ transform:translateY(0); }



/* Promo */
.promo-band{
  background:#d8c49a;
  border:1px solid #c0ab85;
  border-radius:16px;
  padding:28px 26px 21px 26px;
  margin:40px 0;
  box-shadow:var(--shadow);
}
.promo-inner{
  max-width:none;
  margin:0;
}
.promo-head{
  font-size:22px;
  margin:0 0 6px;
}
.promo-body{
  font-size:18px;
  margin:0;
  line-height:1.25;
}


/* Testimonials */
#testimonials h2{
  text-decoration:underline;
}

#contact h2{
  text-decoration:underline;
}

.testimonials-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:22px;
  align-items:stretch;
}

.testimonial-card{
  background:#ffffff;
  border:1px solid var(--neutral);
  border-radius:var(--radius);
  padding:18px 18px 20px;
  box-shadow:var(--shadow);
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  opacity:0;
  transform:translateY(18px);
  transition:
    opacity .5s ease,
    transform .5s ease;
}

.testimonial-card.is-visible{
  opacity:1;
  transform:translateY(0);
}

.testimonial-text{
  font-style:italic;
  font-size:18px;
  line-height:1.7;
  margin:0 0 10px;
}
.testimonial-name{
  font-size:16px;
  font-weight:600;
  color:#555;
  margin:0;
}

@media(max-width:900px){
  .testimonials-grid{
    grid-template-columns:1fr;
  }
}


/* Contact */

@media(max-width:780px){

  /* Stack hero into one column */
  .hero-inner{
    grid-template-columns:1fr;
    gap:20px;
  }

  /* Center arc + Reilly GC on mobile */
  .hero-left{
    justify-content:center;
    align-items:center;
    text-align:center;
  }

.hero-logo-wrap{
  align-items:center !important;
  text-align:center !important;
}


  /* Center the name group */
  .hero-name{
    justify-content:center;
    text-align:center;
  }

  /* Remove the extra top padding from the right column */
  .hero-right{
    padding-top:88px;
  }
}


/* Footer */
footer{
  max-width:var(--maxw);
  margin:40px auto 0;
  padding:14px 20px 0;
  border-top:1px solid var(--neutral);
  display:flex;
  flex-wrap:nowrap;
  gap:10px;
  justify-content:space-between;
  align-items:flex-start;
  color:#7a7a7a;
  font-size:14px;
}

/* Footer inside .wrap should not have horizontal padding */
.wrap > footer{
  padding-left:0;
  padding-right:0;
}
.footer-left{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.footer-meta{
  font-size:13px;
  color:#555;
  line-height:1.45;
  max-width:720px;
  margin-top:6px;
}

.footer-meta strong{
  color:#2e2e2e;
  font-weight:700;
}
.footer-right{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:8px;
}
.footer-right .btn{
  padding:8px 14px;
  font-size:14px;
  box-shadow:none;
}
@media(max-width:640px){
  footer{
    flex-direction:column;
    align-items:flex-start;
    gap:12px;
  }
  .footer-right{
    align-items:flex-start;
  }
}

.footer-share-link{
  font-size:13px;
  color:#7c9885;
  text-decoration:underline;
  margin-top:4px;
  display:inline-block;
}
.footer-share-link:hover{
  color:#5f7a69;
}

.wrap > section:last-of-type{
  margin-bottom:64px;
}

/* Match Home page spacing - remove extra margin from last section on About page */
section.last-section{
  margin-bottom:0;
}


/* Buttons */
.btn{
  display:inline-block;
  background:var(--accent-main);
  color:#fff;
  padding:10px 16px;
  border-radius:999px;
  font-weight:700;
  box-shadow:var(--shadow);
  border:1px solid transparent;
  transition:transform .04s ease,box-shadow .04s ease,background .04s ease,color .04s ease,border-color .04s ease;
}
.btn:hover{
  background:#687f71;
  transform:translateY(-1px);
  box-shadow:0 12px 30px rgba(0,0,0,.08);
}

/* Back-to-top button override */
.back-top .btn{
  background:#ffffff;
  color:var(--accent-main);
  border-color:var(--accent-main);
  box-shadow:none;
}
.back-top .btn:hover{
  background:#f5f5f8;
  color:var(--accent-main);
  transform:translateY(-1px);
  box-shadow:var(--shadow);
}

/* Back-to-top alignment */
.back-top{
  margin-top:16px;
  text-align:center;
}
.section-divider{
  width:66%;
  height:1px;
  background:#7c9885;
  opacity:0.6;
  margin:20px auto;
}


.subhead{
  font-size:22px !important; /* 20% smaller than 27px */
}


.promo-flex{
  display:flex;
  gap:22px;
  align-items:flex-start;
  justify-content:flex-start;
  text-align:left;
}

.promo-icon svg{
  width:52px;
  height:52px;
  opacity:0.9;
}

.promo-icon{
  flex:0 0 auto;
  display:flex;
  align-items:flex-start;
  justify-content:flex-start;
}

.promo-text{
  flex:1;
  padding-right:10px; /* keeps right edge visually balanced */
}

.promo-btn{
  background:#ffffff;
  color:#2e2e2e;
  border:1px solid #2e2e2e;
  box-shadow:none;
  padding:8px 14px;
  font-size:15px;
  transition:transform .06s ease, box-shadow .06s ease;
}

.promo-btn:hover{
  transform:translateY(-2px);
  box-shadow:0 8px 16px rgba(0,0,0,0.08);
}

.promo-cta{
  text-align:center;
  margin-top:8px;
  margin-bottom:10px;
}



.hero-logo-col{
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  gap:2px;              /* tighter */
  margin-top:-10px;     /* pulls logo upward */
  position:relative;
}

/* Replace single-line title with stacked version */

.hero-title-stack{
  display:flex;
  flex-direction:column;
  align-items:center;       /* center under arc */
  justify-content:center;
  margin:0;
  padding:0;
  line-height:1.05;
}

.hero-title-line{
  font-family:'Libre Baskerville',serif;
  color:#7c9885;
  font-size:min(6vw,72px);
  font-weight:700;
}

/* LEFT COLUMN */
.hero-left{
  display:flex;
  justify-content:center;
  align-items:flex-start;
  padding-top:10px;
}

.hero-logo-wrap{
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  gap:8px;
}

/* Reilly GC name */
.hero-name{
  display:flex;
  gap:10px;
  justify-content:center;
  align-items:baseline;
}



.hero-name-main{
  font-family:'Libre Baskerville',serif;
  font-size:62px;
  font-weight:700;
  color:#7c9885;
}

.hero-name-sub{
  font-family:'Libre Baskerville',serif;
  font-size:62px;
  font-weight:700;
  color:#7c9885;
}

/* RIGHT COLUMN */
.hero-right{
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  align-items:flex-start;
  padding-top:108px;
}

.hero-left{
  overflow:visible;
}

.hero-icon svg{
  width:100%;       /* scales down to fit the column */
  max-width:280px;  /* ensures zero overflow */
  height:auto;      /* preserves proportions */
  display:block;
}

.download-row-wrapper{
  margin:28px 0 10px;
  max-width:720px;
  margin-left:auto;
  margin-right:auto;
}

.download-row{
  background:#d8c49a;
  border:1px solid #c0ab85;
  border-radius:var(--radius);
  padding:22px 20px 24px;
  box-shadow:var(--shadow);
  text-align:center;
}

.download-row a{
  font-size:17px;
  font-weight:600;
  color:#7c9885;
  text-decoration:underline;
}

.download-row a:hover{
  color:#5f7a69;
}

.download-copy{
  font-style:italic;
  max-width:520px;          /* middle third */
  margin:0 auto 6px;
  line-height:1.35;
  color:#555;
  text-align:justify;
  text-align-last:center;  /* keeps last line from looking awkward */
}

/* Mobile optimization for one-pager box */
@media(max-width:640px){
  .download-row-wrapper{
    margin:20px 0 8px;
  }
  
  .download-row{
    padding:18px 16px 20px;
  }
  
  .download-copy{
    line-height:1.4;
    margin:0 auto 12px;
  }
  
  .download-copy br{
    display:block;
    margin:4px 0;
  }
}

.btn-grey{
  background:#e4e4e8;
  color:#2e2e2e;
  border:1px solid #c8c8cc;
  box-shadow:none;
}

.btn-grey:hover{
  background:#d8d8dd;
  color:#2e2e2e;
  box-shadow:0 10px 20px rgba(0,0,0,.06);
}

.share-btn{
  background:#e4e4e8 !important;
  color:#2e2e2e !important;
  border-color:#e4e4e8 !important;
}
.share-btn:hover{
  background:#d6d6da !important;
  color:#2e2e2e !important;
}

/* Floating Intro Call Button */
.float-cta{
  position:fixed;
  bottom:28px;
  right:28px;
  z-index:999;
  display:flex;
  flex-direction:column;
  gap:12px;
}

.float-share-btn{
  background:#e4e4e8 !important;
  color:#2e2e2e !important;
  border:1.5px solid #b7b7bd !important; /* NEW: subtle contrast border */
  font-size:16px;
  padding:12px 22px;
  border-radius:999px;
  box-shadow:0 10px 24px rgba(0,0,0,.15);
}

.float-share-btn:hover{
  background:#d6d6da !important;
  border-color:#a6a6ac !important; /* Slightly darker hover border */
}

@media(max-width:640px){
  .float-cta{
    bottom:20px;
    right:20px;
    gap:10px;
  }
  .float-share-btn{
    font-size:15px;
    padding:10px 20px;
  }
}

@supports (position:fixed){
  .float-cta{ display:flex !important; }
}

.support-result{
  margin-top:28px;
}

/* =========================
   PAGE HEADERS (About / Services / Contact)
   ========================= */
.page-header{
  text-align:center;
  margin-bottom:32px;
}

.page-header h2{
  color:var(--accent-main);
  text-align:center !important;
}

.page-header .subhead{
  max-width:640px;
  margin:0 auto;
  text-align:center !important;
}


/* =========================
   CARD HEADER ICON ALIGNMENT
   ========================= */
.card-header-icon{
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:10px;
}

.card-header-icon h2{
  margin:0;
  line-height:1.1;
  display:flex;
  align-items:center;
}

.card-header-icon .title-icon svg{
  width:42px;
  height:42px;
  opacity:.9;
}


/* =========================
   REVEAL ANIMATIONS — CARDS
   ========================= */
.card.reveal{
  opacity:0;
  transition:
    opacity .6s ease,
    transform .6s ease;
}

.card.reveal.right{
  transform:translateX(24px);
}

.card.reveal.right.is-visible{
  opacity:1;
  transform:translateX(0);
}


/* =========================
   REVEAL ANIMATIONS — BAND
   ========================= */
.band.reveal{
  opacity:0;
  transform:translateY(24px);
  transition:
    opacity .6s ease,
    transform .6s ease;
}

.band.reveal.is-visible{
  opacity:1;
  transform:translateY(0);
}

/* Testimonials reveal animation */
.testimonial-card.reveal{
  opacity:0;
  transform:translateY(18px);
  transition:
    opacity .5s ease,
    transform .5s ease;
}

.testimonial-card.reveal.is-visible{
  opacity:1;
  transform:translateY(0);
}

/* =========================
   SERVICES PAGE LAYOUT
   ========================= */
.services-layout{
  display:grid;
  grid-template-columns:1fr 360px;
  gap:24px;
  align-items:flex-start;
  margin:40px 0;
}

.services-main{
  display:flex;
  flex-direction:column;
  gap:0;
}

/* Remove spacing between sections on Services page */
.services-main > section{
  margin:0;
}

/* Add spacing before specific sections that need it */
.services-main > section.section-spacing{
  margin-top:32px;
}

.services-sidebar{
  background:#d8c49a;
  border:1px solid #c0ab85;
  border-radius:var(--radius);
  padding:22px 20px 24px;
  box-shadow:var(--shadow);
  position:sticky;
  top:100px;
  align-self:flex-start;
  opacity:0;
  transform:translateX(18px);
  animation:sidebarSlideIn .6s ease forwards;
}

@keyframes sidebarSlideIn{
  to{
    opacity:1;
    transform:translateX(0);
  }
}

/* "When I'm Not the Right Fit" section - full width, interrupts layout */
.not-right-fit-section{
  margin-top:32px;
}

.services-sidebar .promo-icon{
  display:flex;
  justify-content:center;
  margin-bottom:16px;
}

.services-sidebar .promo-icon svg{
  width:48px;
  height:48px;
  opacity:0.9;
}

.services-sidebar h2{
  font-family:'Libre Baskerville',serif;
  font-size:24px;
  margin:0 0 12px 0;
  color:var(--ink);
  text-align:center;
}

.services-sidebar .body-text{
  margin:0 0 12px 0;
  font-size:16px;
  line-height:1.5;
}

.services-sidebar .body-text:last-child{
  margin-bottom:0;
}

.services-sidebar ul{
  margin:12px 0;
  padding-left:20px;
}

.services-sidebar li{
  margin-bottom:8px;
}

@media(max-width:900px){
  .services-layout{
    grid-template-columns:1fr;
    gap:24px;
  }
  
  .services-sidebar{
    position:static;
  }
}

/* =========================
   DISCLAIMER MODAL
   ========================= */
.modal-overlay{
  position:fixed;
  top:0;
  left:0;
  right:0;
  bottom:0;
  background:rgba(0,0,0,.5);
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:9999;
  padding:20px;
}

.modal-content{
  background:#fff;
  border-radius:var(--radius);
  box-shadow:0 20px 60px rgba(0,0,0,.3);
  max-width:640px;
  width:100%;
  max-height:90vh;
  display:flex;
  flex-direction:column;
  position:relative;
}

.modal-title{
  font-family:'Libre Baskerville',serif;
  font-size:28px;
  margin:0 0 20px 0;
  color:var(--ink);
  padding:32px 32px 0 32px;
  flex-shrink:0;
}

.modal-body{
  padding:0 32px 20px 32px;
  overflow-y:auto;
  flex:1;
  min-height:0;
}

.modal-body p{
  margin:0 0 16px 0;
  line-height:1.6;
  font-size:16px;
  color:var(--ink);
}

.modal-body p:last-child{
  margin-bottom:0;
}

.modal-actions{
  display:flex;
  gap:12px;
  justify-content:flex-end;
  padding:24px 32px 32px 32px;
  background:#fff;
  border-top:1px solid var(--neutral);
  flex-shrink:0;
  position:sticky;
  bottom:0;
}

@media(max-width:640px){
  .modal-title{
    font-size:24px;
    padding:24px 24px 0 24px;
  }
  
  .modal-body{
    padding:0 24px;
  }
  
  .modal-actions{
    flex-direction:column-reverse;
    padding:20px 24px 24px 24px;
  }
  
  .modal-actions .btn{
    width:100%;
  }
}

/* =========================
   CONTACT FORM STYLING
   ========================= */
.text-center{
  text-align:center;
}

.color-accent{
  color:#6a8572;
  font-weight:600;
}

.form-required{
  color:#7c9885;
}

.form-submit-wrapper{
  margin-top:20px;
}
.form-field{
  margin-bottom:20px;
}

.form-field label{
  display:block;
  font-weight:600;
  margin-bottom:6px;
  color:var(--ink);
  font-size:16px;
}

.form-field input,
.form-field textarea{
  width:100%;
  padding:10px 14px;
  border:1px solid var(--neutral);
  border-radius:8px;
  font-family:inherit;
  font-size:16px;
  line-height:1.5;
  color:var(--ink);
  background:#fff;
  transition:border-color .18s ease,box-shadow .18s ease;
  box-sizing:border-box;
}

.form-field input:focus,
.form-field textarea:focus{
  outline:none;
  border-color:var(--accent-main);
  box-shadow:0 0 0 3px rgba(124,152,133,.1);
}

.textarea-wrapper{
  position:relative;
}

.form-field textarea{
  resize:vertical;
  min-height:120px;
}

/* Overlay to catch clicks on disabled textarea */
.textarea-overlay{
  position:absolute;
  top:0;
  left:0;
  right:0;
  bottom:0;
  cursor:text;
  z-index:1;
}

.form-field textarea:not(:disabled) ~ .textarea-overlay{
  display:none;
}

.form-helper{
  font-size:14px;
  color:#666;
  margin:6px 0 0 0;
  font-style:italic;
}

.form-checkbox{
  margin:24px 0;
  display:flex;
  align-items:flex-start;
  gap:10px;
}

.form-checkbox input[type="checkbox"]{
  margin-top:4px;
  flex-shrink:0;
  width:18px;
  height:18px;
  cursor:pointer;
  accent-color:var(--accent-main);
}

.form-checkbox label{
  font-size:15px;
  line-height:1.5;
  color:var(--ink);
  cursor:pointer;
  margin:0;
}

.form-checkbox input[type="checkbox"]:checked + label{
  color:var(--ink);
}
