/* ============================================================
   The Prestige Pages — style.css
   Aesthetic: Editorial Luxury · Deep Parchment · Gold Accents
   ============================================================ */

:root {
 --ink: #1a1209;
 --ink-light: #2e2010;
 --ink-muted: #6b5d4a;
 --cream: #faf6ee;
 --parchment: #f3ead8;
 --warm-mid: #e8d9be;
 --warm-light: #f0e8d4;
 --gold: #b8892a;
 --gold-light: #d4a84b;
 --gold-pale: #f0e0b0;
 --crimson: #8b2228;
 --forest: #1e3a2a;
 --slate: #2c3547;
 --white: #ffffff;

 --font-display: 'Playfair Display', Georgia, serif;
 --font-serif: 'Libre Baskerville', Georgia, serif;
 --font-body: 'Jost', system-ui, sans-serif;

 --radius: 8px;
 --radius-lg: 16px;
 --radius-xl: 24px;
 --shadow-sm: 0 2px 12px rgba(26, 18, 9, .06);
 --shadow-md: 0 8px 32px rgba(26, 18, 9, .1);
 --shadow-lg: 0 20px 60px rgba(26, 18, 9, .16);
 --shadow-book: 8px 8px 24px rgba(26, 18, 9, .25);
 --transition: 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

*,
*::before,
*::after {
 box-sizing: border-box;
 margin: 0;
 padding: 0;
}

html {
 scroll-behavior: smooth;
 font-size: 16px;
}

body {
 font-family: var(--font-body);
 background: var(--cream);
 color: var(--ink);
 -webkit-font-smoothing: antialiased;
 overflow-x: hidden;
}

button,
input,
select,
textarea {
 font-family: inherit;
}

a {
 color: inherit;
 text-decoration: none;
}

ul {
 list-style: none;
}

button {
 border: none;
 background: none;
 cursor: pointer;
}

img {
 max-width: 100%;
 height: auto;
 display: block;
}

/* ---- GRAIN OVERLAY ---- */
.grain-overlay {
 position: fixed;
 inset: 0;
 z-index: 9999;
 pointer-events: none;
 opacity: .025;
 background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");
}

/* ---- HELPERS ---- */
.container {
 max-width: 1160px;
 margin: 0 auto;
 padding: 0 28px;
}

.hidden {
 display: none !important;
}

[data-aos] {
 opacity: 0;
 transform: translateY(20px);
 transition: opacity .7s, transform .7s;
}

[data-aos=fade-right] {
 transform: translateX(-24px);
}

[data-aos=fade-left] {
 transform: translateX(24px);
}

[data-aos].aos-animate {
 opacity: 1;
 transform: translate(0);
}

/* ---- SECTION SHARED ---- */
.section-header {
 text-align: center;
 margin-bottom: 64px;
}

.section-eyebrow {
 display: inline-block;
 font-family: var(--font-body);
 font-size: .72rem;
 font-weight: 600;
 letter-spacing: .22em;
 text-transform: uppercase;
 color: var(--gold);
 margin-bottom: 16px;
}

.section-title {
 font-family: var(--font-display);
 font-size: clamp(2.2rem, 4.5vw, 3.2rem);
 font-weight: 400;
 line-height: 1.15;
 color: var(--ink);
 margin-bottom: 20px;
}

.section-title em {
 font-style: italic;
 color: var(--gold);
}

.section-title.left {
 text-align: left;
}

.section-subtitle {
 font-family: var(--font-serif);
 font-size: 1rem;
 line-height: 1.7;
 color: var(--ink-muted);
 max-width: 600px;
 margin: 0 auto;
}

/* ---- BUTTONS ---- */
.btn {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 gap: 8px;
 padding: 13px 32px;
 border-radius: var(--radius);
 font-family: var(--font-body);
 font-size: .88rem;
 font-weight: 600;
 letter-spacing: .06em;
 text-transform: uppercase;
 transition: all var(--transition);
 position: relative;
 overflow: hidden;
}

.btn-full {
 width: 100%;
}

.btn-lg {
 padding: 17px 42px;
 font-size: .95rem;
}

.btn-gold {
 background: var(--gold);
 color: #fff;
}

.btn-gold:hover {
 background: var(--gold-light);
 transform: translateY(-2px);
 box-shadow: 0 8px 24px rgba(184, 137, 42, .35);
}

.btn-ghost {
 background: transparent;
 color: var(--ink);
 border: 1.5px solid rgba(26, 18, 9, .2);
}

.btn-ghost:hover {
 border-color: var(--gold);
 color: var(--gold);
 transform: translateY(-2px);
}

.btn-outline-dark {
 background: transparent;
 color: var(--ink);
 border: 1.5px solid var(--warm-mid);
}

.btn-outline-dark:hover {
 border-color: var(--gold);
 background: var(--gold);
 color: #fff;
 transform: translateY(-2px);
}

.btn-loader {
 display: none;
 width: 16px;
 height: 16px;
 border: 2px solid currentColor;
 border-top-color: transparent;
 border-radius: 50%;
 animation: spin .8s linear infinite;
}

.btn.loading .btn-text {
 opacity: 0;
}

.btn.loading .btn-loader {
 display: block;
 position: absolute;
}

/* ---- NAVBAR ---- */
.navbar {
 position: fixed;
 top: 0;
 left: 0;
 right: 0;
 z-index: 100;
 padding: 22px 0;
 transition: all var(--transition);
 background: var(--ink);
}

.navbar.scrolled {
 background: var(--ink);
 backdrop-filter: blur(12px);
 box-shadow: 0 1px 0 rgba(26, 18, 9, .08), var(--shadow-sm);
 padding: 14px 0;
}

.nav-inner {
 max-width: 1160px;
 margin: 0 auto;
 padding: 0 28px;
 display: flex;
 align-items: center;
 gap: 36px;
}

.nav-logo {
 display: flex;
 align-items: center;
 gap: 12px;
 flex-shrink: 0;
}

.nav-logo img,
.footer-logo img {
 width: 180px;
}

.logo-emblem {
 width: 38px;
 height: 38px;
 border-radius: 4px;
 background: var(--ink);
 color: var(--gold);
 display: grid;
 place-items: center;
 font-family: var(--font-display);
 font-size: .85rem;
 font-weight: 700;
 letter-spacing: .04em;
}

.logo-name {
 font-family: var(--font-display);
 font-size: 1.1rem;
 font-weight: 500;
 color: var(--cream);
 letter-spacing: .02em;
 transition: color var(--transition);
}

.navbar.scrolled .logo-name {
 color: var(--ink);
}

.nav-links {
 display: flex;
 gap: 36px;
 margin-left: auto;
}

.nav-link {
 font-size: .82rem;
 font-weight: 500;
 letter-spacing: .06em;
 text-transform: uppercase;
 color: rgba(250, 246, 238, .8);
 transition: all var(--transition);
 position: relative;
}

.navbar.scrolled .nav-link {
 color: var(--ink-muted);
}

.nav-link:hover,
.nav-link.active {
 color: var(--gold);
}

.nav-link::after {
 content: '';
 position: absolute;
 bottom: -3px;
 left: 0;
 width: 0;
 height: 1px;
 background: var(--gold);
 transition: width var(--transition);
}

.nav-link:hover::after,
.nav-link.active::after {
 width: 100%;
}

.nav-cta {
 margin-left: 8px;
 padding: 9px 22px;
 background: var(--gold);
 color: #fff;
 border-radius: var(--radius);
 font-size: .8rem;
 font-weight: 600;
 letter-spacing: .07em;
 text-transform: uppercase;
 transition: all var(--transition);
 white-space: nowrap;
}

.nav-cta:hover {
 background: var(--gold-light);
 transform: translateY(-1px);
}

.nav-toggle {
 display: none;
 flex-direction: column;
 gap: 5px;
 padding: 6px;
 margin-left: auto;
}

.nav-toggle span {
 width: 24px;
 height: 2px;
 background: var(--cream);
 border-radius: 2px;
 transition: var(--transition);
}

.navbar.scrolled .nav-toggle span {
 background: var(--ink);
}

.nav-toggle.open span:first-child {
 transform: translateY(7px) rotate(45deg);
}

.nav-toggle.open span:nth-child(2) {
 opacity: 0;
}

.nav-toggle.open span:nth-child(3) {
 transform: translateY(-7px) rotate(-45deg);
}

.mobile-menu-overlay {
 display: none;
}

/* ---- HERO ---- */
.hero {
 min-height: 100vh;
 padding: 140px 0 80px;
 background: var(--ink);
 position: relative;
 overflow: hidden;
}

.hero-deco {
 position: absolute;
 inset: 0;
 pointer-events: none;
}

.deco-line {
 position: absolute;
 background: rgba(184, 137, 42, .12);
}

.l1 {
 top: 0;
 left: 15%;
 width: 1px;
 height: 100%;
}

.l2 {
 top: 0;
 right: 15%;
 width: 1px;
 height: 100%;
}

.deco-chapter {
 position: absolute;
 top: 50%;
 right: 4%;
 transform: translateY(-50%) rotate(90deg);
 font-family: var(--font-display);
 font-size: .72rem;
 letter-spacing: .3em;
 text-transform: uppercase;
 color: rgba(184, 137, 42, .25);
}

.hero-inner {
 position: relative;
 z-index: 1;
 max-width: 1160px;
 margin: 0 auto;
 padding: 0 28px;
 display: grid;
 grid-template-columns: 1fr 520px;
 gap: 80px;
 align-items: start;
}

.hero-eyebrow {
 font-size: .72rem;
 font-weight: 500;
 letter-spacing: .2em;
 text-transform: uppercase;
 color: var(--gold);
 margin-bottom: 24px;
 display: none;
}

.hero-headline {
 font-family: var(--font-display);
 font-size: clamp(3.2rem, 6.5vw, 5.2rem);
 font-weight: 400;
 line-height: 1.05;
 color: var(--cream);
 margin-bottom: 28px;
 letter-spacing: -.01em;
}

.hero-headline em {
 font-style: italic;
 color: var(--gold);
}

.hero-sub {
 font-family: var(--font-serif);
 font-size: 1rem;
 line-height: 1.8;
 color: rgba(250, 246, 238, .65);
 max-width: 440px;
 margin-bottom: 40px;
}

.hero-actions {
 display: flex;
 gap: 14px;
 flex-wrap: wrap;
 margin-bottom: 52px;
}

.hero-badges {
 display: none;
 align-items: center;
 gap: 14px;
 flex-wrap: wrap;
 font-size: .8rem;
 color: rgba(250, 246, 238, .45);
}

.hero-badges strong {
 color: var(--gold-light);
 font-weight: 600;
}

.hero-badges .sep {
 color: rgba(184, 137, 42, .4);
}

/* Book stack */
.hero-visual {
 display: flex;
 flex-direction: column;
 gap: 32px;
}

.book-stack {
 position: relative;
 height: 180px;
 margin-bottom: 8px;
 display: none;
}

.book {
 position: absolute;
 border-radius: 4px;
 display: flex;
 align-items: center;
 font-family: var(--font-body);
 font-size: .65rem;
 font-weight: 600;
 letter-spacing: .14em;
 text-transform: uppercase;
 color: rgba(250, 246, 238, .7);
 box-shadow: var(--shadow-book);
 transform-origin: bottom left;
}

.book span {
 writing-mode: vertical-rl;
 padding: 10px 0;
}

.b1 {
 left: 0;
 bottom: 0;
 width: 48px;
 height: 160px;
 background: var(--crimson);
 transform: rotate(-3deg);
}

.b2 {
 left: 60px;
 bottom: 0;
 width: 52px;
 height: 170px;
 background: var(--forest);
 transform: rotate(1deg);
}

.b3 {
 left: 124px;
 bottom: 0;
 width: 46px;
 height: 155px;
 background: var(--slate);
 transform: rotate(-1.5deg);
}

.b4 {
 left: 182px;
 bottom: 0;
 width: 50px;
 height: 165px;
 background: #3d2b1a;
 transform: rotate(2deg);
}

.book-shadow {
 position: absolute;
 bottom: -8px;
 left: 0;
 right: 0;
 height: 20px;
 background: radial-gradient(ellipse, rgba(0, 0, 0, .4) 0%, transparent 70%);
 filter: blur(4px);
}

/* Hero form */
.hero-form-wrap {}

.hero-form-card {
 background: rgba(250, 246, 238, .05);
 backdrop-filter: blur(16px);
 border: 1px solid rgba(184, 137, 42, .2);
 border-radius: var(--radius-xl);
 padding: 36px;
}

.form-eyebrow {
 font-size: .68rem;
 font-weight: 600;
 letter-spacing: .2em;
 text-transform: uppercase;
 color: var(--gold);
 margin-bottom: 8px;
}

.form-title {
 font-family: var(--font-display);
 font-size: 1.6rem;
 font-weight: 400;
 color: var(--cream);
 margin-bottom: 6px;
}

.form-sub {
 font-size: .84rem;
 color: rgba(250, 246, 238, .45);
 margin-bottom: 24px;
}

.field-group {
 position: relative;
 margin-bottom: 24px;
}

.field-input {
 width: 100%;
 padding: 16px 0 8px;
 background: transparent;
 border: none;
 border-bottom: 1px solid rgba(184, 137, 42, .25);
 font-size: .92rem;
 color: var(--cream);
 outline: none;
 transition: border-color var(--transition);
 resize: none;
}

.hero-form-card .field-input::placeholder {
 color: transparent;
}

.field-textarea {
 resize: vertical;
 min-height: 64px;
}

.field-select {
 -webkit-appearance: none;
 appearance: none;
 cursor: pointer;
}

.field-select option {
 background: var(--ink);
 color: var(--cream);
}

.field-label {
 position: absolute;
 top: 16px;
 left: 0;
 font-size: .88rem;
 color: rgba(250, 246, 238, .4);
 transition: all var(--transition);
 pointer-events: none;
 transform-origin: left top;
}

.field-input:focus~.field-label,
.field-input:not(:placeholder-shown)~.field-label {
 transform: translateY(-14px) scale(.78);
 color: var(--gold);
}

.field-input:focus {
 border-bottom-color: var(--gold);
}

.field-input.error {
 border-bottom-color: var(--crimson);
}

.form-success {
 display: none;
 margin-top: 12px;
 padding: 12px 16px;
 font-size: .85rem;
 color: #2d7a4f;
 background: rgba(45, 122, 79, .1);
 border-radius: var(--radius);
}

.form-success.visible {
 display: block;
}

.hero-scroll-hint {
 position: absolute;
 bottom: 40px;
 left: 50%;
 transform: translateX(-50%);
 display: flex;
 flex-direction: column;
 align-items: center;
 gap: 10px;
 font-family: var(--font-body);
 font-size: .68rem;
 letter-spacing: .18em;
 text-transform: uppercase;
 color: rgba(184, 137, 42, .4);
}

.scroll-line {
 width: 1px;
 height: 48px;
 background: linear-gradient(to bottom, rgba(184, 137, 42, .4), transparent);
 animation: scrollPulse 2s ease-in-out infinite;
}

@keyframes scrollPulse {

 0%,
 100% {
  opacity: .4;
  transform: scaleY(1)
 }

 50% {
  opacity: 1;
  transform: scaleY(1.1)
 }
}

/* ---- MARQUEE ---- */
.marquee-strip {
 background: var(--gold);
 padding: 14px 0;
 overflow: hidden;
 white-space: nowrap;
}

.marquee-track {
 display: inline-flex;
 gap: 32px;
 align-items: center;
 animation: marquee 32s linear infinite;
 font-family: var(--font-body);
 font-size: .76rem;
 font-weight: 600;
 letter-spacing: .1em;
 text-transform: uppercase;
 color: rgba(255, 255, 255, .9);
}

.marquee-track .dot {
 color: rgba(255, 255, 255, .5);
 font-size: .6rem;
}

@keyframes marquee {
 from {
  transform: translateX(0)
 }

 to {
  transform: translateX(-50%)
 }
}

/* ---- SERVICES ---- */
.services {
 padding: 120px 0;
 background: var(--cream);
}

.services-grid {
 display: grid;
 grid-template-columns: repeat(3, 1fr);
 gap: 28px;
}

.service-card {
 background: var(--white);
 border: 1px solid var(--warm-mid);
 border-radius: var(--radius-lg);
 padding: 40px 32px;
 position: relative;
 transition: all var(--transition);
 overflow: hidden;
}

.service-card::before {
 content: '';
 position: absolute;
 bottom: 0;
 left: 0;
 right: 0;
 height: 3px;
 background: var(--gold);
 transform: scaleX(0);
 transform-origin: left;
 transition: transform var(--transition);
}

.service-card:hover {
 border-color: var(--gold-pale);
 box-shadow: var(--shadow-md);
 transform: translateY(-6px);
}

.service-card:hover::before {
 transform: scaleX(1);
}

.service-card.featured {
 background: var(--ink);
 color: var(--cream);
 border-color: var(--ink);
}

.service-card.featured .service-num {
 color: var(--gold);
}

.service-card.featured h3 {
 color: var(--cream);
}

.service-card.featured p {
 color: rgba(250, 246, 238, .6);
}

.service-card.featured ul li {
 color: rgba(250, 246, 238, .65);
}

.service-card.featured ul li::before {
 background: var(--gold) !important;
}

.service-num {
 font-family: var(--font-display);
 font-size: .78rem;
 font-weight: 700;
 letter-spacing: .08em;
 color: var(--gold-light);
 margin-bottom: 18px;
}

.service-icon-wrap {
 width: 52px;
 height: 52px;
 margin-bottom: 20px;
 color: var(--ink);
}

.service-card.featured .service-icon-wrap {
 color: var(--gold);
}

.service-icon-wrap svg {
 width: 100%;
 height: 100%;
}

.service-card h3 {
 font-family: var(--font-display);
 font-size: 1.25rem;
 font-weight: 500;
 color: var(--ink);
 margin-bottom: 12px;
}

.service-card p {
 font-size: .9rem;
 line-height: 1.7;
 color: var(--ink-muted);
 margin-bottom: 20px;
}

.service-card ul {
 display: flex;
 flex-direction: column;
 gap: 8px;
}

.service-card ul li {
 font-size: .84rem;
 color: var(--ink-muted);
 padding-left: 16px;
 position: relative;
}

.service-card ul li::before {
 content: '';
 position: absolute;
 left: 0;
 top: 8px;
 width: 5px;
 height: 5px;
 border-radius: 50%;
 background: var(--gold);
}

/* ---- PROCESS ---- */
.process {
 padding: 120px 0;
 background: var(--parchment);
 position: relative;
 overflow: hidden;
}

.process-bg-text {
 position: absolute;
 top: 50%;
 left: 50%;
 transform: translate(-50%, -50%);
 font-family: var(--font-display);
 font-size: 20vw;
 font-weight: 900;
 color: rgba(26, 18, 9, .02);
 letter-spacing: .1em;
 white-space: nowrap;
 pointer-events: none;
 user-select: none;
}

.process-steps {
 max-width: 780px;
 margin: 0 auto;
}

.process-step {
 display: grid;
 grid-template-columns: 60px 40px 1fr;
 gap: 0 24px;
 align-items: start;
 margin-bottom: 0;
}

.step-num {
 font-family: var(--font-display);
 font-size: 1.8rem;
 font-weight: 400;
 color: var(--gold);
 text-align: right;
 padding-top: 4px;
 font-style: italic;
}

.step-line {
 display: flex;
 flex-direction: column;
 align-items: center;
 padding-top: 12px;
}

.step-line::before {
 content: '';
 width: 10px;
 height: 10px;
 border-radius: 50%;
 background: var(--gold);
 flex-shrink: 0;
}

.step-line::after {
 content: '';
 width: 1px;
 flex: 1;
 min-height: 60px;
 background: linear-gradient(to bottom, var(--gold-pale), transparent);
 margin-top: 4px;
}

.step-line.last::after {
 display: none;
}

.step-content {
 padding-bottom: 52px;
}

.step-line.last~.step-content {
 padding-bottom: 0;
}

.step-content h3 {
 font-family: var(--font-display);
 font-size: 1.35rem;
 font-weight: 500;
 color: var(--ink);
 margin-bottom: 10px;
}

.step-content p {
 font-family: var(--font-serif);
 font-size: .92rem;
 line-height: 1.75;
 color: var(--ink-muted);
}

/* ---- STATS BAND ---- */
.stats-band {
 background: var(--ink);
 padding: 64px 0;
 display: none;
}

.stats-inner {
 display: flex;
 align-items: center;
 justify-content: center;
 gap: 0;
 flex-wrap: wrap;
}

.stat-item {
 text-align: center;
 padding: 0 56px;
 flex: 1;
 min-width: 160px;
}

.stat-item .stat-number {
 font-family: var(--font-display);
 font-size: 3.2rem;
 font-weight: 400;
 color: var(--gold);
 display: inline;
}

.stat-item .stat-suffix {
 font-family: var(--font-display);
 font-size: 2rem;
 color: var(--gold);
 font-weight: 300;
}

.stat-item p {
 font-size: .76rem;
 letter-spacing: .14em;
 text-transform: uppercase;
 color: rgba(250, 246, 238, .35);
 margin-top: 8px;
}

.stat-divider {
 width: 1px;
 height: 60px;
 background: rgba(184, 137, 42, .2);
}

/* ---- PACKAGES ---- */
.packages {
 padding: 120px 0;
 background: var(--cream);
}


.packages-grid {
 display: grid;
 grid-template-columns: repeat(3, 1fr);
 gap: 28px;
 align-items: start;
}

.pkg-card {
 background: var(--white);
 border: 1px solid var(--warm-mid);
 border-radius: var(--radius-xl);
 padding: 44px 36px;
 position: relative;
 transition: all var(--transition);
 z-index: 1;
}

.pkg-card:hover {
 transform: translateY(-8px);
 box-shadow: var(--shadow-lg);
 border-color: var(--gold-pale);
}

.pkg-card.prestige {
 background: var(--ink);
 color: var(--cream);
 border-color: var(--ink);
 transform: translateY(-12px);
 box-shadow: 0 24px 60px rgba(26, 18, 9, .25);
}

.pkg-card.prestige:hover {
 transform: translateY(-18px);
}

.prestige-badge {
 position: absolute;
 top: -14px;
 left: 50%;
 transform: translateX(-50%);
 background: var(--gold);
 color: #fff;
 font-size: .68rem;
 font-weight: 700;
 letter-spacing: .1em;
 text-transform: uppercase;
 padding: 5px 18px;
 border-radius: 20px;
}

.pkg-tier {
 font-family: var(--font-body);
 font-size: .72rem;
 font-weight: 700;
 letter-spacing: .18em;
 text-transform: uppercase;
 color: var(--ink-muted);
 margin-bottom: 18px;
}

.pkg-card.prestige .pkg-tier {
 color: rgba(250, 246, 238, .45);
}

.pkg-price {
 display: flex;
 align-items: flex-start;
 gap: 3px;
 margin-bottom: 14px;
}

.pkg-currency {
 font-size: 1.1rem;
 font-weight: 500;
 color: var(--ink-muted);
 margin-top: 8px;
}

.pkg-val {
 font-family: var(--font-display);
 font-size: 3.2rem;
 font-weight: 400;
 color: var(--ink);
 line-height: 1;
}

.pkg-card.prestige .pkg-currency,
.pkg-card.prestige .pkg-val {
 color: var(--gold-light);
}

.pkg-desc {
 font-family: var(--font-serif);
 font-size: .88rem;
 line-height: 1.65;
 color: var(--ink-muted);
 margin-bottom: 28px;
}

.pkg-card.prestige .pkg-desc {
 color: rgba(250, 246, 238, .5);
}

.pkg-features {
 display: flex;
 flex-direction: column;
 gap: 10px;
 margin-bottom: 32px;
}

.pkg-features li {
 font-size: .86rem;
 color: var(--ink-light);
 padding-left: 18px;
 position: relative;
}

.pkg-card.prestige .pkg-features li {
 color: rgba(250, 246, 238, .7);
}

.pkg-features li::before {
 content: '✦';
 position: absolute;
 left: 0;
 font-size: .55rem;
 top: 5px;
 color: var(--gold);
}

.packages-note {
 text-align: center;
 margin-top: 32px;
 font-family: var(--font-serif);
 font-style: italic;
 font-size: .88rem;
 color: var(--ink-muted);
}

/* ---- TITLES / PORTFOLIO ---- */
.titles {
 padding: 120px 0;
 background: var(--parchment);
}

.titles-swiper {
 padding-bottom: 64px !important;
}

.book-card {
 display: flex;
 flex-direction: column;
 gap: 0;
}

/* Image cover */
.book-cover-img {
 position: relative;
 aspect-ratio: 2/3;
 border-radius: var(--radius) var(--radius-lg) var(--radius-lg) var(--radius);
 overflow: hidden;
 /* box-shadow: var(--shadow-book); */
 cursor: pointer;
 /* background: var(--warm-mid); */
 /* placeholder while image loads */
}

.book-cover-img img {
 width: 100%;
 height: 100%;
 object-fit: cover;
 display: block;
 transition: transform .6s cubic-bezier(.16, 1, .3, 1);
}

.book-card:hover .book-cover-img img {
 transform: scale(1.05);
}

/* Left spine shadow */
.book-cover-img::before {
 content: '';
 position: absolute;
 left: 0;
 top: 0;
 bottom: 0;
 width: 12px;
 background: linear-gradient(to right, rgba(0, 0, 0, .35), transparent);
 z-index: 1;
 pointer-events: none;
 display: none;
}

/* Gradient overlay at bottom */
.cover-overlay {
 position: absolute;
 bottom: 0;
 left: 0;
 right: 0;
 padding: 48px 16px 16px 20px;
 background: linear-gradient(to top, rgba(0, 0, 0, .72) 0%, transparent 100%);
 z-index: 2;
 display: none;
}

.cover-genre {
 font-family: var(--font-body);
 font-size: .58rem;
 font-weight: 700;
 letter-spacing: .2em;
 text-transform: uppercase;
 color: var(--gold-pale);
}

/* Hover lift */
.book-card:hover .book-cover-img {
 box-shadow: 12px 16px 40px rgba(26, 18, 9, .3);
 transform: translateY(-6px) rotate(-0.8deg);
 transition: transform .4s cubic-bezier(.16, 1, .3, 1), box-shadow .4s;
}

/* Info below */
.book-info {
 padding: 18px 4px 0;
 display: none;
}

.book-info h4 {
 font-family: var(--font-display);
 font-size: 1.05rem;
 font-weight: 500;
 color: var(--ink);
 margin-bottom: 4px;
 white-space: nowrap;
 overflow: hidden;
 text-overflow: ellipsis;
}

.book-author {
 font-size: .8rem;
 color: var(--ink-muted);
 margin-bottom: 6px;
}

.book-excerpt {
 font-family: var(--font-serif);
 font-size: .8rem;
 font-style: italic;
 color: var(--gold);
 line-height: 1.5;
 display: -webkit-box;
 -webkit-line-clamp: 2;
 -webkit-box-orient: vertical;
 overflow: hidden;
}

.swiper-button-next,
.swiper-button-prev {
 color: var(--gold) !important;
 background: var(--white) !important;
 width: 44px !important;
 height: 44px !important;
 border-radius: 50% !important;
 box-shadow: var(--shadow-sm) !important;
 border: 1px solid var(--warm-mid) !important;
}

.swiper-button-next::after,
.swiper-button-prev::after {
 font-size: 1rem !important;
 font-weight: 700 !important;
}

.swiper-pagination-bullet-active {
 background: var(--gold) !important;
}

/* ---- ABOUT ---- */
.about {
 padding: 120px 0;
 background: var(--cream);
}

.about-inner {
 display: grid;
 grid-template-columns: 420px 1fr;
 gap: 100px;
 align-items: start;
}

.about-pull-quote {
 position: relative;
 padding: 40px;
 margin-bottom: 40px;
 background: var(--ink);
 border-radius: var(--radius-lg);
 overflow: hidden;
}

.quote-mark {
 position: absolute;
 top: -20px;
 left: 20px;
 font-family: var(--font-display);
 font-size: 10rem;
 font-weight: 900;
 color: rgba(184, 137, 42, .15);
 line-height: 1;
 pointer-events: none;
}

.about-pull-quote p {
 font-family: var(--font-display);
 font-size: 1.4rem;
 font-weight: 400;
 font-style: italic;
 line-height: 1.5;
 color: var(--cream);
 position: relative;
 z-index: 1;
}

.about-facts {
 display: flex;
 flex-direction: column;
 gap: 16px;
}

.fact-item {
 display: flex;
 flex-direction: column;
 gap: 3px;
 padding-bottom: 16px;
 border-bottom: 1px solid var(--warm-mid);
}

.fact-item:last-child {
 border-bottom: none;
}

.fact-label {
 font-size: .7rem;
 font-weight: 700;
 letter-spacing: .14em;
 text-transform: uppercase;
 color: var(--gold);
}

.fact-val {
 font-family: var(--font-serif);
 font-size: .9rem;
 color: var(--ink-muted);
}

.about-body {
 font-family: var(--font-serif);
 font-size: .95rem;
 line-height: 1.8;
 color: var(--ink-light);
 margin-bottom: 18px;
}

.about-pillars {
 display: grid;
 grid-template-columns: repeat(3, 1fr);
 gap: 20px;
 margin: 36px 0;
}

.pillar {
 padding: 22px 18px;
 background: var(--warm-light);
 border-radius: var(--radius);
 border-top: 3px solid var(--gold);
 transition: all var(--transition);
}

.pillar:hover {
 background: var(--white);
 box-shadow: var(--shadow-md);
 transform: translateY(-4px);
}

.pillar h4 {
 font-family: var(--font-display);
 font-size: 1rem;
 font-weight: 500;
 color: var(--ink);
 margin-bottom: 8px;
}

.pillar p {
 font-size: .82rem;
 line-height: 1.6;
 color: var(--ink-muted);
}

/* ---- CTA BAND ---- */
.cta-band {
 padding: 120px 0;
 position: relative;
 overflow: hidden;
 background: url('') var(--ink);
}

.cta-band-bg {
 position: absolute;
 inset: 0;
 background: radial-gradient(circle at 20% 50%, rgba(184, 137, 42, .12) 0%, transparent 50%),
  radial-gradient(circle at 80% 50%, rgba(139, 34, 40, .1) 0%, transparent 50%);
 pointer-events: none;
}

.cta-inner {
 text-align: center;
 position: relative;
 z-index: 1;
 max-width: 700px;
 margin: 0 auto;
}

.cta-eyebrow {
 font-size: .72rem;
 font-weight: 600;
 letter-spacing: .22em;
 text-transform: uppercase;
 color: var(--gold);
 margin-bottom: 20px;
}

.cta-inner h2 {
 font-family: var(--font-display);
 font-size: clamp(2.4rem, 5vw, 3.8rem);
 font-weight: 400;
 line-height: 1.15;
 color: var(--cream);
 margin-bottom: 20px;
}

.cta-inner h2 em {
 font-style: italic;
 color: var(--gold);
}

.cta-inner>p {
 font-family: var(--font-serif);
 font-size: 1rem;
 color: rgba(250, 246, 238, .55);
 margin-bottom: 40px;
}

/* ---- CONTACT ---- */
.contact {
 padding: 120px 0;
 background: var(--cream);
}

/* Light mode contact form */
.contact .field-input {
 border-bottom-color: var(--warm-mid);
 color: var(--ink);
}

.contact .field-label {
 color: var(--ink-muted);
}

.contact .field-input:focus~.field-label,
.contact .field-input:not(:placeholder-shown)~.field-label {
 color: var(--gold);
}

.contact .field-input:focus {
 border-bottom-color: var(--gold);
}

.contact .field-select option {
 background: var(--white);
 color: var(--ink);
}

.contact-inner {
 display: grid;
 grid-template-columns: 380px 1fr;
 gap: 80px;
 align-items: start;
}

.contact-card {
 background: var(--ink);
 border-radius: var(--radius-xl);
 padding: 44px;
 color: var(--cream);
}

.contact-card h3 {
 font-family: var(--font-display);
 font-size: 1.5rem;
 font-weight: 400;
 margin-bottom: 14px;
}

.contact-card>p {
 font-family: var(--font-serif);
 font-size: .9rem;
 line-height: 1.75;
 color: rgba(250, 246, 238, .55);
 margin-bottom: 32px;
}

.contact-details {
 display: flex;
 flex-direction: column;
 gap: 20px;
 margin-bottom: 32px;
}

.contact-detail {
 display: flex;
 flex-direction: column;
 gap: 4px;
}

.detail-label {
 font-size: .68rem;
 font-weight: 700;
 letter-spacing: .16em;
 text-transform: uppercase;
 color: var(--gold);
}

.contact-detail a,
.contact-detail span {
 font-family: var(--font-serif);
 font-size: .9rem;
 color: rgba(250, 246, 238, .65);
 transition: color var(--transition);
}

.contact-detail a:hover {
 color: var(--gold-light);
}

.contact-promise {
 padding-top: 24px;
 border-top: 1px solid rgba(184, 137, 42, .2);
 font-family: var(--font-serif);
 font-size: .84rem;
 line-height: 1.9;
 color: rgba(250, 246, 238, .4);
}

.contact-form-wrap {
 background: var(--white);
 border: 1px solid var(--warm-mid);
 border-radius: var(--radius-xl);
 padding: 48px;
 box-shadow: var(--shadow-sm);
}

.form-row {
 display: grid;
 grid-template-columns: 1fr 1fr;
 gap: 0 28px;
}

/* ---- FOOTER ---- */
.footer {}

.footer-top {
 background: var(--ink-light);
 padding: 80px 0 60px;
 border-top: 3px solid var(--gold);
}

.footer-grid {
 display: grid;
 grid-template-columns: 1.8fr 1fr 1fr 1.3fr;
 gap: 48px;
}

.footer-brand .footer-logo {
 display: flex;
 align-items: center;
 gap: 12px;
 margin-bottom: 18px;
}

.footer-brand .logo-name {
 color: var(--cream);
 font-size: 1rem;
}

.footer-brand p {
 font-family: var(--font-serif);
 font-size: .86rem;
 line-height: 1.7;
 color: rgba(250, 246, 238, .4);
 max-width: 260px;
 margin-bottom: 24px;
}

.footer-social {
 display: none;
 gap: 10px;
}

.footer-social a {
 width: 36px;
 height: 36px;
 border-radius: 6px;
 border: 1px solid rgba(184, 137, 42, .25);
 display: grid;
 place-items: center;
 font-family: var(--font-body);
 font-size: .72rem;
 font-weight: 700;
 color: rgba(184, 137, 42, .5);
 transition: all var(--transition);
}

.footer-social a:hover {
 border-color: var(--gold);
 color: var(--gold);
 background: rgba(184, 137, 42, .08);
}

.footer-col h4 {
 font-size: .68rem;
 font-weight: 700;
 letter-spacing: .18em;
 text-transform: uppercase;
 color: rgba(250, 246, 238, .35);
 margin-bottom: 20px;
}

.footer-col ul {
 display: flex;
 flex-direction: column;
 gap: 10px;
}

.footer-col a {
 font-size: .86rem;
 color: rgba(250, 246, 238, .45);
 transition: color var(--transition);
}

.footer-col a:hover {
 color: var(--gold-light);
}

.footer-addr {
 margin-top: 16px;
 font-size: .82rem;
 line-height: 1.7;
 color: rgba(250, 246, 238, .3);
 display: none;
}

.footer-bottom {
 background: var(--ink);
 padding: 24px 0;
}

.footer-bottom .container {
 display: flex;
 justify-content: space-between;
 align-items: center;
 flex-wrap: wrap;
 gap: 12px;
}

.footer-bottom p {
 font-size: .8rem;
 color: rgba(250, 246, 238, .25);
}

.footer-legal {
 display: flex;
 gap: 24px;
}

.footer-legal a {
 font-size: .8rem;
 color: rgba(250, 246, 238, .25);
 transition: color var(--transition);
}

.footer-legal a:hover {
 color: var(--gold);
}

/* ---- ANIMATIONS ---- */
@keyframes spin {
 to {
  transform: rotate(360deg)
 }
}

@keyframes fadeIn {
 from {
  opacity: 0;
  transform: translateY(8px)
 }

 to {
  opacity: 1;
  transform: translateY(0)
 }
}

/* ---- RESPONSIVE ---- */
@media (max-width: 1024px) {
 .hero-inner {
  grid-template-columns: 1fr;
  gap: 60px;
 }

 .hero-visual {
  max-width: 520px;
 }

 .services-grid {
  grid-template-columns: repeat(2, 1fr);
 }

 .packages-grid {
  grid-template-columns: 1fr;
  max-width: 480px;
  margin: 0 auto;
 }

 .pkg-card.prestige {
  transform: none;
 }

 .about-inner {
  grid-template-columns: 1fr;
  gap: 60px;
 }

 .about-pillars {
  grid-template-columns: 1fr;
 }

 .contact-inner {
  grid-template-columns: 1fr;
  gap: 48px;
 }

 .footer-grid {
  grid-template-columns: 1fr 1fr;
  gap: 36px;
 }

 .stat-item {
  padding: 0 32px;
 }
}

@media (max-width: 768px) {

 .nav-links,
 .nav-cta {
  display: none;
 }

 .nav-toggle {
  display: flex;
 }

 .logo-name {
  display: none;
 }

 .nav-links.open {
  display: flex;
  flex-direction: column;
  gap: 0;
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  background: rgba(26, 18, 9, .98);
  backdrop-filter: blur(16px);
  padding: 0;
  z-index: 99;
  box-shadow: var(--shadow-lg);
  border-top: 1px solid rgba(184, 137, 42, .15);
 }

 .nav-links.open .nav-link {
  padding: 18px 28px;
  display: block;
  color: rgba(250, 246, 238, .7);
  border-bottom: 1px solid rgba(184, 137, 42, .08);
  font-size: .9rem;
 }

 .nav-links.open .nav-link:hover {
  color: var(--gold);
  background: rgba(184, 137, 42, .05);
 }

 .mobile-menu-overlay.active {
  display: block;
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, .4);
  z-index: 98;
 }

 .services-grid {
  grid-template-columns: 1fr;
 }

 .process-step {
  grid-template-columns: 40px 28px 1fr;
 }

 .stats-inner {
  flex-direction: column;
  gap: 32px;
 }

 .stat-divider {
  width: 60px;
  height: 1px;
 }

 .about-pillars {
  grid-template-columns: 1fr;
 }

 .footer-grid {
  grid-template-columns: 1fr;
 }

 .form-row {
  grid-template-columns: 1fr;
 }
}

@media (max-width: 540px) {
 .hero {
  padding: 120px 0 60px;
 }

 .hero-headline {
  font-size: 2.8rem;
 }

 .hero-actions {
  flex-direction: column;
 }

 .hero-actions .btn {
  text-align: center;
 }

 .hero-form-card {
  padding: 24px;
 }

 .packages-grid {
  max-width: 100%;
 }

 .section-title {
  font-size: 1.9rem;
 }
}


/* fixes */

main {
 padding: 120px 50px;
}

main section {
 padding: 20px 0px;
}

main h1 {
 text-align: center;
 text-transform: capitalize;
 font-size: 48px;
}

main ul {
 list-style: disc;
}


.intl-tel-input .selected-flag {
 padding: 0 6px 0px 8px !important;
}

input#telField::placeholder {
    color: #ccc;
}