.public-header {
  background: #fffdf8;
}

.public-header nav a[aria-current=page] {
  background: #193149;
  border: 1px solid #193149;
  border-radius: 8px;
  color: #fff8e6;
  font-weight: 800;
}

.public-footer {
  margin-top: 35px;
}

.public-catalogue {
  max-width: 1480px;
  padding-bottom: 42px;
}

.public-catalogue .catalog-title {
  background:
    radial-gradient(ellipse at 82% 22%, rgba(65, 110, 135, .48), transparent 34%),
    radial-gradient(ellipse at 20% 18%, rgba(55, 99, 123, .55), transparent 42%),
    repeating-linear-gradient(135deg, rgba(255,255,255,.055) 0 1px, transparent 1px 5px),
    linear-gradient(135deg, #061a2c, #173b56 58%, #06192b);
  border: 2px solid #d5ae5b;
  border-radius: 6px;
  box-shadow: 6px 6px 0 #efe6d5, 15px 20px 35px #19314926;
  display: grid;
  gap: 24px;
  grid-template-columns: minmax(0, 1fr) 290px;
  margin: 32px 0 20px;
  max-width: none;
  overflow: hidden;
  padding: 34px 36px 30px;
  position: relative;
}

.public-catalogue .catalog-title::before {
  background: linear-gradient(90deg, #f6dc92, #b78935 56%, #f6dc92);
  content: "";
  height: 1px;
  inset: 0 0 auto;
  position: absolute;
}

.public-catalogue .catalog-title::after {
  border: 1px solid rgba(245, 221, 164, .32);
  border-radius: 5px;
  content: "";
  inset: 14px;
  pointer-events: none;
  position: absolute;
}

.public-catalogue .catalog-title > div,
.catalogue-stats {
  position: relative;
  z-index: 1;
}

.public-catalogue .catalog-title > div {
  max-width: 640px;
}

.public-catalogue .catalog-title p {
  color: #d9e1e5;
  font-size: 17px;
  line-height: 1.7;
}

.public-catalogue .catalog-title a {
  border-bottom: 1px solid #d6b367;
  color: #ffe1a3;
  font-weight: 800;
}

.public-catalogue .catalog-title h1 {
  color: #fffaf0;
}

.public-catalogue .catalog-title .eyebrow {
  color: #e1c47f;
}

.catalogue-facts {
  color: #e1c47f !important;
  font-size: 13px !important;
  font-weight: 700;
  letter-spacing: .4px;
  margin-top: 12px;
}

.catalogue-stats {
  align-self: center;
  display: grid;
  grid-template-columns: 1fr;
  gap: 9px;
  margin: 0;
}

.catalogue-stats div {
  align-items: center;
  background: rgba(7, 24, 40, .28);
  border: 1px solid rgba(241, 210, 139, .38);
  border-radius: 999px 14px 14px 999px;
  box-shadow: 0 8px 18px #06182733;
  color: #fff7df;
  display: grid;
  gap: 12px;
  grid-template-columns: 64px 1fr;
  min-height: 64px;
  padding: 5px 14px 5px 5px;
}

.catalogue-stats dt {
  align-items: center;
  background: radial-gradient(circle at 30% 24%, #fff3bf, #e1b85c 58%, #ad7925);
  border: 1px solid #ffe3a5;
  border-radius: 50%;
  box-shadow: inset 0 1px #fff8, 0 3px 0 #6e4d17, 0 8px 14px #06182745;
  color: #193149;
  display: flex;
  font: 700 14px/1.02 var(--font-heading);
  height: 58px;
  justify-content: center;
  padding: 0 7px;
  text-align: center;
  text-shadow: 0 1px #fff6;
  width: 58px;
}

.catalogue-stats dd {
  color: #ffe5a6;
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: .25px;
  line-height: 1.3;
  margin: 0;
}

.operation-board {
  background-color: #fffaf0;
  background-image:
    linear-gradient(#d9e2e8 1px, transparent 1px),
    linear-gradient(90deg, #d9e2e8 1px, transparent 1px);
  background-position: -1px -1px;
  background-size: 20px 20px;
  border-radius: 10px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  align-items: start;
  padding: 18px 14px 8px;
  position: relative;
}

.operation-board::before {
  background: rgba(255, 250, 240, .72);
  border-radius: inherit;
  content: "";
  inset: 0;
  pointer-events: none;
  position: absolute;
}

.operation-board > * {
  position: relative;
}

.catalogue-section {
  margin: 24px 0 30px;
  min-width: 0;
  padding: 0;
}

.catalogue-section + .catalogue-section::before {
  background: #d8ccb5;
  content: "";
  inset: 0 auto 0 -8px;
  position: absolute;
  width: 1px;
}

.operation-column .section-heading {
  background: linear-gradient(135deg, #183149, #28465b);
  border: 1px solid #d1ad61;
  border-radius: 6px;
  box-shadow: 4px 4px 0 #eee5d4, 0 10px 18px #19314918;
  color: #fffaf0;
  display: grid;
  gap: 7px;
  margin: 0 0 13px;
  min-height: 112px;
  overflow: hidden;
  padding: 15px 12px 11px;
  position: relative;
}

.operation-column .section-heading::before {
  background: #d1ad61;
  content: "";
  height: 1px;
  inset: 0 0 auto;
  position: absolute;
}

.operation-column .section-heading h2 {
  color: #fffaf0;
  font-size: 28px;
  letter-spacing: 0;
  line-height: 1.04;
  margin: 4px 0 3px;
}

.operation-column .section-heading .operation-label {
  color: #e4c779;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 2.2px;
  line-height: 1.15;
  margin: 0;
  text-transform: uppercase;
}

.operation-column .section-heading > p {
  align-self: end;
  background: #fff7e4;
  border: 1px solid #d1ad61;
  border-radius: 5px;
  color: #193149;
  font-size: 12px;
  margin: 0;
  padding: 6px 8px;
  width: fit-content;
}

.operation-symbol {
  align-items: center;
  background: linear-gradient(135deg, #f2d891, #c59a43);
  border: 1px solid #f6e1aa;
  border-radius: 50%;
  box-shadow: inset 0 1px #fff7, 0 3px 7px #071b2a35;
  color: #193149;
  display: flex;
  font-size: 22px;
  font-weight: 800;
  height: 34px;
  justify-content: center;
  position: absolute;
  bottom: 10px;
  right: 12px;
  top: auto;
  width: 34px;
}

.operation-pack-list {
  display: grid;
  gap: 10px;
}

.public-pack-card {
  border-radius: 9px;
  gap: 8px;
  padding: 10px;
}

.public-pack-card:hover {
  transform: translateY(-2px);
}

.card-head {
  display: grid;
  gap: 6px;
}

.pack-code {
  color: #97752e;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 1.3px;
}

.public-pack-card .preview {
  align-self: stretch;
  background: #fffef9;
  border-radius: 8px;
  display: flex;
  height: auto;
  justify-content: center;
  min-height: 126px;
  margin: 0;
  padding: 5px;
  width: auto;
}

.public-pack-card .preview img {
  height: auto;
  max-height: 116px;
  max-width: 96%;
  object-fit: contain;
  box-shadow: none;
  transform: none;
  width: auto;
}

.public-pack-card .badge {
  flex: 0 0 auto;
  max-width: 100%;
  padding: 3px 7px;
  text-align: center;
}

.practice-chip {
  background: #eef4f7;
  color: #39576c;
}

.level-easy {
  background: #dff3e5;
  color: #2e6841;
}

.level-medium {
  background: #fff1d5;
  color: #866221;
}

.level-hard {
  background: #eee5fa;
  color: #754c9a;
}

.public-pack-card h3 {
  font-size: 14px;
  line-height: 1.18;
  margin: 0;
  min-height: 34px;
}

.public-pack-card .meta {
  font-size: 9px;
  line-height: 1.45;
  margin: 0 0 2px;
  min-height: 26px;
}

.card-bottom {
  align-items: stretch;
  display: grid;
  gap: 7px;
  grid-template-columns: minmax(0, 1fr) minmax(88px, .95fr);
  margin-top: auto;
  padding-top: 8px;
  border-top: 1px solid #e1d5bd;
}

.card-actions {
  align-content: stretch;
  display: grid;
  gap: 4px;
  justify-items: stretch;
  min-width: 0;
}

.public-pack-card .price {
  font-size: 13px;
  line-height: 1.1;
  white-space: nowrap;
}

.public-pack-card .card-actions .btn {
  align-self: end;
  border-radius: 6px;
  font-size: 10px;
  min-height: 0;
  padding: 7px 5px;
  white-space: nowrap;
}

.public-pack-card .card-actions .buy-etsy {
  font-weight: 800;
}

.public-pack-card .card-actions .unavailable {
  background: #eee6d8;
  border-color: #d8c9ad;
  box-shadow: none;
  color: #7a6a4e;
  cursor: default;
}

.public-pack-card h3 a:hover,
.related-packs a:hover,
.breadcrumbs a:hover {
  text-decoration: underline;
}

.catalogue-empty {
  background: #fffdf8;
  border: 1px dashed #d8ccb5;
  border-radius: 10px;
  color: #617180;
  font-size: 12px;
  line-height: 1.6;
  margin: 0;
  padding: 16px;
}

.pack-page {
  padding-top: 24px;
}

.breadcrumbs {
  align-items: center;
  color: #617180;
  display: flex;
  font-size: 12px;
  gap: 9px;
  margin: 10px 0 30px;
}

.pack-hero {
  align-items: center;
  background: #fffdf8;
  border: 1px solid #dfd2ba;
  border-radius: 16px;
  box-shadow: 0 14px 30px #19314910;
  display: grid;
  gap: 60px;
  grid-template-columns: minmax(0, 1.05fr) minmax(340px, .95fr);
  padding: 46px;
}

.pack-copy h1 {
  font-size: clamp(40px, 5vw, 62px);
  margin: 14px 0 20px;
}

.pack-description {
  font-size: 16px;
  line-height: 1.75;
}

.pack-facts {
  background: #dfd2ba;
  border: 1px solid #dfd2ba;
  border-radius: 10px;
  display: grid;
  gap: 1px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 26px 0;
  overflow: hidden;
}

.pack-facts div {
  background: #fff;
  padding: 15px;
}

.pack-facts dt {
  color: #6b7882;
  font-size: 10px;
  letter-spacing: 1px;
  text-transform: uppercase;
}

.pack-facts dd {
  font: 700 18px var(--font-heading);
  margin: 4px 0 0;
}

.pack-buy {
  max-width: 100%;
  width: max-content;
}

.pack-preview {
  background: radial-gradient(ellipse at 90% 0%, #516576, #183148 80%);
  border-radius: 13px;
  margin: 0;
  padding: 32px;
  text-align: center;
}

.pack-preview img {
  box-shadow: 10px 10px 0 #efe6d2, 18px 22px 28px #0005;
  display: block;
  margin: auto;
  max-height: 510px;
  max-width: 100%;
  transform: rotate(-2deg);
}

.pack-preview figcaption {
  color: #f1e6ce;
  font-size: 11px;
  margin-top: 28px;
}

.pack-skills {
  margin: 54px auto;
  max-width: 900px;
}

.pack-skills h2 {
  font-size: 34px;
}

.pack-skills ul {
  columns: 2;
  column-gap: 44px;
  padding-left: 22px;
}

.pack-skills li {
  break-inside: avoid;
  color: #465e70;
  margin: 8px 0;
}

.related-packs {
  align-items: center;
  border-top: 1px solid #ddd2be;
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  padding: 28px 0;
}

.related-packs a {
  background: #fffdf8;
  border: 1px solid #d8ccb5;
  border-radius: 8px;
  font-size: 12px;
  padding: 10px 14px;
}

.related-packs .back-link {
  background: #193149;
  color: #fff;
}

.availability {
  border: 1px solid #d8ccb5;
  border-radius: 8px;
  display: inline-block;
  padding: 12px 18px;
}

@media (max-width: 1120px) {
  .operation-board {
    gap: 16px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .catalogue-section {
    padding: 0;
  }

  .catalogue-section + .catalogue-section::before {
    display: none;
  }

  .catalogue-section:nth-child(even)::before {
    background: #d8ccb5;
    content: "";
    display: block;
    inset: 0 auto 0 -8px;
    position: absolute;
    width: 1px;
  }

  .operation-column .section-heading {
    min-height: 0;
  }
}

@media (max-width: 800px) {
  .public-catalogue .catalog-title {
    grid-template-columns: 1fr;
    padding-top: 38px;
  }

  .catalogue-stats {
    flex-direction: row;
    flex-wrap: wrap;
  }

  .catalogue-stats div {
    flex: 1 1 150px;
  }

  .pack-hero {
    gap: 35px;
    grid-template-columns: 1fr;
    padding: 28px;
  }

  .pack-preview {
    margin: auto;
    max-width: 520px;
    width: 100%;
  }

  .pack-skills ul {
    columns: 1;
  }
}

@media (max-width: 620px) {
  .operation-board {
    gap: 0;
    grid-template-columns: 1fr;
  }

  .catalogue-section,
  .catalogue-section:nth-child(even) {
    border-top: 1px solid #d8ccb5;
    padding: 22px 0 0;
  }

  .catalogue-section:nth-child(even)::before {
    display: none;
  }

  .catalogue-section:first-child {
    border-top: 0;
    padding-top: 0;
  }
}

@media (max-width: 520px) {
  .catalogue-stats {
    flex-direction: column;
  }

  .pack-hero {
    padding: 22px 18px;
  }

  .pack-copy h1 {
    font-size: 38px;
  }

  .pack-facts {
    grid-template-columns: 1fr 1fr;
  }

  .public-header nav {
    gap: 14px;
  }

  .public-header nav .btn {
    display: inline-flex;
  }
}

/* Final catalogue and pack-page controls: match the public site system. */
.public-header{
  align-items:center;
  background:#fffdf6;
  border-bottom:1px solid #dbc599;
  display:flex;
  gap:22px;
  justify-content:space-between;
  margin:0;
  max-width:none;
  padding:16px max(24px,calc((100vw - 1220px)/2));
}
.public-header img{
  height:62px;
  object-fit:contain;
  width:175px;
}
.public-header nav{
  align-items:center;
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  justify-content:flex-end;
}
.public-header nav a{
  align-items:center;
  background:#fffaf0;
  border:1px solid #d6c5a4;
  border-radius:8px;
  box-shadow:0 3px 8px #1931490d;
  color:#193149;
  display:inline-flex;
  font-size:14px;
  font-weight:700;
  justify-content:center;
  min-height:44px;
  padding:10px 17px;
  text-decoration:none;
}
.public-header nav a{
  font-family:var(--font-body);
  width:104px;
}
.public-header nav a[href*="catalogue"]{
  width:122px;
}
.public-header nav a:hover{
  background:#f4ead4;
}
.public-header nav a[aria-current=page]{
  background:#193149;
  border-color:#193149;
  color:#fff8e6;
  box-shadow:inset 0 1px #ffffff20,0 3px 8px #19314918;
}
.public-header nav .btn,
.public-pack-card .btn,
.pack-buy{
  background:linear-gradient(135deg,#f3dba0,#d9b366 60%,#c79a45);
  border:1px solid #c49a50;
  border-radius:8px;
  box-shadow:inset 0 1px #fff7,0 4px 9px #49300b1a;
  color:#193149;
  font-weight:800;
}
.catalogue-stats dd{
  font-weight:500;
  text-transform:none;
}
.operation-column .section-heading{
  height:114px;
  min-height:114px;
}
.operation-column .section-heading::before,
.public-catalogue .catalog-title::before{
  height:1px;
}
@media(max-width:620px){
  .public-header{
    gap:12px;
    justify-content:center;
    padding:12px 16px;
  }
  .public-header img{
    height:48px;
    width:136px;
  }
  .public-header nav{
    justify-content:center;
    width:100%;
  }
  .public-header nav a{
    font-size:13px;
    min-height:42px;
    padding:8px 12px;
    width:auto;
  }
  .operation-column .section-heading{
    height:auto;
    min-height:96px;
  }
}

/* Final shared header lock: match the home and placement header geometry. */
.public-header{
  box-sizing:border-box;
  height:86px;
  min-height:86px;
  padding:12px max(24px,calc((100vw - 1220px)/2));
}
.public-header nav{
  flex:0 0 auto;
  min-height:44px;
  transform:translateY(-6px);
}
.public-header nav a,
.public-header nav .btn{
  box-sizing:border-box;
  font-family:var(--font-body);
  font-size:14px;
  height:44px;
  line-height:1;
  min-height:44px;
  padding:0 17px;
  width:104px;
}
.public-header nav a[href*="catalogue"]{
  width:122px;
}
@media(max-width:620px){
  .public-header{
    height:auto;
    min-height:0;
  }
  .public-header nav a,
  .public-header nav .btn{
    height:42px;
    min-height:42px;
    padding:0 12px;
    width:auto;
  }
  .public-header nav{
    transform:none;
  }
}
