
:root{
  --forest:#123b34;
  --forest-2:#1c5148;
  --forest-3:#0c2b26;
  --cream:#f5efe4;
  --cream-2:#fbf8f2;
  --paper:#fffdf9;
  --ink:#18211f;
  --muted:#68736f;
  --line:#d9ded8;
  --orange:#d96f4d;
  --orange-soft:#f3cdbf;
  --sage:#dce6df;
  --sage-2:#b9cec1;
  --gold:#c6a45f;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:Inter,Arial,sans-serif;
}
a{text-decoration:none;color:inherit}
img{display:block;max-width:100%}
.wrap{width:min(1240px,calc(100% - 48px));margin:auto}

/* Header */
.site-header{
  position:sticky;top:0;z-index:60;
  background:rgba(18,59,52,.98);
  color:#fff;
  border-bottom:1px solid rgba(255,255,255,.10);
  backdrop-filter:blur(8px);
}
.nav{
  min-height:92px;
  display:grid;
  grid-template-columns:280px 1fr 230px;
  align-items:center;
  gap:26px;
}
.brand{display:flex;align-items:center;gap:13px}
.brand-mark{
  width:48px;height:48px;
  border:1px solid rgba(255,255,255,.35);
  display:grid;place-items:center;
  font:700 18px Georgia,serif;
  letter-spacing:.08em;
  color:#fff;
  position:relative;
}
.brand-mark:after{
  content:"";
  position:absolute;inset:5px;
  border:1px solid rgba(255,255,255,.18);
}
.brand strong{
  display:block;
  font:700 24px Georgia,"Times New Roman",serif;
  color:#fff;
}
.brand small{
  display:block;
  margin-top:3px;
  color:#bfd1ca;
  font-size:9px;
  text-transform:uppercase;
  letter-spacing:.18em;
}
.links{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:28px;
}
.links a{
  position:relative;
  padding:37px 0 34px;
  font-size:12px;
  font-weight:800;
  color:#dce9e4;
}
.links a:after{
  content:"";
  position:absolute;
  left:50%;bottom:25px;
  width:0;height:2px;
  background:var(--orange);
  transition:.2s;
  transform:translateX(-50%);
}
.links a:hover,.links a.active{color:#fff}
.links a:hover:after,.links a.active:after{width:100%}
.mini-search{display:flex;justify-content:flex-end;gap:6px}
.mini-search input{
  height:39px;width:160px;
  border:1px solid rgba(255,255,255,.22);
  background:rgba(255,255,255,.08);
  color:#fff;border-radius:0;
  padding:0 12px;outline:none;
}
.mini-search input::placeholder{color:#bed0ca}
.mini-search button{
  height:39px;border:0;
  background:var(--orange);color:#fff;
  padding:0 14px;font-size:10px;
  font-weight:900;cursor:pointer;
}

/* Homepage */
.hero{padding:34px 0 22px}
.editorial-hero{
  display:grid;
  grid-template-columns:1.08fr .92fr;
  min-height:640px;
  background:var(--paper);
  border:1px solid var(--line);
  overflow:hidden;
}
.hero-copy{
  background:var(--forest-3);
  color:#fff;
  padding:68px 64px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  position:relative;
}
.hero-copy:before{
  content:"VIVORA";
  position:absolute;
  top:22px;left:62px;
  font-size:9px;font-weight:900;
  letter-spacing:.28em;
  color:var(--orange-soft);
}
.kicker,.page-head>small,.section-head small,.book-body small,.catalogue-body small,.detail-copy small,.contact-info small,.insight-grid small{
  font-size:9px;font-weight:900;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--orange);
}
.hero-copy .kicker{color:#f0ad96}
.hero-copy h1{
  max-width:700px;
  margin:17px 0 20px;
  font:700 68px/.96 Georgia,"Times New Roman",serif;
  letter-spacing:-.045em;
}
.hero-copy p{
  max-width:560px;
  margin:0;
  color:#cfddd8;
  font-size:15px;line-height:1.85;
}
.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:28px}
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:46px;padding:0 18px;
  border:1px solid var(--forest);
  background:transparent;
  font-size:11px;font-weight:900;
  cursor:pointer;
}
.btn.primary{background:var(--orange);border-color:var(--orange);color:#fff}
.btn.ghost{border-color:#fff;color:#fff}
.hero-meta{
  display:flex;gap:10px;flex-wrap:wrap;
  margin-top:30px;
}
.hero-meta span{
  padding:7px 9px;
  border:1px solid rgba(255,255,255,.14);
  color:#bcd0c9;
  font-size:9px;font-weight:800;
  letter-spacing:.04em;
}
.cover-stage{
  min-height:640px;
  position:relative;
  overflow:hidden;
  background:
    linear-gradient(90deg,transparent 49.7%,rgba(18,59,52,.08) 50%,transparent 50.3%),
    linear-gradient(0deg,transparent 49.7%,rgba(18,59,52,.08) 50%,transparent 50.3%),
    var(--cream-2);
}
.stage-label{
  position:absolute;left:34px;top:30px;
  font-size:9px;font-weight:900;
  letter-spacing:.18em;text-transform:uppercase;
  color:var(--forest);
}
.stage-book{
  position:absolute;
  width:156px;height:224px;
  background:var(--sage);
  border:9px solid var(--paper);
  box-shadow:0 16px 34px rgba(33,54,48,.18);
  overflow:hidden;
}
.stage-book img{width:100%;height:100%;object-fit:cover}
.stage-book span{
  display:block;width:100%;height:100%;
  background:linear-gradient(145deg,var(--sage),#a9c1b3);
}
.s1{left:58px;top:104px;transform:rotate(-3deg)}
.s2{left:238px;top:76px;transform:rotate(2deg)}
.s3{right:55px;top:126px;transform:rotate(4deg)}
.s4{left:142px;bottom:54px;transform:rotate(2deg)}
.s5{right:105px;bottom:38px;transform:rotate(-4deg)}
.cover-stage:after{
  content:"CURATED BOOKS";
  position:absolute;
  right:28px;bottom:18px;
  writing-mode:vertical-rl;
  font:700 42px Georgia,serif;
  color:rgba(18,59,52,.07);
  letter-spacing:.04em;
}
.quick{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  padding:0 0 62px;
  border-top:0;
}
.quick a{
  min-height:126px;
  padding:22px 20px;
  background:var(--paper);
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  border-left:1px solid transparent;
  display:flex;flex-direction:column;
  justify-content:space-between;
  transition:.2s;
}
.quick a:first-child{border-left:1px solid var(--line)}
.quick a:hover{
  background:var(--sage);
  transform:translateY(-3px);
}
.quick b{
  font:700 16px Georgia,serif;
  color:var(--orange);
}
.quick span{
  font:700 18px/1.15 Georgia,serif;
  color:var(--forest);
}
.featured{padding-bottom:82px}
.section-head{
  display:grid;
  grid-template-columns:1fr 420px;
  align-items:end;
  gap:30px;
  margin-bottom:22px;
  padding-top:8px;
}
.section-head h2{
  margin:8px 0 0;
  font:700 48px/.98 Georgia,serif;
  color:var(--forest-3);
}
.section-head p{
  margin:0;
  font-size:13px;line-height:1.75;
  color:var(--muted);
}
.book-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px;
}
.book-card{
  background:var(--paper);
  border:1px solid var(--line);
  transition:.2s;
}
.book-card:hover{
  transform:translateY(-5px);
  box-shadow:0 18px 34px rgba(27,56,48,.10);
}
.book-cover{
  height:360px;
  background:var(--sage);
  position:relative;
  overflow:hidden;
}
.book-cover:after{
  content:"";
  position:absolute;inset:auto 0 0 0;height:5px;
  background:var(--orange);
  opacity:.75;
}
.book-cover img{width:100%;height:100%;object-fit:cover}
.book-body{padding:18px 18px 17px}
.book-body h3,.catalogue-body h3{
  font:700 22px/1.16 Georgia,serif;
  color:var(--forest-3);
  margin:8px 0 9px;
  display:-webkit-box;-webkit-line-clamp:2;
  -webkit-box-orient:vertical;overflow:hidden;
}
.book-body p,.catalogue-body p{
  margin:0;
  font-size:12px;color:var(--muted);line-height:1.7;
}
.meta{
  margin-top:13px;padding-top:10px;
  border-top:1px solid var(--line);
  font-size:9px;color:#74807b;
  letter-spacing:.03em;
}

/* Inner pages */
.page-head{
  padding:64px 0 28px;
  display:grid;
  grid-template-columns:220px 1fr;
  column-gap:36px;
  align-items:end;
}
.page-head>small{align-self:start;padding-top:10px}
.page-head h1{
  grid-column:2;
  margin:0;
  font:700 58px/.98 Georgia,serif;
  color:var(--forest-3);
}
.page-head p{
  grid-column:2;
  max-width:760px;
  margin:14px 0 0;
  font-size:14px;line-height:1.8;
  color:var(--muted);
}
.catalogue{
  display:grid;
  grid-template-columns:270px 1fr;
  gap:28px;
  padding-bottom:82px;
}
.filters{
  position:sticky;top:116px;height:max-content;
  background:var(--forest);
  color:#fff;
  padding:25px;
}
.filters h3{
  margin:0 0 19px;
  font:700 27px Georgia,serif;
}
.filters form{display:grid;gap:8px}
.filters label{
  margin-top:7px;
  font-size:9px;font-weight:900;
  text-transform:uppercase;letter-spacing:.14em;
  color:#bcd0c9;
}
.filters input,.filters select{
  height:43px;
  border:1px solid rgba(255,255,255,.18);
  background:#fff;color:var(--ink);
  padding:0 11px;border-radius:0;
}
.filters .btn{margin-top:10px;width:100%}
.result-count{
  margin-top:18px;padding:16px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.10);
}
.result-count b{
  display:block;
  font:700 34px Georgia,serif;
  color:#fff;
}
.result-count span{font-size:10px;color:#c9d9d3}
.catalogue-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:16px;
}
.catalogue-card{
  display:grid;
  grid-template-columns:150px 1fr;
  min-height:242px;
  background:var(--paper);
  border:1px solid var(--line);
  transition:.2s;
}
.catalogue-card:hover{
  border-color:var(--sage-2);
  box-shadow:0 14px 28px rgba(27,56,48,.08);
}
.catalogue-cover{background:var(--sage);overflow:hidden}
.catalogue-cover img{width:100%;height:100%;object-fit:cover}
.catalogue-body{padding:17px}
.notice{
  padding:14px 16px;
  border:1px solid #b7d2c1;
  background:#e7f1ea;color:#315f48;
}
.detail{padding:42px 0 84px}
.crumb{margin-bottom:16px;font-size:11px;color:#7a837f}
.detail-grid{
  display:grid;
  grid-template-columns:410px 1fr;
  gap:0;
  background:var(--paper);
  border:1px solid var(--line);
}
.detail-cover{
  min-height:575px;
  background:var(--sage);
  overflow:hidden;
}
.detail-cover img{width:100%;height:100%;object-fit:cover}
.detail-copy{
  padding:46px;
  border-left:1px solid var(--line);
}
.detail-copy h1{
  margin:10px 0;
  font:700 52px/1 Georgia,serif;
  color:var(--forest-3);
}
.detail-copy h2{
  margin:0 0 15px;
  font:700 22px/1.3 Georgia,serif;
  color:var(--orange);
}
.detail-copy p{font-size:14px;line-height:1.82;color:var(--muted)}
.byline{color:#414c48!important}
.facts{
  display:grid;
  grid-template-columns:1fr 1fr;
  margin:24px 0;
  border-top:1px solid var(--line);
  border-left:1px solid var(--line);
}
.facts div{
  padding:15px;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:#faf8f2;
}
.facts span,.record span,.contact-meta span{
  display:block;
  margin-bottom:5px;
  font-size:8px;font-weight:900;
  letter-spacing:.15em;text-transform:uppercase;
  color:var(--muted);
}
.facts b,.record strong,.contact-meta b{font-size:13px}

/* Company */
.company-layout{
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:0;
  padding-bottom:82px;
}
.company-quote{
  background:var(--orange);
  color:#fff;
  padding:42px;
}
.company-quote span{
  font-size:9px;font-weight:900;
  text-transform:uppercase;letter-spacing:.18em;
  color:#ffe4da;
}
.company-quote h2{
  margin:18px 0 0;
  font:700 42px/1.08 Georgia,serif;
}
.record{
  background:var(--paper);
  border:1px solid var(--line);
  border-left:0;
  padding:0;
}
.record>div{
  display:grid;
  grid-template-columns:200px 1fr;
  gap:22px;padding:19px 22px;
  border-bottom:1px solid var(--line);
}
.record>div:last-child{border-bottom:0}

/* Publishing Areas */
.areas{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:0;
  padding-bottom:82px;
  border-top:1px solid var(--line);
  border-left:1px solid var(--line);
}
.areas article{
  min-height:270px;
  padding:34px;
  background:var(--paper);
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.areas article:nth-child(2),
.areas article:nth-child(3){background:var(--sage)}
.areas b{
  font:700 20px Georgia,serif;
  color:var(--orange);
}
.areas h2{
  margin:48px 0 10px;
  font:700 34px Georgia,serif;
  color:var(--forest-3);
}
.areas p{max-width:440px;color:var(--muted);line-height:1.78}

/* Insights */
.insight-grid{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:16px;
  padding-bottom:82px;
}
.insight-grid article{
  min-height:230px;
  padding:28px;
  background:var(--paper);
  border:1px solid var(--line);
}
.insight-grid .lead{
  grid-row:1/span 3;
  min-height:700px;
  display:flex;flex-direction:column;justify-content:flex-end;
  background:var(--forest-3);
  color:#fff;
  border-color:var(--forest-3);
}
.insight-grid .lead small{color:#f0ad96}
.insight-grid h2{
  margin:14px 0;
  font:700 50px/1.02 Georgia,serif;
}
.insight-grid h3{
  margin:18px 0 10px;
  font:700 28px/1.12 Georgia,serif;
  color:var(--forest-3);
}
.insight-grid p{
  margin:0;
  font-size:13px;line-height:1.78;color:var(--muted);
}
.insight-grid .lead p{color:#cbdad5}

/* Contact */
.contact-layout{
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:0;
  padding:48px 0 84px;
}
.contact-info{
  background:var(--forest-3);
  color:#fff;
  padding:44px;
}
.contact-info small{color:#f0ad96}
.contact-info h1{
  margin:14px 0;
  font:700 54px/1 Georgia,serif;
}
.contact-info p{color:#cbdad5;line-height:1.82}
.contact-meta{margin-top:28px}
.contact-meta>div{
  padding:13px 0;
  border-top:1px solid rgba(255,255,255,.15);
}
.contact-meta span{color:#a9c1b8}
.contact-meta b{color:#fff}
.contact-form{
  background:var(--paper);
  border:1px solid var(--line);
  border-left:0;
  padding:44px;
}
.contact-form h2{
  margin:0 0 22px;
  font:700 38px Georgia,serif;
  color:var(--forest-3);
}
.contact-form form{
  display:grid;grid-template-columns:1fr 1fr;gap:12px;
}
.contact-form input,.contact-form select,.contact-form textarea{
  border:1px solid var(--line);
  border-radius:0;
  background:#fff;
  padding:13px;font:inherit;
}
.contact-form textarea{grid-column:1/3;min-height:170px}
.contact-form button{
  grid-column:1/3;
  height:48px;border:0;
  background:var(--orange);color:#fff;
  font-weight:900;cursor:pointer;
}

/* Footer */
.site-footer{
  background:#0b2823;
  color:#c9d8d2;
  padding:38px 0;
}
.foot{
  display:grid;
  grid-template-columns:1fr auto;
  gap:28px;align-items:end;
}
.foot strong{
  font:700 26px Georgia,serif;
  color:#fff;
}
.foot p{font-size:11px;line-height:1.7;color:#9fb7ae}
.foot-links{
  display:flex;gap:18px;
  font-size:11px;font-weight:800;
}
.foot-links a{color:#d5e3de}

/* Responsive */
@media(max-width:1080px){
  .nav{grid-template-columns:230px 1fr}.mini-search{display:none}
  .editorial-hero,.catalogue,.detail-grid,.company-layout,.contact-layout{grid-template-columns:1fr}
  .detail-copy,.record,.contact-form{border-left:1px solid var(--line)}
  .filters{position:static}
  .book-grid{grid-template-columns:repeat(3,1fr)}
  .catalogue-grid{grid-template-columns:1fr}
  .insight-grid{grid-template-columns:1fr 1fr}
  .insight-grid .lead{grid-row:auto;grid-column:1/3;min-height:500px}
}
@media(max-width:760px){
  .wrap{width:min(100% - 26px,1240px)}
  .nav{display:flex;flex-wrap:wrap;padding:14px 0;min-height:auto}
  .brand{width:100%}
  .links{order:3;width:100%;justify-content:flex-start;overflow:auto;gap:18px}
  .links a{padding:10px 0 8px;white-space:nowrap}
  .links a:after{bottom:2px}
  .hero-copy{padding:48px 30px}
  .hero-copy h1{font-size:48px}
  .cover-stage{min-height:520px}
  .quick{grid-template-columns:1fr 1fr}
  .book-grid,.areas{grid-template-columns:1fr 1fr}
  .section-head,.page-head{grid-template-columns:1fr}
  .page-head h1,.page-head p{grid-column:1}
  .page-head{gap:8px}
  .catalogue-card{grid-template-columns:135px 1fr}
  .insight-grid{grid-template-columns:1fr}
  .insight-grid .lead{grid-column:auto}
  .record>div{grid-template-columns:1fr}
  .contact-form form{grid-template-columns:1fr}
  .contact-form textarea,.contact-form button{grid-column:1}
  .facts{grid-template-columns:1fr}
  .foot{grid-template-columns:1fr}
}
@media(max-width:520px){
  .hero-copy h1,.page-head h1,.detail-copy h1,.contact-info h1{font-size:38px}
  .cover-stage{min-height:450px}
  .stage-book{width:118px;height:172px;border-width:6px}
  .s1{left:18px;top:80px}.s2{left:120px;top:55px}.s3{right:18px;top:95px}.s4{left:68px;bottom:35px}.s5{right:48px;bottom:25px}
  .quick,.book-grid,.areas{grid-template-columns:1fr}
  .catalogue-card{grid-template-columns:110px 1fr}
  .detail-copy,.contact-info,.contact-form{padding:28px}
}

/* === Vivora v4.4: complete book-cover fitting === */

/* Catalogue: always show the full cover instead of cropping it. */
.catalogue-card{
  align-items:start!important;
}
.catalogue-cover{
  min-height:0!important;
  height:auto!important;
  aspect-ratio:145/210!important;
  align-self:start!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  background:#fff!important;
  overflow:hidden!important;
}
.catalogue-cover img{
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:center!important;
  background:#fff!important;
}

/* Homepage covers: keep the original complete cover ratio. */
.book-cover{
  height:auto!important;
  aspect-ratio:145/210!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  background:#fff!important;
}
.book-cover img{
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:center!important;
}

/* Hero cover mosaic should not cut off titles either. */
.stage-book img{
  object-fit:contain!important;
  object-position:center!important;
  background:#fff!important;
}

/* Book detail: display the complete front cover. */
.detail-cover{
  min-height:0!important;
  height:auto!important;
  aspect-ratio:145/210!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  background:#fff!important;
}
.detail-cover img{
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:center!important;
}

/* Avoid stretched/cropped cover preview in admin editor. */
.cover-preview{
  object-fit:contain!important;
  object-position:center!important;
  background:#fff!important;
}
