@charset "UTF-8"; /*
Theme Name:Spire Street Template Wordpress Theme
Author:Chelsea Brown
Author URI:https://focusedcre.com
Description:Custom wordpress theme for Spire Street
Version:1
*/:root{--ink:#132d38; --ink-deep:#0a2029; --blue:#367184; --sky:#c8dde2; --ice:#eef4f4; --warm:#f5f2ec; --white:#fff; --line:rgba(19,45,56,0.18); --serif:"Playfair Display",Georgia,serif; --sans:"Montserrat",Arial,sans-serif;}
:root{--orange:#e66925; --orange-light:#e66925; --orange-soft:#fbe8dc; --blue:var(--orange); --sky:#f3c8ae; --ice:#faf4ef; --serif:"Montserrat",Arial,sans-serif; --accent-serif:"Playfair Display",Georgia,serif;}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0; color:var(--ink); background:#fff; font-family:var(--sans); font-size:15px; line-height:1.7;}
body.mobile-nav-active{overflow:hidden;}
a{text-decoration:none; color:inherit;}
img{max-width:100%; height:auto;}
.spire-shell{width:min(1320px,calc(100% - 96px)); margin:auto;}
.default-page-content{padding:200px 0 140px;}
.default-page-content__header{display:flex; min-height:180px; align-items:center; justify-content:center; text-align:center;}
.default-page-content__header h1{margin:0; font:500 clamp(42px,5vw,72px)/1.08 var(--serif); letter-spacing:-0.03em;}
.default-page-content__body{max-width:820px; margin:0 auto; font-size:16px; line-height:1.85; color:#425960;}
.default-page-content__body h2{margin:44px 0 16px; font-size:clamp(22px,2.4vw,30px); font-weight:500; line-height:1.25; letter-spacing:-0.025em; color:var(--ink);}
.default-page-content__body h2:first-child{margin-top:0;}
.default-page-content__body p{margin:0 0 20px;}
.default-page-content__body ul,.default-page-content__body ol{margin:0 0 24px; padding-left:24px;}
.default-page-content__body li{margin-bottom:10px; line-height:1.7;}
.default-page-content__body a{color:var(--orange); text-decoration:underline; text-underline-offset:3px; transition:color 200ms ease;}
.default-page-content__body a:hover,.default-page-content__body a:focus-visible{color:var(--ink);}
.default-page-content__body .privacy-contact-details{line-height:1.9; margin-top:12px;}
.default-page-content__body .default-page-content__date{font-size:14px; color:#6f8288; margin-bottom:28px;}
.section-pad{padding:140px 0;}
.section-kicker,.section-heading__content > p:first-child{margin:0 0 24px; font-size:11px; font-weight:700; line-height:1; text-transform:uppercase; letter-spacing:0.24em;}
.section-kicker:before,.section-heading__content > p:first-child:before{content:""; display:inline-block; width:34px; height:1px; margin:0 13px 3px 0; background:currentColor;}
.section-heading{display:grid; grid-template-columns:1.5fr 0.65fr; gap:80px; align-items:end; margin-bottom:76px;}
.section-heading h2,.spire-about__copy > h2,.spire-cta h2{margin:0; font:500 clamp(42px,5vw,72px)/1.08 var(--serif); letter-spacing:-0.03em;}
.section-heading h2 em,.spire-about__copy > h2 em,.spire-cta h2 em{font-weight:400; color:var(--blue);}
.section-heading > p{margin:0 0 8px; max-width:470px;}
.spire-services .section-heading{display:block;}
.spire-services .section-heading__content{display:grid; grid-template-columns:1.5fr 0.65fr; align-items:end;}
.spire-services .section-heading__content > p:first-child,.spire-services .section-heading__content > h2{grid-column:1;}
.spire-services .section-heading__content > p:not(:first-child){grid-column:2; grid-row:1 / span 2; align-self:end; margin:0 0 8px; max-width:470px;}
.spire-link,.spire-hero__content a{display:inline-flex; align-items:center; gap:28px; padding-bottom:8px; border-bottom:1px solid currentColor; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:0.14em; transition:color 280ms ease,border-color 280ms ease,transform 280ms ease;}
.spire-link svg,.service-row > a svg,.property-card__image a svg,.investment-card a svg,.insight-list a svg,.spire-button svg{width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.4; transition:transform 280ms ease,stroke 280ms ease;}
.spire-link:hover,.spire-hero__content a:hover,.spire-about__links .spire-link:hover,.investment-link:hover,.hero-theme-light .spire-link--light:hover,.hero-theme-light .spire-hero__content a:hover{color:rgb(230,105,37); border-color:rgb(230,105,37); transform:translateY(-2px);}
.spire-link:hover svg,.spire-about__links .spire-link:hover svg,.investment-link:hover svg,.hero-theme-light .spire-link--light:hover svg,.hero-theme-light .spire-hero__content a:hover svg,.service-row > a:hover svg,.property-card__image a:hover svg,.investment-card a:hover svg,.insight-list a:hover svg,.spire-button:hover svg{transform:translateX(5px);}
.spire-link--light{color:#fff;}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0; color:var(--ink); background:#fff; font-family:var(--sans); font-size:15px; line-height:1.7;}
body.mobile-nav-active{overflow:hidden;}
a{text-decoration:none; color:inherit;}
img{max-width:100%; height:auto;}
.spire-shell{width:min(1320px,calc(100% - 96px)); margin:auto;}
.section-pad{padding:140px 0;}
.section-kicker,.section-heading__content > p:first-child{margin:0 0 24px; font-size:13px; font-weight:700; line-height:1; text-transform:uppercase; letter-spacing:0.22em;}
.section-kicker:before,.section-heading__content > p:first-child:before{content:""; display:inline-block; width:34px; height:1px; margin:0 13px 4px 0; background:currentColor;}
@media (max-width:767px){
  .section-kicker{line-height:normal !important;}
  .section-kicker, .section-heading__content > p:first-child{margin:0 0 16px; font-size:11px; letter-spacing:0.2em;}
  .section-pad{padding:70px 0;}
  .section-heading{margin-bottom:34px; gap:18px;}
}
.section-heading{display:grid; grid-template-columns:1.5fr 0.65fr; gap:80px; align-items:end; margin-bottom:76px;}
.section-heading h2,.spire-about__copy > h2,.spire-cta h2{margin:0; font:500 clamp(42px,5vw,72px)/1.08 var(--serif); letter-spacing:-0.03em;}
.section-heading h2 em,.spire-about__copy > h2 em,.spire-cta h2 em{font-weight:400; color:var(--blue);}
.section-heading > p{margin:0 0 8px; max-width:470px;}
.spire-link,.spire-hero__content a{display:inline-flex; align-items:center; gap:28px; padding-bottom:8px; border-bottom:1px solid currentColor; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:0.14em; transition:color 280ms ease,border-color 280ms ease,transform 280ms ease;}
.spire-link svg,.service-row > a svg,.property-card__image a svg,.investment-card a svg,.insight-list a svg,.spire-button svg{width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.4; transition:transform 280ms ease,stroke 280ms ease;}
.spire-link:hover,.spire-hero__content a:hover,.spire-about__links .spire-link:hover,.investment-link:hover,.hero-theme-light .spire-link--light:hover,.hero-theme-light .spire-hero__content a:hover{color:rgb(230,105,37); border-color:rgb(230,105,37); transform:translateY(-2px);}
.spire-link:hover svg,.spire-about__links .spire-link:hover svg,.investment-link:hover svg,.hero-theme-light .spire-link--light:hover svg,.hero-theme-light .spire-hero__content a:hover svg,.service-row > a:hover svg,.property-card__image a:hover svg,.investment-card a:hover svg,.insight-list a:hover svg,.spire-button:hover svg{transform:translateX(5px);}
.spire-link--light{color:#fff;}
/* Header */

#header{height:96px; padding:0 48px; z-index:1000; background:transparent; transition:0.35s;}
#header:after{content:""; position:absolute; left:48px; right:48px; bottom:0; border-bottom:1px solid rgba(255,255,255,0.25);}
#header.header-scrolled{height:78px; background:rgba(255,255,255,0.96); box-shadow:0 8px 30px rgba(10,32,41,0.08);}
#header.header-scrolled:after{border-color:rgba(19,45,56,0.12);}
#header .container-fluid{max-width:1500px; padding:0;}
.logo{position:relative; z-index:2;}
.logo img{width:155px; height:auto;}
.logo-color{display:none;}
.header-scrolled .logo-color{display:block;}
.header-scrolled .logo-white{display:none;}
.navbar{padding:0;}
.navbar ul{display:flex; align-items:center; gap:34px; margin:0; padding:0; list-style:none;}
.navbar a{position:relative; padding:12px 0; color:#fff; font-size:15px; font-weight:500; text-transform:none; letter-spacing:0;}
.navbar a:after{content:""; position:absolute; left:0; right:100%; bottom:4px; border-bottom:1px solid var(--orange); transition:0.3s;}
.navbar a:hover:after,.navbar a:focus-visible:after,.navbar .current-menu-item > a:after,.navbar .current_page_item > a:after,.navbar .current-menu-ancestor > a:after,.navbar .current_page_ancestor > a:after{right:0;}
.header-scrolled .navbar a{color:var(--ink);}
.mobile-nav-toggle{display:none; color:#fff; font-size:22px; cursor:pointer; padding:12px; margin-right:-12px; line-height:1;}
.header-scrolled .mobile-nav-toggle{color:var(--ink);}
body.mobile-nav-active .mobile-nav-toggle,body.mobile-nav-active.header-scrolled .mobile-nav-toggle,#header .mobile-nav-hide{color:#fff !important;}
/* Hero */

.spire-hero{position:relative; height:max(700px,100vh); min-height:700px; overflow:hidden; background:var(--ink-deep); color:#fff;}
.spire-hero__slides,.spire-hero__slide{position:absolute; inset:0;}
.spire-hero__slide{visibility:hidden; opacity:0; transition:opacity 1.3s ease,visibility 1.3s;}
.spire-hero__slide:before{content:""; position:absolute; inset:0; background-image:linear-gradient(
      90deg,rgba(5,17,23,0.9) 0%,rgba(5,17,23,0.54) 44%,rgba(5,17,23,0.1) 78%
    ),var(--hero-image); background-size:cover; background-position:center; transform:scale(1); transition:transform 8s linear;}
.spire-hero__slide:after{content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(3,16,22,0.58),transparent 44%);}
.spire-hero__slide.is-active{visibility:visible; opacity:1;}
.spire-hero__slide.is-active:before{transform:scale(1.08);}
.spire-hero__content{position:relative; z-index:2; width:min(1320px,calc(100% - 96px)); margin:auto; padding-top:clamp(190px,23vh,245px);}
.spire-hero__content > p:first-child{margin:0 0 24px; font-size:13px; font-weight:700;  text-transform:uppercase; letter-spacing:0.22em;}
.spire-hero__content > p:first-child:before{content:""; display:inline-block; width:34px; height:1px; margin:0 13px 4px 0; background:currentColor;}
.spire-hero__content h1,.spire-hero__content h2{margin:0 0 27px; font:500 clamp(64px,7.2vw,108px)/0.94 var(--serif); letter-spacing:-0.045em;}
.spire-hero__content h1 em,.spire-hero__content h2 em{font-weight:400; color:#b8d9df;}
.spire-hero__content > h1 + p,.spire-hero__content > h2 + p{max-width:570px; margin:0 0 42px; color:rgba(255,255,255,0.72); font-size:16px;}
.spire-hero__content a::after{content:""; flex:0 0 20px; width:20px; height:20px; background-color:currentColor; -webkit-mask:url("data:image/svg+xml,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 10h13M11 4l6 6-6 6' fill='none' stroke='%23000' stroke-width='1.4'/%3E%3C/svg%3E") center / 20px 20px no-repeat; mask:url("data:image/svg+xml,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 10h13M11 4l6 6-6 6' fill='none' stroke='%23000' stroke-width='1.4'/%3E%3C/svg%3E") center / 20px 20px no-repeat; transition:transform 280ms ease,background-color 280ms ease;}
.spire-hero__content a:hover::after{transform:translateX(5px);}
.spire-hero__rail{position:absolute; z-index:3; right:48px; bottom:54px; display:flex; gap:3px;}
.spire-hero__rail button{position:relative; width:138px; padding:17px 5px; border:0; border-top:1px solid rgba(255,255,255,0.25); background:none; color:rgba(255,255,255,0.55); font:600 9px var(--sans); text-align:left; text-transform:uppercase; letter-spacing:0.16em; cursor:pointer;}
.spire-hero__rail button:after{content:""; position:absolute; top:-1px; left:0; width:0; border-top:2px solid #fff;}
.spire-hero__rail button.is-active{color:#fff;}
.spire-hero__rail button.is-active:after{animation:heroProgress 7s linear forwards;}
.spire-hero__rail span{margin-right:13px;}
.spire-hero__scroll{position:absolute; z-index:3; bottom:61px; left:48px; color:rgba(255,255,255,0.55); font-size:9px; text-transform:uppercase; letter-spacing:0.18em;}
.spire-hero__scroll span{display:inline-block; width:54px; margin:0 13px 3px 0; border-top:1px solid rgba(255,255,255,0.45);}
@keyframes heroProgress{
  to{width:100%;}
}
/* About */

.spire-about{overflow:hidden; background:var(--warm);}
.spire-about__grid{display:grid; grid-template-columns:0.95fr 1.05fr; gap:10%; align-items:center;}
.spire-about__visual{position:relative; padding:0 0 62px 40px;}
.spire-about__visual:before{content:""; position:absolute; top:45px; left:0; width:78%; height:82%; border:1px solid #8fb0b8;}
.spire-about__image{position:relative; z-index:1; height:610px;}
.spire-about__stamp{position:absolute; z-index:2; right:-24px; bottom:22px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; width:190px; height:190px; padding:24px; border-radius:50%; background:var(--ink); color:#fff; text-align:center;}
.spire-about__stamp strong{font:400 72px/0.85 var(--serif);}
.spire-about__stamp span{font-size:9px; text-transform:uppercase; letter-spacing:0.18em; line-height:1.5;}
.spire-about__copy > h2{font-size:clamp(40px,4.3vw,64px); margin-bottom:30px;}
.spire-about__copy > p:first-child{margin:0 0 24px; color:inherit; font-size:13px; font-weight:700; line-height:1; text-transform:uppercase; letter-spacing:0.22em;}
.spire-about__copy > p:first-child:before{content:""; display:inline-block; width:34px; height:1px; margin:0 13px 4px 0; background:currentColor;}
/* Services */

.spire-services{background:#fff;}
.spire-services__list{border-top:1px solid var(--line);}
.service-row{display:grid; grid-template-columns:70px 220px 1fr 54px; gap:40px; align-items:center; min-height:270px; border-bottom:1px solid var(--line);}
.service-row__number{align-self:start; padding-top:45px; color:var(--blue); font-size:10px; letter-spacing:0.15em;}
.service-row__icon{color:var(--blue);}
.service-row__icon svg{width:180px; height:150px; fill:none; stroke:currentColor; stroke-width:1.15; stroke-linecap:round; stroke-linejoin:round;}
.service-row__icon path{stroke-dasharray:900; stroke-dashoffset:900; transition:stroke-dashoffset 5s ease;}
.service-row.is-visible .service-row__icon path{stroke-dashoffset:0;}
.service-row__copy{display:grid; grid-template-columns:minmax(220px,0.8fr) 1fr; gap:65px; align-items:center;}
.service-row h3{margin:0; font:500 38px/1.1 var(--serif);}
.service-row p{max-width:530px; margin:0; color:#5f747d;}
.service-row > a,.property-card__image a,.investment-card a,.insight-list a{display:grid; place-items:center; width:52px; height:52px; border:1px solid var(--line); border-radius:50%; transition:background-color 280ms ease,border-color 280ms ease,color 280ms ease,transform 280ms ease;}
.service-row > a:hover,.property-card__image a:hover,.investment-card a:hover{background-color:rgb(230,105,37); border-color:rgb(230,105,37); color:#fff; transform:translateY(-2px);}
.insight-list a:hover{background-color:rgb(230,105,37); border-color:rgb(230,105,37); color:#fff; transform:translateY(calc(-50% - 2px));}
/* Availabilities */

.spire-availability{overflow:hidden; background:var(--ink); color:#fff;}
.section-heading--light h2 em{color:#b9dce2;}
.section-heading--light .section-kicker,.section-heading--light .section-heading__content > p:first-child{color:#b9dce2;}
.carousel-controls{display:flex; gap:12px; justify-content:flex-end;}
.carousel-controls button{width:54px; height:54px; border:1px solid rgba(255,255,255,0.35); border-radius:50%; background:transparent; color:#fff; font-size:20px; cursor:pointer; transition:background-color 280ms ease,border-color 280ms ease,color 280ms ease,transform 280ms ease;}
.carousel-controls button:hover{background-color:rgb(230,105,37); border-color:rgb(230,105,37); color:#fff; transform:translateY(-2px);}
.property-track-wrap{overflow:visible;}
.property-track{display:flex; gap:26px; transition:transform 0.65s cubic-bezier(0.22,0.61,0.36,1);}
.property-card{flex:0 0 calc((100% - 52px) / 3);}
.property-card__image{position:relative; height:370px; margin-bottom:27px; background-size:cover; background-position:center; overflow:hidden;}
.property-card__image:before{content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(4,20,27,0.6),transparent 60%); transition:0.45s;}
.property-card__image:hover:before{background:rgba(4,20,27,0.2);}
.property-card__image > span{position:absolute; top:22px; left:22px; font:500 35px var(--serif);}
.property-card__image a{position:absolute; right:22px; bottom:22px; border-color:rgba(255,255,255,0.65);}
.property-card__meta{display:flex; justify-content:space-between; color:#a9cbd2; font-size:9px; text-transform:uppercase; letter-spacing:0.14em;}
.property-card h3{margin:12px 0 0; font:500 27px/1.25 var(--serif);}
.property-card > p{margin:2px 0; color:rgba(255,255,255,0.54); font-size:12px;}
.availability-link{margin-top:54px;}
/* Investments */

.spire-investments{background:var(--ice);}
.investment-grid{display:grid; grid-template-columns:1.32fr 1fr; grid-template-rows:335px 335px; gap:24px;}
.investment-card{position:relative; overflow:hidden; padding:28px; color:#fff; background:var(--ink);}
.investment-card:before{content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(3,21,28,0.9),rgba(3,21,28,0.05) 65%),var(--card-image) center/cover; transition:transform 0.8s;}
.investment-card:hover:before{transform:scale(1.04);}
.investment-card--large{grid-row:1/3;}
.investment-card > span{position:relative; font-size:9px; text-transform:uppercase; letter-spacing:0.18em;}
.investment-card > div{position:absolute; z-index:1; left:32px; right:32px; bottom:32px;}
.investment-card p{margin:0 0 7px; color:#b9dce2; font-size:9px; text-transform:uppercase; letter-spacing:0.16em;}
.investment-card h3{margin:0; font:500 30px/1.15 var(--serif);}
.investment-card--large h3{font-size:43px;}
.investment-card a{position:absolute; right:0; bottom:0; border-color:rgba(255,255,255,0.6);}
/* Insights */

.spire-insights{background:#fff;}
.insights-grid{display:grid; grid-template-columns:1.1fr 0.9fr; gap:8%;}
.insight-feature__image{height:410px; background:url("assets/img/hero-retail.png") center/cover;}
.insight-feature__content{padding:32px 34px 0;}
.meta{color:var(--blue); font-size:9px; text-transform:uppercase; letter-spacing:0.16em;}
.meta span{margin-left:20px; color:#78909a;}
.insight-feature h3{max-width:620px; margin:17px 0 26px; font:500 34px/1.25 var(--serif);}
.insight-list{border-top:1px solid var(--line);}
.insight-list article{position:relative; padding:27px 80px 30px 0; border-bottom:1px solid var(--line);}
.insight-list .meta{margin:0;}
.insight-list h3{margin:15px 0 0; font:500 25px/1.3 var(--serif);}
.insight-list a{position:absolute; right:0; top:50%; transform:translateY(-50%);}
/* CTA + footer */

.spire-cta{position:relative; overflow:hidden; padding:145px 0; background:#bcdbe1; color:var(--ink); text-align:center;}
.spire-cta .section-kicker:before{display:none;}
.spire-cta h2{font-size:clamp(50px,6vw,82px);}
.spire-cta h2 em{color:var(--ink); font-style:italic;}
.spire-button{display:inline-flex; align-items:center; gap:25px; margin-top:45px; padding:8px 8px 8px 28px; border-radius:40px; background:rgb(9,33,42); color:#fff; font-size:10px; text-transform:uppercase; letter-spacing:0.14em; transition:background-color 280ms ease,color 280ms ease,transform 280ms ease;}
.spire-button:hover{background-color:rgb(230,105,37); color:#fff; transform:translateY(-2px);}
.spire-button span{display:grid; place-items:center; width:46px; height:46px; border-radius:50%; background:#fff; color:rgb(9,33,42); transition:background-color 280ms ease,color 280ms ease;}
.spire-button:hover span{background-color:#fff; color:rgb(230,105,37);}
.spire-cta__drawing span{position:absolute; border:1px solid rgba(19,45,56,0.13); transform:rotate(35deg);}
.spire-cta__drawing span:nth-child(1){width:460px; height:660px; left:-190px; top:-170px;}
.spire-cta__drawing span:nth-child(2){width:320px; height:550px; left:-80px; top:-40px;}
.spire-cta__drawing span:nth-child(3){width:510px; height:720px; right:-210px; bottom:-270px;}
.spire-cta__drawing span:nth-child(4){width:350px; height:540px; right:-60px; bottom:-250px;}
.spire-cta__drawing span:nth-child(5){width:1px; height:100%; left:50%; top:0; background:rgba(19,45,56,0.08); transform:rotate(27deg);}
#footer{padding:90px 0 70px; background:var(--ink-deep); color:#fff;}
#footer .container-lg,.copyright .container-lg{max-width:1320px;}
.footer-grid{display:grid; grid-template-columns:1.4fr 0.6fr 0.8fr; gap:90px;}
.footer-brand img{width:185px;}
.footer-brand p{margin:30px 0 0; color:rgba(255,255,255,0.55); font-size:12px;}
.footer-nav > p,.footer-contact > p{margin:0 0 25px; color:#94bdc6; font-size:9px; text-transform:uppercase; letter-spacing:0.18em;}
.footer-nav ul{display:grid; grid-template-columns:1fr 1fr; gap:7px 35px; margin:0; padding:0; list-style:none;}
.footer-nav a,.footer-contact a{font:500 17px var(--serif);}
.footer-nav a{position:relative; display:inline-block; transition:color 280ms ease,transform 280ms ease; margin-bottom:8px;}
.footer-nav a:after{content:""; position:absolute; left:0; right:100%; bottom:-5px; border-bottom:1px solid var(--orange); transition:right 280ms ease;}
.footer-nav a:hover,.footer-nav a:focus-visible{color:var(--orange); transform:translateY(-2px);}
.footer-nav a:hover:after,.footer-nav a:focus-visible:after,.footer-nav .current-menu-item > a:after,.footer-nav .current_page_item > a:after{right:0;}
.footer-nav a:focus-visible{outline:2px solid var(--orange); outline-offset:4px;}
.footer-contact{display:flex; flex-direction:column; align-items:flex-start;}
.footer-contact a{margin-bottom:6px; transition:color 0.25s ease; text-decoration:none;}
.footer-contact a:hover,.footer-contact a:focus-visible{color:rgb(230,105,37); text-decoration:none;}
.footer-contact span{margin-top:20px; color:rgba(255,255,255,0.45); font-size:11px;}
.copyright{padding:20px 0; background:#071920; color:rgba(255,255,255,0.38);}
.copyright p{display:flex; gap:24px; margin:0; font-size:9px; text-transform:uppercase; letter-spacing:0.08em;}
.copyright p a:first-of-type{margin-left:auto;}
.copyright a{transition:color 0.25s ease; text-decoration:none;}
.copyright a:hover,.copyright a:focus-visible{color:rgb(230,105,37); text-decoration:none;}
.reveal{opacity:0; transform:translateY(28px); transition:opacity 0.8s ease,transform 0.8s ease;}
.reveal.is-visible{opacity:1; transform:none;}
@media (max-width:1100px){
  .spire-shell,.spire-hero__content{width:calc(100% - 64px);}
  #header{padding:0 32px;}
  #header:after{left:32px; right:32px;}
  .navbar ul{gap:18px;}
  .service-row{grid-template-columns:45px 160px 1fr 50px; gap:20px;}
  .service-row__icon svg{width:150px;}
  .service-row__copy{gap:30px;}
  .spire-about__grid{gap:7%;}
  .spire-about__image{height:530px;}
  .property-card__image{height:310px;}
}
@media (max-width:820px){
  .default-page-content{padding:150px 0 95px;}
  .default-page-content__header{min-height:130px;}
  .section-pad{padding:95px 0;}
  .spire-shell,.spire-hero__content{width:calc(100% - 42px);}
  #header{height:78px; padding:0 21px;}
  #header:after{left:21px; right:21px;}
  .mobile-nav-toggle{display:block; position:relative; z-index:1001;}
  .navbar{position:fixed; inset:0; display:flex !important; flex-direction:column; align-items:center; justify-content:center; overflow-y:auto; -webkit-overflow-scrolling:touch; padding:80px 24px 40px; background:var(--ink-deep); opacity:0; visibility:hidden; pointer-events:none; transition:0.3s;}
  .mobile-nav-active .navbar{opacity:1; visibility:visible; pointer-events:auto;}
  .navbar ul{display:flex; flex-direction:column; gap:12px; text-align:center;}
  .navbar a,.header-scrolled .navbar a{color:#fff; font:500 30px var(--serif); text-transform:none; letter-spacing:0;}
  .section-heading{grid-template-columns:1fr; gap:28px; margin-bottom:52px;}
  .spire-services .section-heading__content{grid-template-columns:1fr; gap:28px;}
  .spire-services .section-heading__content > p:not(:first-child){grid-column:1; grid-row:auto;}
  .spire-about__grid{grid-template-columns:1fr; gap:48px;}
  .spire-about__visual{max-width:600px; margin-bottom:0; padding-bottom:30px;}
  .spire-about__copy{padding-top:0;}
  .service-row{grid-template-columns:45px 135px 1fr; min-height:235px;}
  .service-row__copy{display:block;}
  .service-row__copy h3{margin-bottom:17px;}
  .service-row > a{display:none;}
  .property-card{flex-basis:calc((100% - 26px) / 2);}
  .investment-grid{grid-template-columns:1fr 1fr; grid-template-rows:500px 330px;}
  .investment-card--large{grid-column:1/3; grid-row:auto;}
  .insights-grid{grid-template-columns:1fr; gap:60px;}
  .footer-grid{grid-template-columns:1fr 1fr;}
  .footer-brand{grid-column:1/3;}
}
@media (max-width:560px){
  .default-page-content{padding:110px 0 70px;}
  .default-page-content__header{min-height:90px;}
  .section-pad{padding:70px 0;}
  .spire-shell,.spire-hero__content{width:calc(100% - 32px);}
  .spire-hero{height:760px; min-height:680px;}
  .spire-hero__content{padding-top:180px;}
  .spire-hero__content h1,.spire-hero__content h2{font-size:clamp(40px, 12.5vw, 54px);}
  .spire-hero__content > h1 + p,.spire-hero__content > h2 + p{font-size:14px;}
  .spire-hero__rail{left:16px; right:16px; bottom:28px;}
  .spire-hero__rail button{width:calc((100% - 12px) / 3); flex:1; min-width:0;}
  .spire-hero__scroll{display:none;}
  .spire-about{padding:70px 0;}
  .spire-about__grid{gap:36px;}
  .spire-about__visual{padding:0 0 24px 20px; margin-bottom:0;}
  .spire-about__image{height:clamp(330px, 82vw, 410px);}
  .spire-about__stamp{right:0; bottom:0; width:clamp(126px, 34vw, 138px); height:clamp(126px, 34vw, 138px); padding:14px 10px; gap:4px;}
  .spire-about__stamp strong{font-size:clamp(38px, 9.8vw, 44px); line-height:0.9;}
  .spire-about__stamp span{font-size:8.5px; line-height:1.3; letter-spacing:0.14em;}
  .spire-about__copy{padding-top:0;}
  .spire-about__copy > p:first-child{margin:0 0 16px; font-size:11px; letter-spacing:0.2em;}
  .section-heading{margin-bottom:34px; gap:18px;}
  .section-heading h2{font-size:clamp(26px, 7vw, 36px); line-height:1.15;}
  .spire-services .section-heading__content{display:block;}
  .spire-services .section-heading__content > p:not(:first-child){margin:16px 0 0; font-size:14px; line-height:1.75;}
  .spire-about__copy > h2{font-size:clamp(21px, 5.6vw, 32px); line-height:1.15; letter-spacing:-0.035em; margin:0 0 20px;}
  .spire-about__copy > h2 + p{margin-top:0;}
  .spire-about__copy > p:not(:first-child){margin:0 0 16px; font-size:14px; line-height:1.75;}
  .spire-about__links{display:flex; flex-direction:column; align-items:flex-start; gap:16px; margin-top:28px;}
  .spire-about__links .spire-link{display:inline-flex; align-items:center; gap:20px; padding-bottom:6px;}
  .service-row{grid-template-columns:35px 80px 1fr; gap:13px; min-height:210px;}
  .service-row__icon svg{width:80px;}
  .service-row h3{font-size:26px;}
  .service-row p{font-size:12px; line-height:1.55;}
  .property-card{flex-basis:86%;}
  .property-card__image{height:320px; margin-bottom:18px;}
  .property-card h3{margin:8px 0 0;}
  .property-card > p{margin:3px 0 0;}
  .availability-link{margin-top:28px;}
  .investment-grid{display:block;}
  .investment-card{height:320px; margin-bottom:16px; padding:22px;}
  .investment-card > div{left:22px; right:22px; bottom:22px;}
  .investment-card--large{height:380px;}
  .investment-card--large h3{font-size:32px;}
  .investment-link{margin-top:28px;}
  .insights-grid{gap:28px;}
  .insight-feature__image{height:280px;}
  .insight-feature__content{padding:20px 0 0;}
  .insight-feature h3{font-size:26px; margin:12px 0 16px;}
  .insight-list article{padding:20px 50px 20px 0;}
  .insight-list h3{font-size:22px; margin:10px 0 0;}
  .spire-cta{padding:70px 0;}
  .spire-cta .section-kicker{margin-bottom:16px;}
  .spire-cta h2{font-size:clamp(23px, 6.5vw, 36px); line-height:1.15; margin:0;}
  .spire-cta .spire-button,.spire-button{margin-top:28px;}
  #footer{padding:65px 0 45px;}
  .footer-grid{display:block;}
  .footer-brand,.footer-nav{margin-bottom:32px;}
  .footer-brand p{margin:18px 0 0;}
  .copyright{padding:22px 0;}
  .copyright p{flex-wrap:wrap; gap:7px 17px;}
  .copyright p a:first-of-type{margin-left:0;}

  .logo img{width:140px;}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  .spire-hero__slide:before,.spire-hero__rail button.is-active:after,.reveal,.service-row__icon path{animation:none !important; transition:none !important;}
  .reveal{opacity:1; transform:none;}
  .service-row__icon path{stroke-dashoffset:0;}
}
/* Spire Street brand typography and accent palette */

.section-heading h2,.spire-about__copy > h2,.spire-cta h2{font-weight:500; letter-spacing:-0.045em;}
.section-heading h2 em,.spire-about__copy > h2 em,.spire-cta h2 em{font-family:var(--accent-serif); font-style:italic; font-weight:500; letter-spacing:-0.025em; color:var(--orange);}
.spire-hero__content h1,.spire-hero__content h2{font-weight:400; letter-spacing:-0.06em;}
.spire-hero__content h1 em,.spire-hero__content h2 em{font-family:var(--accent-serif); font-style:italic; font-weight:500; letter-spacing:-0.035em; color:var(--orange-light);}
.spire-hero__rail button{width:82px;}
.spire-hero__rail button:after{border-color:var(--orange);}
.spire-hero__rail span{margin-right:0;}
.section-heading--light h2 em{color:var(--orange-light);}
.section-heading--light .section-kicker,.section-heading--light .section-heading__content > p:first-child{color:var(--orange);}
.property-card__meta,.investment-card p{color:#f2a477;}
.footer-nav > p,.footer-contact > p{color:#f2a477;}
.spire-cta{background:var(--orange-soft);}
.spire-cta h2 em{color:var(--orange);}
.spire-availability{background-color:var(--ink-deep); background-image:linear-gradient(
      100deg,rgba(6,24,31,0.97) 0%,rgba(6,24,31,0.91) 48%,rgba(6,24,31,0.82) 100%
    ),url("assets/img/hero-retail.png"); background-size:cover; background-position:center; background-attachment:fixed;}
#footer{position:relative; background-color:var(--ink-deep); background-image:linear-gradient(100deg,rgba(5,21,28,0.97),rgba(5,21,28,0.87)),url("assets/img/hero-industrial.png"); background-size:cover; background-position:center 56%;}
/* Services:three-column boxed layout */

.spire-services__list{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; border-top:0;}
.service-row{position:relative; display:flex; flex-direction:column; align-items:flex-start; min-height:560px; padding:34px 34px 36px; border:1px solid var(--line); gap:0; transition:background-color 0.35s,border-color 0.35s,transform 0.35s;}
.service-row:hover{background:var(--ice); border-color:rgba(230,105,37,0.45); transform:translateY(-6px);}
.service-row__number{align-self:auto; width:100%; padding:0 0 22px; border-bottom:1px solid var(--line); color:var(--orange);}
.service-row__icon{display:flex; align-items:center; height:190px; margin:22px 0 8px; color:var(--orange);}
.service-row__icon svg{width:170px; height:145px;}
.service-row__icon img{width:170px; height:145px; object-fit:contain;}
.service-row__icon path{transition:none;}
.service-row__copy{display:block;}
.service-row__copy h3{margin:0 0 22px; font-size:32px; font-weight:600; letter-spacing:-0.035em;}
.service-row__copy p{margin:0; padding-right:18px; font-size:13px; line-height:1.75;}
.service-row > a{position:absolute; right:30px; bottom:30px; border-color:rgba(19,45,56,0.28);}
@media (max-width:900px){
  .spire-services__list{grid-template-columns:1fr;}
  .service-row{display:grid; grid-template-columns:150px 1fr; column-gap:35px; min-height:330px;}
  .service-row__number{grid-column:1/3;}
  .service-row__icon{grid-column:1; height:190px; margin:12px 0;}
  .service-row__copy{grid-column:2; align-self:center; padding:25px 55px 45px 0;}
  .service-row > a{display:grid;}
}
@media (max-width:560px){
  .service-row{display:flex; min-height:520px; padding:28px 25px;}
  .service-row__number{width:100%;}
  .service-row__icon{height:165px; margin:18px 0 5px;}
  .service-row__copy{padding:0 0 65px;}
  .service-row__copy h3{font-size:28px;}
  .service-row > a{right:24px; bottom:24px;}
}
@media (max-width:820px){
  .spire-availability{background-attachment:scroll;}
}
/* Availability carousel focus state */

.property-track{align-items:flex-start; padding:34px 0 20px;}
.property-track-wrap{clip-path:inset(-80px -100vw -80px 0);}
.property-card{position:relative; transition:transform 0.55s ease,opacity 0.55s ease; opacity:0.72;}
.property-card.is-focused{z-index:2; transform:translateY(-24px); opacity:1;}
.property-card__image{height:330px; transition:height 0.55s cubic-bezier(0.22,0.61,0.36,1),filter 0.55s ease; filter:saturate(0.72) brightness(0.8);}
.property-card.is-focused .property-card__image{height:390px; filter:saturate(1) brightness(1);}
.property-card__image > span{display:none;}
.property-card__meta{justify-content:flex-start; margin-top:2px;}
.property-card__address{margin:3px 0 0 !important; color:rgba(255,255,255,0.58) !important; font-size:12px !important;}
.property-card__size{margin:5px 0 0 !important; color:#fff !important; font-size:15px !important; font-weight:600; letter-spacing:-0.01em;}
@media (max-width:820px){
  .property-card__image{height:310px;}
  .property-card.is-focused .property-card__image{height:355px;}
}
@media (max-width:560px){
  .property-track{padding-top:22px;}
  .property-card.is-focused{transform:none;}
  .property-card__image,.property-card.is-focused .property-card__image{height:340px;}
  .property-card{opacity:1;}
}
/* Preserve forward camera motion through hero crossfades */

.spire-hero__slide{z-index:0;}
.spire-hero__slide.is-active{z-index:2;}
.spire-hero__slide.is-leaving{z-index:1; visibility:visible; opacity:0;}
.spire-hero__slide.is-leaving:before{transform:scale(1.1);}
/* Center and enlarge the hero slide navigation. */

.spire-hero__content > h1 + p,.spire-hero__content > h2 + p{font-size:20px;}
.spire-hero__rail{right:50%; bottom:48px; gap:6px; transform:translateX(50%);}
.spire-hero__rail button{width:110px; padding:20px 7px; border-top-width:2px; font-size:11px;}
.spire-hero__rail button:after{top:-2px; border-top-width:3px;}
@media (max-width:560px){
  .spire-hero__content > h1 + p,.spire-hero__content > h2 + p{font-size:14px;}
  .spire-hero__rail{left:16px; right:16px; bottom:28px; transform:none;}
  .spire-hero__rail button{width:calc((100% - 12px) / 3); flex:1; min-width:0;}
}
@media (max-width:400px){
  .footer-nav ul{gap:7px 16px;}
}
/* Compact,non-linked investment property details. */

.investment-card:before{background:linear-gradient(
      0deg,rgba(3,21,28,0.97) 0%,rgba(3,21,28,0.82) 38%,rgba(3,21,28,0.32) 72%,rgba(3,21,28,0.12) 100%
    ),var(--card-image) center/cover;}
.investment-card > span{z-index:1; display:inline-flex; align-items:center; padding:6px 12px; border-radius:999px; background:var(--orange); color:#fff; font-size:9px; font-weight:700; line-height:1; text-transform:uppercase; letter-spacing:0.13em;}
.investment-card h3{font-size:24px;}
.investment-card--large h3{font-size:34px;}
.investment-card__details{display:flex; flex-wrap:wrap; gap:12px 28px; margin:18px 0 0; padding-top:15px; border-top:1px solid rgba(255,255,255,0.3);}
.investment-card__details div{min-width:72px;}
.investment-card__details dt{margin-bottom:4px; color:rgba(255,255,255,0.68); font-size:10px; font-weight:600; text-transform:uppercase; letter-spacing:0.14em;}
.investment-card__details dd{margin:0; color:#fff; font-size:14px; font-weight:600;}
.investment-link{margin-top:42px; color:var(--ink);}
.investment-link:hover{color:rgb(230,105,37); border-color:rgb(230,105,37); transform:translateY(-2px);}
/* Scroll-drawn logo line beside the About image. */

.spire-about__links{display:flex; flex-wrap:wrap; margin-top:42px; gap:24px 38px;}
.spire-about__links .spire-link{color:var(--ink);}
.spire-about__links .spire-link:hover{color:rgb(230,105,37); border-color:rgb(230,105,37); transform:translateY(-2px);}
.spire-about__stamp{background:var(--orange);}
.spire-about__visual{--line-draw:0;}
.spire-about__visual:before,.spire-about__visual::before{top:45px; left:8px; width:14px; height:82%; border:0; background:url("assets/img/spire-line.svg") center/100% 100% no-repeat; opacity:calc(0.2 + (var(--line-draw) * 0.8)); transform:scaleY(var(--line-draw)); transform-origin:top center; filter:drop-shadow(0 5px 12px rgba(230,105,37,0.18)); will-change:transform,opacity;}
@media (max-width:560px){
  .investment-link{margin-top:28px;}
  .spire-about__visual:before,.spire-about__visual::before{left:0;}
  .spire-about__links{display:flex; flex-direction:column; align-items:flex-start; gap:16px; margin-top:28px;}
  .spire-about__links .spire-link{display:inline-flex; align-items:center; gap:20px; padding-bottom:6px;}
}
@media (prefers-reduced-motion:reduce){
  .spire-about__visual{--line-draw:1;}
}
.insight-feature__image{background-image:url("assets/img/insight-grocery-market.jpg");}
/*
 * Light hero theme. The existing hero styles remain the dark theme defaults.
 * Switch $spire_hero_theme in header.php between "light" and "dark".
 */

.spire-hero__slide{display:flex; align-items:center;}
.spire-hero__content{padding-top:0;}
.hero-theme-light .spire-hero{background:#f4f0e9; color:var(--ink);}
.hero-theme-light .spire-hero__slide:before{background-image:linear-gradient(
      90deg,rgba(250,248,244,0.97) 0%,rgba(250,248,244,0.9) 40%,rgba(250,248,244,0.7) 70%,rgba(250,248,244,0.56) 100%
    ),var(--hero-image); filter:brightness(1.18) saturate(0.88);}
.hero-theme-light .spire-hero__slide:after{background:linear-gradient(0deg,rgba(250,248,244,0.28),transparent 42%);}
.hero-theme-light .spire-hero__content h1,.hero-theme-light .spire-hero__content h2{color:var(--ink);}
.hero-theme-light .spire-hero__content h1 em,.hero-theme-light .spire-hero__content h2 em{color:var(--orange);}
.hero-theme-light .spire-hero__content > h1 + p,.hero-theme-light .spire-hero__content > h2 + p{color:rgba(19,45,56,0.78);}
.hero-theme-light .spire-link--light,.hero-theme-light .spire-hero__content a{color:var(--ink);}
.hero-theme-light .spire-link--light:hover,.hero-theme-light .spire-hero__content a:hover{color:rgb(230,105,37); border-color:rgb(230,105,37); transform:translateY(-2px);}
.hero-theme-light .spire-hero__rail button{border-top-color:rgba(19,45,56,0.28); color:rgba(19,45,56,0.62);}
.hero-theme-light .spire-hero__rail button.is-active{color:var(--ink);}
.hero-theme-light .spire-hero__scroll{color:rgba(19,45,56,0.62);}
.hero-theme-light .spire-hero__scroll span{border-top-color:rgba(19,45,56,0.45);}
.hero-theme-light #header:not(.header-scrolled) .navbar a,.default-page-header #header:not(.header-scrolled) .navbar a{color:var(--ink);}
.hero-theme-light #header:not(.header-scrolled),.default-page-header #header:not(.header-scrolled){background:rgba(255,255,255,0.72); box-shadow:0 6px 24px rgba(19,45,56,0.06);}
.hero-theme-light #header:not(.header-scrolled):after,.default-page-header #header:not(.header-scrolled):after{border-color:rgba(19,45,56,0.18);}
.hero-theme-light #header:not(.header-scrolled) .logo-color,.default-page-header #header:not(.header-scrolled) .logo-color{display:block;}
.hero-theme-light #header:not(.header-scrolled) .logo-white,.default-page-header #header:not(.header-scrolled) .logo-white{display:none;}
.hero-theme-light #header:not(.header-scrolled) .mobile-nav-toggle,.default-page-header #header:not(.header-scrolled) .mobile-nav-toggle{color:var(--ink);}
@media (max-width:820px){
  .hero-theme-light.mobile-nav-active #header .navbar a,.hero-theme-light.mobile-nav-active #header .mobile-nav-toggle,.default-page-header.mobile-nav-active #header .navbar a,.default-page-header.mobile-nav-active #header .mobile-nav-toggle{color:#fff;}
  .hero-theme-light.mobile-nav-active #header,.default-page-header.mobile-nav-active #header
  {background:transparent !important; box-shadow:none !important;  }
  .hero-theme-light.mobile-nav-active #header:after,.default-page-header.mobile-nav-active #header:after{border-color:transparent !important;}
  .hero-theme-light.mobile-nav-active #header .logo-color,.default-page-header.mobile-nav-active #header .logo-color{display:none !important;}
  .hero-theme-light.mobile-nav-active #header .logo-white,.default-page-header.mobile-nav-active #header .logo-white{display:block !important;}
}
.copyright p .focusedcre-credit{margin-left:0;}
.copyright p .privacy-link{margin-left:auto;}
@media (max-width:560px){
  .copyright p .privacy-link{margin-left:0;}
}
.copyright p{display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:24px;}
.copyright p > a.focusedcre-credit{margin-left:0;}
.copyright-text{grid-column:2; text-align:center;}
.copyright-legal{display:flex; grid-column:3; justify-self:end; gap:24px;}
.copyright-legal a:first-child{margin-left:0;}
@media (max-width:700px){
  .copyright p{display:flex; flex-direction:column; align-items:center; gap:8px; text-align:center;}
  .copyright .focusedcre-credit,.copyright-text,.copyright-legal{margin-left:0; justify-self:auto;}
  .copyright-legal{gap:18px;}
}
/* Investments Archive / Page Layout */

.investment-archive-page{padding-top:180px;}
.investment-grid.investment-grid--archive{display:grid; grid-template-columns:repeat(3,1fr); grid-template-rows:none; grid-auto-rows:400px; gap:24px;}
.investment-grid.investment-grid--archive .investment-card{height:400px;}
@media (max-width:1024px){
  .investment-grid.investment-grid--archive{grid-template-columns:repeat(2,1fr); grid-auto-rows:380px;}
  .investment-grid.investment-grid--archive .investment-card{height:380px;}
}
@media (max-width:820px){
  .investment-archive-page{padding-top:130px;}
  .investment-grid.investment-grid--archive{display:block;}
  .investment-grid.investment-grid--archive .investment-card{height:330px; margin-bottom:16px;}
}
@media (max-width:560px){
  .investment-archive-page{padding-top:115px; padding-bottom:70px;}
  .investment-grid.investment-grid--archive .investment-card{height:320px; margin-bottom:16px;}
}
/* ==================================================
   Contact Page
   ================================================== */

.spire-contact{background:#faf8f4; color:var(--ink);}
.contact-hero{position:relative; overflow:hidden; padding:180px 0 65px; background:var(--ink-deep); color:#fff;}
.contact-hero:before{content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(5,21,28,0.98),rgba(5,21,28,0.78)),var(--contact-hero-image,url("assets/img/hero-office.png")) center/cover; pointer-events:none;}
.contact-hero .spire-shell{position:relative;}
.contact-hero .section-kicker{color:#fff;}
.contact-hero h1{max-width:1000px; font-size:clamp(42px,5.5vw,80px); font-weight:500; line-height:1.1; letter-spacing:-0.05em; margin:24px 0 35px;}
.spire-contact h1 em,.spire-contact h2 em{font-family:var(--accent-serif); font-weight:500; color:var(--orange); letter-spacing:-0.035em;}
.contact-hero h1 em{color:var(--orange);}
.contact-hero__bottom{display:flex; align-items:end; justify-content:space-between; gap:24px; border-top:1px solid #ffffff30; padding-top:28px;}
.contact-hero__bottom p{color:#d4dfe1; margin:0; line-height:1.8;}
.contact-hero__bottom a{color:#fff; font-size:13px;}
.contact-hero__bottom a span{color:#f2a477; margin-left:40px; font-size:25px;}
.contact-main{display:grid; grid-template-columns:0.85fr 1.15fr; gap:8%; padding-top:100px; padding-bottom:100px;}
.contact-details h2{font-size:clamp(30px,3vw,44px); font-weight:500; line-height:1.2; letter-spacing:-0.045em; margin:0 0 24px;}
.contact-intro{color:#53656b; max-width:420px; line-height:1.9; margin-bottom:36px;}
.contact-detail{border-top:1px solid #d5ddda; padding:22px 0;}
.contact-detail__number{display:block; text-transform:uppercase; letter-spacing:0.15em; font-size:10px; color:#826344; margin-bottom:12px; font-weight:600;}
.contact-detail > a{display:flex; align-items:center; justify-content:space-between; gap:12px; font-size:clamp(15px,1.5vw,20px); color:var(--ink); overflow-wrap:anywhere; transition:color 280ms ease;}
.contact-detail > a span{color:#b84e17; transition:color 280ms ease,transform 280ms ease;}
.contact-detail > a:hover,.contact-detail > a:focus-visible{color:var(--orange);}
.contact-detail > a:hover span,.contact-detail > a:focus-visible span{color:var(--orange); transform:translateX(4px);}
.contact-detail address{font-style:normal; font-size:18px; line-height:1.65; margin-bottom:14px;}
.contact-detail > a.contact-directions{display:inline-flex; font-size:12px; gap:30px; padding-bottom:4px; border-bottom:1px solid currentColor; transition:color 280ms ease,border-color 280ms ease,transform 280ms ease;}
.contact-detail > a.contact-directions:hover,.contact-detail > a.contact-directions:focus-visible{color:var(--orange); border-color:var(--orange); transform:translateY(-2px);}
.contact-form-card{background:#fff; padding:42px; border:1px solid #e4e6df; box-shadow:0 16px 50px #142d3806; scroll-margin-top:105px;}
.contact-form-card h2{font-size:30px; font-weight:500; letter-spacing:-0.04em; margin:0 0 12px;}
.contact-form-card > p:not(.section-kicker){color:#627178; font-size:13px; margin-bottom:30px;}
.contact-fields{display:grid; grid-template-columns:1fr 1fr; gap:24px 20px;}
.contact-field--wide{grid-column:1 / -1;}
.contact-field label{display:block; font-size:12px; font-weight:600; margin-bottom:9px;}
.contact-field label span{color:#6c7677; font-weight:400; font-size:10px;}
.contact-field .wpcf7-form-control-wrap{display:block; width:100%;}
.contact-field input,.contact-field select,.contact-field textarea{display:block; width:100%; max-width:100%; min-height:49px; border:1px solid #d5dcda; border-radius:0; background:#fbfcfa; padding:13px 14px; color:var(--ink); font:400 13px/1.6 var(--sans);}
.contact-field textarea{resize:vertical;}
.contact-field input:focus,.contact-field select:focus,.contact-field textarea:focus{outline:2px solid var(--orange); outline-offset:2px; background:white;}
.contact-form-bottom{display:flex; align-items:center; justify-content:space-between; gap:20px; margin-top:27px;}
.contact-form-bottom p{font-size:10px; color:#627178; line-height:1.8; margin:0;}
.contact-form-bottom button,.contact-form-bottom .wpcf7-submit{border:0; background:var(--ink); color:#fff; padding:17px 23px; font:600 12px var(--sans); white-space:nowrap; cursor:pointer; transition:background-color 280ms ease,color 280ms ease,transform 280ms ease;}
.contact-form-bottom button span,.contact-form-bottom .wpcf7-submit span{font-size:20px; margin-left:18px; color:#fff; display:inline-block; transition:transform 280ms ease;}
.contact-form-bottom button:hover,.contact-form-bottom .wpcf7-submit:hover,.contact-form-bottom button:focus-visible,.contact-form-bottom .wpcf7-submit:focus-visible{background:var(--orange); color:#fff; transform:translateY(-2px);}
.contact-form-bottom button:hover span,.contact-form-bottom .wpcf7-submit:hover span,.contact-form-bottom button:focus-visible span,.contact-form-bottom .wpcf7-submit:focus-visible span{transform:translateX(5px);}
.contact-form-bottom button svg,.contact-form-bottom .wpcf7-submit svg{width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.4; vertical-align:middle; transition:transform 280ms ease;}
.contact-form-bottom button:hover svg,.contact-form-bottom .wpcf7-submit:hover svg,.contact-form-bottom button:focus-visible svg,.contact-form-bottom .wpcf7-submit:focus-visible svg{transform:translateX(5px);}
.spire-contact a:focus-visible,.spire-contact button:focus-visible{outline:2px solid var(--orange); outline-offset:5px;}
.contact-trap{position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden;}
.contact-notice,.wpcf7-response-output{background:#fff2e8; border-left:3px solid #ad4615; padding:18px; margin:20px 0; font-size:13px;}
.contact-notice--success,.wpcf7-form.sent .wpcf7-response-output{background:#eaf3eb !important; border-color:#34764b !important;}
.wpcf7-response-output{border-radius:0 !important; border-top:0 !important; border-right:0 !important; border-bottom:0 !important; color:var(--ink) !important;}
.wpcf7-not-valid-tip{color:#ad4615; font-size:11px; margin-top:6px; display:block;}
.contact-location{border-top:1px solid #d5ddda; background:#eef1ec; padding-top:60px;}
.contact-location__heading{display:flex; align-items:end; justify-content:space-between; gap:25px; margin-bottom:35px;}
.contact-location h2{font-size:clamp(30px,3.5vw,46px); letter-spacing:-0.045em; font-weight:500; margin:0;}
.contact-location__heading > a{font-size:12px; color:var(--ink); transition:color 280ms ease;}
.contact-location__heading > a span{margin-left:20px; display:inline-block; transition:transform 280ms ease;}
.contact-location__heading > a:hover,.contact-location__heading > a:focus-visible{color:var(--orange);}
.contact-location__heading > a:hover span,.contact-location__heading > a:focus-visible span{transform:translate(3px,-3px);}
.contact-map{height:470px; width:100%; z-index:1; background:#e0e5dd;}
.contact-map-fallback{padding:50px; text-align:center;}
.contact-map-fallback a{display:block; text-decoration:underline;}
.contact-pin{border:0; background:none;}
.contact-pin__shape{display:grid; place-items:center; width:52px; height:52px; border-radius:50% 50% 50% 0; background:#e66925; border:3px solid white; transform:rotate(-45deg); box-shadow:0 6px 20px #132d3850;}
.contact-pin__shape svg{width:25px; height:30px; transform:rotate(45deg); fill:none; stroke:white; stroke-width:2;}
.contact-map .leaflet-popup-content{font-family:var(--sans); font-size:12px; line-height:1.8;}
.contact-map .leaflet-popup-content strong{font-size:16px;}
.contact-location__footer{display:flex; justify-content:space-between; gap:20px; padding-top:25px; padding-bottom:25px; font-size:10px; text-transform:uppercase; letter-spacing:0.12em;}
.contact-location__footer span:first-child{font-weight:700;}
.contact-map .leaflet-tile-pane{filter:grayscale(1) contrast(0.65) brightness(1.2);}
@media (max-width:1000px){
  .contact-main{gap:5%;}
  .contact-form-card{padding:28px;}
  .contact-form-bottom{align-items:start; flex-direction:column;}
  .contact-location__heading{align-items:start; flex-direction:column;}
}
@media (max-width:760px){
  .contact-hero{padding:130px 0 40px;}
  .contact-hero h1{font-size:clamp(28px, 7.2vw, 42px); line-height:1.12; margin:16px 0 22px;}
  .contact-main{grid-template-columns:1fr; gap:32px; padding-top:48px; padding-bottom:48px;}
  .contact-intro{max-width:none; margin-bottom:24px;}
  .contact-hero__bottom{align-items:start; flex-direction:column; padding-top:20px;}
  .contact-detail{padding:18px 0;}
  .contact-form-card{padding:26px 20px;}
  .contact-form-card h2{margin:0 0 8px;}
  .contact-form-card > p:not(.section-kicker){margin-bottom:22px;}
  .contact-fields{gap:16px 20px;}
  .contact-map{height:350px;}
  .contact-location{padding-top:42px;}
  .contact-location__heading{margin-bottom:20px;}
  .contact-location__footer{flex-direction:column; gap:8px;}
  .contact-form-bottom{align-items:stretch; margin-top:20px;}
  .contact-form-bottom button,.contact-form-bottom .wpcf7-submit{text-align:left; display:flex; align-items:center; justify-content:space-between;}
}
@media (max-width:420px){
  .contact-fields{grid-template-columns:1fr;}
  .contact-form-card{padding:22px 18px;}
  .contact-form-card h2{font-size:26px;}
}
@media (prefers-reduced-motion:reduce){
  .footer-nav a,.footer-nav a:after,.contact-detail > a span,.contact-detail > a.contact-directions,.contact-form-bottom button,.contact-form-bottom .wpcf7-submit,.contact-form-bottom button span,.contact-form-bottom .wpcf7-submit span,.contact-form-bottom button svg,.contact-form-bottom .wpcf7-submit svg,.contact-location__heading > a span{transform:none !important; transition:none !important;}
}