.bookshop-nav .bookshop-nav__physical {
  align-self: stretch;
  min-height: 52px;
  margin: 5px 6px;
  padding: 6px 17px;
  border: 1px solid #e7d18c;
  border-bottom: 1px solid #e7d18c;
  background: linear-gradient(145deg, #d8b664, #a97827);
  color: #17120b;
  box-shadow: inset 0 1px rgba(255,255,255,.38), 0 4px 13px rgba(0,0,0,.2);
  flex-direction: column;
  justify-content: center;
  line-height: 1.05;
  text-shadow: 0 1px rgba(255,255,255,.28);
}

.bookshop-nav .bookshop-nav__physical:hover,
.bookshop-nav .bookshop-nav__physical:focus-visible,
.bookshop-nav .bookshop-nav__physical[aria-current="page"] {
  border-color: #fff1bd;
  border-bottom-color: #fff1bd;
  background: linear-gradient(145deg, #efd68d, #c08d31);
  color: #090806;
  box-shadow: inset 0 1px rgba(255,255,255,.5), 0 0 0 3px rgba(231,209,140,.22), 0 6px 18px rgba(0,0,0,.28);
}

.bookshop-nav__physical-mark {
  display: block;
  margin-bottom: 3px;
  font-size: 8px;
  letter-spacing: .22em;
  text-transform: uppercase;
}

.bookshop-view--physical {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  background: #090b0c;
}

.efpg {
  --efpg-ink: #090b0c;
  --efpg-panel: #111416;
  --efpg-line: #775827;
  --efpg-gold: #d7aa52;
  --efpg-gold-light: #f0d58a;
  --efpg-paper: #e8e0d0;
  color: var(--efpg-paper);
  font-family: Arial, sans-serif;
}

.efpg *, .efpg *::before, .efpg *::after { box-sizing: border-box; }

.efpg__back {
  width: min(1240px, calc(100% - 32px));
  margin: 28px auto 0;
  color: #d9c591;
}

.efpg__frame {
  position: relative;
  min-height: 600px;
  overflow: hidden;
  border-top: 1px solid #5f4822;
  border-bottom: 1px solid #5f4822;
  background:
    radial-gradient(circle at 84% 4%, rgba(116,75,29,.66) 0, rgba(53,36,20,.34) 18%, transparent 37%),
    radial-gradient(circle at 16% 112%, rgba(42,65,55,.48), transparent 38%),
    linear-gradient(145deg, #16191b, #080a0b 64%);
  box-shadow: inset 0 1px rgba(255,255,255,.035), 0 26px 70px rgba(0,0,0,.38);
}

.efpg__frame::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: .19;
  background-image:
    linear-gradient(rgba(215,170,82,.13) 1px, transparent 1px),
    linear-gradient(90deg, rgba(215,170,82,.13) 1px, transparent 1px);
  background-size: 32px 32px;
  mask-image: linear-gradient(to bottom, #000, transparent 72%);
}

.efpg__frame::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(ellipse at center, transparent 42%, rgba(0,0,0,.48) 100%);
}

.efpg__head,
.efpg__status,
.efpg__collections,
.efpg__grid,
.efpg__cart,
.efpg__floating { position: relative; z-index: 1; }

.efpg__head {
  display: grid;
  grid-template-columns: minmax(0,1fr) 150px;
  gap: 26px 50px;
  width: min(1240px, calc(100% - 32px));
  margin: auto;
  padding: clamp(52px,7vw,92px) 0 clamp(38px,5vw,64px);
  border-bottom: 1px solid rgba(215,170,82,.42);
}

.efpg__kicker {
  margin: 0 0 11px;
  color: var(--efpg-gold);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .22em;
  text-transform: uppercase;
}

.efpg__head h2 {
  max-width: 920px;
  margin: 0 0 20px;
  color: #fff9eb;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(42px,6vw,78px);
  line-height: .98;
  letter-spacing: -.035em;
}

.efpg__head > div:first-child > p:last-child {
  max-width: 800px;
  margin: 0;
  color: #cbc2b2;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(17px,2vw,22px);
  line-height: 1.65;
}

.efpg__seal {
  align-self: center;
  display: grid;
  width: 132px;
  height: 132px;
  place-content: center;
  border: 2px solid var(--efpg-gold);
  border-radius: 50%;
  box-shadow: inset 0 0 0 6px #0e1112, inset 0 0 0 7px rgba(215,170,82,.62), 0 8px 28px rgba(0,0,0,.4);
  color: var(--efpg-gold-light);
  text-align: center;
  transform: rotate(-5deg);
}

.efpg__seal span { font: 700 50px/1 Georgia, serif; }
.efpg__seal small { display: block; margin-top: 3px; font-size: 8px; font-weight: 800; letter-spacing: .26em; }

.efpg__assurances {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.efpg__assurances span {
  padding: 8px 11px;
  border: 1px solid rgba(215,170,82,.55);
  background: rgba(0,0,0,.35);
  color: #e9ddbf;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.efpg__status {
  width: min(1240px, calc(100% - 32px));
  margin: 0 auto;
  padding: 22px 0;
  color: #beb5a4;
  font-size: 13px;
  font-weight: 700;
}

.efpg__status[data-state="error"] { color: #ef9b8f; }

.efpg__collections {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  width: min(1240px, calc(100% - 32px));
  margin: 0 auto;
  padding: 0 0 22px;
}

.efpg__collections[hidden] { display: none; }
.efpg__collections-label { margin-right: 4px; color: #bdb3a1; font-size: 10px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.efpg__collections button { display: inline-flex; align-items: center; gap: 9px; min-height: 44px; padding: 10px 14px; border: 1px solid #806431; background: #111416; color: #ead59b; font-weight: 800; cursor: pointer; }
.efpg__collections button:hover, .efpg__collections button:focus-visible { border-color: var(--efpg-gold-light); background: #28220f; outline: 0; box-shadow: 0 0 0 3px rgba(215,170,82,.16); }
.efpg__collections button[aria-pressed="true"] { border-color: var(--efpg-gold-light); background: linear-gradient(145deg,#e2bd68,#b47f28); color: #111; }
.efpg__collections small { display: inline-grid; min-width: 22px; height: 22px; padding: 0 6px; place-items: center; border-radius: 999px; background: rgba(0,0,0,.32); color: inherit; font-size: 10px; }

.efpg__grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 20px;
  width: min(1240px, calc(100% - 32px));
  margin: 0 auto;
  padding: 12px 0 82px;
}

.efpg__catalog-card {
  display: flex;
  min-height: 100%;
  overflow: hidden;
  flex-direction: column;
  border: 1px solid #4f3c20;
  background: linear-gradient(155deg,#15191b,#0b0d0e);
  box-shadow: 0 18px 36px rgba(0,0,0,.3);
  transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.efpg__catalog-card:hover { transform: translateY(-3px); border-color: #a47b35; box-shadow: 0 24px 44px rgba(0,0,0,.45); }
.efpg__catalog-media { position: relative; display: block; width: 100%; padding: 0; overflow: hidden; border: 0; border-bottom: 1px solid #4f3c20; background: #050606; cursor: pointer; }
.efpg__catalog-media img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: contain; transition: transform .25s ease; }
.efpg__catalog-card:hover .efpg__catalog-media img { transform: scale(1.025); }
.efpg__catalog-media span { position: absolute; right: 10px; bottom: 10px; padding: 6px 8px; background: rgba(0,0,0,.84); color: #f1e6c9; font-size: 9px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.efpg__catalog-body { display: flex; flex: 1; flex-direction: column; padding: 22px; }
.efpg__catalog-body h3 { margin: 10px 0 12px; }
.efpg__catalog-body h3 button { padding: 0; border: 0; background: none; color: #fff9eb; font: 700 25px/1.14 Georgia,serif; text-align: left; cursor: pointer; }
.efpg__catalog-body p { margin: 0 0 20px; color: #bbb3a5; line-height: 1.55; }
.efpg__catalog-foot { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: auto; padding-top: 18px; border-top: 1px solid #34302a; }
.efpg__catalog-foot strong { color: #fff; font: 700 24px/1 Georgia,serif; }
.efpg__grid--detail { display: block; }
.efpg__catalog-back { margin: 0 0 16px; padding: 10px 14px; border: 1px solid #806431; background: #111416; color: #ead59b; font-weight: 800; cursor: pointer; }
.efpg__detail { display: grid; grid-template-columns: minmax(0,1.18fr) minmax(340px,.82fr); overflow: hidden; border: 1px solid #4f3c20; background: linear-gradient(155deg,#15191b,#0b0d0e); box-shadow: 0 18px 36px rgba(0,0,0,.3); }
.efpg__gallery { min-width: 0; border-right: 1px solid #4f3c20; background: #07090a; }
.efpg__image { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: contain; border-bottom: 1px solid #4f3c20; background: #050606; }
.efpg__thumbs { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1px; background: #4f3c20; }
.efpg__thumbs button { position: relative; aspect-ratio: 4 / 3; overflow: hidden; padding: 0; border: 0; outline: 2px solid transparent; outline-offset: -3px; background: #0b0d0e; cursor: pointer; }
.efpg__thumbs button[aria-current="true"] { outline-color: var(--efpg-gold-light); }
.efpg__thumbs img { width: 100%; height: 100%; object-fit: cover; opacity: .72; }
.efpg__thumbs button:hover img, .efpg__thumbs button[aria-current="true"] img { opacity: 1; }
.efpg__thumbs span { position: absolute; right: 6px; bottom: 6px; padding: 4px 6px; background: rgba(0,0,0,.8); color: #f1e6c9; font-size: 8px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.efpg__body { display: flex; min-width: 0; flex: 1; flex-direction: column; padding: 28px; }
.efpg__meta { color: #c99e4b; font-size: 9px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.efpg__body h3 { margin: 10px 0 12px; color: #fff9eb; font: 700 26px/1.14 Georgia,serif; }
.efpg__body p { margin: 0 0 18px; color: #bbb3a5; line-height: 1.6; }
.efpg__details { margin: 0 0 22px; padding: 18px; border: 1px solid #3d3528; background: rgba(0,0,0,.22); }
.efpg__details h4 { margin: 0 0 10px; color: var(--efpg-gold-light); font: 700 17px/1.2 Georgia,serif; }
.efpg__details ul { margin: 0; padding-left: 18px; color: #c5bdaf; font-size: 13px; line-height: 1.55; }
.efpg__details li + li { margin-top: 5px; }
.efpg__buyrow { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 12px; align-items: end; margin-top: auto; padding-top: 18px; border-top: 1px solid #34302a; }
.efpg__buyrow label { font-size: 9px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.efpg__price { color: #fff; font: 700 25px/1 Georgia,serif; white-space: nowrap; }
.efpg__buyrow .efpg__button { grid-column: 1 / -1; }
.efpg__single-option small { display: block; margin-bottom: 5px; color: #a89f8d; font-size: 8px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.efpg__single-option strong { color: #eee4cd; font-size: 13px; }

.efpg select, .efpg input {
  width: 100%;
  margin-top: 6px;
  padding: 11px;
  border: 1px solid #6b6357;
  border-radius: 2px;
  background: #f7f3eb;
  color: #161616;
}

.efpg__button {
  min-height: 45px;
  padding: 10px 16px;
  border: 1px solid var(--efpg-gold);
  border-radius: 2px;
  background: #181b1c;
  color: #fff;
  font-weight: 800;
  cursor: pointer;
}

.efpg__button:hover, .efpg__button:focus-visible { background: #28220f; box-shadow: 0 0 0 3px rgba(215,170,82,.2); outline: 0; }
.efpg__button:disabled { cursor: not-allowed; opacity: .45; }
.efpg__button--gold { width: 100%; margin-top: 16px; background: linear-gradient(145deg,#e2bd68,#b47f28); color: #111; }

.efpg__floating {
  position: sticky;
  bottom: 16px;
  float: right;
  margin: 16px max(16px,calc((100vw - 1240px)/2));
  padding: 12px 15px;
  border: 1px solid var(--efpg-gold-light);
  background: #111;
  color: #fff;
  box-shadow: 0 8px 30px #000;
  font-weight: 800;
  cursor: pointer;
}

.efpg__floating strong { display: inline-grid; width: 24px; height: 24px; margin-left: 7px; place-items: center; border-radius: 50%; background: var(--efpg-gold); color: #111; }

.efpg__cart {
  width: min(960px, calc(100% - 32px));
  margin: 0 auto 70px;
  padding: clamp(22px,4vw,42px);
  border: 1px solid var(--efpg-gold);
  background: rgba(10,12,13,.97);
  box-shadow: 0 25px 70px rgba(0,0,0,.52);
}

.efpg__carthead { display: flex; align-items: flex-start; justify-content: space-between; gap: 25px; }
.efpg__carthead h3 { margin: 0 0 20px; color: #fff; font: 700 33px/1.08 Georgia,serif; }
.efpg__carthead button { border: 0; background: none; color: #fff; font-size: 30px; cursor: pointer; }
.efpg__line { display: grid; grid-template-columns: minmax(0,1fr) 90px auto; gap: 14px; align-items: center; padding: 14px 0; border-top: 1px solid #39332a; }
.efpg__line input { margin: 0; }
.efpg__line button { border: 0; background: none; color: #d9b25c; font-weight: 700; cursor: pointer; }
.efpg__cart h4 { margin: 32px 0 4px; color: #fff9eb; font: 700 22px/1.2 Georgia,serif; }
.efpg__form-note { margin: 0 0 16px; color: #aaa294; font-size: 13px; }
.efpg__fields { display: grid; grid-template-columns: repeat(2,1fr); gap: 13px; margin: 12px 0 18px; }
.efpg__fields label { font-size: 10px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.efpg__fields small { color: #9d968b; font-weight: 400; text-transform: none; }
.efpg__fields .wide { grid-column: 1 / -1; }
.efpg__rates { margin-top: 24px; }
.efpg__rate { display: flex; gap: 12px; align-items: center; margin-top: 9px; padding: 13px; border: 1px solid #504631; background: #121416; cursor: pointer; }
.efpg__rate input { width: auto; margin: 0; }
.efpg__rate small { color: #aaa294; }
.efpg__rate span { margin-left: auto; color: #fff; font-weight: 800; }
.efpg__terms { display: grid; grid-template-columns: auto 1fr; gap: 10px; align-items: start; margin-top: 22px; color: #c9c1b3; font-size: 12px; line-height: 1.55; }
.efpg__terms input { width: auto; margin: 2px 0 0; }
.efpg__terms a { color: var(--efpg-gold-light); }
.efpg__notice { width: min(1240px,calc(100% - 32px)); margin: 26px auto 0; padding: 18px; border-left: 4px solid var(--efpg-gold); background: #19160f; color: #ddd1b8; }
.efpg__notice strong { color: #fff9eb; }

@media (max-width: 1040px) {
  .efpg__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .efpg__detail { grid-template-columns: 1fr; }
  .efpg__gallery { border-right: 0; }
}

@media (max-width: 760px) {
  .bookshop-nav .bookshop-nav__physical { align-self: center; min-height: 48px; }
  .efpg__head { grid-template-columns: 1fr; }
  .efpg__seal { display: none; }
  .efpg__grid { grid-template-columns: 1fr; }
  .efpg__fields { grid-template-columns: 1fr; }
  .efpg__fields .wide { grid-column: auto; }
  .efpg__line { grid-template-columns: 1fr auto; }
  .efpg__line input { grid-column: 1; }
  .efpg__line button { grid-column: 2; grid-row: 1; }
  .efpg__collections { align-items: stretch; flex-direction: column; }
  .efpg__collections-label { margin-bottom: 2px; }
  .efpg__collections button { justify-content: space-between; width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .efpg__catalog-card { transition: none; }
  .efpg__catalog-card:hover { transform: none; }
}
