/*
Theme Name: Vincenzo-Expedition
Theme URI: https://davidgagne.net/tags/wordpress/
Author: David Vincent Gagne
Author URI: https://davidgagne.net/
Description: Expedition: Field Recovery — the marketing site for the walking treasure hunt. Aged parchment, typewriter type, brass plaques, and the Professor. Every color is lifted straight from the game's Theme.swift. Bootstrap 5 and Font Awesome.
Version: 0.1.16
Requires at least: 6.0
Tested up to: 7.0
Requires PHP: 8.2
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: vincenzo-expedition
Tags: one-column, custom-menu, landing-page
*/

/*---------------------------------------------------------------
-    Title:    Vincenzo-Expedition Stylesheet
-    File:     /style.css
-    Author:   dvg@davidgagne.net
-              (c) 2026 David V. Gagne
-    Version:  0.1.0
-    Created:  MON AUG 10 2026 @ 02:08:00
-    Modified: MON AUG 10 2026 @ 02:08:00 EDT
---------------------------------------------------------------*/

/*-----------------------------------------------------
     Design tokens — hex values from the app's
     Theme.swift. Do not invent new colors; the game
     is the palette.
-----------------------------------------------------*/
:root {
     --ve-ink:          #29211a;     /* iron-gall body ink            */
     --ve-ink-faded:    #615447;     /* secondary text                */
     --ve-leather:      #59331c;     /* buttons, accents, "good"     */
     --ve-leather-deep: #43250f;
     --ve-gold:         #b88726;     /* currency, keylines            */
     --ve-crystal:      #4f8cad;     /* crystal blue                  */
     --ve-oxblood:      #991c17;     /* warnings                      */
     --ve-paper:        #d4bd8f;     /* paper floor                   */
     --ve-paper-light:  #e8d4ab;     /* gradient start                */
     --ve-paper-dark:   #d6ba8a;     /* gradient end                  */
     --ve-notice:       #fcf5e6;     /* near-opaque notice parchment  */
     --ve-stock:        #fcf7e6;     /* index-card cream              */
     --ve-rule-blue:    #8ca8c7;     /* index-card rules              */
     --ve-rule-red:     #cc5c52;     /* index-card head rule          */
     --ve-cream:        #f5eddb;     /* labels on leather             */
     --ve-brass-hi:     #d4b366;
     --ve-brass:        #c7a04f;
     --ve-brass-lo:     #946e2e;
     --ve-brass-ink:    #33240d;     /* engraved text on brass        */
     --ve-seal:         #8c2119;     /* wax                           */
     --ve-font:         "Special Elite", "American Typewriter", "Courier New", monospace;
}

/*-----------------------------------------------------
     Base — procedural parchment, exactly like the
     app: gradient floor, fiber noise, edge vignette.
-----------------------------------------------------*/
html {
     background-color: var(--ve-paper);
}
body {
     font-family: var(--ve-font);
     color: var(--ve-ink);
     overflow-x: clip;
     background-color: var(--ve-paper);
     background-image:
          url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)' opacity='0.055'/%3E%3C/svg%3E"),
          linear-gradient(168deg, var(--ve-paper-light) 0%, var(--ve-paper) 55%, var(--ve-paper-dark) 100%);
     font-size: 1.02rem;
     line-height: 1.8;
     min-height: 100vh;
}
body::before {
     content: "";
     position: fixed;
     inset: 0;
     pointer-events: none;
     z-index: 0;
     background: radial-gradient(ellipse 120% 90% at 50% 38%, transparent 58%, rgba(61, 36, 13, 0.16) 100%);
}
body > * {
     position: relative;
     z-index: 1;
}
::selection {
     background: var(--ve-gold);
     color: var(--ve-ink);
}
h1, h2, h3, h4, h5, h6 {
     font-family: var(--ve-font);
     color: var(--ve-ink);
     line-height: 1.25;
}
a {
     color: var(--ve-leather);
     text-decoration-color: rgba(184, 135, 38, 0.75);
     text-decoration-thickness: 2px;
     text-underline-offset: 3px;
}
a:hover {
     color: var(--ve-leather-deep);
     text-decoration-color: var(--ve-gold);
}
strong {
     color: var(--ve-leather-deep);
}
em {
     color: var(--ve-ink-faded);
}
:focus-visible {
     outline: 3px solid var(--ve-gold);
     outline-offset: 2px;
     border-radius: 2px;
}
.ve-skip-link {
     position: absolute;
     top: 0.5rem;
     left: 0.5rem;
     z-index: 100;
     background: var(--ve-notice);
     padding: 0.5rem 1rem;
     border-radius: 0.5rem;
}
img {
     max-width: 100%;
     height: auto;
}

/*-----------------------------------------------------
     Kickers, leads, shared type
-----------------------------------------------------*/
.ve-kicker {
     text-transform: uppercase;
     letter-spacing: 0.18em;
     font-size: 0.78rem;
     color: var(--ve-leather);
     margin-bottom: 0.75rem;
}
.ve-kicker::before {
     content: "";
     display: inline-block;
     width: 2.2rem;
     height: 2px;
     background: linear-gradient(90deg, var(--ve-brass), var(--ve-brass-lo));
     vertical-align: middle;
     margin-right: 0.7rem;
}
.ve-lead {
     font-size: 1.12rem;
     line-height: 1.85;
     color: var(--ve-ink);
     max-width: 58ch;
}
.ve-h2 {
     font-size: clamp(1.6rem, 3.2vw, 2.2rem);
     margin-bottom: 1.2rem;
}
.ve-aside {
     color: var(--ve-ink-faded);
     font-size: 0.95rem;
}

/*-----------------------------------------------------
     Buttons — leather pills, like Explore
-----------------------------------------------------*/
.ve-btn {
     display: inline-block;
     font-family: var(--ve-font);
     border-radius: 999px;
     padding: 0.75rem 1.7rem;
     text-decoration: none;
     line-height: 1.3;
     transition: transform 0.12s ease, box-shadow 0.12s ease, filter 0.12s ease;
}
.ve-btn--leather {
     color: var(--ve-cream);
     background: linear-gradient(180deg, #6d4126 0%, var(--ve-leather) 55%, var(--ve-leather-deep) 100%);
     border: 1px solid rgba(38, 28, 20, 0.65);
     box-shadow: 0 3px 0 rgba(38, 28, 20, 0.35), 0 6px 14px rgba(61, 36, 13, 0.25), inset 0 1px 0 rgba(245, 237, 219, 0.18);
}
.ve-btn--leather:hover {
     color: var(--ve-cream);
     filter: brightness(1.08);
     transform: translateY(-1px);
}
.ve-btn--paper {
     color: var(--ve-leather-deep);
     background: var(--ve-notice);
     border: 1px solid rgba(89, 51, 28, 0.45);
     box-shadow: 0 2px 0 rgba(89, 51, 28, 0.18), 0 4px 10px rgba(61, 36, 13, 0.14);
}
.ve-btn--paper:hover {
     transform: translateY(-1px);
}
.ve-btn--small {
     padding: 0.45rem 1.1rem;
     font-size: 0.9rem;
}

/*-----------------------------------------------------
     Masthead
-----------------------------------------------------*/
.ve-masthead {
     position: sticky;
     top: 0;
     z-index: 50;
     background: rgba(230, 209, 168, 0.92);
     -webkit-backdrop-filter: blur(6px);
     backdrop-filter: blur(6px);
     border-bottom: 3px double rgba(89, 51, 28, 0.4);
}
.ve-masthead__row {
     display: flex;
     align-items: center;
     justify-content: space-between;
     gap: 1rem;
     flex-wrap: wrap;
     padding: 0.6rem 0;
}
.ve-brand {
     display: flex;
     align-items: center;
     gap: 0.7rem;
     text-decoration: none;
}
.ve-brand__mark {
     width: 44px;
     height: 44px;
     border-radius: 10px;
     box-shadow: 0 1px 4px rgba(61, 36, 13, 0.35);
}
.ve-brand__words {
     display: flex;
     flex-direction: column;
     line-height: 1.05;
}
.ve-brand__name {
     font-size: 1.35rem;
     color: var(--ve-ink);
     letter-spacing: 0.02em;
}
.ve-brand__sub {
     font-size: 0.66rem;
     text-transform: uppercase;
     letter-spacing: 0.34em;
     color: var(--ve-leather);
}
.ve-nav {
     display: flex;
     align-items: center;
     gap: 1.1rem;
     flex-wrap: wrap;
}
.ve-nav__list {
     display: flex;
     gap: 1.1rem;
     list-style: none;
     margin: 0;
     padding: 0;
}
.ve-nav__link {
     text-decoration: none;
     color: var(--ve-ink);
     font-size: 0.98rem;
     border-bottom: 2px solid transparent;
     padding-bottom: 2px;
}
.ve-nav__link:hover,
.current-menu-item > .ve-nav__link {
     color: var(--ve-leather-deep);
     border-bottom-color: var(--ve-gold);
}
.ve-nav__cta i {
     margin-right: 0.25rem;
}

/*-----------------------------------------------------
     Hero
-----------------------------------------------------*/
.ve-hero {
     padding: clamp(3rem, 7vw, 5.5rem) 0 clamp(2rem, 4vw, 3.5rem);
}
.ve-hero__title {
     font-size: clamp(2.1rem, 4.6vw, 3.3rem);
     line-height: 1.18;
     margin-bottom: 1.4rem;
     text-wrap: balance;
}
.ve-hero .ve-phone {
     margin-inline: auto;
     max-width: 320px;
}

/*-----------------------------------------------------
     App Store badge
-----------------------------------------------------*/
.ve-badge {
     margin: 1.6rem 0 0;
}
.ve-badge__link {
     display: inline-block;
     transition: transform 0.12s ease;
}
.ve-badge__link:hover {
     transform: translateY(-2px);
}
.ve-badge__link img {
     height: 50px;
     width: auto;
     filter: drop-shadow(0 3px 6px rgba(41, 33, 26, 0.35));
}
.ve-badge__note {
     display: block;
     margin-top: 0.6rem;
     font-size: 0.85rem;
     color: var(--ve-ink-faded);
}
.ve-badge__beta {
     font-size: 1.02rem;
     padding: 0.85rem 1.9rem;
}
.ve-badge__beta i {
     margin-right: 0.4rem;
}

/*-----------------------------------------------------
     Phone frames
-----------------------------------------------------*/
.ve-phone {
     margin: 0 auto;
     max-width: 300px;
}
.ve-phone__frame {
     border-radius: clamp(2rem, 9vw, 2.6rem);
     border: 11px solid #241b12;
     outline: 1px solid rgba(184, 135, 38, 0.4);
     outline-offset: -1px;
     overflow: hidden;
     box-shadow: 0 18px 40px rgba(41, 33, 26, 0.38), 0 4px 10px rgba(41, 33, 26, 0.28);
     background: #241b12;
}
.ve-phone__screen {
     display: block;
     width: 100%;
     height: auto;
     aspect-ratio: 1320 / 2868;
     object-fit: cover;
}
.ve-phone__caption {
     text-align: center;
     margin-top: 1rem;
     font-size: 0.9rem;
     color: var(--ve-ink-faded);
}
.ve-feature .ve-phone,
.ve-museum .ve-phone {
     max-width: 290px;
}
.ve-feature--professor .ve-phone__frame {
     transform: rotate(-1.1deg);
}
.ve-museum .ve-phone__frame {
     transform: rotate(1.1deg);
}

/*-----------------------------------------------------
     How-it-works steps
-----------------------------------------------------*/
.ve-steps {
     padding: clamp(2rem, 4vw, 3.5rem) 0;
}
.ve-step {
     background: rgba(252, 245, 230, 0.72);
     border: 1px solid rgba(89, 51, 28, 0.28);
     border-radius: 1rem;
     padding: 2rem 1.6rem;
     height: 100%;
     box-shadow: 0 6px 16px rgba(61, 36, 13, 0.12);
}
.ve-step__icon {
     display: inline-grid;
     place-items: center;
     width: 64px;
     height: 64px;
     border-radius: 50%;
     font-size: 2rem;
     color: var(--ve-brass-ink);
     background: linear-gradient(135deg, var(--ve-brass) 0%, var(--ve-brass-lo) 45%, var(--ve-brass-hi) 70%, var(--ve-brass-lo) 100%);
     box-shadow: 0 2px 6px rgba(61, 36, 13, 0.35), inset 0 1px 0 rgba(245, 237, 219, 0.5);
     margin-bottom: 1.1rem;
}
.ve-step__title {
     font-size: 1.25rem;
     margin-bottom: 0.6rem;
}
.ve-step__copy {
     font-size: 0.95rem;
     color: var(--ve-ink-faded);
     margin: 0;
}

/*-----------------------------------------------------
     Feature sections
-----------------------------------------------------*/
.ve-feature,
.ve-museum,
.ve-world {
     padding: clamp(2.5rem, 6vw, 4.5rem) 0;
}
.ve-feature--travels {
     background:
          linear-gradient(rgba(143, 99, 48, 0.38), rgba(143, 99, 48, 0.38)),
          radial-gradient(ellipse at center, rgba(61, 36, 13, 0) 40%, rgba(61, 36, 13, 0.35) 100%),
          url("assets/img/chart-bg.webp") center / cover no-repeat;
     border-top: 3px double rgba(89, 51, 28, 0.4);
     border-bottom: 3px double rgba(89, 51, 28, 0.4);
}
.ve-panel {
     background: rgba(252, 245, 230, 0.88);
     -webkit-backdrop-filter: blur(3px);
     backdrop-filter: blur(3px);
     border: 1px solid rgba(89, 51, 28, 0.35);
     border-radius: 1rem;
     padding: clamp(1.4rem, 3vw, 2.2rem);
     box-shadow: 0 14px 34px rgba(41, 33, 26, 0.3);
}
.ve-panel > :last-child {
     margin-bottom: 0;
}
.ve-feature--travels .ve-phone__caption {
     color: var(--ve-notice);
     text-shadow: 0 1px 3px rgba(41, 33, 26, 0.8);
}

/*-----------------------------------------------------
     Oxblood warning card
-----------------------------------------------------*/
.ve-warning {
     background: var(--ve-notice);
     border: 1px solid rgba(153, 28, 23, 0.4);
     border-left: 5px solid var(--ve-oxblood);
     border-radius: 0.6rem;
     padding: 1rem 1.3rem;
     margin: 1.4rem 0;
     box-shadow: 0 4px 12px rgba(61, 36, 13, 0.12);
}
.ve-warning p {
     margin: 0;
     color: var(--ve-oxblood);
     font-size: 0.98rem;
}

/*-----------------------------------------------------
     Museum stats — brass plaques
-----------------------------------------------------*/
.ve-stats {
     display: flex;
     gap: 1rem;
     flex-wrap: wrap;
     margin-top: 1.8rem;
}
.ve-stat {
     flex: 1 1 140px;
     text-align: center;
     padding: 1rem 0.8rem 0.9rem;
     border-radius: 0.5rem;
     background: linear-gradient(135deg, var(--ve-brass) 0%, var(--ve-brass-lo) 40%, var(--ve-brass-hi) 65%, var(--ve-brass-lo) 100%);
     box-shadow: 0 3px 8px rgba(61, 36, 13, 0.3), inset 0 1px 0 rgba(245, 237, 219, 0.5), inset 0 -1px 0 rgba(51, 36, 13, 0.4);
     color: var(--ve-brass-ink);
}
.ve-stat__number {
     display: block;
     font-size: 1.9rem;
     line-height: 1.1;
     text-shadow: 0 1px 0 rgba(245, 237, 219, 0.4);
}
.ve-stat__label {
     display: block;
     font-size: 0.72rem;
     text-transform: uppercase;
     letter-spacing: 0.12em;
     margin-top: 0.3rem;
}

/*-----------------------------------------------------
     Typed index cards
-----------------------------------------------------*/
.ve-card {
     background:
          repeating-linear-gradient(
               to bottom,
               transparent 0,
               transparent 31px,
               rgba(140, 168, 199, 0.4) 31px,
               rgba(140, 168, 199, 0.4) 32px
          ),
          var(--ve-stock);
     border: 1px solid rgba(89, 51, 28, 0.25);
     border-radius: 0.4rem;
     box-shadow: 0 10px 24px rgba(61, 36, 13, 0.18), 0 2px 6px rgba(61, 36, 13, 0.12);
     padding: 1.4rem 1.5rem 1.2rem;
     transform: rotate(-0.4deg);
}
.ve-card__head {
     text-transform: uppercase;
     letter-spacing: 0.22em;
     font-size: 0.85rem;
     color: var(--ve-ink);
     border-bottom: 2px solid var(--ve-rule-red);
     padding-bottom: 0.5rem;
     margin-bottom: 0.9rem;
}
.ve-card__body {
     font-size: 0.95rem;
     margin: 0;
}
.ve-card__checks {
     list-style: none;
     margin: 0;
     padding: 0;
}
.ve-card__checks li {
     padding-left: 2.4em;
     position: relative;
     line-height: 2;
}
.ve-card__checks li::before {
     content: "[x]";
     position: absolute;
     left: 0;
     color: var(--ve-leather);
}
.ve-card__sign {
     text-align: right;
     color: var(--ve-ink-faded);
     margin: 0.9rem 0 0;
     font-size: 0.9rem;
}

/*-----------------------------------------------------
     Closing CTA
-----------------------------------------------------*/
.ve-cta {
     padding: clamp(3rem, 7vw, 5rem) 0 clamp(3.5rem, 8vw, 5.5rem);
     text-align: center;
}
.ve-cta__mark {
     border-radius: 22px;
     box-shadow: 0 6px 18px rgba(61, 36, 13, 0.35);
     margin-bottom: 1.4rem;
}
.ve-cta__title {
     font-size: clamp(1.7rem, 3.6vw, 2.5rem);
     margin-bottom: 0.4rem;
}
.ve-cta__sub {
     font-size: 1.15rem;
     color: var(--ve-ink-faded);
}
.ve-cta .ve-badge {
     margin-top: 1.4rem;
}
.ve-cta__closer {
     margin-top: 2rem;
     font-size: 1.05rem;
     letter-spacing: 0.06em;
     color: var(--ve-leather);
}

/*-----------------------------------------------------
     Guide pages (How to Play, Support, Privacy)
-----------------------------------------------------*/
.ve-guide__hero {
     padding: clamp(2.5rem, 5vw, 4rem) 0 clamp(1.5rem, 3vw, 2.5rem);
     border-bottom: 3px double rgba(89, 51, 28, 0.35);
     margin-bottom: clamp(2rem, 4vw, 3rem);
}
.ve-guide__title {
     font-size: clamp(2rem, 4.4vw, 3rem);
     margin-bottom: 1rem;
}
.ve-guide__body {
     max-width: 76ch;
}
.ve-guide__section {
     margin-bottom: clamp(2.5rem, 5vw, 3.5rem);
     scroll-margin-top: 6.5rem;
}
.ve-guide__section h2 {
     font-size: 1.6rem;
     margin-bottom: 1rem;
     padding-bottom: 0.5rem;
     border-bottom: 2px solid rgba(184, 135, 38, 0.55);
}
.ve-guide__section h3 {
     font-size: 1.15rem;
     margin: 1.6rem 0 0.6rem;
     color: var(--ve-leather-deep);
}
.ve-guide__section ul,
.ve-guide__section ol {
     padding-left: 1.3rem;
}
.ve-guide__section li {
     margin-bottom: 0.55rem;
}
.ve-guide__section li::marker {
     color: var(--ve-gold);
}
.ve-guide__closer {
     color: var(--ve-ink-faded);
     font-style: italic;
}
.ve-guide__cta {
     text-align: center;
     border-top: 3px double rgba(89, 51, 28, 0.35);
     padding-top: 2rem;
}
.ve-guide__search {
     max-width: 30rem;
     margin-top: 1rem;
}

/*-----------------------------------------------------
     Guide table of contents
-----------------------------------------------------*/
.ve-toc {
     margin-bottom: 2rem;
}
.ve-toc__list {
     margin: 0;
     padding-left: 1.4rem;
}
.ve-toc__list li {
     line-height: 2.05;
}
.ve-toc__list li::marker {
     color: var(--ve-leather);
     font-size: 0.85em;
}
.ve-toc__list a {
     text-decoration: none;
}
.ve-toc__list a:hover {
     text-decoration: underline;
     text-decoration-color: var(--ve-gold);
}
@media (min-width: 992px) {
     .ve-toc {
          position: sticky;
          top: 6rem;
     }
}

/*-----------------------------------------------------
     Blog — Field Notes
-----------------------------------------------------*/
.ve-posts {
     max-width: 76ch;
}
.ve-note {
     background: rgba(252, 245, 230, 0.72);
     border: 1px solid rgba(89, 51, 28, 0.25);
     border-radius: 0.8rem;
     padding: 1.6rem 1.8rem;
     margin-bottom: 1.6rem;
     box-shadow: 0 5px 14px rgba(61, 36, 13, 0.1);
}
.ve-note__date {
     font-size: 0.8rem;
     text-transform: uppercase;
     letter-spacing: 0.14em;
     color: var(--ve-ink-faded);
     margin-bottom: 0.4rem;
}
.ve-note__title {
     font-size: 1.4rem;
     margin-bottom: 0.6rem;
}
.ve-note__title a {
     text-decoration: none;
}
.ve-note__more a {
     font-size: 0.95rem;
}
.ve-none {
     padding: 2rem 0 4rem;
}
.ve-prose {
     max-width: 72ch;
     margin-bottom: 3rem;
}
.ve-prose img {
     border-radius: 0.6rem;
     box-shadow: 0 6px 16px rgba(61, 36, 13, 0.2);
}
.navigation.pagination,
.navigation.post-navigation {
     margin: 2rem 0 3rem;
}
.navigation .nav-links {
     display: flex;
     gap: 0.8rem;
     flex-wrap: wrap;
}
.navigation .page-numbers {
     display: inline-block;
     padding: 0.3rem 0.85rem;
     background: var(--ve-notice);
     border: 1px solid rgba(89, 51, 28, 0.3);
     border-radius: 999px;
     text-decoration: none;
}
.navigation .page-numbers.current {
     background: var(--ve-leather);
     color: var(--ve-cream);
}

/*-----------------------------------------------------
     Search form + comments
-----------------------------------------------------*/
.ve-searchform {
     display: flex;
     gap: 0.6rem;
     align-items: center;
}
.ve-searchform__field {
     flex: 1;
     font-family: var(--ve-font);
     background: var(--ve-notice);
     border: 1px solid rgba(89, 51, 28, 0.4);
     border-radius: 999px;
     padding: 0.55rem 1.2rem;
     color: var(--ve-ink);
}
.ve-searchform__field:focus {
     outline: 3px solid var(--ve-gold);
     outline-offset: 1px;
}
.ve-comments {
     max-width: 72ch;
     margin: 3rem 0;
}
.ve-comments__title {
     font-size: 1.3rem;
     margin-bottom: 1.2rem;
}
.ve-comments__list {
     list-style: none;
     padding-left: 0;
}
.ve-comments .comment-body {
     background: rgba(252, 245, 230, 0.72);
     border: 1px solid rgba(89, 51, 28, 0.25);
     border-radius: 0.8rem;
     padding: 1.1rem 1.3rem;
     margin-bottom: 1.1rem;
}
.ve-comments input[type="text"],
.ve-comments input[type="email"],
.ve-comments input[type="url"],
.ve-comments textarea {
     font-family: var(--ve-font);
     background: var(--ve-notice);
     border: 1px solid rgba(89, 51, 28, 0.4);
     border-radius: 0.6rem;
     padding: 0.55rem 0.9rem;
     width: 100%;
     margin-bottom: 0.9rem;
     color: var(--ve-ink);
}

/*-----------------------------------------------------
     404
-----------------------------------------------------*/
.ve-404 {
     padding: clamp(3rem, 8vw, 6rem) 0;
}
.ve-404__mark {
     border-radius: 26px;
     box-shadow: 0 8px 22px rgba(61, 36, 13, 0.35);
     margin-bottom: 1.6rem;
}
.ve-404__title {
     font-size: clamp(2rem, 4.5vw, 3rem);
     margin-bottom: 1rem;
}
.ve-404 .ve-lead {
     margin-inline: auto;
}
.ve-404__actions {
     display: flex;
     gap: 1rem;
     justify-content: center;
     flex-wrap: wrap;
     margin: 1.8rem 0;
}
.ve-404__search {
     max-width: 26rem;
     margin: 0 auto;
}

/*-----------------------------------------------------
     Footer — dark leather
-----------------------------------------------------*/
.ve-footer {
     margin-top: clamp(2rem, 5vw, 4rem);
     background:
          linear-gradient(rgba(38, 24, 13, 0.86), rgba(30, 19, 10, 0.92)),
          url("assets/img/leather.webp") center / cover;
     color: var(--ve-cream);
     border-top: 4px solid var(--ve-brass-lo);
     padding: clamp(2.5rem, 5vw, 4rem) 0 2rem;
}
.ve-footer a {
     color: var(--ve-cream);
     text-decoration-color: rgba(184, 135, 38, 0.6);
}
.ve-footer a:hover {
     color: #fff;
     text-decoration-color: var(--ve-gold);
}
.ve-footer__grid {
     display: grid;
     grid-template-columns: 1.4fr 1fr 1.4fr;
     gap: 2.5rem;
}
.ve-footer__mark {
     border-radius: 16px;
     box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5);
     margin-bottom: 1rem;
}
.ve-footer__name {
     font-size: 1.15rem;
     margin-bottom: 0.4rem;
}
.ve-footer__line {
     color: rgba(245, 237, 219, 0.75);
     font-size: 0.9rem;
}
.ve-footer__heading {
     text-transform: uppercase;
     letter-spacing: 0.2em;
     font-size: 0.75rem;
     color: var(--ve-gold);
     margin-bottom: 0.9rem;
}
.ve-footer__nav {
     list-style: none;
     margin: 0;
     padding: 0;
}
.ve-footer__nav .ve-nav__link {
     color: var(--ve-cream);
     display: inline-block;
     padding: 0.15rem 0;
}
.ve-footer__fine {
     font-size: 0.8rem;
     color: rgba(245, 237, 219, 0.7);
     margin-bottom: 0.6rem;
}
.ve-footer .ve-badge {
     margin-top: 0.6rem;
}
.ve-footer .ve-badge__link img {
     height: 44px;
}
@media (max-width: 767px) {
     .ve-footer__grid {
          grid-template-columns: 1fr;
          gap: 1.8rem;
     }
}

/*-----------------------------------------------------
     Motion respect
-----------------------------------------------------*/
@media (prefers-reduced-motion: reduce) {
     .ve-btn,
     .ve-badge__link {
          transition: none;
     }
     .ve-btn--leather:hover,
     .ve-btn--paper:hover,
     .ve-badge__link:hover {
          transform: none;
     }
}

/*-----------------------------------------------------
     Small screens
-----------------------------------------------------*/
@media (max-width: 767px) {
     .ve-masthead {
          position: static;
     }
}
@media (max-width: 575px) {
     .ve-masthead__row {
          justify-content: center;
          text-align: center;
     }
     .ve-phone {
          max-width: 250px;
     }
     .ve-stats {
          gap: 0.7rem;
     }
     .ve-card {
          transform: none;
     }
}
