/* ============================================================
   The Ewings Publishing — Theme Stylesheet
   Generated from shared design system
   ============================================================ */

/* Google Fonts are loaded via functions.php wp_enqueue_style() */


  :root{
    --brand:#001648;
    --brand-2:#0170b0;
    --brand-deep:#000c2e;
    --accent:#f6921e;
    --accent-2:#FFB547;
    --ink:#0E0A3B;
    --paper:#FBFAF6;
    --paper-2:#FAF8F1;
    --mute:#6B6A7A;
    --line:#E7E5DC;
  }
  html,body{
    background:
      repeating-linear-gradient(90deg, rgba(255,255,255,.02) 0 2px, transparent 2px 26px),
      radial-gradient(ellipse at 70% 30%, rgba(246,146,30,.09), transparent 60%),
      linear-gradient(135deg,#0c1430 0%, #13265a 55%, #0170b0 120%) fixed;
    color:var(--ink); font-family:'Poppins',system-ui,sans-serif;
  }
  .font-display{font-family:'Fraunces',serif; font-optical-sizing:auto;}
  .font-mono{font-family:'JetBrains Mono',monospace;}
  .text-brand{color:var(--brand);}
  .bg-brand{background:var(--brand);}
  .text-accent{color:var(--accent);}
  .bg-accent{background:var(--accent);}
  .bg-paper{background:var(--paper);}
  .bg-paper-2{background:var(--paper-2);}
  .border-line{border-color:var(--line);}

  .nav-link{position:relative; padding:18px 0;}
  .nav-link[aria-current="page"]::after{
    content:""; position:absolute; left:0; right:0; bottom:-1px; height:3px; background:var(--accent);
  }
  .nav-link:hover{color:var(--accent);}

  .btn-accent{
    background:linear-gradient(to right, #C85A00, #F6921E, #FFB547); color:#fff; font-weight:700;
    padding:14px 22px; border-radius:6px; display:inline-flex; align-items:center; gap:10px;
    letter-spacing:.02em; box-shadow:0 12px 24px -10px rgba(246,146,30,.5);
    transition:background .15s ease, transform .15s ease;
  }
  .btn-accent:hover{background:linear-gradient(to right, #b34e00, #f08010, #ffc060); transform:translateY(-1px); box-shadow:0 14px 28px -10px rgba(200,90,0,.50);}

  .eyebrow{ font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.22em; text-transform:uppercase; }
  .accent-rule{ width:42px; height:3px; background:var(--accent); display:inline-block; }
  .grad-section-deep{ background:linear-gradient(to right, #001648, #0170b0) repeat-y; color:#fff; }

  /* Film-grain overlay (keeps the gradient color underneath) */
  .grain::after{
    content:""; position:absolute; inset:0; z-index:1; pointer-events:none; opacity:.16;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
    background-size:180px 180px;
    mix-blend-mode:overlay;
  }

  /* Map placeholder */
  .map-ph{
    background:
      linear-gradient(180deg, rgba(0,107,151,.05), rgba(0,107,151,.0)),
      repeating-linear-gradient(0deg, transparent 0 24px, rgba(0,22,72,.06) 24px 25px),
      repeating-linear-gradient(90deg, transparent 0 24px, rgba(0,22,72,.06) 24px 25px), #eef2f8;
    position:relative;
  }
  .map-pin{ position:absolute; width:18px; height:18px; border-radius:50% 50% 50% 0; background:var(--accent); transform:rotate(-45deg); left:46%; top:42%; box-shadow:0 8px 20px rgba(246,146,30,.55); }
  .map-pin::after{ content:""; position:absolute; inset:5px; background:#fff; border-radius:50%; }

  /* Sticky header */
  .sticky-top{position:sticky; top:0; z-index:50;}

  /* Hero banner */
  .why-hero{ position:relative; overflow:hidden; isolation:isolate; }
  .why-hero-wave{ position:absolute; bottom:0; left:0; width:100%; line-height:0; z-index:3; pointer-events:none; }
  .why-hero-wave svg{ display:block; width:100%; height:220px; }
  .hero-wave{ display:none; }
  .why-hero-glow{
    position:absolute; inset:0; z-index:0; pointer-events:none;
    background:
      radial-gradient(ellipse at 78% 28%, rgba(246,146,30,.16), transparent 55%),
      radial-gradient(ellipse at 20% 80%, rgba(207,88,159,.12), transparent 50%);
  }

  /* Video placeholder frame */
  .vid-frame{
    position:relative; border-radius:14px; overflow:hidden;
    background:linear-gradient(135deg,#0c1430,#13265a);
    border:1px solid rgba(255,255,255,.08);
    box-shadow:0 30px 60px -34px rgba(0,12,46,.55);
  }
  .vid-frame::before{
    content:""; position:absolute; inset:0;
    background:repeating-linear-gradient(45deg, rgba(255,255,255,.03) 0 14px, rgba(0,0,0,.05) 14px 28px);
  }
  .vid-play{
    position:absolute; inset:0; display:grid; place-items:center; cursor:pointer;
  }
  .vid-play span{
    width:74px; height:74px; border-radius:999px; background:rgba(255,255,255,.92);
    display:grid; place-items:center; box-shadow:0 14px 36px rgba(0,0,0,.4);
    transition:transform .2s ease, background .2s ease;
  }
  .vid-play:hover span{ transform:scale(1.06); background:#fff; }
  .vid-play span::after{
    content:""; width:0; height:0; margin-left:5px;
    border-left:20px solid var(--brand); border-top:13px solid transparent; border-bottom:13px solid transparent;
  }
  .vid-tag{
    position:absolute; top:14px; left:14px; z-index:2;
    font-family:'JetBrains Mono',monospace; font-size:10.5px; letter-spacing:.14em; text-transform:uppercase;
    color:#fff; background:rgba(0,12,46,.7); border:1px solid rgba(255,255,255,.18);
    padding:6px 10px; border-radius:6px; display:inline-flex; align-items:center; gap:7px;
  }
  .vid-bar{
    position:absolute; left:0; right:0; bottom:0; z-index:2; height:34px;
    background:linear-gradient(180deg, transparent, rgba(0,0,0,.55));
    display:flex; align-items:center; gap:10px; padding:0 12px;
  }
  .vid-bar .track{ flex:1; height:3px; border-radius:3px; background:rgba(255,255,255,.3); position:relative; }
  .vid-bar .track::after{ content:""; position:absolute; left:0; top:0; bottom:0; width:8%; background:var(--accent); border-radius:3px; }

  /* EWINGS acrostic rows */
  .acr-row{ display:flex; gap:14px; align-items:flex-start; }
  .acr-check{
    flex-shrink:0; width:26px; height:26px; border-radius:8px; margin-top:2px;
    background:linear-gradient(180deg,#FFE7C2,#FFC078); border:1px solid #FFB870;
    display:grid; place-items:center;
  }
  .acr-letter{ color:var(--accent); font-weight:700; }

  /* Logo chip (media / retailer) */
  .logo-chip{
    display:inline-flex; align-items:center; justify-content:center;
    padding:14px 20px; border:1px solid var(--line); border-radius:10px; background:#fff;
    box-shadow:0 1px 0 rgba(0,0,0,.02); transition:border-color .2s ease, box-shadow .2s ease, transform .2s ease;
    min-height:64px;
  }
  .logo-chip:hover{ border-color:var(--accent); box-shadow:0 16px 30px -22px rgba(0,22,72,.45); transform:translateY(-2px); }

  /* Guide banner */
  .guide-banner{
    position:relative; overflow:hidden; border-radius:18px; isolation:isolate;
    background:linear-gradient(135deg,#0c1430 0%, #13265a 55%, #0170b0 120%);
  }
  .guide-banner::before{
    content:""; position:absolute; inset:0; z-index:0;
    background:
      repeating-linear-gradient(90deg, rgba(255,255,255,.04) 0 2px, transparent 2px 26px),
      radial-gradient(ellipse at 70% 30%, rgba(246,146,30,.18), transparent 60%);
    opacity:.5;
  }

  /* Mobile menu */
  .mobile-menu{ display:none; border-top:1px solid var(--line); background:#fff; }
  .mobile-menu[data-open="true"]{ display:block; }
  .mobile-menu a{ display:block; padding:14px 24px; color:var(--brand); font-size:15px; font-weight:500; border-bottom:1px solid var(--line); }
  .mobile-menu a:hover{ background:var(--paper); color:var(--accent); }
  .hamburger{ display:none; }

  @media (max-width: 1023px){
    .hamburger{ display:grid; }
    header .h-\[92px\]{ height:72px; }
    .why-h1{ font-size:38px !important; }
    .sec-h2{ font-size:30px !important; }
  }
  @media (max-width: 640px){
    .header-social-row{ display:none !important; }
    .why-h1{ font-size:29px !important; }
    .sec-h2{ font-size:25px !important; }
  }

  .pkg-card{ position:relative; border-radius:18px; overflow:hidden; color:#fff; cursor:pointer;
    background:linear-gradient(160deg,#001648 0%, #0b3a86 55%, #0170b0 100%);
    box-shadow:0 30px 60px -34px rgba(0,12,46,.6); transition:transform .25s ease, box-shadow .25s ease;
    border:1px solid rgba(255,255,255,.12); display:flex; flex-direction:column; }
  .pkg-card:hover{ transform:translateY(-6px); box-shadow:0 40px 70px -34px rgba(1,112,176,.6); }
  .pkg-card.featured{ background:linear-gradient(160deg,#0b3a86 0%, #0170b0 55%, #2ea0d8 100%); }
  .pkg-medal{ width:74px; height:74px; border-radius:999px; display:grid; place-items:center; margin:0 auto;
    background:radial-gradient(circle at 35% 30%, #ffffff, #cfe0f1 60%, #9bb6cf); box-shadow:0 8px 20px rgba(0,0,0,.25); }
  .pkg-feats li{ display:flex; gap:9px; align-items:flex-start; font-size:13.5px; line-height:1.5; }
  .pkg-feats li svg{ flex-shrink:0; margin-top:3px; }
  .pkg-price{ display:inline-block; background:#fff; color:#001648; font-family:'Fraunces',serif; font-weight:700;
    font-size:24px; padding:10px 26px; border-radius:999px; box-shadow:0 10px 22px -8px rgba(0,0,0,.3); }
  .term-item h4{ font-size:13.5px; font-weight:700; color:var(--brand); }
  .term-item p{ font-size:12.5px; color:var(--mute); line-height:1.45; margin-top:1px; }
  .cta-wrap{ padding: 56px 24px 0; background:var(--paper); }
  .cta-catchy{ position:relative; overflow:hidden; isolation:isolate; border-radius:22px;
    max-width:1080px; margin:0 auto;
    box-shadow:0 30px 70px -28px rgba(0,12,40,.65), 0 0 0 1px rgba(255,255,255,.06) inset;
    background:linear-gradient(135deg,#0c1430 0%, #13265a 55%, #0170b0 120%); }
  .cta-catchy::before{ content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
    opacity:.5;
    background:
      repeating-linear-gradient(90deg, rgba(255,255,255,.04) 0 2px, transparent 2px 26px),
      radial-gradient(ellipse at 70% 30%, rgba(246,146,30,.18), transparent 60%); }

/* ── Testimonial slider ── */
.tslide-wrap{position:relative;}
.tslide-track{display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:6px 2px;scrollbar-width:none;}
.tslide-track::-webkit-scrollbar{display:none;}
.tslide-card{flex:0 0 calc((100% - 48px)/3);scroll-snap-align:start;}
@media(max-width:1023px){.tslide-card{flex:0 0 calc((100% - 24px)/2);}}
@media(max-width:640px){.tslide-card{flex:0 0 100%;}}
.tslide-card p{display:-webkit-box;-webkit-line-clamp:11;-webkit-box-orient:vertical;overflow:hidden;}
.tslide-btn{
  position:absolute;top:50%;transform:translateY(-50%);
  width:46px;height:46px;border-radius:999px;
  background:linear-gradient(to right,#CF589F,#F6921E);color:#fff;
  font-size:22px;line-height:1;display:grid;place-items:center;
  box-shadow:0 12px 26px -8px rgba(207,88,159,.55);
  z-index:6;border:none;cursor:pointer;transition:transform .15s ease;
}
.tslide-btn:hover{transform:translateY(-50%) scale(1.06);}
.tslide-prev{left:-8px;}
.tslide-next{right:-8px;}

/* ── Book cover placeholder (testimonials) ── */
.ph-cover{
  min-height:240px;
  background:repeating-linear-gradient(135deg,rgba(0,22,72,.05) 0 12px,rgba(0,22,72,.02) 12px 24px),#eef2f8;
  border-right:1px solid var(--line);
}
@media(max-width:639px){.ph-cover{min-height:150px;border-right:none;border-bottom:1px solid var(--line);}}

/* ── Year index nav (trending books) ── */
.yr-index{
  position:fixed;right:22px;top:50%;transform:translateY(-50%);z-index:40;
  display:flex;flex-direction:column;gap:8px;padding:14px 12px;
  background:rgba(255,255,255,.82);backdrop-filter:blur(10px);
  border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 40px -22px rgba(0,12,46,.4);
}
.yr-index .yi-title{font-family:'JetBrains Mono',monospace;font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--mute);text-align:center;margin-bottom:2px;}
.yr-index a{
  display:flex;align-items:center;gap:9px;padding:6px 10px;border-radius:9px;
  font-family:'Poppins',sans-serif;font-size:13px;font-weight:600;color:var(--brand);text-decoration:none;
  transition:background .18s ease,color .18s ease;
}
.yr-index a .yi-dot{width:8px;height:8px;border-radius:999px;background:var(--line);transition:background .18s ease,transform .18s ease;flex-shrink:0;}
.yr-index a:hover{background:#f4f1e8;}
.yr-index a.is-active{background:linear-gradient(to right,#CF589F,#F6921E);color:#fff;}
.yr-index a.is-active .yi-dot{background:#fff;transform:scale(1.25);}
@media(max-width:1100px){
  .yr-index{right:14px;padding:10px 8px;gap:5px;}
  .yr-index a{font-size:0;gap:0;padding:8px;}
  .yr-index a .yi-dot{width:10px;height:10px;}
  .yr-index .yi-title{display:none;}
}
@media(max-width:640px){.yr-index{display:none;}}

/* ── Marketing banner ── */
.mkt-banner{position:relative;overflow:hidden;isolation:isolate;min-height:460px;background:#001648;}
.mkt-banner-img{position:absolute;inset:0;background-size:cover;background-position:center;z-index:0;}
.mkt-banner-grad{position:absolute;inset:0;z-index:1;
  background:linear-gradient(to right,#001648 0%,rgba(0,22,72,.86) 38%,rgba(0,22,72,.45) 62%,rgba(1,112,176,.12) 100%);}
.mkt-h1{font-size:52px;}
@media(max-width:1023px){.mkt-h1{font-size:34px!important;}}
@media(max-width:640px){.mkt-h1{font-size:27px!important;}}

/* ── Proto blue glow background (services section) ── */
.proto-bg{position:relative;background:#fff;}
.proto-bg::before{
  content:"";position:absolute;top:0;left:0;right:0;height:500px;
  background:radial-gradient(ellipse at 50% 0%,rgba(99,102,241,.15) 0%,rgba(56,189,248,.10) 40%,transparent 70%);
  pointer-events:none;z-index:0;filter:blur(28px);
}
.proto-bg::after{
  content:"";position:absolute;top:0;left:0;right:0;height:400px;
  pointer-events:none;z-index:0;
  background-image:linear-gradient(rgba(99,102,241,.04) 1px,transparent 1px),
    linear-gradient(90deg,rgba(99,102,241,.04) 1px,transparent 1px);
  background-size:34px 34px;
  mask-image:linear-gradient(to bottom,rgba(0,0,0,0.7) 0%,transparent 60%);
  -webkit-mask-image:linear-gradient(to bottom,rgba(0,0,0,0.7) 0%,transparent 60%);
}
.proto-bg>*{position:relative;z-index:1;}

/* ── Protocol sidebar nav ── */
.nav-group-links{position:relative;padding:4px 0 4px 14px;border-left:1.5px solid #E2DFDA;}
.tab-item{display:flex;flex-direction:column;position:relative;border-bottom:1px solid #F0EDE8;}
.tab-item:last-child{border-bottom:none;}
.tab-btn{
  display:flex;align-items:center;width:100%;text-align:left;
  padding:8px 6px;border-radius:0;border:none;
  background:transparent;cursor:pointer;position:relative;outline:none;
}
.tab-btn .tb-ico{
  display:inline-flex!important;align-items:center;justify-content:center;
  width:15px;height:15px;flex-shrink:0;margin-right:6px;
  color:#374151;transition:color .12s ease;position:relative;z-index:2;
}
.tab-btn .tb-ico svg{width:14px;height:14px;}
.tab-btn:hover .tb-ico{color:#111827;}
.tab-btn .tb-title{
  font-family:'Poppins',sans-serif;font-weight:500;font-size:15.5px;
  color:#374151;line-height:1.45;flex:1;transition:color .12s ease;
}
.tab-btn:hover .tb-title{color:#001648;}
.tab-btn .tb-arrow{display:none;}
.tab-btn.has-sub .tb-arrow{
  display:inline-flex;align-items:center;justify-content:center;
  color:#9CA3AF;font-size:11px;transition:transform .2s ease,color .12s;
  flex-shrink:0;margin-left:4px;
}
.tab-btn.has-sub[aria-selected="true"] .tb-arrow{transform:rotate(90deg);color:#fff;}
.tab-btn.has-sub:hover .tb-arrow{color:#111827;}
.tab-btn[aria-selected="true"]{
  border-radius:8px;
  background:linear-gradient(to right,#001648,#0170b0);
}
.tab-btn[aria-selected="true"] .tb-title{color:#fff!important;font-weight:600;}
.tab-btn[aria-selected="true"] .tb-ico{color:#fff!important;}
.tab-btn[aria-selected="true"] .tb-arrow{color:#fff!important;}

/* Submenus */
.tab-submenu{
  display:none;flex-direction:column;
  padding:2px 0 4px 14px;
  border-left:1.5px solid #EDE9E4;margin:0;gap:0;
}
.tab-submenu.is-open{display:flex;animation:subFade .18s ease;}
@keyframes subFade{from{opacity:0;transform:translateY(-3px);}to{opacity:1;transform:translateY(0);}}
.tab-sub-item{
  display:block;width:100%;text-align:left;
  padding:3.5px 6px;
  font-family:'Poppins',sans-serif;font-size:13px;font-weight:400;
  color:#9CA3AF;cursor:pointer;border:none;background:transparent;
  transition:color .12s;line-height:1.5;position:relative;
}
.tab-sub-item:hover{color:#111827;}

/* Tab panels */
@keyframes tabFade{from{opacity:0;transform:translateY(4px);}to{opacity:1;transform:translateY(0);}}
.tab-panel{animation:tabFade .3s ease both;}
.tab-more{margin-top:18px;}

/* Panel host */
#svc-panel-host{
  position:relative;background:#fff!important;
  border:1px solid #E7E5DC!important;border-radius:14px!important;
  isolation:isolate;overflow:hidden;contain:layout;
}
#svc-panel-host::before{
  content:"";position:absolute;top:-60px;left:50%;transform:translateX(-50%);
  width:90%;height:320px;
  background:radial-gradient(ellipse at 50% 0%,rgba(99,102,241,.28) 0%,rgba(56,189,248,.20) 40%,transparent 70%);
  pointer-events:none;z-index:0;filter:blur(24px);
}
#svc-panel-host::after{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:0;
  background-image:linear-gradient(rgba(99,102,241,.04) 1px,transparent 1px),
    linear-gradient(90deg,rgba(99,102,241,.04) 1px,transparent 1px);
  background-size:32px 32px;
  mask-image:linear-gradient(to bottom,rgba(0,0,0,0.6) 0%,transparent 40%);
  -webkit-mask-image:linear-gradient(to bottom,rgba(0,0,0,0.6) 0%,transparent 40%);
}
#svc-panel-host>*{position:relative;z-index:1;}

/* Mobile: panels become accordion under their button */
@media(max-width:1023px){
  #svc-panel-box{display:none!important;}
  #svc-tabs .tab-btn[aria-selected="true"]{border-radius:12px 12px 0 0;}
  #svc-tabs .tab-panel.is-active{
    border-radius:0 0 12px 12px;
    padding:22px 20px;margin-top:-10px;margin-bottom:2px;
  }
}

/* Review / accordion */
.rev-acc{border-radius:10px;overflow:hidden;border:1px solid var(--line);}
.rev-item{border-bottom:1px solid var(--line);}
.rev-item:last-child{border-bottom:none;}
.rev-head{
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:16px 20px;background:#F4F5F7;cursor:pointer;border:none;text-align:left;
  font-family:'Poppins',sans-serif;font-size:14px;font-weight:500;color:var(--brand);
  transition:background .2s ease;
}
.rev-head:hover{background:#eceef2;}
.rev-item.is-open .rev-head{background:#fff;}
.rev-sign{color:#3B82F6;font-weight:700;flex-shrink:0;}
.rev-body{
  max-height:0;overflow:hidden;opacity:0;
  transition:max-height .4s ease,opacity .3s ease,padding .3s ease;
  padding:0 20px;font-size:14px;color:var(--mute);line-height:1.7;
}
.rev-item.is-open .rev-body{max-height:1600px;opacity:1;padding:18px 20px 22px;}
.rev-body p+p{margin-top:14px;}
.rev-sub{font-weight:600;color:var(--brand);margin-top:14px;display:block;}




/* ── Nav dropdown ── */
.nav-drop{position:relative;display:inline-flex;align-items:center;}
.nav-dropdown{position:absolute;top:calc(100% + 2px);left:0;background:#fff;border:1px solid #E7E5DC;border-radius:10px;box-shadow:0 12px 36px -10px rgba(0,0,0,0.18);min-width:230px;padding:6px 0;display:none;z-index:200;}
.nav-drop:hover .nav-dropdown{display:block;}
.nav-dropdown a{display:block;padding:10px 18px;font-size:13px;color:#0E0A3B;font-weight:500;border-bottom:1px solid #F0EEE6;text-decoration:none;transition:color .15s,background .15s;}
.nav-dropdown a:last-child{border-bottom:none;}
.nav-dropdown a:hover{background:#FBFAF6;color:#F6921E;}
.nav-link{position:relative;}
.nav-link[aria-current="page"]::after{content:"";position:absolute;left:20%;right:20%;bottom:-1px;height:3px;background:#F6921E;border-radius:2px;}

/* ── Tile icon ── */
.tile-icon{
  width:64px;height:64px;border-radius:14px;
  background:linear-gradient(180deg,#FFE7C2,#FFC078);
  color:var(--brand);
  display:flex;align-items:center;justify-content:center;
  border:1px solid #FFB870;
  transition:transform .25s ease,box-shadow .25s ease;
}

/* ── Service card ── */
.svc-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:10px;
  transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease;
}
.svc-card:hover{
  border-color:var(--accent);
  box-shadow:0 24px 44px -28px rgba(27,20,100,.45);
  transform:translateY(-4px);
}
.svc-card:hover .tile-icon{
  transform:translateY(-2px) scale(1.04);
  box-shadow:0 12px 22px -10px rgba(246,146,30,.6);
}
.svc-card .svc-cta{transition:gap .2s ease,color .2s ease;}
.svc-card:hover .svc-cta{gap:14px;color:var(--accent);}

/* ── Amber / fraud warning surface ── */
.amber-surface{
  background:linear-gradient(180deg,#FFF6E5 0%,#FFEFD0 100%);
  border:2px solid var(--accent);
  box-shadow:inset 0 0 0 1px #FFD893;
}
.stripe-warn{
  background:repeating-linear-gradient(45deg,#006B97 0 16px,#0089BD 16px 32px);
}

/* ── Typewriter animation ── */
.typewriter-wrap{
  display:block;overflow:hidden;white-space:nowrap;min-height:1.25em;
}
.typewriter-line{
  display:inline-block;overflow:hidden;white-space:nowrap;
  width:24ch;border-right:3px solid var(--brand);
  animation:tw-typing 2s steps(24,end) 0.3s both,tw-blink 0.65s step-end 0.3s 5;
  vertical-align:bottom;animation-fill-mode:both;
}
@keyframes tw-typing{from{width:0}to{width:24ch}}
@keyframes tw-blink{from,to{border-color:var(--brand)}50%{border-color:transparent}}
@media(prefers-reduced-motion:reduce){.typewriter-line{animation:none;border-right:none;width:auto;}}

/* ── Section headings responsive ── */
.sec-h2{font-size:40px;}
.sec-h3{font-size:30px;}
.display-xl{font-size:44px;}
.hero-h1{font-size:38px;line-height:1.05;}

/* ── HERO ── */
.hero{
  position:relative;height:auto;overflow:hidden;isolation:isolate;
  background:linear-gradient(to right,#001648,#0170b0) repeat-y;
}
.hero-photo-bg{
  position:absolute;top:0;right:0;bottom:0;width:62%;z-index:0;
  background-image:url('../hero-team.png');
  background-size:cover;background-position:center right;
  -webkit-mask-image:linear-gradient(to right,transparent 0%,rgba(0,0,0,.3) 18%,#000 45%,#000 100%);
          mask-image:linear-gradient(to right,transparent 0%,rgba(0,0,0,.3) 18%,#000 45%,#000 100%);
  animation:heroDrift 18s ease-in-out infinite alternate;
}
.hero-photo-bg.bg-services{
  background-image:url('../hero-services-bg.png');
  background-size:cover;background-position:center right;
}
@keyframes heroDrift{
  from{transform:scale(1.04) translateX(0);}
  to  {transform:scale(1.08) translateX(-1.5%);}
}
.hero-grad{
  position:absolute;inset:0;z-index:1;
  background:linear-gradient(to right,#001648 0%,rgba(0,22,72,.92) 32%,rgba(0,22,72,.55) 50%,rgba(1,112,176,.45) 70%,rgba(1,112,176,.10) 100%);
}
.hero-vignette{
  position:absolute;inset:0;z-index:2;pointer-events:none;
  background:linear-gradient(180deg,rgba(0,4,52,.30) 0%,rgba(0,4,52,0) 22%,rgba(0,4,52,0) 78%,rgba(0,4,52,.40) 100%);
}
.hero-sweep{
  position:absolute;inset:0;z-index:3;pointer-events:none;
  background:linear-gradient(110deg,transparent 0%,rgba(246,146,30,0) 35%,rgba(246,146,30,.10) 50%,rgba(246,146,30,0) 65%,transparent 100%);
  transform:translateX(-100%);
  animation:heroSweep 9s ease-in-out infinite;
}
@keyframes heroSweep{
  0%  {transform:translateX(-100%);opacity:0;}
  18% {opacity:1;}
  55% {transform:translateX(100%);opacity:1;}
  65% {opacity:0;}
  100%{transform:translateX(100%);opacity:0;}
}
.hero-slides{position:relative;z-index:4;color:#fff;}
.hero-slides h1,.hero-slides h2,.hero-slides h3,.hero-slides .font-display,
.hero-slides p,.hero-slides li,.hero-slides span{color:#fff;}
.hero-slides .text-accent{color:var(--accent)!important;}
.hero-slides-track{display:grid;grid-template-areas:'slide';align-items:stretch;}
.hero-slide{
  grid-area:slide;opacity:0;visibility:hidden;
  transition:opacity .7s ease,visibility .7s ease;
  pointer-events:none;display:flex;align-items:center;
  padding:5rem 0;box-sizing:border-box;width:100%;
}
.hero-slide>div{width:100%;}
.hero-slide.is-active{opacity:1;visibility:visible;pointer-events:auto;}
.hero-bg-layer{position:absolute;inset:0;opacity:0;transition:opacity .7s ease;}
.hero-bg-layer.is-active{opacity:1;}
.hero-dots{display:flex;gap:8px;align-items:center;}
.hero-dots button{
  width:12px;height:3px;border-radius:2px;background:rgba(255,255,255,.30);
  transition:width .25s ease,background .25s ease;border:none;cursor:pointer;
}
.hero-dots button[aria-current="true"]{width:32px;background:#F6921E;}
.hero-content{position:relative;z-index:4;color:#fff;}
.hero-reveal{animation:heroReveal 1.1s cubic-bezier(.2,.7,.2,1) both;}
@keyframes heroReveal{
  from{opacity:0;transform:translateX(-24px);}
  to  {opacity:1;transform:translateX(0);}
}
.hero-reveal-2{animation-delay:.12s;}
.hero-reveal-3{animation-delay:.22s;}
.hero-reveal-4{animation-delay:.32s;}
.hero-reveal-5{animation-delay:.42s;}

/* ── Responsive overrides ── */
@media(max-width:1023px){
  .hero-h1{font-size:40px!important;line-height:1.06!important;}
  .sec-h2{font-size:30px!important;line-height:1.1!important;}
  .sec-h3{font-size:24px!important;line-height:1.15!important;}
  .display-xl{font-size:30px!important;line-height:1.1!important;}
  .py-20{padding-top:48px!important;padding-bottom:48px!important;}
  .py-16{padding-top:40px!important;padding-bottom:40px!important;}
  .top-header-bar{height:auto!important;padding-top:8px!important;padding-bottom:8px!important;flex-wrap:wrap;gap:8px;}
}
@media(max-width:640px){
  .hero-h1{font-size:32px!important;}
  .sec-h2{font-size:26px!important;}
  .py-20{padding-top:36px!important;padding-bottom:36px!important;}
  .py-16{padding-top:28px!important;padding-bottom:28px!important;}
  .header-social-row{display:none!important;}
}

/* ── Specialized Publishing service grid ── */
.sp-svc-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:1px;
  background:var(--line);border:1px solid var(--line);border-radius:16px;overflow:hidden;
}
@media(max-width:768px){.sp-svc-grid{grid-template-columns:1fr;}}
.sp-card{
  background:#fff;transition:background .2s ease;
  padding:36px 32px;position:relative;overflow:hidden;
}
.sp-card:hover{background:var(--paper);}
.sp-card-watermark{
  position:absolute;bottom:-10px;right:-10px;
  width:120px;height:120px;opacity:.05;
  pointer-events:none;z-index:0;color:var(--brand);
}
.sp-card-header{display:none;}
.sp-card-icon{display:none;}
.sp-card-body{position:relative;z-index:1;padding:0;}
.sp-card-title{
  font-family:'Fraunces',serif;font-size:20px;font-weight:700;
  letter-spacing:-0.01em;margin-bottom:16px;
  color:var(--brand);display:flex;align-items:center;gap:10px;
}
.sp-card-title::before{
  content:"";width:4px;height:22px;background:var(--accent);
  border-radius:2px;flex-shrink:0;
}
.sp-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px;}
.sp-list li{display:flex;align-items:flex-start;gap:8px;font-size:14px;color:#4B5563;line-height:1.5;}
.sp-list li::before{
  content:"";width:5px;height:5px;border-radius:50%;flex-shrink:0;margin-top:7px;
  background:var(--brand-2);
}

/* ── Add-Ons accordion ── */
.addon-accordion{border-radius:16px;overflow:hidden;border:1px solid var(--line);background:#fff;box-shadow:0 2px 16px rgba(0,22,72,.06);}
.addon-item{border-bottom:1px solid var(--line);}
.addon-item:last-child{border-bottom:none;}
.addon-btn{
  width:100%;display:flex;align-items:center;justify-content:space-between;
  padding:20px 28px;background:transparent;border:none;cursor:pointer;
  text-align:left;transition:background .15s;
}
.addon-btn:hover{background:var(--paper);}
.addon-btn.open{background:var(--paper);}
.addon-btn-title{font-family:'Poppins',sans-serif;font-size:17px;font-weight:600;color:var(--accent);}
.addon-icon{
  width:28px;height:28px;border-radius:50%;border:2px solid var(--accent);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform .2s;
}
.addon-icon svg{color:var(--accent);transition:transform .2s;}
.addon-btn.open .addon-icon svg{transform:rotate(45deg);}
.addon-body{display:none;padding:0 28px 24px;}
.addon-body.open{display:block;animation:fadein .2s ease;}
@keyframes fadein{from{opacity:0;transform:translateY(-4px);}to{opacity:1;transform:translateY(0);}}
.addon-body p{font-size:15px;color:#374151;line-height:1.7;margin-bottom:12px;}
.addon-body ul{list-style:none;padding:0;margin:0 0 12px;display:flex;flex-direction:column;gap:6px;}
.addon-body ul li{font-size:15px;color:#374151;display:flex;align-items:flex-start;gap:8px;}
.addon-body ul li::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent);flex-shrink:0;margin-top:8px;}

/* ── Add-Ons image placeholders ── */
.img-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:16px;}
@media(max-width:640px){.img-gallery{grid-template-columns:repeat(2,1fr);}}
.img-gallery-4{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:16px;}
@media(max-width:640px){.img-gallery-4{grid-template-columns:repeat(2,1fr);}}
.img-placeholder{aspect-ratio:4/3;border-radius:10px;overflow:hidden;background:var(--paper);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;}
.img-placeholder img{width:100%;height:100%;object-fit:cover;}

/* ── Gallery filter buttons ── */
.gf-btn{color:var(--mute);border-color:var(--line);background:#fff;}
.gf-btn:hover{border-color:var(--accent);color:var(--accent);}
.gf-btn.active{background:var(--accent);border-color:var(--accent);color:#fff;}
.gallery-item{transition:all .25s ease;}
.gallery-item.hidden{display:none;}

/* ── Editorial services sticky index ── */
#svc-index{
  position:fixed;right:20px;top:50%;transform:translateY(-50%);
  z-index:200;display:flex;flex-direction:column;gap:4px;
  background:rgba(255,255,255,0.97);border:1px solid #E7E5DC;
  border-radius:16px;padding:14px 10px;
  box-shadow:0 8px 32px rgba(0,22,72,.13);backdrop-filter:blur(8px);
}
.svc-idx-title{
  font-family:'JetBrains Mono',monospace;font-size:9px;
  letter-spacing:.18em;text-transform:uppercase;color:#9CA3AF;
  text-align:center;margin-bottom:8px;
}
.svc-idx-link{
  display:flex;align-items:center;gap:8px;text-decoration:none;
  padding:6px 8px;border-radius:8px;transition:background .15s;
  color:#6B7280;font-size:12px;font-family:'Poppins',sans-serif;font-weight:500;
}
.svc-idx-link:hover{background:#FBFAF6;}
.svc-dot{
  width:8px;height:8px;border-radius:50%;
  background:#E7E5DC;flex-shrink:0;transition:all .2s;
}
.svc-label{
  white-space:nowrap;overflow:hidden;max-width:0;
  opacity:0;transition:max-width .25s ease,opacity .2s ease;
}
#svc-index:hover .svc-label{max-width:200px;opacity:1;}
.svc-idx-link.active .svc-dot{background:#F6921E;box-shadow:0 0 0 3px rgba(246,146,30,.22);}
.svc-idx-link.active{color:#F6921E;}
@media(max-width:1024px){#svc-index{display:none;}}
