/*
Theme Name: Appena Properties
Theme URI: https://appenaproperties.com
Author: Appena Properties, LLC
Description: Custom theme for Appena Properties, LLC (Holliston, MA). On activation it walks you through a one-click setup that imports all photos into the Media Library and creates every page and the menu. No paid plugins needed.
Version: 1.1.0
Requires at least: 6.2
Requires PHP: 7.4
License: GPL-2.0-or-later
Text Domain: appena
*/

:root{
  --navy:#06264b;
  --navy-2:#07284c;
  --red:#94141c;
  --red-dark:#7a1017;
  --light:#f3f3f3;
  --text:#06264b;
  --body-font:"Poppins",Arial,sans-serif;
  --head-font:"Roboto Condensed","Arial Narrow",Arial,sans-serif;
  --alt-font:"Roboto",Arial,sans-serif;
  --container:1140px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--body-font);font-size:15px;line-height:1.6;color:var(--text);background:#fff;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--red);text-decoration:none}
a:hover{color:var(--navy)}
h1,h2,h3,h4,h5,h6{font-family:var(--head-font);font-weight:600;color:var(--navy);line-height:1.15;margin:0 0 .5em}
h2{font-size:38px}
h3{font-size:26px}
p{margin:0 0 1em}
.screen-reader-text{position:absolute!important;clip:rect(1px,1px,1px,1px);width:1px;height:1px;overflow:hidden}
.container{max-width:var(--container);margin:0 auto;padding:0 20px}
.skip-link:focus{position:fixed;top:5px;left:5px;z-index:9999;background:#fff;padding:8px 12px;clip:auto;width:auto;height:auto}

/* ---------- Buttons ---------- */
.btn,.wp-block-button__link,.appena-form button{display:inline-block;font-family:var(--head-font);font-weight:500;font-size:18px;line-height:1.2;color:#fff;background:var(--red);border:0;border-radius:3px;padding:12px 24px;cursor:pointer;text-decoration:none;transition:background .2s,transform .2s}
.btn:hover,.wp-block-button__link:hover{background:var(--navy);color:#fff}
.btn-small{font-size:14px;padding:9px 20px}
.wp-block-buttons{display:flex;flex-wrap:wrap;gap:12px;margin:1.2em 0 0}
.has-text-align-center + .wp-block-buttons,.wp-block-buttons.is-content-justification-center,.center-buttons .wp-block-buttons,.entry-content .wp-block-group > .wp-block-buttons{justify-content:center}

/* ---------- Header ---------- */
.site-header{position:sticky;top:0;z-index:100;background:#fff;border-bottom:1px solid #2b2b2b;box-shadow:0 1px 0 rgba(0,0,0,.05)}
.admin-bar .site-header{top:32px}
.header-inner{max-width:1200px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:10px 20px;min-height:80px;gap:20px}
.site-logo img{max-height:62px;width:auto}
.site-logo .site-title{font-family:var(--head-font);font-size:24px;color:var(--navy);font-weight:700}
.main-nav{flex:1;display:flex;justify-content:center}
.main-nav ul{list-style:none;margin:0;padding:0}
.main-nav > ul{display:flex;gap:6px;align-items:center}
.main-nav li{position:relative}
.main-nav a{display:block;font-family:var(--head-font);font-weight:500;font-size:15px;color:var(--navy);padding:10px 14px}
.main-nav a:hover,.main-nav .current-menu-item > a,.main-nav .current_page_item > a{color:var(--red)}
.main-nav .menu-item-has-children > a::after{content:"";display:inline-block;margin-left:8px;border:5px solid transparent;border-top-color:currentColor;border-bottom:0;vertical-align:middle}
.main-nav .sub-menu{display:none;position:absolute;top:100%;left:0;min-width:300px;background:#fff;box-shadow:0 8px 24px rgba(0,0,0,.12);border-top:3px solid var(--red);padding:6px 0;z-index:200}
.main-nav .sub-menu a{padding:9px 18px;font-size:14px}
.main-nav .sub-menu a:hover{background:var(--light)}
.main-nav li:hover > .sub-menu,.main-nav li:focus-within > .sub-menu{display:block}
.header-phone{font-family:var(--head-font);font-size:14px;font-weight:500;color:#fff;background:var(--red);border-radius:3px;padding:9px 18px;white-space:nowrap}
.header-phone:hover{background:var(--navy);color:#fff}
.nav-toggle{display:none;background:none;border:0;padding:8px;cursor:pointer}
.nav-toggle span{display:block;width:26px;height:3px;background:var(--navy);margin:5px 0;border-radius:2px;transition:.2s}

/* ---------- Hero ---------- */
.hero{position:relative;background-color:var(--navy);background-size:cover;background-position:center;color:#fff}
.hero::before{content:"";position:absolute;inset:0;background:rgba(0,0,0,.45)}
.hero-inner{position:relative;max-width:var(--container);margin:0 auto;padding:0 20px}
.page-hero{min-height:420px;display:flex;align-items:center;justify-content:center;text-align:center}
.page-hero .hero-inner{padding:90px 20px}
.page-hero h1{color:#fff;font-size:40px;margin:0 0 18px}
.home-hero{min-height:620px;display:flex;align-items:center}
.home-hero::before{background:linear-gradient(90deg,rgba(255,255,255,.72) 0%,rgba(255,255,255,.45) 45%,rgba(255,255,255,0) 75%)}
.home-hero .hero-inner{width:100%;padding:80px 20px}
.home-hero h1{font-size:60px;line-height:1.05;margin:0 0 20px;text-transform:uppercase}
.home-hero h1 span{display:block;color:var(--navy)}
.home-hero h1 span.red{color:var(--red)}
.home-hero p.hero-sub{font-size:15px;color:var(--navy);margin:0 0 30px}

/* ---------- Generic sections inside page content ---------- */
.site-main{display:block}
.entry-content > *{max-width:var(--container);margin-left:auto;margin-right:auto;padding-left:20px;padding-right:20px}
.entry-content > .wp-block-group{max-width:none;padding:60px 20px;margin:0}
.entry-content > .wp-block-group > *{max-width:var(--container);margin-left:auto;margin-right:auto}
.entry-content > .wp-block-group.narrow > *{max-width:900px}
.page-content-wrap{padding:30px 0 50px}
.page-content-wrap .entry-content > .wp-block-group{padding:30px 20px}
.section-title,.entry-content h2.section-title{text-transform:uppercase;text-align:center;font-size:38px}
.has-text-align-center{text-align:center}
.wp-block-separator{border:0;border-top:1px solid var(--red);margin:30px auto;max-width:var(--container)}
.wp-block-separator.is-style-short,.home-why .wp-block-separator{width:66px;margin:0 0 26px;border-top:2px solid var(--red)}

.section-navy{background:var(--navy);color:#fff}
.section-navy h2,.section-navy h3{color:#fff}
.section-light{background:var(--light)}

/* Home: about */
.home-about{text-align:center}
.home-about p{max-width:960px;margin-left:auto;margin-right:auto}
.home-about .wp-block-buttons{justify-content:center;margin-top:24px}

/* Home: services cards */
.service-cards{display:grid;grid-template-columns:repeat(2,minmax(0,370px));gap:20px;justify-content:center}
.service-card{background:var(--light);text-align:center;padding:0 0 30px;display:flex;flex-direction:column}
.service-card .wp-block-image{margin:0 0 30px}
.service-card .wp-block-image img{width:100%;aspect-ratio:370/310;object-fit:cover;border-radius:10px 10px 0 0}
.service-card h3{font-size:30px;margin:0 10px 4px;color:#0a004b}
.service-card p{font-size:14px;line-height:1.5;margin:0 12px;color:#0a004b}
.service-card .wp-block-buttons{justify-content:center;margin-top:auto;padding-top:26px}

/* Home: process */
.home-process{position:relative;background-color:var(--navy);background-image:var(--appena-process-bg);background-size:cover;background-position:center;color:#fff}
.home-process::before{content:"";position:absolute;inset:0;background:rgba(6,38,75,.88)}
.home-process > *{position:relative}
.home-process h2{color:#fff}
.process-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;max-width:1240px!important;margin-top:20px!important}
.process-step{text-align:center;position:relative;padding-top:66px}
.process-step::before{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);width:46px;height:46px;border-radius:50%;background:var(--red) url("assets/img/chat.svg") center/22px no-repeat}
.process-step:not(:last-child)::after{content:"";position:absolute;top:22px;left:calc(50% + 36px);width:calc(100% - 42px);border-top:3px dotted #fff}
.process-step h3{color:#fff;font-size:24px;margin-bottom:12px}
.process-step p{font-family:var(--alt-font);font-size:14px;color:#fff;max-width:240px;margin:0 auto}

/* Home: why choose */
.entry-content > .wp-block-group.home-why{padding:0}
.home-why > .wp-block-columns{max-width:none!important;margin:0!important;gap:0!important;align-items:stretch!important}
.home-why .why-image{flex:0 0 48.5%!important}
.home-why .why-image .wp-block-image,.home-why .why-image figure{margin:0;height:100%}
.home-why .why-image img{width:100%;height:100%;min-height:420px;object-fit:cover}
.home-why .why-text{padding:60px 40px 60px 25px;display:flex;flex-direction:column;justify-content:center}
.home-why h2{font-size:30px;margin-bottom:18px}
.why-inner{display:flex;gap:30px;align-items:center;flex-wrap:wrap}
.why-list{list-style:none;margin:0;padding:0;font-family:var(--alt-font);font-size:13px}
.why-list li{position:relative;padding:6px 0 6px 30px}
.why-list li::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:20px;height:20px;background:url("assets/img/check.svg") center/contain no-repeat}
.why-list li:nth-child(1)::before{background-image:url("assets/img/team.svg")}
.why-list li:nth-child(2)::before{background-image:url("assets/img/tools.svg")}
.why-list li:nth-child(3)::before{background-image:url("assets/img/clock.svg")}
.why-list li:nth-child(4)::before{background-image:url("assets/img/chat-o.svg")}
.why-list li:nth-child(5)::before{background-image:url("assets/img/heart.svg")}
.cta-box{background:var(--navy);color:#fff;border-radius:20px;padding:26px 24px;text-align:center;flex:0 1 222px;font-family:var(--alt-font);font-size:13px}
.cta-box p{position:relative;padding-left:44px;text-align:center;margin:0}
.cta-box p::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:28px;height:28px;background:url("assets/img/team-w.svg") center/contain no-repeat}
.cta-box .wp-block-buttons{justify-content:center;margin-top:20px}
.cta-box .wp-block-button__link{font-size:16px;padding:9px 18px}

/* Home: previous projects */
.home-projects h2{text-transform:uppercase;text-align:center}
.home-projects{background:#e9e9e9}

/* Galleries */
.wp-block-gallery.has-nested-images{display:grid!important;grid-template-columns:repeat(4,1fr);gap:10px!important}
.wp-block-gallery.columns-3{grid-template-columns:repeat(3,1fr)}
.wp-block-gallery.columns-5{grid-template-columns:repeat(5,1fr)}
.wp-block-gallery.has-nested-images figure.wp-block-image{width:auto!important;margin:0!important;aspect-ratio:1/1;overflow:hidden;border-radius:4px}
.wp-block-gallery.has-nested-images figure.wp-block-image a,.wp-block-gallery.has-nested-images figure.wp-block-image img{width:100%;height:100%!important;object-fit:cover}
.wp-block-gallery.has-nested-images figure.wp-block-image img{transition:transform .35s}
.wp-block-gallery.has-nested-images figure.wp-block-image:hover img{transform:scale(1.06)}
.project-intro{text-align:center;font-size:16px;max-width:860px!important}
.entry-content > .wp-block-gallery{margin-top:25px;margin-bottom:25px}

/* Projects grid */
.project-grid{display:grid!important;grid-template-columns:repeat(2,1fr);gap:40px 30px}
.project-card{text-align:center;display:flex;flex-direction:column}
.project-card .wp-block-image{margin:0 0 12px}
.project-card .wp-block-image img{width:100%;aspect-ratio:16/9;object-fit:cover}
.project-card h3{font-size:22px;margin:0 0 6px}
.project-card h3 a{color:var(--navy)}
.project-card .wp-block-buttons{justify-content:center;margin-top:6px}
.project-card .wp-block-button__link{background:var(--navy);font-size:14px;padding:8px 22px}
.project-card .wp-block-button__link:hover{background:var(--red)}
.project-grid > .project-card:last-child:nth-child(odd){grid-column:1 / -1;max-width:calc(50% - 15px);margin:0 auto;width:100%}

/* About / Services / text pages */
.text-section h2{text-align:center;text-transform:uppercase;font-size:34px;margin-top:10px}
.text-section p{text-align:justify}
.phase-carousel-wrap{position:relative;max-width:var(--container);margin:30px auto 10px!important}
.phase-carousel{display:flex!important;gap:0;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none}
.phase-carousel::-webkit-scrollbar{display:none}
.phase{flex:0 0 25%;scroll-snap-align:start;text-align:center;padding:0 22px}
.phase .wp-block-image{margin:0 auto 18px;width:150px}
.phase .wp-block-image img{width:150px;height:150px;object-fit:cover;border-radius:12px}
.phase h3{font-size:26px;text-transform:uppercase;margin:0 0 14px}
.phase p{font-size:13px;line-height:1.5}
.carousel-btn{position:absolute;top:36%;z-index:3;width:34px;height:34px;border:0;background:rgba(255,255,255,.9);color:var(--navy);font-size:26px;line-height:30px;border-radius:50%;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.15)}
.carousel-btn.prev{left:-12px}.carousel-btn.next{right:-12px}
.carousel-dots{display:flex;justify-content:center;gap:8px;margin-top:8px}
.carousel-dots button{width:7px;height:7px;border-radius:50%;border:0;background:#c9c9c9;padding:0;cursor:pointer}
.carousel-dots button.active{background:#000}
.testimonials{display:grid!important;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:20px!important}
.testimonial{text-align:center}
.testimonial h3{font-size:18px;text-transform:uppercase;margin:0 0 10px}
.testimonial .stars{color:#e8a33c;font-size:18px;letter-spacing:2px;margin:0 0 14px}
.testimonial p{font-size:13.5px;line-height:1.55}

/* Contact form */
.appena-form{max-width:var(--container);margin:10px auto 20px}
.appena-form .field{margin-bottom:10px}
.appena-form input,.appena-form textarea{width:100%;font-family:var(--body-font);font-size:14px;color:#333;background:#f3f3f3;border:1px solid #f3f3f3;border-radius:3px;padding:9px 14px}
.appena-form input:focus,.appena-form textarea:focus{outline:2px solid var(--navy);background:#fff}
.appena-form textarea{min-height:100px;resize:vertical}
.appena-form button{width:100%;background:var(--navy);font-family:var(--body-font);font-size:14px;padding:10px}
.appena-form button:hover{background:var(--red)}
.appena-form .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-notice{max-width:var(--container);margin:10px auto;padding:14px 18px;border-radius:4px;font-weight:500}
.form-notice.ok{background:#e7f6ea;color:#185c27;border:1px solid #9fd3aa}
.form-notice.err{background:#fdeaea;color:#8a1111;border:1px solid #f0a5a5}

/* ---------- Service areas ---------- */
.service-areas{background:var(--navy);color:#fff;padding:30px 20px 40px;text-align:center}
.service-areas h2{color:#fff;font-size:37px;margin:0 0 10px}
.service-areas .sa-sub{font-family:var(--alt-font);font-size:14px;margin:0 0 24px}
.sa-map{max-width:1120px;margin:0 auto 24px;border-radius:8px;overflow:hidden;background:#0d3060}
.sa-map iframe{display:block;width:100%;height:300px;border:0}
.areas-list{max-width:1120px;margin:0 auto;padding:0;list-style:none;display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.areas-list button{width:100%;font-family:var(--alt-font);font-weight:500;font-size:15px;color:#333;background:#f5f5f5;border:0;border-radius:5px;padding:12px 8px;cursor:pointer;transition:.2s}
.areas-list button:hover,.areas-list button.active{background:var(--red);color:#fff}

/* ---------- Footer ---------- */
.footer-band{height:380px;background-size:cover;background-position:center}
.site-footer{background:#fff;padding:26px 20px 10px}
.footer-inner{max-width:1240px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.footer-logo img{max-width:150px}
.footer-contact{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:auto auto;gap:2px 18px;font-size:14px}
.footer-contact li{display:flex;align-items:center;gap:8px;color:var(--navy)}
.footer-contact li.full{grid-column:1 / -1}
.footer-contact a{color:var(--navy)}
.footer-contact a:hover{color:var(--red)}
.footer-contact svg{width:14px;height:14px;flex:0 0 14px;fill:none;stroke:var(--navy);stroke-width:1.6}
.social-icons{display:flex;gap:8px}
.social-icons a{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:var(--navy);border-radius:4px}
.social-icons a:hover{background:var(--red)}
.social-icons svg{width:15px;height:15px;fill:#fff}
.footer-badges{display:flex;align-items:center;gap:14px}
.footer-badges img{max-height:40px;width:auto}
.footer-badges img.tall{max-height:96px}
.footer-bottom{max-width:1240px;margin:14px auto 0;padding-top:10px;border-top:1px solid #eee;display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;font-size:12px;color:#5b6b80}
.footer-bottom a{color:#5b6b80}

/* ---------- Lightbox ---------- */
.appena-lightbox{position:fixed;inset:0;background:rgba(0,0,0,.92);z-index:9999;display:none;align-items:center;justify-content:center}
.appena-lightbox.open{display:flex}
.appena-lightbox img{max-width:92vw;max-height:86vh;width:auto;height:auto;box-shadow:0 10px 40px rgba(0,0,0,.5)}
.appena-lightbox button{position:absolute;background:rgba(255,255,255,.12);color:#fff;border:0;font-size:34px;width:52px;height:52px;border-radius:50%;cursor:pointer;line-height:1}
.appena-lightbox button:hover{background:rgba(255,255,255,.25)}
.appena-lightbox .lb-close{top:18px;right:18px;font-size:30px}
.appena-lightbox .lb-prev{left:18px;top:50%;transform:translateY(-50%)}
.appena-lightbox .lb-next{right:18px;top:50%;transform:translateY(-50%)}
.appena-lightbox .lb-count{position:absolute;bottom:18px;left:0;right:0;text-align:center;color:#ddd;font-size:13px}

/* ---------- Responsive ---------- */
@media (max-width:1024px){
  .home-hero h1{font-size:46px}
  .process-steps{grid-template-columns:repeat(2,1fr)}
  .process-step::after{display:none}
  .phase{flex-basis:33.333%}
  .areas-list{grid-template-columns:repeat(3,1fr)}
  .wp-block-gallery.has-nested-images{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:860px){
  .nav-toggle{display:block}
  .main-nav{position:absolute;top:100%;left:0;right:0;background:#fff;display:none;box-shadow:0 10px 20px rgba(0,0,0,.1);border-top:1px solid #eee}
  .main-nav.open{display:block}
  .main-nav > ul{flex-direction:column;align-items:stretch;gap:0;padding:8px 0}
  .main-nav a{padding:12px 22px}
  .main-nav .sub-menu{display:block;position:static;box-shadow:none;border:0;padding:0 0 0 14px;min-width:0}
  .header-phone{display:none}
  .home-why > .wp-block-columns{flex-wrap:wrap!important}
  .home-why .why-image{flex-basis:100%!important}
  .home-why .why-text{padding:40px 20px}
}
@media (max-width:767px){
  h2,.section-title,.entry-content h2.section-title{font-size:30px}
  .home-hero{min-height:480px}
  .home-hero h1{font-size:34px}
  .home-hero::before{background:rgba(255,255,255,.6)}
  .page-hero{min-height:300px}
  .page-hero h1{font-size:32px}
  .service-cards,.project-grid,.testimonials{grid-template-columns:1fr}
  .project-grid > .project-card:last-child:nth-child(odd){max-width:none}
  .process-steps{grid-template-columns:1fr}
  .phase{flex-basis:100%}
  .areas-list{grid-template-columns:repeat(2,1fr)}
  .wp-block-gallery.has-nested-images{grid-template-columns:repeat(2,1fr)}
  .footer-inner{flex-direction:column;text-align:center}
  .footer-contact{grid-template-columns:1fr}
  .footer-band{height:220px}
  .entry-content > .wp-block-group{padding:40px 16px}
}

/* Spacing tuned to match the live site */
@media (min-width:768px){
  .entry-content > .wp-block-group.home-about{padding:80px 20px 90px}
  .entry-content > .wp-block-group.home-services{padding:50px 20px 60px}
  .entry-content > .wp-block-group.home-process{padding:90px 20px 110px}
  .home-why .why-image img{min-height:600px}
  .entry-content > .wp-block-group.home-projects{padding:50px 20px 70px}
}
.privacy h2,.privacy h3{text-align:left;text-transform:none}
.privacy h2{font-size:30px}

/* Project caption on home hero photo */
.home-hero{overflow:hidden}
.hero-project-tag{position:absolute;right:32px;bottom:32px;z-index:2;display:flex;flex-direction:column;gap:2px;padding:14px 20px 14px 18px;background:rgba(14,30,66,.82);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border-left:4px solid var(--red);border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.25);color:#fff;max-width:300px;animation:appenaTagIn .9s ease-out .4s both}
.hero-project-tag .tag-kicker{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#ff8a8a}
.hero-project-tag .tag-title{font-size:20px;font-weight:800;line-height:1.2}
.hero-project-tag .tag-desc{font-size:13.5px;opacity:.92;line-height:1.35}
@keyframes appenaTagIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@media (max-width:768px){.hero-project-tag{right:12px;left:12px;bottom:12px;max-width:none;padding:10px 14px}.hero-project-tag .tag-title{font-size:17px}.home-hero .hero-inner{padding-bottom:120px}}

/* SEO / NAP additions (1.1.0) */
.footer-contact li.footer-name{font-size:15px}
.footer-contact a.google-reviews{font-weight:600}
.footer-contact li.reviews svg{fill:#f4b400;stroke:#f4b400}
.contact-info{max-width:var(--container);margin:30px auto 10px;text-align:center}
.contact-info .section-title{font-size:30px;margin-bottom:10px}
.contact-info .ci-list{list-style:none;margin:10px 0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:8px 28px}
.contact-info .ci-list li{display:flex;align-items:center;gap:8px}
.contact-info svg{width:16px;height:16px;flex:0 0 16px;fill:none;stroke:var(--navy);stroke-width:1.6}
.contact-info .ci-lang{font-style:italic;margin:6px 0}
.contact-info a.google-reviews{display:inline-flex;align-items:center;gap:8px;font-weight:600;color:var(--navy)}
.contact-info a.google-reviews:hover{color:var(--red)}
.contact-info a.google-reviews svg{fill:#f4b400;stroke:#f4b400}
.home-hero p.hero-sub{max-width:560px}
