/*
Theme Name: Gulf Beaches Vacation Management
Theme URI: https://gulfbeachesvacationmanagement.com/
Author: Gulf Beaches Vacation Management
Description: Lightweight custom WordPress theme for Gulf Beaches Vacation Management.
Version: 1.7.0
Text Domain: gulf-beaches
*/

:root{
  --navy:#062b52;
  --navy-2:#0b3d68;
  --teal:#087d91;
  --teal-dark:#056477;
  --gold:#f5b82e;
  --cream:#f8f6f0;
  --sand:#efe8da;
  --text:#17324d;
  --muted:#607486;
  --white:#fff;
  --border:#dce5ea;
  --shadow:0 12px 35px rgba(6,43,82,.10);
  --radius:8px;
  --container:1180px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--text);
  background:#fff;
  font-family:Arial,Helvetica,sans-serif;
  line-height:1.6;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
.container{width:min(var(--container),calc(100% - 48px));margin-inline:auto}

.site-header{
  background:#fff;
  border-bottom:1px solid rgba(6,43,82,.08);
  position:relative;
  z-index:20;
  overflow:hidden;
}
.header-inner{
  height:136px;
  min-height:136px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
}
.brand{
  display:inline-flex;
  align-items:center;
  height:auto;
  line-height:0;
  flex:0 0 auto;
  width:fit-content;
}
.brand img{
  width:320px !important;
  height:auto !important;
  max-height:128px !important;
  display:block !important;
  object-fit:contain;
}
.primary-nav ul{
  display:flex;
  align-items:center;
  gap:30px;
  margin:0;
  padding:0;
  list-style:none;
}
.primary-nav a{
  text-decoration:none;
  font-size:15px;
  font-weight:600;
  color:var(--navy);
  padding:12px 0;
  position:relative;
}
.primary-nav a:hover:after,
.primary-nav .current-menu-item a:after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:-4px;
  height:2px;background:var(--gold);
}
.header-phone{
  display:inline-flex;align-items:center;gap:10px;
  padding:12px 20px;
  border:1px solid var(--gold);
  border-radius:6px;
  color:var(--navy);
  text-decoration:none;
  font-weight:700;
  white-space:nowrap;
}
.menu-toggle{
  display:none;
  border:0;
  background:transparent;
  font-size:28px;
  color:var(--navy)
}

.hero{
  min-height:470px;
  position:relative;
  display:flex;
  align-items:center;
  background:
    linear-gradient(90deg,rgba(255,255,255,.96) 0%,rgba(255,255,255,.84) 31%,rgba(255,255,255,.10) 67%),
    url("assets/images/hero-madeira-beach.jpg") center center/cover no-repeat;
}
.hero-content{padding:42px 0 48px;max-width:650px;transform:translateY(-24px)}
.eyebrow{
  margin:0 0 10px;
  color:var(--teal-dark);
  font-size:15px;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.hero h1{
  margin:0 0 18px;
  color:var(--navy);
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(44px,5vw,68px);
  line-height:1.02;
  letter-spacing:-.025em;
}
.hero .tagline{font-size:20px;font-weight:600;margin:0 0 28px;color:var(--navy)}
.button-row{display:flex;gap:12px;flex-wrap:wrap}
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:48px;padding:0 24px;border-radius:6px;
  text-decoration:none;font-weight:800;font-size:14px;
  transition:.2s ease;
}
.btn-primary{background:var(--gold);color:#172c40}
.btn-primary:hover{transform:translateY(-1px);filter:brightness(.97)}
.btn-outline{border:1px solid var(--navy);color:var(--navy);background:rgba(255,255,255,.75)}
.btn-outline:hover{background:#fff}

.benefits{background:#fff;padding:34px 0}
.benefit-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.benefit{
  text-align:center;padding:20px 30px;border-right:1px solid var(--border)
}
.benefit:last-child{border-right:0}
.icon-circle{
  width:58px;height:58px;margin:0 auto 12px;border-radius:50%;
  display:grid;place-items:center;background:#edf5f7;color:var(--teal-dark);
  font-size:26px;font-weight:700
}
.icon-circle svg{width:26px;height:26px}
.service-icon svg{width:30px;height:30px}
.footer-icon{width:15px;height:15px;vertical-align:-2px;flex-shrink:0}
.social svg{width:16px;height:16px}
.benefit h3{margin:0 0 7px;font-size:16px;color:var(--teal-dark)}
.benefit p{margin:0;font-size:14px;color:var(--muted);line-height:1.55}

.owner-section{padding:0;background:var(--sand)}
.owner-grid{display:grid;grid-template-columns:42% 58%;min-height:420px}
.owner-copy{padding:72px 60px 72px max(24px,calc((100vw - var(--container))/2))}
.owner-copy h2,.local-copy h2{
  font-family:Georgia,"Times New Roman",serif;
  color:var(--navy);font-size:42px;line-height:1.1;margin:0 0 18px
}
.owner-copy p{max-width:470px;color:var(--muted);font-size:17px}
.owner-image{
  min-height:420px;
  background:url("assets/images/condo-balcony.jpg") center/cover no-repeat;
}

.services{padding:70px 0 78px;background:var(--cream)}
.section-heading{text-align:center;max-width:780px;margin:0 auto 34px}
.section-heading .eyebrow{margin-bottom:4px}
.section-heading h2{
  margin:0;color:var(--navy);font:42px/1.1 Georgia,"Times New Roman",serif
}
.section-heading p{margin:12px auto 0;color:var(--muted);font-size:16px}
.service-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:14px}
.service-card{
  background:#fff;border:1px solid var(--border);border-radius:7px;padding:22px 14px;
  text-align:center;min-height:220px;box-shadow:0 3px 12px rgba(6,43,82,.03)
}
.service-icon{font-size:30px;color:var(--teal-dark);margin-bottom:10px}
.service-card h3{font-size:15px;line-height:1.25;margin:0 0 9px;color:var(--navy)}
.service-card p{font-size:12.5px;line-height:1.5;color:var(--muted);margin:0}

.local-section{display:grid;grid-template-columns:1fr 1fr;align-items:stretch}
.local-image{
  min-height:460px;
  position:relative;
  background:url("assets/images/madeira-aerial.jpg") center 75%/cover no-repeat;
}
.local-image::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(160deg,rgba(6,43,82,.22) 0%,rgba(6,43,82,.05) 55%);
}
.local-copy{padding:72px max(24px,calc((100vw - var(--container))/2)) 72px 64px}
.local-copy p{color:var(--muted);font-size:16px}
.local-points{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:32px}
.local-point{text-align:center}
.local-point .icon-circle{margin-bottom:8px}
.local-point strong{font-size:13px;color:var(--navy)}

.cta{
  background:var(--teal-dark);
  color:#fff;padding:28px 0;
  position:relative;overflow:hidden;
}
.cta-inner{display:flex;align-items:center;justify-content:center;gap:70px}
.cta-copy h2{margin:0 0 2px;font:30px/1.2 Georgia,"Times New Roman",serif}
.cta-copy p{margin:0;color:rgba(255,255,255,.88)}
.cta .btn{min-width:170px}

.site-footer{background:var(--navy);color:#fff;padding:46px 0 18px}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1.4fr .8fr;gap:40px}
.footer-logo{width:230px;filter:brightness(0) invert(1);opacity:.96}
.site-footer h3{font-size:14px;margin:0 0 10px}
.site-footer a{text-decoration:none;color:rgba(255,255,255,.86)}
.site-footer a:hover{color:#fff}
.footer-links{list-style:none;padding:0;margin:0;font-size:13px;line-height:2}
.footer-contact{font-size:13px;line-height:2;color:rgba(255,255,255,.86)}
.footer-social{display:flex;gap:10px}
.social{
  width:36px;height:36px;border:1px solid rgba(255,255,255,.45);
  border-radius:50%;display:grid;place-items:center;font-weight:700
}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.2);margin-top:30px;padding-top:14px;
  display:flex;justify-content:space-between;gap:20px;font-size:11px;color:rgba(255,255,255,.7)
}

@media (max-width:1000px){
  .primary-nav ul{gap:20px}
  .service-grid{grid-template-columns:repeat(3,1fr)}
  .footer-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:760px){
  .container{width:min(var(--container),calc(100% - 32px))}
  .header-inner{height:70px;min-height:70px}
  .brand img{width:220px !important;max-height:none !important;height:auto !important;display:block !important}
  .menu-toggle{display:block}
  .primary-nav{
    display:none;position:absolute;left:0;right:0;top:70px;background:#fff;
    border-top:1px solid var(--border);box-shadow:var(--shadow)
  }
  .primary-nav.open{display:block}
  .primary-nav ul{display:block;padding:8px 20px}
  .primary-nav li{border-bottom:1px solid #edf1f3}
  .primary-nav a{display:block;padding:13px 0}
  .primary-nav a:hover:after,.primary-nav .current-menu-item a:after{display:none}
  .header-phone{display:none}
  .hero{min-height:560px;align-items:flex-end;background:
    linear-gradient(180deg,rgba(255,255,255,.12) 0%,rgba(255,255,255,.2) 35%,rgba(255,255,255,.95) 72%),
    url("assets/images/madeira-hero.jpg") center/cover no-repeat}
  .hero-content{padding:220px 0 38px;transform:none}
  .hero h1{font-size:44px}
  .hero .tagline{font-size:17px}
  .benefit-grid{grid-template-columns:1fr 1fr}
  .benefit{padding:18px 12px;border-right:0;border-bottom:1px solid var(--border)}
  .benefit:nth-child(odd){border-right:1px solid var(--border)}
  .owner-grid,.local-section{grid-template-columns:1fr}
  .owner-copy,.local-copy{padding:50px 24px}
  .owner-image{min-height:300px;order:-1}
  .local-image{min-height:300px}
  .service-grid{grid-template-columns:1fr 1fr}
  .cta-inner{gap:24px;justify-content:space-between}
  .footer-grid{grid-template-columns:1fr}
  .footer-bottom{flex-direction:column}
}
@media (max-width:480px){
  .benefit-grid,.service-grid{grid-template-columns:1fr}
  .benefit:nth-child(odd){border-right:0}
  .hero h1{font-size:39px}
  .local-points{grid-template-columns:1fr}
  .cta-inner{flex-direction:column;align-items:flex-start}
}
