/* ===== Reset & Base ===== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:'Lato',sans-serif;background:#FFFDD0;color:#3a2a1a;line-height:1.7;font-size:17px;overflow-x:hidden}
img{max-width:100%;display:block;height:auto}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}

/* ===== Scroll Animations ===== */
.reveal{opacity:0;transform:translateY(40px);transition:opacity .9s ease,transform .9s ease}
.reveal.in-view{opacity:1;transform:translateY(0)}
.reveal.slide-left{transform:translateX(-50px)}
.reveal.slide-right{transform:translateX(50px)}
.reveal.slide-left.in-view,.reveal.slide-right.in-view{transform:translateX(0)}

/* ===== Header / Navigation ===== */
.site-header{position:fixed;top:0;left:0;right:0;z-index:1000;transition:background .4s ease,box-shadow .4s ease,padding .4s ease;padding:22px 0}
.site-header.scrolled{background:rgba(255,253,208,.97);box-shadow:0 4px 20px rgba(160,82,45,.25);padding:14px 0}
.nav-container{max-width:1280px;margin:0 auto;padding:0 28px;display:flex;align-items:center;justify-content:space-between}
.logo{font-family:'Playfair Display',serif;font-size:1.7rem;font-weight:700;color:#FFFDD0;letter-spacing:.5px;transition:color .4s ease;text-shadow:0 2px 8px rgba(0,0,0,.35)}
.logo span{color:#E8A317}
.site-header.scrolled .logo{color:#A0522D;text-shadow:none}
.site-header.scrolled .logo span{color:#6B8E23}
.nav-menu{display:flex;gap:36px;align-items:center}
.nav-menu a{font-family:'Lato',sans-serif;font-size:.95rem;font-weight:700;text-transform:uppercase;letter-spacing:1.4px;color:#FFFDD0;position:relative;padding:6px 2px;transition:color .3s ease}
.site-header.scrolled .nav-menu a{color:#3a2a1a}
.nav-menu a::after{content:'';position:absolute;bottom:0;left:0;width:0;height:2px;background:#E8A317;transition:width .35s ease}
.nav-menu a:hover::after,.nav-menu a.active::after,.nav-menu a[aria-current="page"]::after{width:100%}
.nav-menu a.active,.nav-menu a[aria-current="page"]{color:#E8A317}
.site-header.scrolled .nav-menu a.active,.site-header.scrolled .nav-menu a[aria-current="page"]{color:#A0522D}
.nav-toggle{display:none;flex-direction:column;gap:5px;cursor:pointer;background:none;border:none;padding:6px}
.nav-toggle span{width:28px;height:3px;background:#FFFDD0;border-radius:2px;transition:all .35s ease}
.site-header.scrolled .nav-toggle span{background:#A0522D}
.nav-toggle.open span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.nav-toggle.open span:nth-child(2){opacity:0}
.nav-toggle.open span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

/* ===== Hero ===== */
.hero{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;padding:120px 24px 80px}
.hero::before{content:'';position:absolute;inset:0;background:linear-gradient(rgba(58,42,26,.55),rgba(58,42,26,.65));z-index:1}
.hero-bg{position:absolute;inset:0;z-index:0}
.hero-bg img{width:100%;height:100%;object-fit:cover}
.hero-content{position:relative;z-index:2;max-width:860px}
.hero-content h1{font-family:'Playfair Display',serif;font-size:clamp(2.4rem,6vw,4.6rem);font-weight:700;line-height:1.1;margin-bottom:24px;text-shadow:0 4px 20px rgba(0,0,0,.5)}
.hero-content p{font-size:clamp(1.05rem,2.2vw,1.3rem);margin-bottom:40px;text-shadow:0 2px 10px rgba(0,0,0,.5);max-width:620px;margin-left:auto;margin-right:auto;font-weight:300}

/* ===== Buttons ===== */
.btn{display:inline-block;font-family:'Lato',sans-serif;font-weight:700;font-size:.95rem;text-transform:uppercase;letter-spacing:1.5px;padding:15px 38px;border-radius:8px;cursor:pointer;border:none;transition:transform .3s ease,box-shadow .3s ease;position:relative;overflow:hidden}
.btn-primary{background:linear-gradient(135deg,#E8A317 0%,#A0522D 100%);color:#FFFDD0;box-shadow:0 6px 18px rgba(160,82,45,.35)}
.btn-primary:hover{transform:translateY(-3px) scale(1.04);box-shadow:0 10px 28px rgba(160,82,45,.5)}
.btn-secondary{background:linear-gradient(135deg,#6B8E23 0%,#4a6318 100%);color:#FFFDD0;box-shadow:0 6px 18px rgba(107,142,35,.35)}
.btn-secondary:hover{transform:translateY(-3px) scale(1.04);box-shadow:0 10px 28px rgba(107,142,35,.5)}
.btn-outline{background:transparent;border:2px solid #FFFDD0;color:#FFFDD0}
.btn-outline:hover{background:#FFFDD0;color:#A0522D;transform:translateY(-3px) scale(1.04);box-shadow:0 10px 28px rgba(0,0,0,.3)}

/* ===== Sections ===== */
section{padding:100px 0}
.section-light{background:#FFFDD0}
.section-cream{background:#f7f0c0}
.section-olive{background:#6B8E23;color:#FFFDD0}
.section-sienna{background:#A0522D;color:#FFFDD0}
.section-mustard{background:#E8A317;color:#3a2a1a}
.section-header{text-align:center;max-width:720px;margin:0 auto 64px;padding:0 20px}
.section-header h2{font-family:'Playfair Display',serif;font-size:clamp(2rem,4.5vw,3rem);font-weight:700;margin-bottom:18px}
.section-header p{font-size:1.1rem;opacity:.85;font-weight:300}
.section-olive .section-header p,.section-sienna .section-header p{color:rgba(255,253,208,.85)}

/* Retro border decoration */
.retro-frame{position:relative;padding:40px}
.retro-frame::before,.retro-frame::after{content:'';position:absolute;width:60px;height:60px;border:3px solid #E8A317}
.retro-frame::before{top:0;left:0;border-right:none;border-bottom:none}
.retro-frame::after{bottom:0;right:0;border-left:none;border-top:none}

/* ===== Layout Containers ===== */
.container{max-width:1280px;margin:0 auto;padding:0 28px}
.grid{display:grid;gap:32px}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}

/* ===== Content / Two-Column ===== */
.content-block{display:flex;gap:60px;align-items:center;flex-wrap:wrap}
.content-block .text-col{flex:1;min-width:300px}
.content-block .image-col{flex:1;min-width:300px}
.content-block h2{font-family:'Playfair Display',serif;font-size:clamp(1.8rem,3.5vw,2.6rem);margin-bottom:20px;color:#A0522D}
.section-olive .content-block h2,.section-sienna .content-block h2{color:#FFFDD0}
.content-block p{margin-bottom:18px;font-weight:300}
.content-block .btn{margin-top:12px}

/* ===== Images ===== */
.img-rounded{border-radius:12px;overflow:hidden;box-shadow:0 12px 36px rgba(58,42,26,.2)}
.img-rounded img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.img-rounded:hover img{transform:scale(1.06)}
.img-bordered{border:6px solid #fff;box-shadow:0 10px 30px rgba(0,0,0,.18);border-radius:8px}

/* ===== Cards ===== */
.card{background:#FFFDD0;border-radius:12px;overflow:hidden;box-shadow:0 8px 28px rgba(58,42,26,.12);transition:transform .4s ease,box-shadow .4s ease;border:1px solid rgba(160,82,45,.15)}
.card:hover{transform:translateY(-10px);box-shadow:0 20px 44px rgba(160,82,45,.28)}
.card-image{height:220px;overflow:hidden}
.card-image img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.card:hover .card-image img{transform:scale(1.08)}
.card-body{padding:30px 26px}
.card-body h3{font-family:'Playfair Display',serif;font-size:1.4rem;margin-bottom:12px;color:#A0522D}
.card-body p{font-size:.95rem;color:#5a4a3a;margin-bottom:18px;font-weight:300}
.card-link{font-weight:700;text-transform:uppercase;letter-spacing:1.2px;font-size:.8rem;color:#6B8E23;transition:color .3s ease}
.card-link:hover{color:#E8A317}

/* Feature card with icon */
.feature-card{text-align:center;padding:44px 30px;background:#FFFDD0;border-radius:12px;border:2px dashed rgba(160,82,45,.3);transition:transform .4s ease,box-shadow .4s ease,border-color .4s ease}
.feature-card:hover{transform:translateY(-8px);box-shadow:0 16px 40px rgba(160,82,45,.22);border-color:#E8A317}
.feature-icon{font-size:2.6rem;margin-bottom:20px;color:#E8A317}
.feature-card h3{font-family:'Playfair Display',serif;font-size:1.35rem;margin-bottom:14px;color:#A0522D}
.feature-card p{font-size:.95rem;color:#5a4a3a;font-weight:300}

/* ===== Contact Block ===== */
.contact-block{max-width:680px;margin:0 auto;text-align:center;padding:50px 40px;background:#FFFDD0;border-radius:12px;box-shadow:0 10px 40px rgba(160,82,45,.18);border:3px double #A0522D}
.contact-block h2{font-family:'Playfair Display',serif;font-size:2.2rem;margin-bottom:24px;color:#A0522D}
address{font-style:normal;font-size:1.05rem;line-height:2;color:#3a2a1a}
address strong{display:block;font-family:'Playfair Display',serif;font-size:1.3rem;color:#6B8E23;margin-bottom:8px}
.contact-info{list-style:none;margin-top:28px}
.contact-info li{margin-bottom:12px;font-size:1rem}
.contact-info a{color:#A0522D;font-weight:700;border-bottom:2px solid transparent;transition:border-color .3s ease}
.contact-info a:hover{border-bottom-color:#E8A317}

/* ===== Footer ===== */
.site-footer{background:#3a2a1a;color:#FFFDD0;padding:70px 0 28px}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:48px;margin-bottom:48px}
.footer-brand h3{font-family:'Playfair Display',serif;font-size:1.6rem;margin-bottom:16px;color:#E8A317}
.footer-brand p{font-weight:300;font-size:.95rem;opacity:.8;line-height:1.8}
.footer-col h4{font-family:'Lato',sans-serif;font-size:.85rem;text-transform:uppercase;letter-spacing:1.5px;color:#E8A317;margin-bottom:18px}
.footer-col ul li{margin-bottom:10px}
.footer-col ul li a{font-size:.92rem;opacity:.8;transition:opacity .3s ease,color .3s ease}
.footer-col ul li a:hover{opacity:1;color:#E8A317}
.footer-bottom{text-align:center;padding-top:28px;border-top:1px solid rgba(232,163,23,.25);font-size:.85rem;opacity:.7}

/* ===== Responsive ===== */
@media (max-width:1024px){
  .footer-grid{grid-template-columns:1fr 1fr;gap:36px}
  .grid-4{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:768px){
  .nav-menu{position:fixed;top:0;right:-100%;width:75%;max-width:340px;height:100vh;background:#FFFDD0;flex-direction:column;justify-content:center;gap:28px;padding:60px 30px;box-shadow:-4px 0 30px rgba(0,0,0,.2);transition:right .4s ease}
  .nav-menu.open{right:0}
  .nav-menu a{color:#3a2a1a;font-size:1.05rem}
  .nav-toggle{display:flex;z-index:1001}
  section{padding:70px 0}
  .grid-2,.grid-3,.grid-4{grid-template-columns:1fr}
  .content-block{flex-direction:column;gap:36px}
  .footer-grid{grid-template-columns:1fr;gap:32px;text-align:center}
  .footer-brand p{max-width:420px;margin:0 auto}
}
@media (max-width:480px){
  body{font-size:16px}
  .btn{padding:13px 28px;font-size:.85rem}
  .contact-block{padding:36px 24px}
  .retro-frame{padding:24px}
  .retro-frame::before,.retro-frame::after{width:40px;height:40px}
}