:root{--pine:#1f4d3a;--pine-dark:#113126;--charcoal:#252827;--cream:#f6f2e9;--fog:#e9e7df;--gold:#d89b3c;--blue:#5b7c99;--white:#fff;--shadow:0 18px 50px rgba(17,49,38,.18)}*{box-sizing:border-box}html{scroll-behavior:smooth}section[id]{scroll-margin-top:220px}body{margin:0;font-family:Inter,Arial,sans-serif;color:var(--charcoal);background:linear-gradient(180deg, #2f5d3a 0%, #c2a47a 100%);line-height:1.6}a{color:inherit}.site-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:14px 6vw;background:rgba(246,242,233,.92);backdrop-filter:blur(14px);box-shadow:0 1px 0 rgba(31,77,58,.12)}.brand{display:flex;align-items:center;gap:12px;text-decoration:none}.brand-mark{display:grid;place-items:center;width:48px;height:48px;border-radius:16px;background:linear-gradient(135deg,var(--pine),var(--blue));color:white;font-weight:800;box-shadow:var(--shadow)}.brand strong{display:block;font-size:1.05rem}.brand small{display:block;color:#66706a;font-size:.78rem}.main-nav{display:flex;gap:22px;align-items:center}.main-nav a{text-decoration:none;font-weight:700;font-size:.95rem}.nav-toggle{display:none;background:var(--pine);color:white;border:0;border-radius:10px;padding:9px 12px;font-size:1.2rem}.hero{min-height:78vh;position:relative;display:grid;align-items:center;padding:8vw 6vw;color:white;overflow:hidden;background:linear-gradient(120deg,rgba(17,49,38,.94),rgba(31,77,58,.78)),radial-gradient(circle at 75% 35%,rgba(216,155,60,.75),transparent 28%),linear-gradient(160deg,#193b2e,#5b7c99)}.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.35),transparent),repeating-linear-gradient(90deg,rgba(255,255,255,.05) 0 1px,transparent 1px 90px);opacity:.8}.hero-content{position:relative;max-width:760px}.eyebrow{text-transform:uppercase;letter-spacing:.16em;color:var(--gold);font-weight:900;font-size:.78rem;margin:0 0 12px}.hero h1,.page-hero h1{font-size:clamp(3rem,8vw,6.8rem);line-height:.9;margin:0 0 24px;letter-spacing:-.06em}.lead{font-size:clamp(1.15rem,2vw,1.45rem);max-width:650px}.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:13px 22px;text-decoration:none;border:0;font-weight:900;cursor:pointer}.primary{background:var(--gold);color:#21180b}.secondary{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.3);color:white}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}.quick-info{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(31,77,58,.18);margin:-45px 6vw 40px;position:relative;z-index:5;border-radius:26px;overflow:hidden;box-shadow:var(--shadow)}.quick-info div{background:#fff;padding:26px}.quick-info strong,.quick-info span{display:block}.quick-info span{color:#66706a}.section{padding:78px 6vw}.two-col{display:grid;grid-template-columns:1.1fr .9fr;gap:44px;align-items:center}.section h2{font-size:clamp(2rem,4vw,3.6rem);line-height:1;margin:0 0 20px;color:var(--pine-dark);letter-spacing:-.04em}.card,.video-card{background:white;border-radius:26px;padding:28px;box-shadow:var(--shadow);border:1px solid rgba(31,77,58,.08)}.warm-card{background:linear-gradient(135deg,#fff,var(--fog))}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.dark-section{display:grid;grid-template-columns:1fr 1fr;gap:34px;align-items:center;background:var(--pine-dark);color:white}.dark-section h2{color:white}.video-placeholder{min-height:280px;border-radius:26px;background:linear-gradient(135deg,#141b18,#304739);border:1px solid rgba(255,255,255,.15);display:grid;place-items:center;color:#d4ddd6;text-align:center;padding:20px}.video-placeholder.small{min-height:170px}.event-list{display:grid;gap:14px}.event-list div{background:white;border-left:6px solid var(--gold);border-radius:18px;padding:20px;box-shadow:var(--shadow)}.event-list span{display:block;color:#66706a}.contact-section{display:grid;grid-template-columns:.9fr 1.1fr;gap:34px;background:var(--fog)}.contact-form{display:grid;gap:14px;background:white;border-radius:28px;padding:28px;box-shadow:var(--shadow)}label{font-weight:800}input,textarea{width:100%;margin-top:6px;border:1px solid #cfd6cf;border-radius:14px;padding:13px;font:inherit}.site-footer{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:32px 6vw;background:var(--charcoal);color:white}.site-footer a{color:var(--gold);font-weight:900}.page-hero{padding:120px 6vw 50px;background:linear-gradient(135deg,var(--pine-dark),var(--pine));color:white}.video-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}@media(max-width:850px){.nav-toggle{display:block}.main-nav{position:absolute;top:76px;left:6vw;right:6vw;display:none;flex-direction:column;background:white;padding:22px;border-radius:22px;box-shadow:var(--shadow)}.main-nav.open{display:flex}.quick-info,.cards,.two-col,.dark-section,.contact-section,.video-grid{grid-template-columns:1fr}.quick-info{margin-top:-25px}.hero h1{font-size:3.4rem}.section{padding:58px 6vw}.site-footer{display:block}}

.sanctuary-hero{background:linear-gradient(120deg,rgba(17,49,38,.86),rgba(31,77,58,.58)),url('freedom-place-sanctuary.jpg') center/cover no-repeat;}
.photo-feature{display:grid;grid-template-columns:1.1fr .9fr;gap:42px;align-items:center;background:linear-gradient(180deg,var(--cream),#fff)}
.photo-frame{border-radius:30px;overflow:hidden;box-shadow:var(--shadow);border:8px solid rgba(255,255,255,.9);background:#fff}
.photo-frame img{display:block;width:100%;height:auto;aspect-ratio:auto;object-fit:contain}
.designer-credit{display:flex;align-items:center;gap:14px;text-decoration:none;color:white}
.designer-credit span{font-size:.78rem;text-transform:uppercase;letter-spacing:.16em;color:var(--gold);font-weight:900;white-space:nowrap}
.designer-credit img{height:62px;width:auto;border-radius:14px;box-shadow:0 10px 26px rgba(0,0,0,.35)}
@media(max-width:850px){.photo-feature{grid-template-columns:1fr}.designer-credit{margin-top:18px}.designer-credit img{height:54px}}

.form-message {
  margin: 0.75rem 0 0;
  font-weight: 700;
}

.form-message.success {
  color: #1f7a3a;
}

.form-message.error {
  color: #b42318;
}

.contact-form button:disabled {
  cursor: not-allowed;
  opacity: 0.75;
}

/* East Texas Digital footer credit */
.designer-credit {
  display: flex;
  align-items: center;
  gap: 14px;
  text-decoration: none;
}

.designer-credit .designer-label {
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .16em;
  color: var(--gold);
  font-weight: 900;
  white-space: nowrap;
}

.designer-credit .designer-name {
  font-size: 1.18rem;
  font-weight: 900;
  letter-spacing: .02em;
  text-transform: none;
  white-space: nowrap;
  background: linear-gradient(90deg, #00c6ff 0%, #3b82f6 35%, #8b5cf6 70%, #f59e0b 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}

.designer-credit img {
  height: 62px;
  width: auto;
  border-radius: 14px;
  box-shadow: 0 10px 26px rgba(0,0,0,.35);
}

@media(max-width:850px) {
  .designer-credit {
    margin-top: 18px;
    flex-wrap: wrap;
  }

  .designer-credit img {
    height: 54px;
  }
}

/* Through the Years section */
.through-years-section {
  padding: 90px 6vw;
  background:
    radial-gradient(circle at top left, rgba(212, 176, 106, .18), transparent 34%),
    linear-gradient(135deg, rgba(255,255,255,.96), rgba(248,241,229,.96));
}

.through-years-section .section-heading {
  max-width: 820px;
  margin: 0 auto 34px;
  text-align: center;
}

.through-years-section .eyebrow {
  color: var(--gold);
  text-transform: uppercase;
  letter-spacing: .18em;
  font-weight: 900;
  margin-bottom: 10px;
}

.through-years-section h2 {
  margin: 0 0 12px;
  font-size: clamp(2rem, 4vw, 3.35rem);
  color: var(--ink);
}

.through-years-section .section-heading p:last-child {
  color: var(--muted);
  font-size: 1.08rem;
}

.through-years-card {
  max-width: 1050px;
  margin: 0 auto;
  padding: 16px;
  border-radius: 28px;
  background: rgba(255,255,255,.82);
  box-shadow: 0 26px 70px rgba(0,0,0,.18);
  border: 1px solid rgba(212,176,106,.35);
}

.through-years-card img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 20px;
}

@media(max-width:700px) {
  .through-years-section {
    padding: 64px 5vw;
  }

  .through-years-card {
    padding: 9px;
    border-radius: 20px;
  }

  .through-years-card img {
    border-radius: 14px;
  }
}

/* Freedom Place logo beside title */
.freedom-brand {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 22px;
  margin-bottom: 18px;
  flex-wrap: wrap;
}

.freedom-brand-logo {
  width: 105px;
  height: auto;
  border-radius: 22px;
  box-shadow: 0 18px 42px rgba(0,0,0,.22);
  background: rgba(255,255,255,.92);
}

.freedom-brand-text {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

@media(max-width:700px) {
  .freedom-brand {
    gap: 14px;
  }

  .freedom-brand-logo {
    width: 82px;
    border-radius: 18px;
  }
}

/* Correct Freedom Place header logo */
.site-logo,
.brand img,
.logo img,
.nav-brand img,
.freedom-brand-logo {
  width: 180px;
  height: 78px;
  object-fit: contain;
  border-radius: 16px;
  background: #ffffff;
  padding: 5px;
  box-shadow: 0 10px 28px rgba(0,0,0,.18);
}

.brand,
.logo,
.nav-brand,
.freedom-brand {
  display: flex;
  align-items: center;
  gap: 14px;
}

@media(max-width:700px) {
  .site-logo,
  .brand img,
  .logo img,
  .nav-brand img,
  .freedom-brand-logo {
    width: 180px;
    height: 58px;
  }
}



/* Remove old FP square background */
.brand-mark,
.logo-box,
.brand-badge,
.site-badge,
.monogram,
.initials-badge,
.brand-initials {
  background: transparent !important;
  box-shadow: none !important;
  border: none !important;
  padding: 0 !important;
}

.brand-mark::before,
.logo-box::before,
.brand-badge::before,
.site-badge::before,
.monogram::before,
.initials-badge::before,
.brand-initials::before {
  display: none !important;
  content: none !important;
}


/* Freedom Place sophisticated title */
.freedom-place-title {
  font-family: "Cormorant Garamond", "Playfair Display", Georgia, serif;
  font-size: clamp(2.8rem, 5vw, 5.2rem);
  font-weight: 700;
  letter-spacing: .02em;
  line-height: 1;
  background: linear-gradient(90deg, #6ee7e7 0%, #38bdf8 25%, #14b8a6 60%, #4ade80 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
  display: inline-block;
  text-shadow: 0 10px 30px rgba(0,0,0,.08);
}

@media(max-width:700px) {
  .freedom-place-title {
    font-size: clamp(2.2rem, 9vw, 3.6rem);
  }
}


/* Full Freedom Place graphic in header */
.brand-graphic-link {
  flex: 0 1 auto;
  min-width: 0;
}

.brand-graphic {
  display: block;
  width: clamp(260px, 34vw, 430px);
  height: auto;
  max-height: 74px;
  object-fit: contain;
  border-radius: 10px;
  background: transparent !important;
  padding: 0 !important;
  box-shadow: none !important;
}

@media(max-width:850px) {
  .brand-graphic {
    width: clamp(220px, 68vw, 330px);
    max-height: 58px;
  }
}

@media(max-width:520px) {
  .brand-graphic {
    width: 230px;
    max-height: 44px;
  }
}


/* Enlarged upper-left header graphic only */
.site-header {
  align-items: center;
  padding-top: 18px;
  padding-bottom: 18px;
}

.site-header .brand-graphic-link {
  flex: 0 1 auto;
}

.site-header .brand-graphic {
  width: clamp(390px, 29vw, 645px) !important;
  max-width: 58vw !important;
  height: auto !important;
  max-height: 111px !important;
  object-fit: contain !important;
  border-radius: 10px !important;
  background: transparent !important;
  padding: 0 !important;
  box-shadow: none !important;
}

@media(max-width:850px) {
  .site-header {
    align-items: center;
  }

  .site-header .brand-graphic {
    width: min(92vw, 900px) !important;
    max-width: 92vw !important;
    max-height: 87px !important;
  }
}

@media(max-width:520px) {
  .site-header .brand-graphic {
    width: min(88vw, 690px) !important;
    max-width: 88vw !important;
    max-height: 66px !important;
  }
}


.video-embed-wrapper{
  position: relative;
  width: 100%;
  max-width: 900px;
  aspect-ratio: 16 / 9;
  border-radius: 24px;
  overflow: hidden;
  box-shadow: 0 20px 40px rgba(0,0,0,0.35);
  background: #000;
}

.video-embed-wrapper iframe{
  width: 100%;
  height: 100%;
  border: none;
  display: block;
}

/* Header banner layout: centered logo with menu underneath */
.site-header {
  position: sticky;
  top: 0;
  z-index: 20;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 12px !important;
  padding: 14px 6vw 12px !important;
  background: rgba(246,242,233,.96);
  backdrop-filter: blur(14px);
  box-shadow: 0 1px 0 rgba(31,77,58,.12);
}

.site-header .brand-graphic-link {
  width: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-decoration: none;
}

.site-header .brand-graphic {
  display: block !important;
  width: min(100%, 1120px) !important;
  max-width: 100% !important;
  height: clamp(92px, 15vw, 150px) !important;
  max-height: none !important;
  object-fit: fill !important;
  object-position: center !important;
  border-radius: 18px !important;
  background: transparent !important;
  padding: 0 !important;
  box-shadow: none !important;
}

.site-header .main-nav {
  width: 100% !important;
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  gap: clamp(14px, 3vw, 34px) !important;
  flex-wrap: wrap !important;
  padding: 4px 0 0 !important;
}

.site-header .main-nav a {
  text-decoration: none;
  font-weight: 800;
  font-size: .98rem;
  color: var(--pine-dark);
}

.site-header .nav-toggle {
  display: none !important;
}

@media(max-width:850px) {
  .site-header {
    padding: 10px 4vw 12px !important;
    gap: 8px !important;
  }

  .site-header .brand-graphic {
    width: 100% !important;
    height: clamp(70px, 22vw, 112px) !important;
    border-radius: 12px !important;
  }

  .site-header .main-nav {
    position: static !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    background: transparent !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    flex-direction: row !important;
    gap: 12px 18px !important;
    padding: 0 !important;
  }

  .site-header .main-nav a {
    font-size: .92rem;
  }
}

@media(max-width:520px) {
  .site-header .brand-graphic {
    height: 76px !important;
  }

  .site-header .main-nav {
    gap: 8px 12px !important;
  }

  .site-header .main-nav a {
    font-size: .84rem;
  }
}


/* Giving section */
.giving-section {
  display: grid;
  grid-template-columns: 1fr minmax(280px, 420px);
  gap: 34px;
  align-items: center;
  background: linear-gradient(135deg, #ffffff, var(--fog));
}

.giving-content p {
  max-width: 680px;
}

.cash-tag {
  display: inline-block;
  margin-top: 10px;
  padding: 12px 18px;
  border-radius: 999px;
  background: #ffffff;
  box-shadow: var(--shadow);
  color: var(--pine-dark);
  font-weight: 800;
}

.giving-qr-card {
  background: #ffffff;
  border-radius: 28px;
  padding: 20px;
  text-align: center;
  box-shadow: var(--shadow);
  border: 1px solid rgba(31,77,58,.08);
}

.giving-qr-card img {
  display: block;
  width: 100%;
  max-width: 380px;
  margin: 0 auto;
  border-radius: 18px;
}

.giving-qr-card p {
  margin: 14px 0 0;
  font-weight: 900;
  color: var(--pine-dark);
}

@media(max-width:850px) {
  .giving-section {
    grid-template-columns: 1fr;
  }
}


/* Current events section */
.events-note {
  margin-top: -10px;
  color: var(--muted);
  font-weight: 700;
}

.event-cards {
  align-items: stretch;
}

.event-card {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.event-image-button {
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}

.event-image-button img {
  display: block;
  width: 100%;
  border-radius: 14px;
  box-shadow: 0 10px 24px rgba(0,0,0,.12);
  transition: transform .18s ease, box-shadow .18s ease;
}

.event-image-button:hover img,
.event-image-button:focus-visible img {
  transform: translateY(-3px);
  box-shadow: 0 16px 32px rgba(0,0,0,.18);
}

.event-action {
  width: fit-content;
}

.image-modal {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: rgba(0,0,0,.88);
}

.image-modal.open {
  display: flex;
}

.image-modal img {
  max-width: min(1100px, 96vw);
  max-height: 90vh;
  border-radius: 12px;
  box-shadow: 0 20px 60px rgba(0,0,0,.45);
}

.modal-close {
  position: fixed;
  top: 18px;
  right: 22px;
  width: 48px;
  height: 48px;
  border: 0;
  border-radius: 999px;
  background: #ffffff;
  color: #111111;
  font-size: 34px;
  line-height: 1;
  cursor: pointer;
}


/* Video archive YouTube card links */
.archive-card {
  position: relative;
  transition: transform .18s ease, box-shadow .18s ease;
}

.archive-card.has-video {
  cursor: pointer;
}

.archive-card.has-video:hover {
  transform: translateY(-4px);
}

.archive-card.has-video:focus-visible {
  outline: 4px solid var(--gold);
  outline-offset: 4px;
}

.watch-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 14px;
  padding: 11px 18px;
  border-radius: 999px;
  background: var(--gold);
  color: #21180b;
  text-decoration: none;
  font-weight: 900;
}

.watch-button.coming-soon {
  background: var(--fog);
  color: #66706a;
  cursor: default;
}

.video-placeholder.small.coming-soon,
.video-coming-soon .video-placeholder.small {
  background: linear-gradient(135deg,#3c463d,#777064);
}


/* Dedicated service archive player page */
.watch-hero p {
  max-width: 760px;
  margin-left: auto;
  margin-right: auto;
}

.service-watch-section {
  max-width: 1120px;
}

.service-player-wrap {
  width: 100%;
  aspect-ratio: 16 / 9;
  background: #111;
  border-radius: 22px;
  overflow: hidden;
  box-shadow: 0 18px 48px rgba(0,0,0,.22);
}

.service-player-wrap iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

.service-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: center;
  margin-top: 22px;
}

.fullscreen-button {
  border: 0;
  cursor: pointer;
  font-family: inherit;
  font-size: 1rem;
}

.secondary-button {
  background: var(--deep-green);
  color: #fff;
}

.fullscreen-note {
  max-width: 760px;
  margin: 16px auto 0;
  color: var(--muted);
  text-align: center;
}

/* Live display buttons under the live screen */
.live-video-area {
  display: grid;
  gap: 1rem;
}

.live-video-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem;
  justify-content: center;
  align-items: center;
  margin-top: 0.25rem;
}
