:root{
  --ink:#142235;
  --ink-2:#1b2f49;
  --ink-3:#0c1727;
  --blue:#17283f;
  --blue-soft:#213956;
  --ivory:#f7f1e4;
  --parchment:#efe5d0;
  --gold:#d8b66b;
  --gold-2:#f2d78d;
  --stone:#c8bdab;
  --muted:#6e756f;
  --paper:#fffaf0;
  --line:rgba(216,182,107,.38);
  --white:#ffffff;
  --shadow:0 24px 80px rgba(6,17,31,.22);
  --radius:28px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family: Georgia, "Times New Roman", Times, serif;
  color:var(--ink);
  background:
    radial-gradient(circle at 18% 0%, rgba(216,182,107,.18), transparent 30%),
    linear-gradient(180deg, var(--ivory), #fbf7ed 38%, #eee3d0);
  min-height:100vh;
}
body.lock-scroll{overflow:hidden}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.skip-link{
  position:absolute;left:-999px;top:12px;background:var(--ink);color:var(--ivory);
  padding:10px 14px;z-index:99;border-radius:10px;
}
.skip-link:focus{left:12px}
.container{width:min(1160px, calc(100% - 36px));margin:0 auto}
.site-header{
  position:sticky;top:0;z-index:50;
  backdrop-filter: blur(18px);
  background:rgba(247,241,228,.84);
  border-bottom:1px solid rgba(20,34,53,.12);
}
.nav{
  height:78px;display:flex;align-items:center;justify-content:space-between;gap:24px;
}
.brand{
  display:flex;align-items:center;gap:13px;letter-spacing:.08em;text-transform:uppercase;
}
.brand img{width:44px;height:44px;object-fit:contain;border-radius:10px}
.brand-mark{
  width:44px;height:44px;border:1px solid var(--line);border-radius:50%;
  display:grid;place-items:center;background:rgba(255,250,240,.65);
}
.brand-title{font-size:14px;line-height:1.1;font-weight:600}
.brand-subtitle{font-size:10px;letter-spacing:.22em;color:rgba(20,34,53,.64);margin-top:4px}
.nav-links{display:flex;align-items:center;gap:30px;font-size:13px;letter-spacing:.16em;text-transform:uppercase}
.nav-links a{position:relative;padding:8px 0;color:rgba(20,34,53,.78)}
.nav-links a::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--gold);
  transform:scaleX(0);transform-origin:left;transition:.22s ease;
}
.nav-links a:hover::after,.nav-links a.active::after{transform:scaleX(1)}
.nav-cta{
  border:1px solid rgba(20,34,53,.22);padding:11px 16px;border-radius:999px;
  background:rgba(255,250,240,.55);
}
.mobile-toggle{display:none;border:0;background:transparent;font-size:28px;color:var(--ink);cursor:pointer}
.hero{
  position:relative;overflow:hidden;background:
    linear-gradient(135deg, rgba(20,34,53,.99), rgba(23,40,63,.98) 48%, #0f1b2e);
  color:var(--ivory);
}
.hero::before{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(circle at 78% 17%, rgba(242,215,141,.16), transparent 28%),
    linear-gradient(90deg, rgba(216,182,107,.08) 1px, transparent 1px),
    linear-gradient(0deg, rgba(216,182,107,.06) 1px, transparent 1px);
  background-size:auto, 72px 72px, 72px 72px;
  opacity:.95;
}
.hero-inner{
  position:relative;padding:86px 0 78px;
  display:grid;grid-template-columns:1.1fr .9fr;gap:58px;align-items:center;
}
.eyebrow{
  display:flex;align-items:center;gap:12px;text-transform:uppercase;letter-spacing:.22em;
  color:var(--gold-2);font-size:12px;margin-bottom:22px;
}
.eyebrow::before{content:"";width:46px;height:1px;background:var(--gold)}
h1,h2,h3,p{margin-top:0}
h1{
  font-size:clamp(42px,7vw,80px);
  line-height:.96;letter-spacing:.035em;font-weight:500;margin-bottom:24px;
}
.hero p.lede{
  font-size:clamp(18px,2vw,23px);line-height:1.58;color:rgba(247,241,228,.82);
  max-width:720px;
}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:34px}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;border-radius:999px;
  padding:14px 20px;font-size:12px;text-transform:uppercase;letter-spacing:.17em;
  border:1px solid rgba(216,182,107,.42);transition:.2s ease;cursor:pointer;
}
.btn-primary{background:var(--gold);color:#102033;border-color:var(--gold)}
.btn-secondary{color:var(--ivory);background:rgba(255,255,255,.04)}
.btn-dark{background:var(--ink);color:var(--ivory);border-color:var(--ink)}
.btn:hover{transform:translateY(-2px);box-shadow:0 14px 36px rgba(0,0,0,.16)}
.hero-card{
  background:linear-gradient(180deg, rgba(247,241,228,.08), rgba(247,241,228,.02));
  border:1px solid rgba(216,182,107,.24);border-radius:var(--radius);padding:22px;
  box-shadow:var(--shadow);position:relative;overflow:hidden;
}
.hero-card::after{
  content:"";position:absolute;inset:auto -18% -30% auto;width:280px;height:280px;border-radius:50%;
  background:rgba(216,182,107,.08);
}
.hero-card img{
  width:100%;border-radius:22px;border:1px solid rgba(247,241,228,.12);
  background:var(--blue);
}
.hero-note{
  display:grid;grid-template-columns:58px 1fr;gap:16px;align-items:center;margin-top:18px;
  padding:18px;border-top:1px solid rgba(216,182,107,.2);
}
.hero-note img{width:58px;height:58px;object-fit:contain}
.hero-note strong{display:block;letter-spacing:.12em;text-transform:uppercase;font-size:12px;color:var(--gold-2)}
.hero-note span{display:block;color:rgba(247,241,228,.72);font-size:14px;line-height:1.5;margin-top:3px}
.section{padding:82px 0}
.section-tight{padding:54px 0}
.section-head{
  display:flex;align-items:flex-end;justify-content:space-between;gap:32px;margin-bottom:34px;
}
.kicker{font-size:12px;text-transform:uppercase;letter-spacing:.22em;color:var(--gold);font-weight:700}
h2{font-size:clamp(32px,5vw,56px);line-height:1.05;font-weight:500;letter-spacing:.02em;margin-bottom:14px}
.section-head p,.section-text{
  color:rgba(20,34,53,.72);font-size:18px;line-height:1.68;max-width:760px;
}
.grid{display:grid;gap:22px}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-2{grid-template-columns:repeat(2,1fr)}
.card{
  background:rgba(255,250,240,.78);
  border:1px solid rgba(20,34,53,.12);
  border-radius:var(--radius);
  padding:28px;
  box-shadow:0 22px 54px rgba(20,34,53,.08);
}
.card.dark{
  background:linear-gradient(180deg, var(--blue), var(--ink-3));
  color:var(--ivory);border-color:rgba(216,182,107,.24);
}
.card h3{font-size:24px;line-height:1.18;font-weight:500;margin-bottom:12px}
.card p{font-size:16px;line-height:1.65;color:rgba(20,34,53,.7);margin-bottom:0}
.card.dark p{color:rgba(247,241,228,.72)}
.card-label{
  display:inline-flex;margin-bottom:18px;font-size:11px;letter-spacing:.19em;text-transform:uppercase;
  color:var(--gold);font-weight:700;
}
.imprint-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:stretch;
}
.imprint-card{
  min-height:410px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;
}
.imprint-card .image-panel{
  background:var(--blue);border-radius:22px;min-height:220px;display:grid;place-items:center;
  border:1px solid rgba(216,182,107,.2);padding:18px;margin-bottom:24px;
}
.imprint-card .image-panel img{max-height:230px;object-fit:contain}
.rule{
  height:1px;background:linear-gradient(90deg, transparent, rgba(216,182,107,.72), transparent);
  margin:36px 0;
}
.feature-band{
  background:linear-gradient(135deg, #f8f0df, #efe1c9);
  border-top:1px solid rgba(20,34,53,.1);
  border-bottom:1px solid rgba(20,34,53,.1);
}
.masthead{
  background:linear-gradient(180deg,var(--blue),var(--ink-3));
  color:var(--ivory);border-radius:36px;padding:46px;
  display:grid;grid-template-columns:.85fr 1.15fr;gap:34px;align-items:center;box-shadow:var(--shadow);
}
.masthead img{border-radius:28px;border:1px solid rgba(216,182,107,.28)}
.masthead p{font-size:18px;line-height:1.65;color:rgba(247,241,228,.76)}
.masthead h2{color:var(--ivory)}
.pill-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}
.pill{
  display:inline-flex;padding:9px 12px;border:1px solid rgba(216,182,107,.34);border-radius:999px;
  color:rgba(247,241,228,.82);font-size:12px;letter-spacing:.1em;text-transform:uppercase;
}
.page-hero{
  padding:72px 0 54px;background:
    linear-gradient(135deg, var(--blue), var(--ink-3));
  color:var(--ivory);position:relative;overflow:hidden;
}
.page-hero::after{
  content:"";position:absolute;inset:0;
  background:radial-gradient(circle at 84% 8%, rgba(216,182,107,.18), transparent 28%);
}
.page-hero .container{position:relative;z-index:2}
.page-hero h1{font-size:clamp(38px,6vw,68px);max-width:860px}
.page-hero p{font-size:19px;line-height:1.62;color:rgba(247,241,228,.76);max-width:820px}
.publication-grid{grid-template-columns:repeat(3,1fr)}
.book-card{
  min-height:310px;display:flex;flex-direction:column;justify-content:space-between;
  background:
    linear-gradient(180deg, rgba(255,250,240,.88), rgba(247,241,228,.82)),
    repeating-linear-gradient(90deg, rgba(20,34,53,.02) 0 1px, transparent 1px 10px);
}
.book-top{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
.book-num{
  font-size:12px;letter-spacing:.18em;color:var(--gold);border-bottom:1px solid var(--line);
  padding-bottom:6px;min-width:42px;text-align:right;
}
.book-card h3{font-size:25px;line-height:1.18}
.book-meta{
  color:rgba(20,34,53,.6);font-size:12px;text-transform:uppercase;letter-spacing:.16em;
  margin:14px 0 18px;
}
.book-card a.book-link{
  margin-top:22px;display:inline-flex;width:max-content;color:var(--ink);font-size:12px;
  letter-spacing:.16em;text-transform:uppercase;border-bottom:1px solid var(--gold);padding-bottom:6px;
}
.service-list{display:grid;gap:16px;margin-top:22px}
.service-item{
  display:grid;grid-template-columns:36px 1fr;gap:16px;align-items:start;
  padding-top:16px;border-top:1px solid rgba(20,34,53,.12);
}
.service-item span{
  width:30px;height:30px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;
  color:var(--gold);font-size:13px;
}
.service-item p{margin:0;color:rgba(20,34,53,.7);line-height:1.6}
.contact-shell{
  display:grid;grid-template-columns:.85fr 1.15fr;gap:24px;align-items:stretch;
}
.contact-card{
  background:linear-gradient(180deg,var(--blue),var(--ink-3));color:var(--ivory);
}
.contact-card p{color:rgba(247,241,228,.76)}
.form{
  display:grid;gap:16px;
}
.field{
  display:grid;gap:8px;
}
label{font-size:12px;text-transform:uppercase;letter-spacing:.16em;color:rgba(20,34,53,.72)}
input,select,textarea{
  width:100%;border:1px solid rgba(20,34,53,.16);border-radius:16px;
  padding:14px 15px;background:rgba(255,255,255,.64);font:inherit;color:var(--ink);
  outline:none;
}
textarea{min-height:160px;resize:vertical}
input:focus,select:focus,textarea:focus{border-color:var(--gold);box-shadow:0 0 0 4px rgba(216,182,107,.18)}
.form-note{font-size:13px!important;color:rgba(20,34,53,.58)!important;line-height:1.5!important}
.footer{
  background:var(--ink-3);color:var(--ivory);padding:54px 0 38px;
}
.footer-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:30px;align-items:start}
.footer img{width:72px;height:72px;object-fit:contain;margin-bottom:18px}
.footer p{color:rgba(247,241,228,.68);line-height:1.6;max-width:600px}
.footer-links{display:flex;gap:18px;justify-content:flex-end;flex-wrap:wrap;text-transform:uppercase;letter-spacing:.15em;font-size:12px}
.footer-links a{color:rgba(247,241,228,.78)}
.copyright{
  border-top:1px solid rgba(247,241,228,.12);margin-top:34px;padding-top:20px;
  display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;color:rgba(247,241,228,.48);
  font-size:12px;letter-spacing:.12em;text-transform:uppercase;
}
.logo-strip{
  display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin-top:28px;
}
.logo-strip img{
  width:110px;height:72px;object-fit:contain;border:1px solid rgba(20,34,53,.12);
  border-radius:18px;background:rgba(255,250,240,.65);padding:10px;
}
@media (max-width: 920px){
  .mobile-toggle{display:block}
  .nav-links{
    position:fixed;inset:78px 0 auto 0;background:rgba(247,241,228,.98);
    display:none;flex-direction:column;padding:28px 18px;border-bottom:1px solid rgba(20,34,53,.12);
  }
  .nav-links.open{display:flex}
  .nav-cta{display:inline-flex}
  .hero-inner,.masthead,.contact-shell,.footer-grid,.imprint-grid{grid-template-columns:1fr}
  .grid-3,.grid-2,.publication-grid{grid-template-columns:1fr}
  .section-head{display:block}
  .hero-inner{padding:58px 0}
  .masthead{padding:26px;border-radius:28px}
}
@media (max-width: 560px){
  .container{width:min(100% - 24px, 1160px)}
  .nav{height:70px}
  .brand-title{font-size:12px}
  .brand-subtitle{font-size:9px}
  .hero-actions{flex-direction:column}
  .btn{width:100%}
  .section{padding:58px 0}
  .card{padding:22px}
  .hero-note{grid-template-columns:1fr}
  .copyright{display:block}
}
