:root {
	--pan-ct-navy: #02225a;
	--pan-ct-deep: #01163d;
	--pan-ct-yellow: #fecc20;
	--pan-ct-ink: #071b3f;
	--pan-ct-muted: #66758f;
	--pan-ct-cream: #f7f4ec;
	--pan-ct-line: #dfe5ee;
}

body.pan-catalog-hub-live .content-wrapper,
body.pan-catalog-hub-live .site-main,
body.pan-catalog-hub-live #primary { max-width: none !important; padding: 0 !important; }
.pan-ct { overflow: hidden; background: #fdfbf7; color: var(--pan-ct-ink); }
.pan-ct *, .pan-ct *::before, .pan-ct *::after { box-sizing: border-box; }

.pan-ct-ref-hero { position: relative; min-height: 365px; display: flex; flex-direction: column; justify-content: center; overflow: hidden; padding: 30px 24px 38px; background-color: var(--pan-ct-navy); background-position: center; background-size: cover; color: #fff; }
.pan-ct-ref-hero::before { content: ""; position: absolute; inset: 0; background: rgba(1,22,61,.68); }
.pan-ct-ref-hero__inner { position: relative; z-index: 1; width: min(850px,100%); margin: auto; text-align: center; }
.pan-ct-ref-hero__tag { display: inline-flex; align-items: center; gap: 8px; margin: 0 0 15px; padding: 7px 13px; border-radius: 999px; background: var(--pan-ct-yellow); color: var(--pan-ct-navy); font: 800 10px/1.2 Metropolis,Arial,sans-serif; letter-spacing: .1em; }
.pan-ct-ref-hero__tag span { width: 7px; height: 7px; border-radius: 50%; background: var(--pan-ct-navy); }
.pan-ct-ref-hero h1 { margin: 0 auto 14px; color: #fff; font: 800 clamp(38px,5vw,60px)/1.05 Metropolis,Arial,sans-serif; letter-spacing: -.035em; text-shadow: 0 2px 15px rgba(0,0,0,.22); text-transform: none; }
.pan-ct-ref-hero__lead { max-width: 720px; margin: 0 auto; color: rgba(255,255,255,.92); font: 400 17px/1.6 Metropolis,Arial,sans-serif; }
.pan-ct-ref-hero__nav { position: relative; z-index: 2; width: min(1180px,100%); margin: 0 auto 24px; display: flex; justify-content: flex-end; }
.pan-ct-ref-hero__nav a { display: inline-flex; align-items: center; gap: 8px; min-height: 42px; padding: 10px 14px; border: 1px solid rgba(255,255,255,.3); border-radius: 6px; background: rgba(1,22,61,.58); color: #fff !important; font: 700 12px/1.2 Metropolis,Arial,sans-serif; text-decoration: none !important; transition: background .2s ease,color .2s ease; }
.pan-ct-ref-hero__nav a:hover { background: var(--pan-ct-yellow); color: var(--pan-ct-navy) !important; }
.pan-ct-ref-hero__nav svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

.pan-ct__library { width: min(1120px,calc(100% - 48px)); margin: auto; padding: 58px 0 82px; }
.pan-ct-territory-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 32px; max-width: 880px; margin: auto; }
.pan-ct-territory { overflow: hidden; display: flex; flex-direction: column; border: 1px solid var(--pan-ct-line); border-radius: 18px; background: #fff; box-shadow: 0 12px 34px rgba(2,34,90,.09); }
.pan-ct-territory__visual { height: 360px; display: flex; align-items: center; justify-content: center; padding: 22px; overflow: hidden; background: var(--pan-ct-cream); text-decoration: none !important; }
.pan-ct-territory__visual img { display: block; width: auto; max-width: 100%; height: 100%; object-fit: contain; box-shadow: 0 9px 24px rgba(2,34,90,.14); transition: transform .25s ease; }
.pan-ct-territory__visual:hover img { transform: translateY(-4px); }
.pan-ct-territory__body { flex: 1; display: flex; flex-direction: column; align-items: center; padding: 25px 28px 28px; text-align: center; }
.pan-ct-territory__body h2 { margin: 0 0 7px; color: var(--pan-ct-navy); font: 800 28px/1.1 Metropolis,Arial,sans-serif; }
.pan-ct-territory__body p { margin: 0 0 21px; color: var(--pan-ct-muted); font: 500 13px/1.5 Metropolis,Arial,sans-serif; }
.pan-ct-territory__cta { margin-top: auto; display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px; padding: 13px 20px; border-radius: 8px; background: var(--pan-ct-navy); color: #fff !important; font: 800 13px/1.2 Metropolis,Arial,sans-serif; text-decoration: none !important; }
.pan-ct-territory__cta:hover { background: var(--pan-ct-yellow); color: var(--pan-ct-navy) !important; }
.pan-ct-territory__cta svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; transition: transform .2s ease; }
.pan-ct-territory__cta:hover svg { transform: translateX(3px); }

.pan-ct-grid { display: grid; grid-template-columns: repeat(3,minmax(0,300px)); justify-content: center; gap: 46px 34px; }
.pan-ct-grid--spain { grid-template-columns: repeat(2,minmax(0,330px)); }
.pan-ct-card { width: 100%; min-width: 0; }
.pan-ct-card__visual { position: relative; overflow: hidden; aspect-ratio: 596/842; border: 1px solid var(--pan-ct-line); border-radius: 14px; background: var(--pan-ct-cream); box-shadow: 0 13px 32px rgba(2,34,90,.1); }
.pan-ct-card__cover-link { display: block; width: 100%; height: 100%; }
.pan-ct-card__visual img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease; }
.pan-ct-card:hover .pan-ct-card__visual img { transform: scale(1.02); }
.pan-ct-card__flag { position: absolute; top: 13px; right: 13px; z-index: 2; display: grid; place-items: center; width: 44px; height: 44px; border: 4px solid #fff; border-radius: 50%; background: #fff; box-shadow: 0 5px 14px rgba(1,22,61,.2); font-size: 25px; line-height: 1; }
.pan-ct-card__placeholder { width: 100%; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; background: var(--pan-ct-navy); color: #fff; }
.pan-ct-card__placeholder strong { font: 800 34px/1 Metropolis,Arial,sans-serif; }
.pan-ct-card__placeholder span { color: var(--pan-ct-yellow); font: 800 18px/1 Metropolis,Arial,sans-serif; }
.pan-ct-card__title { min-height: 46px; margin: 18px 0 12px; color: var(--pan-ct-navy); font: 800 17px/1.35 Metropolis,Arial,sans-serif; text-align: center; }
.pan-ct-card__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.pan-ct-icon-button { min-height: 46px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 11px 12px; border: 1px solid var(--pan-ct-line); border-radius: 8px; background: #fff; color: var(--pan-ct-navy) !important; font: 800 11px/1.2 Metropolis,Arial,sans-serif; text-align: center; text-decoration: none !important; transition: transform .2s ease,background .2s ease,color .2s ease; }
.pan-ct-icon-button--open { border-color: var(--pan-ct-navy); background: var(--pan-ct-navy); color: #fff !important; }
.pan-ct-icon-button:hover { transform: translateY(-2px); background: var(--pan-ct-yellow); color: var(--pan-ct-navy) !important; }
.pan-ct-icon-button svg { flex: 0 0 19px; width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.pan-ct-empty { margin: 0; padding: 42px 24px; border: 1px solid var(--pan-ct-line); border-radius: 14px; background: #fff; color: var(--pan-ct-muted); font: 500 15px/1.5 Metropolis,Arial,sans-serif; text-align: center; }

@media (max-width: 900px) {
	.pan-ct-grid { grid-template-columns: repeat(2,minmax(0,300px)); }
}

@media (max-width: 620px) {
	.pan-ct-ref-hero { min-height: 390px; padding: 24px 16px 30px; }
	.pan-ct-ref-hero__nav { margin-bottom: 22px; }
	.pan-ct-ref-hero h1 { font-size: 38px; }
	.pan-ct-ref-hero__lead { font-size: 15px; }
	.pan-ct__library { width: calc(100% - 32px); padding: 42px 0 60px; }
	.pan-ct-territory-grid,.pan-ct-grid,.pan-ct-grid--spain { grid-template-columns: 1fr; }
	.pan-ct-territory__visual { height: 330px; }
	.pan-ct-card { max-width: 330px; margin: auto; }
}
