:root{
  --bg:#F5F3EF;
  --bg2:#FDF8F3;
  --text:#3D3D3D;
  --muted:#6B6B6B;
  --olive:#7C8B6F;
  --olive2:#6B7A5E;
  --stone:#8B7355;
  --border:#E8E4DF;
  --dark:#2F2F2F;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
  color:var(--text);
  background:#fff;
  line-height:1.6;
}
a{color:inherit}
img{max-width:100%;display:block}

/* Prevent horizontal overflow from long strings / embeds on small screens */
html{overflow-x:hidden}
body{overflow-x:hidden}

/* Small utilities */
.mt0{margin-top:0}
.footer-links{display:flex;gap:14px;flex-wrap:wrap}

/* Layout */
.container{max-width:1100px;margin:0 auto;padding:0 24px}
.section{padding:2rem 0}
.section.tight{padding:56px 0}
.section.bg{background:var(--bg)}
.section.bg2{background:var(--bg2)}

/* Header */
.site-header{
  position:sticky;top:0;z-index:50;
  padding:1rem;
  background:rgba(245,243,239,0.9);
  backdrop-filter:saturate(120%) blur(6px);
  border-bottom:1px solid rgba(0,0,0,0.06);
}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0}
.brand{display:flex;flex-direction:column;gap:2px;text-decoration:none}
.brand strong{font-family: Georgia, "Times New Roman", serif; font-weight:600; letter-spacing:0.02em}
.brand span{font-size:0.9rem;color:var(--muted)}

/* Home header variant (logo mark + phone link) */
.brand-logo{display:flex;align-items:center;gap:12px;text-decoration:none}
.logo-mark{
  width:100px;height:100px;
  background:var(--olive);
  border-radius:2px;
  display:flex;align-items:center;justify-content:center;
  flex:0 0 auto;
}
.logo-mark span{color:#fff;font-family: Georgia, "Times New Roman", serif;font-size:1.25rem}
.brand-text{display:flex;flex-direction:column}
.brand-title{font-family: Georgia, "Times New Roman", serif;font-size:1.25rem;color:var(--text);display:block}
.brand-subtitle{font-size:0.75rem;color:#8b8b8b;letter-spacing:0.05em;margin:0}

.header-links{display:flex;align-items:center;gap:32px}
.header-links a{font-size:0.875rem;letter-spacing:0.05em;text-decoration:none;transition:color 0.3s}
.header-links a.is-active{color:var(--olive)}
.header-links a.is-inactive{color:#5c5c5c}
.header-links a:hover{color:var(--stone)}
.phone-link{display:flex;align-items:center;gap:8px;color:var(--olive)}

.nav{display:flex;align-items:center;gap:18px}
.nav a{color:var(--muted);text-decoration:none;padding:8px 6px;border-bottom:2px solid transparent}
.nav a:hover{color:var(--stone);border-bottom-color:var(--stone)}
.nav a.active{color:var(--stone);border-bottom-color:var(--stone)}

.mobile-toggle{display:none;background:none;border:1px solid rgba(0,0,0,0.1);border-radius:6px;padding:8px 10px;cursor:pointer}
.mobile-toggle:focus{outline:2px solid rgba(139,115,85,0.4);outline-offset:2px}

@media (max-width: 780px){
  .mobile-toggle{display:inline-flex;align-items:center;gap:8px}
  .nav{display:none;position:absolute;left:0;right:0;top:58px;background:rgba(245,243,239,0.98);border-bottom:1px solid rgba(0,0,0,0.08);padding:10px 24px}
  .nav.open{display:flex;flex-direction:column;align-items:flex-start}
  .nav a{padding:10px 0}

  .header-links{display:none}
  .header-links.open{display:flex;flex-direction:column;align-items:flex-start;gap:0;position:absolute;left:0;right:0;top:58px;background:rgba(255,255,255,0.98);border-bottom:1px solid rgba(0,0,0,0.08);padding:10px 24px;z-index:60}
  .header-links.open a{padding:10px 0}
}

/* Hero */
.hero{
  background:var(--bg);
  position:relative;
  min-height: 74vh;
  display:flex;
  align-items:center;
}
.hero::before{
  content:"";
  position:absolute;inset:0;
  opacity:0.03;
  background-image:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23000000' fill-opacity='1'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}
.hero-inner{position:relative;z-index:2;text-align:center;padding:2rem 0 2rem}
.kicker{color:var(--olive);letter-spacing:0.3em;text-transform:uppercase;font-size:0.86rem;margin:0 0 18px}
.h1{
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.4rem, 7vw, 4.1rem);
  line-height:1.15;
  font-weight:500;
  margin:0 0 16px;
}
.lede{color:var(--muted);font-size:clamp(1.05rem, 2vw, 1.25rem);max-width:720px;margin:0 auto 30px}
.hero-actions{display:flex;gap:16px;justify-content:center;align-items:center;flex-wrap:wrap;margin-bottom:24px}
.btn{
  display:inline-flex;align-items:center;gap:10px;
  background:var(--olive);
  color:#fff;
  padding:14px 22px;
  text-decoration:none;
  border-radius:2px;
  border:0;
}
.btn:hover{background:var(--olive2)}
.link-underline{color:var(--muted);text-decoration:none;border-bottom:2px solid var(--stone);padding-bottom:3px}
.link-underline:hover{color:var(--stone)}
.phone-row{display:flex;gap:12px;justify-content:center;align-items:center;color:var(--muted);font-size:0.98rem;flex-wrap:wrap}
.phone-row a{text-decoration:none}
.dot{opacity:0.6}

.scroll-down{
  position:absolute;left:50%;bottom:18px;transform:translateX(-50%);
  background:none;border:0;cursor:pointer;color:var(--stone);
  font-size:2rem;line-height:1;
  animation:bounce 2s infinite;
}
@keyframes bounce{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(-10px)}}

/* Headings & text */
.eyebrow{color:var(--olive);letter-spacing:0.2em;text-transform:uppercase;font-size:0.86rem;margin:0 0 12px}
.h2{font-family: Georgia, "Times New Roman", serif; font-size:clamp(1.7rem, 4vw, 2.35rem); font-weight:500; margin:0 0 18px}
.prose{font-size:1.08rem;color:var(--muted);max-width:820px}
.prose p{margin:0 0 16px}
.note{
  margin-top:24px;
  padding:16px 18px;
  border-left:4px solid var(--olive);
  color:var(--olive);
  font-style:italic;
  background:rgba(124,139,111,0.06);
}

/* Services (home) */
.services-intro{text-align:center;max-width:840px;margin:0 auto 32px}
.services-copy{margin:0 auto;color:var(--muted)}
.services-note{text-align:center;margin:28px auto 0;color:var(--olive);font-style:italic}

/* Cards */
.grid{display:grid;gap:18px}
@media(min-width:860px){.grid.two{grid-template-columns:repeat(2,1fr)}}
.card{background:#fff;border:1px solid var(--border);box-shadow:0 1px 3px rgba(0,0,0,0.08);padding:22px;border-radius:2px}
.card h3{font-family: Georgia, "Times New Roman", serif;font-weight:500;margin:0 0 8px;font-size:1.22rem}
.card p{margin:0;color:var(--muted)}

/* CTA band */
.cta{background:var(--dark);color:#fff}
.cta .h2{color:#fff}
.cta p{color:#b8b8b8}
.cta-inner{max-width:48rem;text-align:center}
.cta-copy{margin:0 auto}
.cta-actions{display:flex;gap:16px;justify-content:center;align-items:center;flex-wrap:wrap;margin-top:18px}
.cta .btn{background:var(--olive)}
.cta .btn:hover{background:var(--olive2)}
.cta .muted-link{color:#b8b8b8;text-decoration:none;border-bottom:1px solid #b8b8b8;padding-bottom:3px}
.cta .muted-link:hover{color:#fff;border-bottom-color:#fff}

/* Gallery */
.gallery-intro{max-width:760px}
.gallery-grid{display:grid;gap:14px;grid-template-columns:repeat(2,1fr)}
@media(min-width:760px){.gallery-grid{grid-template-columns:repeat(3,1fr)}}
@media(min-width:1060px){.gallery-grid{grid-template-columns:repeat(4,1fr)}}
.gallery-item{
  border:1px solid var(--border);
  background:#fff;
  overflow:hidden;
  cursor:pointer;
}
.gallery-item img{width:100%;height:220px;object-fit:cover}
@media(max-width:520px){.gallery-item img{height:180px}}

/* Lightbox */
.lightbox{position:fixed;inset:0;background:rgba(0,0,0,0.85);display:none;align-items:center;justify-content:center;z-index:100}
.lightbox.open{display:flex}
.lightbox-content{position:relative;max-width:min(1100px, 92vw);max-height:84vh}
.lightbox-content img{max-width:100%;max-height:84vh;object-fit:contain}
.lb-btn{
  position:absolute;top:50%;transform:translateY(-50%);
  background:rgba(255,255,255,0.12);
  color:#fff;border:1px solid rgba(255,255,255,0.18);
  padding:10px 12px;cursor:pointer;border-radius:8px;
}
.lb-btn:hover{background:rgba(255,255,255,0.2)}
.lb-prev{left:-52px}
.lb-next{right:-52px}
@media(max-width:720px){.lb-prev{left:10px}.lb-next{right:10px}}
.lb-close{
  position:absolute;top:-48px;right:0;
  background:none;border:0;color:#fff;font-size:2rem;cursor:pointer
}

/* Contact */
.contact-grid{display:grid;gap:18px}
@media(min-width:860px){.contact-grid{grid-template-columns:1.2fr 0.8fr}}
.contact-card{
  background:#fff;
  border:1px solid var(--border);
  box-shadow:0 1px 3px rgba(0,0,0,0.08);
  padding:22px;
  border-radius:2px;
  /* Allow grid items to shrink without forcing horizontal scroll */
  min-width:0;
}
.kv{display:grid;gap:12px;margin-top:10px}
.kv div{display:flex;flex-direction:column;gap:2px}
.kv .label{color:var(--olive);text-transform:uppercase;letter-spacing:0.18em;font-size:0.82rem}
.kv a{text-decoration:none;color:var(--text)}
.kv a:hover{color:var(--stone)}

/* Wrap long contact strings (e.g., email address) instead of overflowing */
.kv a,
.kv span{
  overflow-wrap:anywhere;
  word-break:break-word;
}
.map{
  background:linear-gradient(135deg, rgba(139,115,85,0.12), rgba(124,139,111,0.10));
  border:1px dashed rgba(0,0,0,0.15);
  padding:18px;border-radius:10px;color:var(--muted)
}

/* Responsive embedded map */
.map iframe{
  width:100%;
  max-width:100%;
  display:block;
  border:0;
  /* Keep a sensible aspect ratio on mobile */
  aspect-ratio: 4 / 3;
  height:auto;
}

@media (max-width: 520px){
  .map{padding:14px}
}

/* Footer */
.site-footer{border-top:1px solid rgba(0,0,0,0.08);background:#fff}
.site-footer--dark{background:var(--dark);color:#fff;border-top:0}
.footer-inner{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:18px 0;color:var(--muted);font-size:0.95rem}
.footer-inner a{text-decoration:none}
.footer-inner a:hover{color:var(--stone)}

/* Home footer (dark, multi-column) */
.footer-grid{display:grid;grid-template-columns:1fr;gap:2rem;padding:2rem 0}
@media(min-width:860px){.footer-grid{grid-template-columns:repeat(3,1fr);gap:3rem}}

.site-footer--dark a{color:#9b9b9b;text-decoration:none}
.site-footer--dark a:hover{color:#fff}

.footer-brand{display:flex;align-items:center;gap:12px;margin-bottom:1rem}
.footer-title{font-family: Georgia, "Times New Roman", serif;font-size:1.25rem}
.footer-heading{font-family: Georgia, "Times New Roman", serif;font-size:1.125rem;margin:0 0 1rem;font-weight:500}
.footer-copy{color:#9b9b9b;font-size:0.875rem;line-height:1.6;margin:0}
.footer-links-col{font-size:0.875rem;color:#9b9b9b}
.footer-links-col a{display:block;margin-bottom:0.5rem}
.footer-small{font-size:0.75rem;color:#7b7b7b;margin:1rem 0 0}
.footer-bottom{margin-top:1rem;padding:2rem 0;border-top:1px solid #4d4d4d;text-align:center;font-size:0.875rem;color:#7b7b7b}
.footer-bottom p{margin:0}

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  .scroll-down{animation:none}
}
