@import url('https://fonts.googleapis.com/css2?family=DM+Serif+Display&family=Nunito+Sans:wght@400;700&family=Sarina&family=Special+Elite&display=swap');

/* ── NAV ── */
.site-header { padding: 5px 0; }
.main-navigation ul li a {
  font-family: 'DM Serif Display', Comfortaa !important;
  font-size: 16px !important;
  font-weight: 800 !important;
  color: #11365A !important;
}
.main-navigation ul li a:hover {
  font-family: 'Special Elite', Comfortaa !important;
  font-size: 17px !important;
  font-weight: 800 !important;
  color: #11365A !important;
}

/* ── GLOBAL BACKGROUND ── */
body, .site, .site-content, .entry-content { background-color: #FFFBF0; }
.site-content, .entry-content { padding: 0; margin: 0; }

/* ── OLD EVENT CARDS (keep if still used) ── */
.event-card { display: flex; margin-bottom: 20px; align-items: center; }
.event-date {
  background: #E4A945; color: #11365A;
  font-family: 'Nunito Sans', sans-serif;
  width: 80px; text-align: center; padding: 10px 0;
  display: flex; flex-direction: column; justify-content: center;
}
.event-info {
  background: #fff; flex: 1; padding: 15px;
  margin-left: 10px; border-radius: 5px;
  box-shadow: 0 2px 5px rgba(0,0,0,0.2);
}

/* ── WPFORMS BUTTON ── */
.wpforms-form button.wpforms-submit {
  font-family: 'Special Elite', cursive !important;
  background-color: #D84F24 !important;
}
.wp-block-button__link { font-family: 'DM Serif Display', cursive !important; }

/* ── CSS VARIABLES ── */
:root {
  --tt-navy:   #11365A;
  --tt-teal:   #0088A2;
  --tt-sky:    #5CC4D1;
  --tt-mist:   #C4E2E6;
  --tt-rust:   #D84F24;
  --tt-orange: #E9762C;
  --tt-gold:   #E4A945;
  --tt-sage:   #A8A97F;
  --tt-cream:  #FFFBF0;
  --tt-paper:  #f8f7f4;
}

/* ── SHARED UTILITIES ── */
.tt-section-inner { max-width: 1100px; margin: 0 auto; }
.tt-section-tag { font-family: 'Special Elite', cursive; font-size: .78rem; letter-spacing: .22em; text-transform: uppercase; color: var(--tt-rust); margin-bottom: .75rem; }
.tt-section-title { font-family: 'DM Serif Display', serif; font-size: clamp(2rem, 4vw, 3.2rem); line-height: 1.1; color: var(--tt-navy); margin-bottom: 1.5rem; }
.tt-section-title em { font-style: italic; color: var(--tt-teal); }
.tt-divider { width: 56px; height: 3px; background: linear-gradient(90deg, var(--tt-rust), var(--tt-orange)); margin-bottom: 1.75rem; }

/* ── FIND US / SCHEDULE ── */
.tt-schedule { padding: 4rem 2rem; background: var(--tt-cream); position: relative; }
.tt-schedule::after { content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 4px; background: linear-gradient(90deg, var(--tt-rust), var(--tt-teal), var(--tt-navy)); }
.tt-schedule-intro { max-width: 540px; font-size: 1rem; line-height: 1.75; color: var(--tt-teal); margin-bottom: 3rem; font-family: 'Nunito Sans', sans-serif; }
.tt-schedule-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 3rem; padding: 1.5rem 0 2rem; }

.tt-schedule-card { position: relative; background: var(--tt-paper); padding: 2.25rem 1.75rem 2.5rem; box-shadow: 0 4px 14px rgba(17,54,90,.12), 0 1px 3px rgba(17,54,90,.07); transition: box-shadow .3s; }
.tt-schedule-card:nth-child(1) { transform: rotate(-1.2deg); }
.tt-schedule-card:nth-child(2) { transform: rotate(.7deg); }
.tt-schedule-card:nth-child(3) { transform: rotate(-.4deg); }
.tt-schedule-card:hover { box-shadow: 0 18px 44px rgba(17,54,90,.18), 0 4px 12px rgba(17,54,90,.1); z-index: 10; animation: ttPaperWiggle .4s ease forwards; }

@keyframes ttPaperWiggle {
  0%   { transform: translateY(0); }
  25%  { transform: translateY(-4px) rotate(.3deg); }
  55%  { transform: translateY(-3px) rotate(-.15deg); }
  100% { transform: translateY(-4px) rotate(.2deg); }
}

.tt-torn-top, .tt-torn-bottom { display: block; position: absolute; left: 0; right: 0; width: 100%; line-height: 0; pointer-events: none; }
.tt-torn-top  { top: -11px; }
.tt-torn-bottom { bottom: -11px; transform: scaleY(-1); }
.tt-torn-top svg, .tt-torn-bottom svg { display: block; width: 100%; height: 12px; }

.tt-scard-tape { position: absolute; top: -8px; left: 50%; transform: translateX(-50%) rotate(-1.5deg); width: 54px; height: 20px; background: rgba(228,169,69,.52); z-index: 6; }
.tt-scard-tape::after { content: ''; position: absolute; inset: 0; background: repeating-linear-gradient(90deg, rgba(255,255,255,.22) 0, rgba(255,255,255,.22) 2px, transparent 2px, transparent 7px); }

.tt-scard-content { position: relative; z-index: 2; }
.tt-scard-month-badge { display: inline-flex; flex-direction: column; align-items: center; background: var(--tt-navy); padding: .3rem .65rem; border-radius: 2px; margin-bottom: .9rem; }
.tt-scard-month { font-size: .6rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--tt-rust); line-height: 1; padding-bottom: 2px; border-bottom: 1px solid rgba(255,255,255,.15); font-family: 'Nunito Sans', sans-serif; }
.tt-scard-day-num { font-family: 'DM Serif Display', serif; font-size: 1.6rem; line-height: 1; color: var(--tt-cream); }
.tt-scard-event { font-family: 'Special Elite', cursive; font-size: 1.05rem; color: var(--tt-navy); margin-bottom: .5rem; line-height: 1.35; }
.tt-scard-location { font-size: .82rem; color: var(--tt-teal); display: flex; align-items: flex-start; gap: .4rem; margin-bottom: .3rem; line-height: 1.4; font-family: 'Nunito Sans', sans-serif; }
.tt-scard-time { font-size: .78rem; color: var(--tt-sage); font-weight: 700; letter-spacing: .04em; margin-bottom: .9rem; font-family: 'Nunito Sans', sans-serif; }
.tt-scard-link { font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--tt-rust); text-decoration: none; border-bottom: 1px solid currentColor; transition: color .2s; font-family: 'Nunito Sans', sans-serif; }
.tt-scard-link:hover { color: var(--tt-orange); }
.tt-scard-empty { font-family: 'Special Elite', cursive; font-size: .9rem; color: var(--tt-sage); font-style: italic; line-height: 1.6; }
.tt-scard-coming { font-family: 'Special Elite', cursive; font-size: .72rem; letter-spacing: .18em; color: var(--tt-sage); margin-bottom: .75rem; text-transform: uppercase; }
.tt-schedule-note { margin-top: 2.5rem; font-family: 'Special Elite', cursive; font-size: .85rem; color: var(--tt-sage); display: flex; align-items: center; gap: .6rem; }

/* ── ABOUT ── */
.tt-about { padding: 5rem 2rem; background: #11365A; color: #FFFBF0; position: relative; overflow: hidden; }
.tt-about::before { content: '\201C'; font-family: 'DM Serif Display', serif; font-size: 28rem; line-height: 1; color: rgba(92,196,209,.05); position: absolute; top: -3rem; left: -1.5rem; pointer-events: none; user-select: none; }
.tt-about .tt-section-tag { color: #5CC4D1; }
.tt-about .tt-section-title { color: #FFFBF0; }
.tt-about .tt-section-title em { font-style: italic; color: #5CC4D1; }
.tt-about-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 5rem; align-items: start; }
.tt-about-body { font-size: 1rem; line-height: 1.9; color: #C4E2E6; font-family: 'Nunito Sans', sans-serif; }
.tt-about-body p + p { margin-top: 1.2rem; }
.tt-about-body strong { color: #E4A945; font-weight: 700; }
.tt-about-body em { font-style: italic; }
.tt-pull-quote { font-family: 'DM Serif Display', serif; font-size: clamp(1.45rem, 2.5vw, 2rem); font-style: italic; line-height: 1.35; color: #5CC4D1; padding-left: 1.75rem; border-left: 3px solid #D84F24; margin-bottom: 1.5rem; }
.tt-pull-source { font-family: 'Special Elite', cursive; font-size: .75rem; letter-spacing: .15em; color: #ED9E82; padding-left: 1.75rem; }
.tt-reader-tags { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 2rem; }
.tt-rtag { font-family: 'Special Elite', cursive; font-size: .72rem; letter-spacing: .1em; padding: .4rem .9rem; border-radius: 2px; border: 1px solid; }
.tt-rtag-rust  { border-color: #D84F24; color: #D84F24; }
.tt-rtag-sky   { border-color: #5CC4D1; color: #5CC4D1; }
.tt-rtag-gold  { border-color: #E4A945; color: #E4A945; }
.tt-rtag-peach { border-color: #ED9E82; color: #ED9E82; }
.tt-rtag-moss  { border-color: #B9C3B2; color: #B9C3B2; }

/* ── CONTACT ── */
.tt-contact { padding: 5rem 2rem; background: #C4E2E6; position: relative; overflow: hidden; }
.tt-contact-grid { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 4rem !important; align-items: start; }
.tt-contact-intro { font-family: 'Nunito Sans', sans-serif; font-size: 1rem; line-height: 1.8; color: #11365A; margin-bottom: 1.5rem; max-width: 100%; }
.tt-contact-links { display: flex; flex-direction: column; gap: .75rem; margin-bottom: 1.5rem; list-style: none !important; padding: 0 !important; }
.tt-contact-link { display: flex !important; align-items: center !important; gap: 1rem; text-decoration: none !important; color: #11365A !important; font-family: 'Nunito Sans', sans-serif; font-weight: 600; font-size: .95rem; transition: color .2s; }
.tt-contact-link:hover { color: #D84F24 !important; }
.tt-contact-icon { width: 42px !important; height: 42px !important; min-width: 42px; background: #11365A !important; border-radius: 50%; display: flex !important; align-items: center !important; justify-content: center !important; color: #FFFBF0 !important; transition: background .2s; }
.tt-contact-link:hover .tt-contact-icon { background: #D84F24 !important; }

.tt-newsletter-box { background: #11365A !important; border-radius: 4px; padding: 1.75rem !important; margin-top: 1.5rem; }
.tt-newsletter-label { font-family: 'DM Serif Display', serif; font-size: 1.15rem; color: #FFFBF0 !important; margin-bottom: .4rem !important; display: block; }
.tt-newsletter-sub { font-family: 'Nunito Sans', sans-serif; font-size: .85rem; color: #C4E2E6 !important; margin-bottom: 1rem !important; line-height: 1.5; display: block; }
.tt-newsletter-row { display: flex !important; gap: .6rem; }
.tt-newsletter-row input { flex: 1 !important; padding: .75rem 1rem !important; background: rgba(255,255,255,.1) !important; border: 1px solid rgba(92,196,209,.4) !important; border-radius: 3px !important; color: #FFFBF0 !important; font-family: 'Nunito Sans', sans-serif !important; font-size: .9rem !important; outline: none; width: auto !important; }
.tt-newsletter-row input::placeholder { color: rgba(196,226,230,.5) !important; }
.tt-newsletter-row input:focus { border-color: #5CC4D1 !important; }

.tt-contact-form { background: #ffffff !important; border-radius: 6px !important; padding: 2.5rem !important; box-shadow: 0 8px 40px rgba(17,54,90,.12) !important; width: 100%; }
.tt-form-title { font-family: 'DM Serif Display', serif !important; font-size: 1.6rem !important; color: #11365A !important; margin-bottom: 1.75rem !important; display: block; }
.tt-form-row { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 1rem !important; margin-bottom: 0 !important; }
.tt-form-group { display: flex !important; flex-direction: column !important; gap: .35rem !important; margin-bottom: 1.25rem !important; width: 100%; }
.tt-form-group label { font-family: 'Nunito Sans', sans-serif !important; font-size: .75rem !important; font-weight: 700 !important; letter-spacing: .08em !important; text-transform: uppercase !important; color: #11365A !important; display: block !important; margin-bottom: .25rem !important; }
.tt-form-group input,
.tt-form-group select,
.tt-form-group textarea { width: 100% !important; padding: .8rem 1rem !important; border: 1.5px solid #C4E2E6 !important; border-radius: 4px !important; font-family: 'Nunito Sans', sans-serif !important; font-size: .92rem !important; color: #11365A !important; background: #FFFBF0 !important; outline: none !important; transition: border-color .2s; box-sizing: border-box !important; display: block !important; -webkit-appearance: none; appearance: none; }
.tt-form-group select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2311365A' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") !important; background-repeat: no-repeat !important; background-position: right 1rem center !important; background-color: #FFFBF0 !important; padding-right: 2.5rem !important; cursor: pointer; }
.tt-form-group input:focus,
.tt-form-group select:focus,
.tt-form-group textarea:focus { border-color: #0088A2 !important; background: #ffffff !important; }
.tt-form-group textarea { resize: vertical; min-height: 110px !important; }

/* ── BUTTONS (shared) ── */
.tt-btn,
.tt-btn:visited,
.tt-btn:focus,
.tt-btn:active {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: .5rem;
  font-family: 'Nunito Sans', sans-serif !important;
  font-size: .85rem !important;
  font-weight: 700 !important;
  letter-spacing: .1em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  cursor: pointer;
  border: none !important;
  border-radius: 3px !important;
  outline: none !important;
  -webkit-tap-highlight-color: transparent !important;
  transition: transform .2s, background .2s, box-shadow .2s;
}
.tt-btn:hover { transform: translateY(-2px); }

.tt-btn-primary,
.tt-btn-primary:visited,
.tt-btn-primary:focus,
.tt-btn-primary:active {
  background: #D84F24 !important;
  color: #FFFBF0 !important;
  box-shadow: 0 4px 16px rgba(216,79,36,.3) !important;
  text-decoration: none !important;
  padding: 1rem 2.5rem !important;
}

.tt-btn-primary:hover { background: #E9762C !important; box-shadow: 0 6px 24px rgba(216,79,36,.45) !important; color: #FFFBF0 !important; }

.tt-btn-outline,
.tt-btn-outline:visited,
.tt-btn-outline:focus,
.tt-btn-outline:active {
  background: transparent !important;
  color: #11365A !important;
  border: 2px solid #11365A !important;
  text-decoration: none !important;
  padding: 1rem 2.5rem !important;
}
.tt-btn-outline:hover { background: #11365A !important; color: #FFFBF0 !important; }
.tt-form-submit { width: 100% !important; padding: 1rem !important; margin-top: .5rem; }

/* ── HOME / HERO ── */
.tt-hero { min-height: 80vh; display: flex; align-items: center; position: relative; overflow: hidden; padding: 4rem 2rem 5rem; background: #FFFBF0; }
.tt-hero-bg { position: absolute; inset: 0; background: radial-gradient(ellipse 65% 75% at 85% 55%, rgba(92,196,209,.22) 0%, transparent 65%), radial-gradient(ellipse 45% 55% at 8% 15%, rgba(216,79,36,.12) 0%, transparent 60%), #FFFBF0; }
.tt-hero-bg::before { display: none;}
.tt-hero-inner { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: center; max-width: 1100px; margin: 0 auto; width: 100%; }
.tt-hero-eyebrow { font-family: 'Special Elite', cursive; font-size: .85rem; color: #D84F24; letter-spacing: .18em; margin-bottom: 1.25rem; display: flex; align-items: center; gap: .8rem; }
.tt-hero-eyebrow::before { content: ''; width: 28px; height: 2px; background: #D84F24; flex-shrink: 0; }
.tt-hero-title { font-family: 'DM Serif Display', serif; font-size: clamp(3rem, 5.5vw, 5.2rem); line-height: 1.02; color: #11365A; margin-bottom: 1.5rem; }
.tt-hero-title em { font-style: italic; color: #D84F24; }
.tt-hero-subtitle { font-size: 1.05rem; line-height: 1.8; color: #0088A2; max-width: 500px; margin-bottom: 2.5rem; font-family: 'Nunito Sans', sans-serif; }
.tt-hero-subtitle strong { color: #11365A; font-weight: 700; }
.tt-hero-cta { display: flex; gap: 1rem; flex-wrap: wrap; }
.tt-hero-stamp { position: absolute; bottom: 2rem; right: 2rem; font-family: 'Special Elite', cursive; font-size: .78rem; letter-spacing: .18em; text-transform: uppercase; color: #0088A2; opacity: .6; }
.tt-hero-visual { display: flex; justify-content: center; align-items: center; position: relative; }
.tt-logo-float { width: min(220px, 90%); filter: drop-shadow(0 24px 64px rgba(17,54,90,.18)); animation: ttFloat 5s ease-in-out infinite; }
.tt-hero-visual::before { content: ''; position: absolute; width: 400px; height: 400px; border-radius: 50%; border: 1px dashed rgba(92,196,209,.35); animation: ttSpin 45s linear infinite; }
.tt-hero-visual::after { content: ''; position: absolute; width: 290px; height: 290px; border-radius: 50%; border: 1px dashed rgba(216,79,36,.22); animation: ttSpin 30s linear infinite reverse; }

/* ── MARQUEE ── */
.tt-bookshelf { background: #11365A; padding: 2rem 1.5rem 0; border-top: 3px solid #D84F24; border-bottom: 3px solid #D84F24; overflow-x: auto; }
.tt-shelf-books { display: flex; align-items: flex-end; justify-content: center; gap: 6px; height: 140px; min-width: 500px; }
.tt-book { border-radius: 2px 2px 0 0; display: flex; align-items: center; justify-content: center; position: relative; box-shadow: 3px 0 6px rgba(0,0,0,.3); flex-shrink: 0; }
.tt-book span { writing-mode: vertical-rl; transform: rotate(180deg); font-family: 'Special Elite', cursive; font-size: 11px; letter-spacing: .1em; text-align: center; padding: 0 4px; }
.tt-book::after { content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 6px; background: rgba(0,0,0,.2); border-radius: 0 0 2px 2px; }
.tt-shelf-board { height: 10px; background: #8B6914; border-radius: 2px; margin-top: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.4); }

/* ── KEYFRAMES ── */
@keyframes ttFloat   { 0%, 100% { transform: translateY(0); }  50% { transform: translateY(-14px); } }
@keyframes ttSpin    { to { transform: rotate(360deg); } }


/* ── FULL WIDTH HOME ── */
.home .site-content,
.home .entry-content,
.home .site-main,
.home article,
.home .entry-header {
  max-width: 100% !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* ── MOBILE ── */
@media (max-width: 768px) {
  .tt-section-inner { padding: 0; }

  .tt-hero { padding: 2.5rem 1.25rem 3rem; min-height: auto; }
  .tt-hero-inner { grid-template-columns: 1fr; gap: 1.5rem; }
  .tt-hero-visual { display: none; }
  .tt-hero-title { font-size: clamp(2.4rem, 10vw, 3.2rem); }
  .tt-hero-subtitle { font-size: .95rem; margin-bottom: 2rem; }
  .tt-hero-cta { flex-direction: column; gap: .75rem; }
 .tt-btn { width: 100%; justify-content: center; text-align: center;}
  .tt-hero-stamp { display: none; }

  .tt-bookshelf { padding: 1.5rem 1rem 0; }
.tt-shelf-books { gap: 4px; height: 110px; justify-content: flex-start; }
.tt-book { flex-shrink: 0; }
.tt-book span { font-size: 10px; letter-spacing: .06em; }

  .tt-about { padding: 3rem 1.25rem; }
  .tt-about-grid { grid-template-columns: 1fr; gap: 2rem; }
.tt-about-sidebar { display: block; margin-top: 1.5rem; }
.tt-about-sidebar img { width: 160px !important; height: 160px !important; margin-left: auto; margin-right: auto; }
  .tt-about-body { font-size: .95rem; }
  .tt-reader-tags { gap: .5rem; }
  .tt-rtag { font-size: .68rem; padding: .35rem .75rem; }

  .tt-schedule { padding: 2.5rem 1.25rem; }
  .tt-schedule-grid { grid-template-columns: 1fr; gap: 2.5rem; padding: 1rem 0 1.5rem; }
  .tt-schedule-card:nth-child(1),
  .tt-schedule-card:nth-child(2),
  .tt-schedule-card:nth-child(3) { transform: none; }
  .tt-schedule-card:hover { animation: none; transform: none; box-shadow: 0 8px 24px rgba(17,54,90,.14); }
  .tt-schedule-card { padding: 2rem 1.5rem 2.25rem; max-width: 100%; overflow: hidden; }
  .tt-torn-top svg, .tt-torn-bottom svg { width: 100%; min-width: 0; }
  .tt-schedule-intro { font-size: .93rem; margin-bottom: 2rem; }
  .tt-schedule-note { font-size: .8rem; margin-top: 1.75rem; }

  .tt-contact { padding: 3rem 1.25rem; }
  .tt-contact-grid { grid-template-columns: 1fr !important; gap: 2.5rem !important; }
  .tt-form-row { grid-template-columns: 1fr !important; }
  .tt-newsletter-row { flex-direction: column; }
  .tt-newsletter-row input { width: 100% !important; }
}
@media (max-width: 480px) {
  .tt-shelf-books { height: 95px; gap: 3px; }
  .tt-book span { font-size: 9px; }
}