/*
Theme Name: Grace et Victoire
Theme URI: https://graceetvictoire.org
Author: Tight Designs
Author URI: https://tightdesigns.com
Description: A refined, Elementor-compatible editorial theme for Grace et Victoire reflections, devotionals, and multilingual articles.
Version: 1.0.2
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 7.4
Text Domain: grace-et-victoire
*/

:root {
  --gev-ink: #12121c;
  --gev-navy: #171743;
  --gev-blue: #292b82;
  --gev-blue-soft: #e8e8f7;
  --gev-gold: #e1b34d;
  --gev-gold-light: #f4d995;
  --gev-ivory: #faf8f2;
  --gev-paper: #ffffff;
  --gev-muted: #686878;
  --gev-line: rgba(23, 23, 67, 0.14);
  --gev-shadow: 0 26px 70px rgba(20, 20, 54, 0.14);
  --gev-serif: Georgia, "Times New Roman", serif;
  --gev-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--gev-ink); background: var(--gev-ivory); font-family: var(--gev-sans); line-height: 1.65; }
img { max-width: 100%; height: auto; }
a { color: var(--gev-blue); }
a:hover { color: var(--gev-navy); }
button, input, textarea, select { font: inherit; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.screen-reader-text:focus { width: auto; height: auto; top: 12px; left: 12px; padding: 12px 16px; clip: auto; color: var(--gev-paper); background: var(--gev-navy); z-index: 10000; }
.gev-shell { width: min(1180px, calc(100% - 40px)); margin-inline: auto; }
.gev-narrow { width: min(800px, calc(100% - 40px)); margin-inline: auto; padding: 1%; background: var(--gev-paper); border: 1px solid #ccc; box-shadow: 0 0 10px #d5d5d5; }
.gev-section { padding: clamp(70px, 9vw, 120px) 0; }

.gev-announcement { padding: 9px 20px; color: var(--gev-paper); background: var(--gev-navy); text-align: center; font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.gev-announcement p { margin: 0; }
.gev-header { position: sticky; top: 0; z-index: 1000; background: rgba(255,255,255,.96); border-bottom: 1px solid var(--gev-line); backdrop-filter: blur(14px); }
.admin-bar .gev-header { top: 32px; }
.gev-nav-shell { min-height: 84px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.gev-brand { display: inline-flex; align-items: center; gap: 12px; color: var(--gev-navy); text-decoration: none; }
.gev-brand img, .gev-brand .custom-logo { width: 54px; height: 54px; object-fit: contain; }
.gev-brand-mark { width: 48px; height: 48px; display: grid; place-items: center; color: var(--gev-navy); background: var(--gev-gold); border-radius: 50%; font-family: var(--gev-serif); font-weight: 700; }
.gev-brand-copy { display: flex; flex-direction: column; line-height: 1.15; }
.gev-brand-copy strong { font-family: var(--gev-serif); font-size: 1.15rem; }
.gev-brand-copy small { margin-top: 5px; color: var(--gev-muted); font-size: .65rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.gev-menu-toggle { display: none; width: 46px; height: 42px; border: 0; background: transparent; cursor: pointer; }
.gev-menu-toggle span:not(.screen-reader-text) { width: 24px; height: 2px; display: block; margin: 5px auto; background: var(--gev-navy); }
.gev-nav ul { display: flex; align-items: center; gap: 25px; margin: 0; padding: 0; list-style: none; }
.gev-nav a { color: var(--gev-navy); font-size: .76rem; font-weight: 800; letter-spacing: .06em; text-decoration: none; text-transform: uppercase; }
.gev-nav a:hover, .gev-nav .current-menu-item > a, .gev-nav .current_page_item > a { color: var(--gev-blue); }
.gev-nav .gev-nav-cta > a { padding: 12px 17px; color: var(--gev-paper); background: var(--gev-blue); }

.gev-eyebrow { margin: 0 0 15px; color: var(--gev-blue); font-size: .72rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.gev-eyebrow-light { color: var(--gev-gold-light); }
.gev-button { display: inline-flex; align-items: center; justify-content: center; min-height: 50px; padding: 0 24px; color: var(--gev-navy); background: var(--gev-gold); border: 1px solid var(--gev-gold); font-size: .78rem; font-weight: 800; letter-spacing: .06em; text-decoration: none; text-transform: uppercase; transition: transform .18s ease, box-shadow .18s ease; }
.gev-button:hover { color: var(--gev-navy); transform: translateY(-2px); box-shadow: 0 14px 28px rgba(0,0,0,.14); }
.gev-text-link { font-size: .78rem; font-weight: 800; letter-spacing: .05em; text-decoration: none; text-transform: uppercase; }

.gev-blog-hero { position: relative; overflow: hidden; padding: clamp(90px, 12vw, 155px) 0; color: var(--gev-paper); background: radial-gradient(circle at 78% 28%, rgba(225,179,77,.2), transparent 27%), linear-gradient(130deg, #111137 0%, var(--gev-navy) 58%, var(--gev-blue) 100%); }
.gev-blog-hero::after { content: ""; position: absolute; width: 430px; height: 430px; right: -180px; top: -210px; border: 1px solid rgba(244,217,149,.24); border-radius: 50%; }
.gev-blog-hero-copy { position: relative; z-index: 1; max-width: 860px; }
.gev-blog-hero h1 { max-width: 800px; margin: 0 0 24px; color: var(--gev-paper); font-family: var(--gev-serif); font-size: clamp(3.25rem, 7vw, 6.8rem); font-weight: 500; line-height: .95; letter-spacing: -.045em; }
.gev-archive-hero h1,
.gev-single-hero h1,
.gev-page-hero h1 { color: var(--gev-paper); }
.gev-blog-hero p:not(.gev-eyebrow) { max-width: 690px; margin: 0; color: rgba(255,255,255,.76); font-size: clamp(1.05rem, 1.8vw, 1.25rem); }

.gev-section-heading { max-width: 760px; margin-bottom: 42px; }
.gev-section-heading h2 { margin: 0 0 16px; color: var(--gev-navy); font-family: var(--gev-serif); font-size: clamp(2.4rem, 4.5vw, 4.4rem); font-weight: 500; line-height: 1.03; letter-spacing: -.035em; }
.gev-section-heading p:last-child { margin: 0; color: var(--gev-muted); font-size: 1.08rem; }

.gev-featured { background: var(--gev-paper); }
.gev-featured-card { display: grid; grid-template-columns: minmax(360px, 1.08fr) minmax(320px, .92fr); min-height: 500px; color: var(--gev-ink); background: var(--gev-ivory); border: 1px solid var(--gev-line); text-decoration: none; box-shadow: var(--gev-shadow); }
.gev-featured-image { min-height: 500px; overflow: hidden; background: var(--gev-blue-soft); }
.gev-featured-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.gev-featured-card:hover .gev-featured-image img { transform: scale(1.025); }
.gev-featured-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(34px, 6vw, 70px); }
.gev-post-kicker { display: block; margin-bottom: 18px; color: var(--gev-blue); font-size: .7rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.gev-featured-copy h2 { margin: 0 0 20px; color: var(--gev-navy); font-family: var(--gev-serif); font-size: clamp(2.1rem, 4vw, 4rem); font-weight: 500; line-height: 1.04; }
.gev-featured-copy h2 a { color: inherit; text-decoration: none; }
.gev-featured-copy h2 a:hover { color: var(--gev-blue); }
.gev-featured-copy p { margin: 0 0 25px; color: var(--gev-muted); }
.gev-meta { display: flex; flex-wrap: wrap; gap: 8px 18px; color: var(--gev-muted); font-size: .78rem; }
.gev-featured-link { align-self: flex-start; margin-top: 24px; }

.gev-post-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.gev-post-card { min-width: 0; overflow: hidden; background: var(--gev-paper); border: 1px solid var(--gev-line); box-shadow: 0 14px 36px rgba(20,20,54,.07); transition: transform .2s ease, box-shadow .2s ease; }
.gev-post-card:hover { transform: translateY(-5px); box-shadow: 0 24px 48px rgba(20,20,54,.13); }
.gev-card-image { position: relative; display: block; aspect-ratio: 16/10; overflow: hidden; background: var(--gev-blue-soft); }
.gev-card-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease; }
.gev-post-card:hover .gev-card-image img { transform: scale(1.035); }
.gev-card-placeholder { width: 100%; height: 100%; display: grid; place-items: center; color: var(--gev-gold-light); background: linear-gradient(135deg, var(--gev-navy), var(--gev-blue)); font-family: var(--gev-serif); font-size: 2.8rem; }
.gev-card-copy { padding: 26px; }
.gev-card-copy h2 { margin: 0 0 14px; font-family: var(--gev-serif); font-size: 1.65rem; line-height: 1.16; }
.gev-card-copy h2 a { color: var(--gev-navy); text-decoration: none; }
.gev-card-copy p { margin: 0 0 19px; color: var(--gev-muted); font-size: .94rem; }
.gev-card-copy .gev-meta { padding-top: 16px; border-top: 1px solid var(--gev-line); }

.gev-category-bar { padding: 19px 0; background: var(--gev-paper); border-bottom: 1px solid var(--gev-line); }
.gev-category-bar-inner { display: flex; align-items: center; gap: 18px; overflow-x: auto; }
.gev-category-bar strong { color: var(--gev-navy); font-family: var(--gev-serif); white-space: nowrap; }
.gev-category-bar ul { display: flex; gap: 10px; margin: 0; padding: 0; list-style: none; }
.gev-category-bar a { display: block; padding: 8px 13px; color: var(--gev-blue); background: var(--gev-blue-soft); font-size: .7rem; font-weight: 800; letter-spacing: .06em; text-decoration: none; text-transform: uppercase; white-space: nowrap; }

.gev-pagination { margin-top: 52px; }
.gev-pagination .nav-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.gev-pagination a, .gev-pagination span { min-width: 42px; height: 42px; display: grid; place-items: center; padding: 0 12px; color: var(--gev-navy); background: var(--gev-paper); border: 1px solid var(--gev-line); text-decoration: none; }
.gev-pagination .current { color: var(--gev-paper); background: var(--gev-navy); }

.gev-archive-hero { padding: 85px 0; color: var(--gev-paper); background: linear-gradient(125deg, var(--gev-navy), var(--gev-blue)); }
.gev-archive-hero h1 { margin: 0 0 14px; font-family: var(--gev-serif); font-size: clamp(2.8rem, 6vw, 5.5rem); font-weight: 500; line-height: 1; }
.gev-archive-hero p { max-width: 700px; margin: 0; color: rgba(255,255,255,.74); }

.gev-single-hero { padding: clamp(80px, 10vw, 135px) 0 55px; color: var(--gev-paper); background: linear-gradient(135deg, #111137, var(--gev-navy) 58%, var(--gev-blue)); }
.gev-single-header { max-width: 950px; }
.gev-single-header h1 { margin: 0 0 25px; font-family: var(--gev-serif); font-size: clamp(3rem, 7vw, 6.5rem); font-weight: 500; line-height: .98; letter-spacing: -.045em; }
.gev-single-header .gev-meta { color: rgba(255,255,255,.7); }
.gev-single-image { width: min(800px, calc(100% - 40px)); max-height: 650px; margin: 0 auto -90px; position: relative; z-index: 2; overflow: hidden; box-shadow: var(--gev-shadow); }
.gev-single-image img { width: 100%; max-height: 650px; display: block; object-fit: cover; }
.gev-single-image + .gev-article-wrap { padding-top: 90px; }
.gev-article-wrap { padding: 90px 0; background: var(--gev-ivory); }
.gev-article { color: #242431; font-family: var(--gev-serif); font-size: clamp(1.08rem, 1.5vw, 1.22rem); line-height: 1.9; }
.gev-article > *:first-child { margin-top: 0; }
.gev-article h2, .gev-article h3, .gev-article h4 { color: var(--gev-navy); line-height: 1.16; }
.gev-article h2 { margin: 2.1em 0 .65em; font-size: clamp(2rem, 4vw, 3.15rem); font-weight: 500; }
.gev-article h3 { margin: 1.8em 0 .55em; font-size: 1.75rem; }
.gev-article p { margin: 0 0 1.45em; }
.gev-article a { text-decoration-color: var(--gev-gold); text-decoration-thickness: 2px; text-underline-offset: 3px; }
.gev-article blockquote { margin: 2.2em 0; padding: 30px 34px; color: var(--gev-navy); background: var(--gev-ivory); border-left: 5px solid var(--gev-gold); font-size: 1.35em; line-height: 1.55; }
.gev-article blockquote p:last-child { margin-bottom: 0; }
.gev-article ul, .gev-article ol { margin: 0 0 1.6em; padding-left: 1.35em; }
.gev-article li { margin-bottom: .55em; }
.gev-article figure { margin: 2.2em 0; }
.gev-article figcaption { color: var(--gev-muted); font-family: var(--gev-sans); font-size: .78rem; text-align: center; }
.gev-article .wp-block-pullquote { padding: 2em 0; border-top: 1px solid var(--gev-gold); border-bottom: 1px solid var(--gev-gold); }
.gev-article .wp-block-separator { margin: 3em auto; border-color: var(--gev-line); }
.gev-article .alignwide { width: min(1040px, calc(100vw - 40px)); max-width: none; margin-left: 50%; transform: translateX(-50%); }
.gev-article .alignfull { width: 100vw; max-width: none; margin-left: 50%; transform: translateX(-50%); }
.gev-tags { margin-top: 45px; padding-top: 25px; border-top: 1px solid var(--gev-line); font-family: var(--gev-sans); font-size: .78rem; }
.gev-tags a { display: inline-block; margin: 5px 4px; padding: 7px 11px; color: var(--gev-blue); background: var(--gev-blue-soft); text-decoration: none; }
.gev-author-box { margin-top: 55px; padding: 30px; display: grid; grid-template-columns: 78px 1fr; gap: 22px; align-items: center; background: var(--gev-ivory); border: 1px solid var(--gev-line); }
.gev-author-box img { border-radius: 50%; }
.gev-author-box h2 { margin: 0 0 8px; font-family: var(--gev-serif); font-size: 1.5rem; }
.gev-author-box p { margin: 0; color: var(--gev-muted); font-family: var(--gev-sans); font-size: .9rem; line-height: 1.6; }
.gev-post-nav { margin-top: 45px; padding-top: 30px; display: grid; grid-template-columns: 1fr 1fr; gap: 20px; border-top: 1px solid var(--gev-line); }
.gev-post-nav a { display: block; padding: 22px; color: var(--gev-navy); background: var(--gev-ivory); text-decoration: none; }
.gev-post-nav span { display: block; margin-bottom: 7px; color: var(--gev-muted); font-family: var(--gev-sans); font-size: .68rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }

.gev-page-hero { padding: 85px 0; color: var(--gev-paper); background: linear-gradient(125deg, var(--gev-navy), var(--gev-blue)); }
.gev-page-hero h1 { margin: 0; font-family: var(--gev-serif); font-size: clamp(3rem, 6vw, 5.5rem); font-weight: 500; }
.gev-page-content { padding: 85px 0; background: var(--gev-paper); }
.gev-elementor-content { background: var(--gev-paper); }
.gev-elementor-content .elementor { width: 100%; }

.gev-comments { margin-top: 65px; }
.gev-comments h2 { color: var(--gev-navy); font-family: var(--gev-serif); font-size: 2rem; }
.gev-comment-list { padding: 0; list-style: none; }
.gev-comment-list li { margin: 20px 0; padding: 24px; background: var(--gev-ivory); border: 1px solid var(--gev-line); }
.gev-comment-list .children { list-style: none; }
.comment-form label { display: block; margin-bottom: 5px; font-size: .75rem; font-weight: 800; text-transform: uppercase; }
.comment-form input:not([type="submit"]), .comment-form textarea { width: 100%; padding: 13px; border: 1px solid var(--gev-line); background: var(--gev-paper); }
.comment-form input[type="submit"] { padding: 14px 22px; color: var(--gev-navy); background: var(--gev-gold); border: 0; font-weight: 800; cursor: pointer; }

.gev-empty { padding: 50px; text-align: center; background: var(--gev-paper); border: 1px solid var(--gev-line); }
.gev-search-form { display: flex; max-width: 620px; }
.gev-search-form label { flex: 1; }
.gev-search-form input[type="search"] { width: 100%; height: 52px; padding: 0 16px; border: 1px solid var(--gev-line); }
.gev-search-form button { padding: 0 22px; color: var(--gev-navy); background: var(--gev-gold); border: 0; font-weight: 800; cursor: pointer; }

.gev-footer { color: rgba(255,255,255,.72); background: #0e0e2d; }
.gev-footer-main { padding: 62px 0 42px; display: grid; grid-template-columns: 1.15fr 1fr .7fr; gap: 50px; }
.gev-footer .gev-brand { color: var(--gev-paper); align-self: start; }
.gev-footer .gev-brand-copy small { color: rgba(255,255,255,.55); }
.gev-footer-nav ul { margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 12px 22px; list-style: none; }
.gev-footer-nav a { color: rgba(255,255,255,.75); font-size: .78rem; text-decoration: none; }
.gev-footer-nav a:hover { color: var(--gev-gold-light); }
.gev-footer-action p { margin-top: 0; }
.gev-footer-bottom { padding: 20px 0; display: flex; justify-content: space-between; gap: 20px; border-top: 1px solid rgba(255,255,255,.12); font-size: .72rem; }
.gev-footer-bottom p { margin: 0; }
.gev-footer-bottom a { color: var(--gev-gold-light); }

@media (max-width: 1040px) {
  .gev-menu-toggle { display: block; }
  .gev-nav { position: absolute; top: 100%; left: 0; right: 0; display: none; padding: 18px 20px 25px; background: var(--gev-paper); border-bottom: 1px solid var(--gev-line); box-shadow: 0 18px 30px rgba(20,20,54,.1); }
  .gev-nav.is-open { display: block; }
  .gev-nav ul { align-items: stretch; flex-direction: column; gap: 0; }
  .gev-nav a { display: block; padding: 12px 5px; }
  .gev-nav .gev-nav-cta > a { margin-top: 8px; text-align: center; }
  .gev-featured-card { grid-template-columns: 1fr; }
  .gev-featured-image { min-height: 380px; }
  .gev-post-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gev-footer-main { grid-template-columns: 1fr 1fr; }
  .gev-footer-action { grid-column: 1 / -1; }
}

@media (max-width: 782px) { .admin-bar .gev-header { top: 46px; } }
@media (max-width: 680px) {
  .gev-shell, .gev-narrow { width: min(100% - 30px, 1180px); }
  .gev-brand-copy small { display: none; }
  .gev-blog-hero h1 { font-size: clamp(3rem, 15vw, 4.8rem); }
  .gev-featured-image { min-height: 260px; }
  .gev-post-grid { grid-template-columns: 1fr; }
  .gev-single-header h1 { font-size: clamp(2.8rem, 14vw, 4.5rem); }
  .gev-single-image { width: calc(100% - 30px); margin-bottom: -55px; }
  .gev-single-image + .gev-article-wrap { padding-top: 55px; }
  .gev-author-box { grid-template-columns: 1fr; }
  .gev-post-nav { grid-template-columns: 1fr; }
  .gev-footer-main { grid-template-columns: 1fr; }
  .gev-footer-action { grid-column: auto; }
  .gev-footer-bottom { flex-direction: column; }
}
