/**
 * Penguin brand theme - colours taken from the logo (deep navy + antique gold).
 * Loaded after style.css: remaps Tailwind's palette site-wide and holds the
 * custom home-page components (classes prefixed with "pg-").
 */

/* ---------- Palette remap (unlayered, so it wins over Tailwind's @layer theme) ---------- */
:root {
    --brand-navy: #09284a;
    --brand-navy-deep: #061b33;
    --brand-navy-soft: #163a63;
    --brand-gold: #d2b069;
    --brand-gold-deep: #b08a45;
    --brand-gold-light: #ead7a8;
    --brand-cream: #fbf8f1;
    --brand-ink: #0b2440;

    --color-yellow-50: #fbf7ee;
    --color-yellow-100: #f5ecd5;
    --color-yellow-200: #ebd9ab;
    --color-yellow-300: #e0c487;
    --color-yellow-400: #d8b878;
    --color-yellow-500: #d2b069;
    --color-yellow-600: #b08a45;
    --color-yellow-700: #8e6d33;

    --color-amber-50: #fbf7ee;
    --color-amber-100: #f5ecd5;
    --color-amber-200: #ebd9ab;
    --color-amber-300: #e0c487;
    --color-amber-400: #d8b878;
    --color-amber-500: #c9a25a;
    --color-amber-600: #b08a45;
    --color-amber-700: #8e6d33;

    --color-orange-500: #c9a25a;
    --color-orange-600: #b08a45;

    --color-slate-50: #f8f6f1;
    --color-slate-100: #efede6;
    --color-slate-200: #e2e2dc;
    --color-slate-300: #c6ccd6;
    --color-slate-400: #8d9ab0;
    --color-slate-500: #5f6f87;
    --color-slate-600: #45546c;
    --color-slate-700: #2a3f5e;
    --color-slate-800: #133459;
    --color-slate-900: #09284a;
    --color-slate-950: #061b33;

    /* Larger small-text sizes for readability (site-wide) */
    --text-xs: .8125rem;
    --text-sm: .9375rem;
    --text-base: 1.0625rem;

    --font-display: "Playfair Display", Georgia, "Times New Roman", serif;
}

body { background-color: var(--brand-cream); }
.text-\[10px\] { font-size: 12px; }
.text-\[15px\] { font-size: 16px; }
::selection { background: var(--brand-gold); color: var(--brand-navy); }

main h1, main h2, main h3, .font-display { font-family: var(--font-display); letter-spacing: -0.01em; }
main h2.uppercase, main h1.uppercase { letter-spacing: 0.02em; }

/* Gold glows that were hard-coded orange in the compiled CSS */
.shadow-\[0_0_15px_rgba\(234\,88\,12\,0\.4\)\] { box-shadow: 0 6px 18px rgba(176, 138, 69, .35) !important; }
.hover\:shadow-\[0_0_25px_rgba\(234\,88\,12\,0\.6\)\]:hover { box-shadow: 0 10px 26px rgba(176, 138, 69, .5) !important; }

/* ---------- Site header ---------- */
.pg-header-bar { background: rgba(6, 27, 51, .97); backdrop-filter: blur(10px); border-bottom: 1px solid rgba(210, 176, 105, .25); box-shadow: 0 8px 30px rgba(0, 0, 0, .25); }
.pg-header-bar .pg-nav-link { color: #e6ebf2; }
.pg-header-bar .pg-nav-link:hover { color: var(--brand-gold); }
.pg-header-logo { display: block; height: 50px; width: auto; transition: transform .3s; }
.pg-header-logo:hover { transform: scale(1.03); }
@media (max-width: 640px) { .pg-header-logo { height: 40px; } }
.pg-alert-bar { background: var(--brand-navy); color: var(--brand-gold-light); }
.pg-footer-logo { display: block; height: 64px; width: auto; }

/* ---------- Shared building blocks ---------- */
.pg-container { max-width: 80rem; margin: 0 auto; padding: 0 1.5rem; }
.pg-eyebrow { display: inline-flex; align-items: center; gap: .6rem; font-size: .8rem; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--brand-gold-deep); }
.pg-eyebrow::before { content: ""; width: 28px; height: 2px; background: currentColor; }
.pg-on-dark .pg-eyebrow { color: var(--brand-gold); }
.pg-title { font-family: var(--font-display); font-weight: 800; color: var(--brand-navy); line-height: 1.15; font-size: clamp(1.9rem, 3.4vw, 2.9rem); }
.pg-title em { font-style: italic; color: var(--brand-gold-deep); }
.pg-on-dark .pg-title { color: #fff; }
.pg-on-dark .pg-title em { color: var(--brand-gold); }
.pg-lead { color: #4f5e74; font-size: 1.125rem; line-height: 1.75; }
.pg-on-dark .pg-lead { color: #b9c4d4; }
.pg-section-head { text-align: center; max-width: 46rem; margin: 0 auto 3.5rem; display: flex; flex-direction: column; align-items: center; gap: 1rem; }

.pg-btn { display: inline-flex; align-items: center; justify-content: center; gap: .6rem; padding: 1rem 2rem; border-radius: 999px; font-weight: 700; font-size: .875rem; letter-spacing: .12em; text-transform: uppercase; transition: all .25s ease; cursor: pointer; white-space: nowrap; }
.pg-btn svg { transition: transform .25s; }
.pg-btn:hover svg { transform: translateX(3px); }
.pg-btn-gold { background: linear-gradient(135deg, #dcbd7b, var(--brand-gold-deep)); color: var(--brand-navy-deep); box-shadow: 0 10px 25px -8px rgba(176, 138, 69, .6); }
.pg-btn-gold:hover { box-shadow: 0 14px 30px -8px rgba(176, 138, 69, .8); transform: translateY(-2px); }
.pg-btn-navy { background: var(--brand-navy); color: #fff; box-shadow: 0 10px 25px -10px rgba(9, 40, 74, .6); }
.pg-btn-navy:hover { background: var(--brand-navy-soft); transform: translateY(-2px); }
.pg-btn-ghost { border: 1.5px solid rgba(255, 255, 255, .35); color: #fff; }
.pg-btn-ghost:hover { border-color: var(--brand-gold); color: var(--brand-gold); }
.pg-btn-outline { border: 1.5px solid var(--brand-navy); color: var(--brand-navy); }
.pg-btn-outline:hover { background: var(--brand-navy); color: #fff; }
.pg-btn-row { display: flex; flex-wrap: wrap; gap: 1rem; }

.pg-section { padding: 6rem 0; position: relative; overflow: hidden; }
@media (max-width: 768px) { .pg-section { padding: 4.5rem 0; } }
.pg-bg-cream { background: var(--brand-cream); }
.pg-bg-white { background: #fff; }
.pg-bg-navy { background: var(--brand-navy); color: #fff; }

/* Subtle repeating pattern used on navy sections */
.pg-pattern::before { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .5;
    background-image: radial-gradient(rgba(210, 176, 105, .12) 1px, transparent 1px); background-size: 26px 26px; }

/* ---------- 1. Hero ---------- */
.pg-hero { position: relative; overflow: hidden; color: #fff; background: var(--brand-navy-deep); }
.pg-hero-bg { position: absolute; inset: 0; background-size: cover; background-position: center; opacity: .9; }
.pg-hero::after { content: ""; position: absolute; inset: 0; pointer-events: none;
    background: radial-gradient(60% 70% at 85% 30%, rgba(210, 176, 105, .22), transparent 60%),
                radial-gradient(50% 60% at 0% 100%, rgba(22, 58, 99, .6), transparent 70%),
                linear-gradient(110deg, rgba(6, 27, 51, .88) 15%, rgba(9, 40, 74, .55) 55%, rgba(9, 40, 74, .3)); }
.pg-hero-inner { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0, 1fr); gap: 3.5rem; align-items: center; padding: 5.5rem 1.5rem 6rem; max-width: 80rem; margin: 0 auto; }
@media (min-width: 1024px) { .pg-hero-inner { grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); padding: 6.5rem 1.5rem 7rem; } }
.pg-hero-badge { display: inline-flex; align-items: center; gap: .6rem; padding: .45rem 1rem .45rem .5rem; border-radius: 999px; background: rgba(255, 255, 255, .06); border: 1px solid rgba(210, 176, 105, .35); font-size: .9rem; color: var(--brand-gold-light); font-weight: 500; }
.pg-hero-badge b { background: var(--brand-gold); color: var(--brand-navy-deep); border-radius: 999px; padding: .15rem .6rem; font-size: .7rem; letter-spacing: .08em; }
.pg-hero h1 { font-family: var(--font-display); font-weight: 800; font-size: clamp(2.4rem, 5vw, 4rem); line-height: 1.08; margin: 1.5rem 0; }
.pg-hero h1 em { font-style: italic; background: linear-gradient(90deg, #ead7a8, #d2b069 60%, #b08a45); -webkit-background-clip: text; background-clip: text; color: transparent; }
.pg-hero-text { color: #d0d8e4; font-size: 1.2rem; line-height: 1.75; max-width: 36rem; }
.pg-hero .pg-btn-row { margin-top: 2.25rem; }

.pg-hero-form-wrap { position: relative; display: flex; justify-content: center; }
@media (min-width: 1024px) { .pg-hero-form-wrap { justify-content: flex-end; } }
.pg-form-card { position: relative; z-index: 1; width: 100%; max-width: 27rem; background: #fff; color: var(--brand-ink); border-radius: 1.5rem; padding: 2.5rem 2.25rem 2.25rem; box-shadow: 0 40px 80px -20px rgba(0, 0, 0, .55); border-top: 5px solid var(--brand-gold); }
.pg-form-card .pg-ribbon { position: absolute; top: -16px; right: 1.75rem; background: var(--brand-navy); color: var(--brand-gold); font-size: .78rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; padding: .5rem 1.1rem; border-radius: 999px; border: 1px solid var(--brand-gold); }
.pg-form-card h3 { font-family: var(--font-display); font-size: 1.75rem; font-weight: 800; color: var(--brand-navy); }
.pg-form-card > p { color: #5f6e84; font-size: 1rem; margin: .35rem 0 1.5rem; }
.pg-field { width: 100%; background: #f6f4ee; border: 1.5px solid transparent; border-radius: .75rem; padding: .95rem 1.05rem; font-size: 1rem; color: var(--brand-ink); outline: none; transition: all .2s; }
.pg-field::placeholder { color: #8a95a6; }
.pg-field:focus { background: #fff; border-color: var(--brand-gold); box-shadow: 0 0 0 4px rgba(210, 176, 105, .18); }
.pg-form-card form { display: flex; flex-direction: column; gap: .8rem; }
.pg-form-card textarea { min-height: 96px; resize: vertical; }
.pg-form-card .pg-btn { width: 100%; margin-top: .5rem; padding: 1.05rem; border-radius: .75rem; }
.pg-form-note { display: flex; align-items: center; justify-content: center; gap: .4rem; font-size: .85rem; color: #6b7789; margin-top: .9rem; }

/* Partner marquee strips */
.pg-marquee-strip { background: var(--brand-navy); border-top: 1px solid rgba(210, 176, 105, .25); border-bottom: 1px solid rgba(210, 176, 105, .25); }
.pg-marquee-strip img { opacity: .75; transition: opacity .3s; }
.pg-marquee-full { width: 100%; -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.pg-marquee-light { background: #fff; border-color: #ece8de; }
.pg-marquee-light img { filter: brightness(0) !important; opacity: .45; }
.pg-marquee-light img:hover { opacity: .8; }
.pg-marquee-strip img:hover { opacity: 1; }


/* ---------- 2. Publishing feature card ---------- */
.pg-feature { position: relative; display: grid; grid-template-columns: minmax(0, 1fr); gap: 3rem; align-items: center; background: #fff; border-radius: 2rem; padding: 2.5rem; box-shadow: 0 30px 60px -30px rgba(9, 40, 74, .25); border: 1px solid #ece8de; overflow: hidden; }
@media (min-width: 900px) { .pg-feature { grid-template-columns: 340px 1fr; padding: 3.5rem; gap: 4rem; } }
.pg-feature-visual { position: relative; display: flex; justify-content: center; align-items: center; min-height: 380px; padding-bottom: 2.5rem; border-radius: 1.5rem; background: radial-gradient(circle at 50% 40%, var(--brand-navy-soft), var(--brand-navy-deep)); }
.pg-feature-visual::before { content: ""; position: absolute; width: 220px; height: 220px; border-radius: 50%; background: rgba(210, 176, 105, .25); filter: blur(50px); }
.pg-book3d { position: relative; width: 190px; aspect-ratio: 3/4; transform: perspective(900px) rotateY(-18deg); transition: transform .5s; transform-style: preserve-3d; }
.pg-book3d:hover { transform: perspective(900px) rotateY(-4deg); }
.pg-book3d img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border-radius: 3px 8px 8px 3px; box-shadow: 18px 22px 40px rgba(0, 0, 0, .45); }
.pg-book3d::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 10px; z-index: 2; border-radius: 3px 0 0 3px; background: linear-gradient(90deg, rgba(0, 0, 0, .35), rgba(255, 255, 255, .25) 60%, transparent); }
.pg-book3d::after { content: ""; position: absolute; top: 4px; bottom: 4px; right: -10px; width: 10px; background: repeating-linear-gradient(90deg, #f3eee2 0 1px, #d9d2c2 1px 2px); transform: skewY(-35deg) ; transform-origin: left; border-radius: 0 2px 2px 0; }
.pg-feature-tag { position: absolute; bottom: 1.25rem; left: 50%; transform: translateX(-50%); white-space: nowrap; background: rgba(255, 255, 255, .1); border: 1px solid rgba(210, 176, 105, .4); color: var(--brand-gold-light); font-size: .8rem; font-weight: 600; letter-spacing: .06em; padding: .45rem 1rem; border-radius: 999px; backdrop-filter: blur(6px); }

.pg-points { display: grid; grid-template-columns: 1fr; gap: .85rem; margin: 2rem 0 2.25rem; }
@media (min-width: 640px) { .pg-points { grid-template-columns: 1fr 1fr; } }
.pg-point { display: flex; align-items: center; gap: .9rem; padding: .85rem 1rem; border-radius: 1rem; background: var(--brand-cream); border: 1px solid #efe9da; transition: all .25s; }
.pg-point:hover { border-color: var(--brand-gold); background: #fff; box-shadow: 0 10px 25px -15px rgba(176, 138, 69, .7); transform: translateY(-2px); }
.pg-point-icon { flex: none; width: 40px; height: 40px; border-radius: .75rem; display: grid; place-items: center; background: var(--brand-navy); color: var(--brand-gold); }
.pg-point div strong { display: block; font-size: 1rem; color: var(--brand-navy); font-weight: 700; }
.pg-point div span { display: block; font-size: .875rem; color: #627086; line-height: 1.4; }

/* ---------- 3. Service cards ---------- */
.pg-services { display: grid; grid-template-columns: 1fr; gap: 1.5rem; margin-top: 4rem; }
@media (min-width: 640px) { .pg-services { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .pg-services { grid-template-columns: repeat(4, 1fr); } }
.pg-service { position: relative; display: flex; flex-direction: column; background: #fff; border-radius: 1.5rem; padding: 2.25rem 1.75rem 1.75rem; border: 1px solid #ece8de; transition: all .35s ease; overflow: hidden; isolation: isolate; }
.pg-service::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(160deg, var(--brand-navy-soft), var(--brand-navy-deep)); opacity: 0; transition: opacity .35s; }
.pg-service:hover { transform: translateY(-8px); box-shadow: 0 30px 50px -25px rgba(9, 40, 74, .55); border-color: transparent; }
.pg-service:hover::before { opacity: 1; }
.pg-service-num { position: absolute; top: 1.25rem; right: 1.5rem; font-family: var(--font-display); font-size: 2.6rem; font-weight: 800; color: rgba(210, 176, 105, .22); line-height: 1; transition: color .35s; }
.pg-service-icon { width: 60px; height: 60px; border-radius: 1rem; display: grid; place-items: center; background: var(--brand-cream); color: var(--brand-gold-deep); border: 1px solid #efe5cc; margin-bottom: 1.5rem; transition: all .35s; }
.pg-service h4 { font-family: var(--font-display); font-size: 1.4rem; font-weight: 700; color: var(--brand-navy); margin-bottom: .6rem; transition: color .35s; }
.pg-service p { font-size: 1rem; line-height: 1.65; color: #56657b; flex-grow: 1; transition: color .35s; }
.pg-service a { margin-top: 1.5rem; display: inline-flex; align-items: center; gap: .4rem; font-size: .82rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--brand-gold-deep); transition: gap .25s, color .35s; }
.pg-service a:hover { gap: .7rem; }
.pg-service:hover .pg-service-icon { background: var(--brand-gold); color: var(--brand-navy-deep); border-color: var(--brand-gold); }
.pg-service:hover h4 { color: #fff; }
.pg-service:hover p { color: #b9c4d4; }
.pg-service:hover a { color: var(--brand-gold); }
.pg-service:hover .pg-service-num { color: rgba(210, 176, 105, .45); }

/* ---------- 4. Quote + book showcase ---------- */
.pg-showcase { display: grid; grid-template-columns: minmax(0, 1fr); gap: 4rem; align-items: center; }
@media (min-width: 1024px) { .pg-showcase { grid-template-columns: 1.1fr .9fr; } }
.pg-quote { position: relative; font-family: var(--font-display); font-size: clamp(1.6rem, 2.8vw, 2.35rem); font-weight: 700; line-height: 1.3; color: #fff; padding-left: 1.75rem; border-left: 3px solid var(--brand-gold); margin: 1.5rem 0; }
.pg-quote em { color: var(--brand-gold); }
.pg-mini-feats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin: 2.25rem 0 2.5rem; }
.pg-mini-feat { padding: 1.1rem 1rem; border-radius: 1rem; background: rgba(255, 255, 255, .04); border: 1px solid rgba(255, 255, 255, .08); }
.pg-mini-feat svg { color: var(--brand-gold); margin-bottom: .6rem; }
.pg-mini-feat strong { display: block; font-size: 1rem; color: #fff; }
.pg-mini-feat span { display: block; font-size: .875rem; color: #b3c0d2; margin-top: .15rem; line-height: 1.45; }
@media (max-width: 520px) { .pg-mini-feats { grid-template-columns: 1fr; } }

.pg-stage { position: relative; height: 460px; display: flex; align-items: center; justify-content: center; }
.pg-stage::before { content: ""; position: absolute; width: 380px; height: 380px; border-radius: 50%; border: 1px solid rgba(210, 176, 105, .25); }
.pg-stage::after { content: ""; position: absolute; width: 300px; height: 300px; border-radius: 50%; background: radial-gradient(circle, rgba(210, 176, 105, .28), transparent 70%); }
.pg-stage .pg-book3d { z-index: 2; width: 230px; }
.pg-stage .pg-book-back { position: absolute; z-index: 1; width: 180px; aspect-ratio: 3/4; border-radius: 4px 8px 8px 4px; background-size: cover; background-position: center; box-shadow: 0 20px 40px rgba(0, 0, 0, .5); opacity: .85; }
.pg-stage .pg-book-back.l { transform: translateX(-150px) rotate(-12deg); }
.pg-stage .pg-book-back.r { transform: translateX(150px) rotate(12deg); }
@media (max-width: 520px) { .pg-stage .pg-book-back.l { transform: translateX(-95px) rotate(-12deg); } .pg-stage .pg-book-back.r { transform: translateX(95px) rotate(12deg); } .pg-stage .pg-book3d { width: 190px; } }
.pg-stage-badge { position: absolute; z-index: 3; bottom: 40px; right: 8%; display: flex; align-items: center; gap: .7rem; background: #fff; color: var(--brand-navy); border-radius: 1rem; padding: .8rem 1.1rem; box-shadow: 0 20px 40px -10px rgba(0, 0, 0, .5); animation: pg-float 5s ease-in-out infinite; }
.pg-stage-badge strong { display: block; font-size: .95rem; }
.pg-stage-badge span { display: block; font-size: .8rem; color: #7a8698; }
.pg-stage-badge .ic { width: 36px; height: 36px; border-radius: .7rem; background: var(--brand-gold); display: grid; place-items: center; color: var(--brand-navy-deep); }
@keyframes pg-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }

/* ---------- 5. Multi-faceted orbit ---------- */
.pg-orbit { position: relative; width: min(420px, 74vw); aspect-ratio: 1; margin: 0 auto; }
.pg-orbit-ring { position: absolute; border-radius: 50%; inset: 0; border: 1px solid rgba(176, 138, 69, .35); background: radial-gradient(circle, #fff, rgba(255, 255, 255, 0) 70%); }
.pg-orbit-ring.r2 { inset: 14%; border-style: dashed; border-color: rgba(176, 138, 69, .55); background: none; animation: pg-spin 40s linear infinite; }
.pg-orbit-ring.r3 { inset: 30%; border-color: rgba(9, 40, 74, .08); background: radial-gradient(circle, rgba(210, 176, 105, .3), transparent 70%); }
.pg-orbit-core { position: absolute; inset: 34%; border-radius: 50%; background: linear-gradient(145deg, var(--brand-navy-soft), var(--brand-navy-deep)); border: 2px solid var(--brand-gold); display: grid; place-items: center; box-shadow: 0 0 0 10px rgba(210, 176, 105, .08), 0 0 60px rgba(210, 176, 105, .35); }
.pg-orbit-core img { width: 68%; height: auto; }
.pg-orbit-core::after { content: ""; position: absolute; inset: -10px; border-radius: 50%; border: 2px solid rgba(210, 176, 105, .4); animation: pg-pulse 2.8s ease-out infinite; }
.pg-orbit-spin { position: absolute; inset: 0; animation: pg-spin 50s linear infinite; }
.pg-orbit-node { position: absolute; width: 58px; height: 58px; margin: -29px 0 0 -29px; border-radius: 50%; background: var(--brand-navy); border: 1.5px solid var(--brand-gold); color: var(--brand-gold); display: grid; place-items: center; box-shadow: 0 12px 25px -6px rgba(9, 40, 74, .45); animation: pg-spin 50s linear infinite reverse; }
.pg-orbit-node span { position: absolute; top: 100%; margin-top: .45rem; white-space: nowrap; font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--brand-navy); }
.pg-orbit-node.n1 { left: 50%; top: 0; }
.pg-orbit-node.n2 { left: 100%; top: 50%; }
.pg-orbit-node.n3 { left: 50%; top: 100%; }
.pg-orbit-node.n4 { left: 0; top: 50%; }
@keyframes pg-spin { to { transform: rotate(360deg); } }
@keyframes pg-pulse { 0% { transform: scale(1); opacity: .8; } 100% { transform: scale(1.35); opacity: 0; } }

.pg-channels { display: grid; grid-template-columns: 1fr; gap: .85rem; margin-top: 2rem; }
@media (min-width: 640px) { .pg-channels { grid-template-columns: 1fr 1fr; } }
.pg-channel { display: flex; align-items: center; gap: .9rem; padding: 1rem 1.1rem; border-radius: 1rem; background: #fff; border: 1px solid #ece8de; transition: all .25s; }
.pg-channel:hover { border-color: var(--brand-gold); box-shadow: 0 12px 25px -15px rgba(176, 138, 69, .7); transform: translateY(-2px); }
.pg-channel .ic { flex: none; width: 38px; height: 38px; border-radius: .7rem; display: grid; place-items: center; background: var(--brand-navy); color: var(--brand-gold); }
.pg-channel strong { font-size: 1rem; font-weight: 600; color: var(--brand-navy); }
.pg-channel.wide { grid-column: 1 / -1; }

/* ---------- 6. Portfolio carousel ---------- */
.pg-portfolio { position: relative; overflow: hidden; padding: 6rem 0; isolation: isolate; }
.pg-portfolio-bg { position: absolute; inset: -40px; z-index: -2; display: grid; grid-template-columns: repeat(7, 1fr); gap: 12px; transform: rotate(-6deg) scale(1.15); filter: blur(3px); opacity: .55; }
.pg-portfolio-bg div { aspect-ratio: 3/4; background-size: cover; background-position: center; border-radius: 6px; }
.pg-portfolio::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(6, 27, 51, .92), rgba(9, 40, 74, .78) 50%, rgba(6, 27, 51, .94)); backdrop-filter: blur(2px); }
.pg-carousel { position: relative; }
.pg-carousel-track { display: flex; gap: 1.5rem; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; padding: 1.5rem .25rem 2.5rem; scrollbar-width: none; }
.pg-carousel-track::-webkit-scrollbar { display: none; }
.pg-slide { flex: 0 0 calc((100% - 4 * 1.5rem) / 5); scroll-snap-align: start; }
@media (max-width: 1024px) { .pg-slide { flex-basis: calc((100% - 2 * 1.5rem) / 3); } }
@media (max-width: 640px) { .pg-slide { flex-basis: calc((100% - 1.5rem) / 1.6); } }
.pg-cover { position: relative; aspect-ratio: 3/4; border-radius: 6px 12px 12px 6px; overflow: hidden; box-shadow: 0 25px 45px -15px rgba(0, 0, 0, .7); transition: transform .4s ease, box-shadow .4s; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .12); }
.pg-cover img { width: 100%; height: 100%; object-fit: cover; }
.pg-cover::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 8px; z-index: 1; background: linear-gradient(90deg, rgba(0, 0, 0, .35), rgba(255, 255, 255, .2), transparent); }
.pg-cover-info { position: absolute; inset: auto 0 0 0; z-index: 2; padding: 2.5rem 1rem 1rem; background: linear-gradient(transparent, rgba(6, 27, 51, .95)); color: #fff; font-family: var(--font-display); font-weight: 700; font-size: 1.1rem; transform: translateY(100%); transition: transform .35s; }
.pg-cover-info small { display: block; font-family: inherit; font-size: .75rem; letter-spacing: .16em; text-transform: uppercase; color: var(--brand-gold); font-weight: 700; margin-bottom: .2rem; }
.pg-slide:hover .pg-cover { transform: translateY(-10px) rotate(-1deg); box-shadow: 0 35px 60px -15px rgba(0, 0, 0, .8), 0 0 0 2px var(--brand-gold); }
.pg-slide:hover .pg-cover-info { transform: translateY(0); }
.pg-carousel-nav { display: flex; align-items: center; justify-content: center; gap: 1.25rem; }
.pg-carousel-btn { width: 50px; height: 50px; border-radius: 50%; display: grid; place-items: center; color: var(--brand-gold); border: 1.5px solid rgba(210, 176, 105, .5); background: rgba(255, 255, 255, .05); backdrop-filter: blur(6px); transition: all .25s; cursor: pointer; }
.pg-carousel-btn:hover { background: var(--brand-gold); color: var(--brand-navy-deep); }
.pg-carousel-dots { display: flex; gap: .5rem; }
.pg-carousel-dots button { width: 8px; height: 8px; border-radius: 999px; background: rgba(255, 255, 255, .3); transition: all .3s; cursor: pointer; }
.pg-carousel-dots button[aria-current="true"] { width: 28px; background: var(--brand-gold); }

/* ---------- 7. Process timeline ---------- */
.pg-steps { position: relative; display: grid; grid-template-columns: 1fr; gap: 1.25rem; counter-reset: step; }
@media (min-width: 1024px) { .pg-steps { grid-template-columns: repeat(5, 1fr); gap: 1.25rem; } }
.pg-steps::before { content: ""; position: absolute; left: 31px; top: 30px; bottom: 30px; width: 2px; background: linear-gradient(var(--brand-gold), rgba(210, 176, 105, .2)); }
@media (min-width: 1024px) { .pg-steps::before { left: 10%; right: 10%; top: 31px; bottom: auto; width: auto; height: 2px; background: linear-gradient(90deg, rgba(210, 176, 105, .25), var(--brand-gold), rgba(210, 176, 105, .25)); } }
.pg-step { position: relative; display: grid; grid-template-columns: 64px 1fr; gap: 1.25rem; align-items: start; }
@media (min-width: 1024px) { .pg-step { grid-template-columns: 1fr; justify-items: center; text-align: center; gap: 1.5rem; } }
.pg-step-dot { position: relative; z-index: 1; width: 64px; height: 64px; border-radius: 50%; display: grid; place-items: center; background: var(--brand-navy); color: var(--brand-gold); border: 4px solid #fff; box-shadow: 0 0 0 2px var(--brand-gold), 0 12px 25px -8px rgba(9, 40, 74, .6); transition: all .3s; }
.pg-step-dot::after { counter-increment: step; content: "0" counter(step); position: absolute; top: -6px; right: -10px; width: 26px; height: 26px; border-radius: 50%; background: var(--brand-gold); color: var(--brand-navy-deep); font-size: .72rem; font-weight: 800; display: grid; place-items: center; border: 2px solid #fff; }
.pg-step-card { background: var(--brand-cream); border: 1px solid #ece8de; border-radius: 1.25rem; padding: 1.4rem 1.4rem 1.5rem; width: 100%; transition: all .3s; position: relative; }
.pg-step-card h3 { font-family: var(--font-display); font-size: 1.3rem; font-weight: 700; color: var(--brand-navy); margin-bottom: .45rem; }
.pg-step-card p { font-size: 1rem; line-height: 1.6; color: #56657b; }
.pg-step:hover .pg-step-dot { background: var(--brand-gold); color: var(--brand-navy-deep); transform: translateY(-4px); }
.pg-step:hover .pg-step-card { border-color: var(--brand-gold); box-shadow: 0 25px 45px -25px rgba(9, 40, 74, .45); transform: translateY(-4px); }

/* Testimonial slider card picks up brand gradient */
[data-slider].bg-slate-900 { background: linear-gradient(145deg, var(--brand-navy-soft), var(--brand-navy-deep)); border: 1px solid rgba(210, 176, 105, .25); }

@media (prefers-reduced-motion: reduce) {
    .pg-orbit-ring.r2, .pg-orbit-spin, .pg-orbit-node, .pg-orbit-core::after, .pg-stage-badge { animation: none; }
    .pg-carousel-track { scroll-behavior: auto; }
}

/* ---------- Small screens: let grid/flex children shrink instead of overflowing ---------- */
.pg-hero-inner > *, .pg-showcase > *, .pg-feature > *, .pg-steps > *, .pg-container > .grid > * { min-width: 0; }
@media (max-width: 640px) {
    .pg-hero-badge { white-space: normal; line-height: 1.4; }
    .pg-btn { white-space: normal; padding: .95rem 1.5rem; }
    .pg-btn-row .pg-btn { flex: 1 1 100%; }
    .pg-feature { padding: 1.25rem; border-radius: 1.5rem; }
    .pg-form-card { padding: 2.25rem 1.25rem 1.5rem; }
    .pg-form-card .pg-ribbon { right: 1rem; }
    .pg-quote { padding-left: 1.1rem; }
    .pg-stage { height: 380px; }
    .pg-stage-badge { right: 0; bottom: 10px; }
    .pg-orbit-node span { display: none; }
}

/* Call strip, FAQ and lower-section polish */
.pg-faq-img::before { content: ""; position: absolute; inset: 24px -24px -24px 24px; border: 2px solid var(--brand-gold); border-radius: 1.25rem; }
.pg-faq-img img { position: relative; z-index: 1; border-radius: 1rem; box-shadow: 0 30px 60px -25px rgba(9, 40, 74, .55); }
@media (max-width: 640px) { .pg-faq-img::before { inset: 14px -10px -14px 10px; } }
[data-faq-item] { border-radius: 1rem !important; transition: border-color .25s, box-shadow .25s; }
[data-faq-item]:has([aria-expanded="true"]) { border-color: var(--brand-gold) !important; box-shadow: 0 15px 35px -20px rgba(176, 138, 69, .7) !important; }
[data-faq-toggle] span { font-size: 1.05rem; }
@media (min-width: 1024px) { .pg-step { grid-template-rows: auto 1fr; } .pg-step-card { height: 100%; } }

/* ---------- Call strip (CTA banner) ---------- */
.pg-callstrip { position: relative; overflow: hidden; background: linear-gradient(100deg, #fff 0%, #fbf5e6 55%, #f3e3bd 100%); border-bottom: 1px solid #ece8de; }
.pg-callstrip::after { content: ""; position: absolute; right: -40px; top: 50%; width: 300px; height: 240px; transform: translateY(-50%) rotate(-8deg); background: url("../images/logo-mark.png") no-repeat center / contain; opacity: .08; pointer-events: none; }
.pg-callstrip-inner { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; gap: 1.5rem; padding: 3rem 1.5rem; max-width: 80rem; margin: 0 auto; text-align: center; }
@media (min-width: 1024px) { .pg-callstrip-inner { flex-direction: row; text-align: left; gap: 2rem; } .pg-callstrip-text { flex: 1; } }
.pg-callstrip h2 { font-family: var(--font-display); font-size: clamp(1.6rem, 2.6vw, 2.1rem); font-weight: 800; color: var(--brand-navy); margin-top: .4rem; }
.pg-callstrip h2 em { color: var(--brand-gold-deep); }
.pg-callstrip p { color: #55647a; font-size: 1.05rem; margin-top: .3rem; }
.pg-callstrip-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: .85rem; }
.pg-call-pulse { position: relative; flex: none; width: 72px; height: 72px; border-radius: 50%; display: grid; place-items: center; background: var(--brand-navy); color: var(--brand-gold); box-shadow: 0 15px 30px -10px rgba(9, 40, 74, .6); }
.pg-call-pulse::before, .pg-call-pulse::after { content: ""; position: absolute; inset: 0; border-radius: 50%; border: 2px solid var(--brand-gold); animation: pg-pulse 2.4s ease-out infinite; }
.pg-call-pulse::after { animation-delay: 1.2s; }
.pg-call-pulse svg { animation: pg-ring 2.4s ease-in-out infinite; }
@keyframes pg-ring { 0%, 60%, 100% { transform: rotate(0); } 10%, 30% { transform: rotate(-14deg); } 20%, 40% { transform: rotate(14deg); } }

/* ---------- Testimonial cards ---------- */
.pg-reviews { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem; align-items: center; }
@media (min-width: 1024px) { .pg-reviews { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.pg-review { position: relative; display: flex; flex-direction: column; gap: 1.25rem; margin: 0; padding: 2rem; border-radius: 1.5rem; background: rgba(255, 255, 255, .05); border: 1px solid rgba(255, 255, 255, .1); backdrop-filter: blur(6px); transition: transform .35s, border-color .35s, box-shadow .35s; }
.pg-review:hover { transform: translateY(-6px); border-color: rgba(210, 176, 105, .55); box-shadow: 0 30px 50px -25px rgba(0, 0, 0, .7); }
.pg-review-top { display: flex; align-items: center; justify-content: space-between; }
.pg-review-quote { color: var(--brand-gold); opacity: .9; }
.pg-review-stars { display: flex; gap: 2px; color: var(--brand-gold); }
.pg-review blockquote { margin: 0; font-size: 1.05rem; line-height: 1.75; color: #d6dee9; flex-grow: 1; }
.pg-review figcaption { display: flex; align-items: center; gap: .9rem; padding-top: 1.25rem; border-top: 1px solid rgba(255, 255, 255, .1); }
.pg-review figcaption strong { display: block; font-family: var(--font-display); font-size: 1.15rem; color: #fff; }
.pg-review figcaption small { display: block; font-size: .85rem; color: var(--brand-gold); letter-spacing: .04em; }
.pg-avatar { flex: none; width: 52px; height: 52px; border-radius: 50%; display: grid; place-items: center; font-weight: 800; font-size: 1rem; letter-spacing: .05em; color: var(--brand-navy-deep); background: linear-gradient(135deg, #ead7a8, var(--brand-gold-deep)); box-shadow: 0 0 0 3px rgba(210, 176, 105, .25); }
.pg-review.is-featured { background: #fff; border-color: #fff; padding: 2.5rem 2rem; box-shadow: 0 40px 70px -30px rgba(0, 0, 0, .8); }
@media (min-width: 1024px) { .pg-review.is-featured { transform: scale(1.05); } .pg-review.is-featured:hover { transform: scale(1.05) translateY(-6px); } }
.pg-review.is-featured { overflow: hidden; }
.pg-review.is-featured::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 5px; background: linear-gradient(90deg, #ead7a8, var(--brand-gold-deep)); }
.pg-review.is-featured blockquote { color: #3e4d63; }
.pg-review.is-featured .pg-review-quote { color: var(--brand-gold-deep); }
.pg-review.is-featured figcaption { border-top-color: #ece8de; }
.pg-review.is-featured figcaption strong { color: var(--brand-navy); }
.pg-review.is-featured figcaption small { color: var(--brand-gold-deep); }

/* ---------- About ---------- */
.pg-about { display: grid; grid-template-columns: minmax(0, 1fr); gap: 3.5rem; align-items: center; }
@media (min-width: 1024px) { .pg-about { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 4.5rem; } }
.pg-values { display: flex; flex-direction: column; gap: 1rem; margin-top: 2rem; }
.pg-values li { display: flex; align-items: center; gap: 1rem; padding: 1rem 1.15rem; background: #fff; border: 1px solid #ece8de; border-radius: 1rem; transition: all .25s; }
.pg-values li:hover { border-color: var(--brand-gold); transform: translateX(6px); box-shadow: 0 12px 25px -15px rgba(176, 138, 69, .7); }
.pg-values .ic { flex: none; width: 46px; height: 46px; border-radius: .85rem; display: grid; place-items: center; background: var(--brand-navy); color: var(--brand-gold); }
.pg-values strong { display: block; font-size: 1.05rem; color: var(--brand-navy); }
.pg-values div span { display: block; font-size: .92rem; color: #627086; }
.pg-form-row { display: grid; grid-template-columns: minmax(0, 1fr); gap: .8rem; }
@media (min-width: 640px) { .pg-form-row { grid-template-columns: 1fr 1fr; } }
.pg-about .pg-form-card { box-shadow: 0 40px 80px -35px rgba(9, 40, 74, .45); }
.pg-about .pg-form-card textarea { min-height: 130px; }

@media (prefers-reduced-motion: reduce) { .pg-call-pulse::before, .pg-call-pulse::after, .pg-call-pulse svg { animation: none; } }

/* =====================================================================
   Inner pages
   ===================================================================== */

/* Off-brand accent palettes used on some service pages -> navy / gold */
:root {
    --color-blue-50: #f3f5f9; --color-blue-100: #e3e9f2; --color-blue-200: #c9d3e3; --color-blue-300: #9fb0c9; --color-blue-400: #6f86a8;
    --color-blue-500: #2e4f7c; --color-blue-600: #163a63; --color-blue-700: #0f3157; --color-blue-900: #061b33;
    --color-indigo-50: #f3f5f9; --color-indigo-100: #e3e9f2; --color-indigo-200: #c9d3e3; --color-indigo-300: #9fb0c9; --color-indigo-400: #6f86a8;
    --color-indigo-500: #2e4f7c; --color-indigo-600: #163a63; --color-indigo-700: #0f3157; --color-indigo-900: #061b33;
    --color-sky-400: #d8b878; --color-sky-500: #d2b069; --color-sky-600: #b08a45;
    --color-cyan-200: #ebd9ab; --color-cyan-400: #d8b878; --color-cyan-500: #d2b069; --color-cyan-600: #b08a45;
    --color-fuchsia-50: #fbf7ee; --color-fuchsia-100: #f5ecd5; --color-fuchsia-400: #d8b878; --color-fuchsia-500: #c9a25a;
    --color-fuchsia-600: #b08a45; --color-fuchsia-900: #5c4720;
    --color-purple-50: #fbf7ee; --color-purple-100: #f5ecd5; --color-purple-500: #c9a25a; --color-purple-600: #b08a45; --color-purple-900: #5c4720;
}

/* Page hero banners */
.pg-inner-hero { background: var(--brand-navy-deep); overflow: hidden; }
.pg-inner-hero > .absolute.bg-cover { opacity: .85; background-attachment: scroll; }
.pg-inner-hero > .absolute.inset-0:not(.bg-cover) { mix-blend-mode: normal !important; opacity: 1 !important;
    background: radial-gradient(60% 70% at 85% 25%, rgba(210, 176, 105, .22), transparent 60%),
                linear-gradient(110deg, rgba(6, 27, 51, .92) 15%, rgba(9, 40, 74, .62) 55%, rgba(9, 40, 74, .38)) !important; }
.pg-inner-hero::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 4px; z-index: 2; background: linear-gradient(90deg, transparent, var(--brand-gold), transparent); }
.pg-inner-hero h1 { font-family: var(--font-display); font-weight: 800; line-height: 1.1; }
.pg-inner-hero p.uppercase, .pg-inner-hero span.uppercase { color: var(--brand-gold) !important; letter-spacing: .2em; }
.pg-inner-hero .bg-white\/95 { background: #fff; border-radius: 1.5rem; border-top: 5px solid var(--brand-gold); }
.pg-inner-hero .absolute.\-top-6 { background: var(--brand-navy) !important; color: var(--brand-gold) !important; border: 1px solid var(--brand-gold); border-radius: 999px; box-shadow: none; }

/* Buttons: gold and navy pills, same as the home page */
main button.bg-yellow-600, main a.bg-yellow-600, main button.bg-amber-600, main a.bg-amber-600,
main button.bg-amber-500, main a.bg-amber-500, main button.bg-blue-600, main a.bg-blue-600,
main button.bg-indigo-600, main a.bg-indigo-600, main button.bg-fuchsia-600, main a.bg-fuchsia-600 {
    background: linear-gradient(135deg, #dcbd7b, var(--brand-gold-deep)); color: var(--brand-navy-deep); border-radius: 999px;
    box-shadow: 0 10px 25px -8px rgba(176, 138, 69, .6); transition: transform .25s, box-shadow .25s; }
main button.bg-yellow-600:hover, main a.bg-yellow-600:hover, main button.bg-amber-600:hover, main a.bg-amber-600:hover,
main button.bg-amber-500:hover, main a.bg-amber-500:hover, main button.bg-blue-600:hover, main a.bg-blue-600:hover,
main button.bg-indigo-600:hover, main a.bg-indigo-600:hover, main button.bg-fuchsia-600:hover, main a.bg-fuchsia-600:hover {
    transform: translateY(-2px); box-shadow: 0 14px 30px -8px rgba(176, 138, 69, .8); background: linear-gradient(135deg, #dcbd7b, var(--brand-gold-deep)); color: var(--brand-navy-deep); }
main button.bg-slate-900, main a.bg-slate-900, main button.bg-slate-950, main a.bg-slate-950 { border-radius: 999px; transition: transform .25s, background .25s; }
main button.bg-slate-900:hover, main a.bg-slate-900:hover, main button.bg-slate-950:hover, main a.bg-slate-950:hover { background: var(--brand-navy-soft); color: #fff; transform: translateY(-2px); }
main form button[type="submit"] { border-radius: .85rem; }
main a.border-2.rounded, main button.border-2.rounded { border-radius: 999px; }

/* Form fields on inner pages */
main form input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]), main form textarea, main form select {
    background: #f6f4ee; border: 1.5px solid transparent; border-radius: .75rem; font-size: 1rem; color: var(--brand-ink); transition: all .2s; }
main form input:focus, main form textarea:focus, main form select:focus { background: #fff; border-color: var(--brand-gold); box-shadow: 0 0 0 4px rgba(210, 176, 105, .18); outline: none; }

/* Gold rule under centred section headings */
main section .text-center > h2::after, main section h2.text-center::after { content: ""; display: block; width: 64px; height: 3px; margin: 1rem auto 0; border-radius: 3px; background: linear-gradient(90deg, #ead7a8, var(--brand-gold-deep)); }
.pg-section-head h2::after, .pg-callstrip h2::after, .pg-portfolio h2::after { display: none !important; }

/* Cards on inner pages pick up a gold hover edge */
main section .rounded-2xl.border.bg-white, main section .rounded-3xl.border.bg-white { transition: border-color .3s, box-shadow .3s, transform .3s; }
main section .rounded-2xl.border.bg-white:hover, main section .rounded-3xl.border.bg-white:hover { border-color: var(--brand-gold); }

/* Legal pages */
.pg-page-band { position: relative; overflow: hidden; background: linear-gradient(120deg, var(--brand-navy-deep), var(--brand-navy-soft)); padding: 5rem 0 4.5rem; text-align: center; }
.pg-page-band::before { content: ""; position: absolute; inset: 0; opacity: .5; background-image: radial-gradient(rgba(210, 176, 105, .14) 1px, transparent 1px); background-size: 26px 26px; }
.pg-page-band::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: linear-gradient(90deg, transparent, var(--brand-gold), transparent); }
.pg-page-band .pg-container { position: relative; display: flex; flex-direction: column; align-items: center; gap: .9rem; }
.pg-page-band .pg-eyebrow { color: var(--brand-gold); }
.pg-page-band h1 { font-family: var(--font-display); font-weight: 800; font-size: clamp(2.2rem, 4.5vw, 3.4rem); color: #fff; }
.pg-legal { background: var(--brand-cream); padding: 4rem 0 6rem; }
.pg-legal-card { background: #fff; border: 1px solid #ece8de; border-radius: 1.5rem; padding: clamp(1.5rem, 4vw, 3.5rem); color: #3e4d63; font-size: 1.05rem; line-height: 1.8; box-shadow: 0 30px 60px -35px rgba(9, 40, 74, .35); }
.pg-legal-card h3 { font-family: var(--font-display); font-size: 1.4rem; color: var(--brand-navy); padding-left: .9rem; border-left: 3px solid var(--brand-gold); }
.pg-legal-card strong { color: var(--brand-navy); }
.pg-legal-card li::marker { color: var(--brand-gold-deep); }
.pg-legal-note { background: var(--brand-cream); border: 1px solid #efe5cc; border-left: 4px solid var(--brand-gold); border-radius: .75rem; padding: 1.1rem 1.25rem; }

/* Contact cards at the bottom of inner pages: equal height, wrapping links, aligned buttons */
main a[href^="mailto:"] { overflow-wrap: break-word; }
main .grid.max-w-4xl.mt-16 > div { display: flex; flex-direction: column; align-items: center; height: 100%; }
main .grid.max-w-4xl.mt-16 > div > a, main .grid.max-w-4xl.mt-16 > div > button, main .grid.max-w-4xl.mt-16 > div > div:last-child:not(:first-child) { margin-top: auto; width: 100%; }
main .grid.max-w-4xl.mt-16 a[href^="mailto:"] { font-size: .9rem; }
/* Closing form + contact cards: use a wider column so the cards (and the email) have room */
main .max-w-5xl:has(> .grid.max-w-4xl.mt-16) { max-width: 76rem; }
main .max-w-5xl:has(> .grid.max-w-4xl.mt-16) > .max-w-4xl { max-width: none; }
main .max-w-5xl:has(> .grid.max-w-4xl.mt-16) > .grid.max-w-4xl { gap: 1.5rem; }
.pg-legal-card { overflow-wrap: anywhere; }
/* Decorative pieces (dot grids, tilted covers) may hang past a section edge; never let them cause sideways scroll */
main section { overflow-x: clip; }
html, body { overflow-x: clip; }

/* Floating Call / Email: side tab on desktop, slim bottom bar on phones */
@media (max-width: 767px) {
    .pg-contact-bar { top: auto !important; bottom: 0; left: 0; right: 0; transform: none !important; translate: none !important; flex-direction: row !important; border-radius: 0 !important; box-shadow: 0 -8px 24px rgba(6, 27, 51, .25); }
    .pg-contact-bar > a { flex: 1; flex-direction: row !important; padding: .85rem 1rem !important; gap: .6rem !important; border: 0 !important; }
    .pg-contact-bar > a span { display: block !important; writing-mode: horizontal-tb !important; transform: none !important; font-size: .8rem !important; letter-spacing: .12em; }
    body > footer { padding-bottom: calc(2rem + 52px) !important; }
}

/* Header on small laptops (1024-1279px): tighter nav so logo, links and button never touch */
@media (min-width: 1024px) and (max-width: 1279px) {
    .pg-header-logo { height: 42px; }
    .pg-header-bar nav { gap: 1.35rem; }
    .pg-header-bar nav > * { margin-inline: 0 !important; }
    .pg-header-bar nav .pg-nav-link { font-size: .72rem; letter-spacing: .12em; }
}

/* ---------- Contact page: info panel + form ---------- */
.pg-contact { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2rem; align-items: stretch; }
@media (min-width: 1024px) { .pg-contact { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 2.5rem; } }
.pg-contact-info { position: relative; overflow: hidden; border-radius: 1.5rem; padding: clamp(2rem, 4vw, 3rem); color: #fff;
    background: linear-gradient(150deg, var(--brand-navy-soft), var(--brand-navy-deep)); box-shadow: 0 40px 80px -35px rgba(9, 40, 74, .6); }
.pg-contact-info::after { content: ""; position: absolute; right: -50px; bottom: -40px; width: 260px; height: 200px; background: url("../images/logo-mark-light.png") no-repeat center / contain; opacity: .07; pointer-events: none; }
.pg-contact-info h2::after { display: none !important; }
.pg-contact-list { position: relative; z-index: 1; display: flex; flex-direction: column; gap: 1rem; margin-top: 2.25rem; }
.pg-contact-list li { display: flex; align-items: center; gap: 1rem; padding: 1rem 1.1rem; border-radius: 1rem; background: rgba(255, 255, 255, .05); border: 1px solid rgba(255, 255, 255, .1); transition: border-color .25s, background .25s; }
.pg-contact-list li:hover { border-color: rgba(210, 176, 105, .55); background: rgba(210, 176, 105, .08); }
.pg-contact-list .ic { flex: none; width: 46px; height: 46px; border-radius: .85rem; display: grid; place-items: center; background: var(--brand-gold); color: var(--brand-navy-deep); }
.pg-contact-list div { min-width: 0; }
.pg-contact-list small { display: block; font-size: .75rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--brand-gold); margin-bottom: .2rem; }
.pg-contact-list a, .pg-contact-list button { font-size: 1.05rem; font-weight: 600; color: #fff; text-align: left; overflow-wrap: break-word; cursor: pointer; }
.pg-contact-list a:hover, .pg-contact-list button:hover { color: var(--brand-gold); }
.pg-contact .pg-form-card { box-shadow: 0 40px 80px -35px rgba(9, 40, 74, .45); }
.pg-contact .pg-form-card { display: flex; flex-direction: column; }
.pg-contact .pg-form-card form { flex: 1; }
.pg-contact .pg-form-card textarea { flex: 1; }
.pg-contact-list a[href^="mailto:"] { font-size: .95rem; }
@media (min-width: 1024px) { .pg-contact { grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); } }
@media (max-width: 520px) {
    .pg-contact-list li { flex-direction: column; align-items: flex-start; gap: .75rem; }
    .pg-contact-list a[href^="mailto:"] { font-size: .875rem; }
}
