:root{
  --bg:#fbf8f1; --fg:#2a221a; --card:#ffffff; --muted:#7a6f63; --border:#e6dfd1;
  --primary:#b58a4a; --primary-soft:#f3e9d6; --deep:#2a221a; --deep-fg:#f5ecd9;
  --gold:#c69447; --cream:#f7eeda;
  --shadow-card:0 10px 30px -14px rgba(42,34,26,.18);
  --shadow-elegant:0 24px 60px -24px rgba(42,34,26,.30);
  --gradient-cream:linear-gradient(180deg,#fbf8f1,#f1e7d1);
}
*{box-sizing:border-box;margin:0;padding:0;border:0 solid var(--border)}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--fg);font-family:Inter,system-ui,sans-serif;-webkit-font-smoothing:antialiased;line-height:1.5}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:"Fraunces",Georgia,serif;letter-spacing:-.02em;font-weight:500;line-height:1.05}
.accent-italic{font-style:italic;font-weight:400;color:var(--primary)}
.container-x{width:100%;margin-inline:auto;padding-inline:1.25rem;max-width:80rem}
.eyebrow{display:inline-flex;align-items:center;gap:.5rem;font-size:.7rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--primary)}

/* Header */
.promo{background:var(--deep);color:var(--deep-fg);text-align:center;font-size:.8rem;padding:.6rem 1rem;letter-spacing:.1em;text-transform:uppercase}
.promo a:hover{color:var(--gold)}
.promo .gold{color:var(--gold);font-weight:600}
header.site{position:sticky;top:0;z-index:50;border-bottom:1px solid rgba(230,223,209,.6);background:rgba(251,248,241,.85);backdrop-filter:blur(10px)}
header.site .row{display:flex;align-items:center;gap:1.5rem;height:5rem;padding:.75rem 0}
.brand{font-family:"Fraunces",serif;font-size:1.15rem}
nav.main{display:none;align-items:center;gap:1.5rem;margin-left:auto}
nav.main a{font-size:.9rem;color:rgba(42,34,26,.8)}
nav.main a:hover{color:var(--primary)}
.btn{display:inline-flex;align-items:center;gap:.5rem;border-radius:9999px;font-weight:600;font-size:.85rem;padding:.65rem 1.5rem;transition:opacity .2s}
.btn-dark{background:var(--fg);color:var(--bg)}
.btn-dark:hover{opacity:.9}
.btn-outline{border:1px solid rgba(42,34,26,.2);background:rgba(255,255,255,.7)}
.btn-outline:hover{background:#fff}
.btn-phone{border:1px solid rgba(181,138,74,.4);background:rgba(181,138,74,.1);padding:.5rem 1rem}
.btn-phone:hover{background:rgba(181,138,74,.15)}
.icon{width:1rem;height:1rem;flex-shrink:0}
@media(min-width:1024px){nav.main{display:flex}}
@media(min-width:768px){.hide-mobile{display:inline-flex}}
.hide-mobile{display:none}

/* Hero */
.hero{position:relative;overflow:hidden;background:var(--gradient-cream)}
.hero .bgimg{position:absolute;inset:0;opacity:.25}
.hero .bgimg img{width:100%;height:100%;object-fit:cover}
.hero .overlay{position:absolute;inset:0;background:linear-gradient(to right,var(--bg),rgba(251,248,241,.85),rgba(251,248,241,.3))}
.hero .container-x{position:relative}
.hero .logo{padding-top:1.5rem;width:11rem}
.hero .inner{max-width:48rem;padding:2rem 0 5rem}
.hero h1{font-size:clamp(2.5rem,5vw,4.5rem);margin-top:1.25rem}
.hero p.lead{margin-top:1.5rem;font-size:1.05rem;color:var(--muted);max-width:36rem;line-height:1.7}
.cta-row{margin-top:2rem;display:flex;flex-wrap:wrap;align-items:flex-start;gap:.75rem}
.btn-cta{background:var(--fg);color:var(--bg);padding:1rem 1.75rem;font-size:.9rem;box-shadow:0 10px 25px -10px rgba(0,0,0,.3)}
.btn-phone-lg{padding:1rem 1.75rem;font-size:.9rem;border:1px solid rgba(42,34,26,.2);background:rgba(251,248,241,.7);color:var(--fg)}
.badges{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem}
.badge-pill{display:inline-flex;align-items:center;gap:.5rem;border-radius:9999px;border:1px solid rgba(181,138,74,.3);background:rgba(181,138,74,.05);padding:.25rem .75rem;font-size:.75rem;font-weight:500}
.badge-pill .icon{color:var(--primary);width:.85rem;height:.85rem}

/* Sections */
section.block{padding:5rem 0}
@media(min-width:768px){section.block{padding:8rem 0}}
.bg-cream{background:var(--gradient-cream)}
.bg-bg{background:var(--bg)}
h2.title{margin-top:.75rem;font-size:clamp(2rem,4vw,3.75rem);line-height:1.1}
p.subtitle{margin-top:1.25rem;font-size:1.05rem;color:var(--muted);max-width:42rem}

/* About */
.grid-about{display:grid;gap:3rem;align-items:center}
@media(min-width:1024px){.grid-about{grid-template-columns:5fr 7fr}}
.img-frame{position:relative;border-radius:1.5rem;overflow:hidden;box-shadow:var(--shadow-elegant)}
.img-frame img{aspect-ratio:4/5;object-fit:cover;width:100%}
.stats{margin-top:2.5rem;display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;border-top:1px solid var(--border);padding-top:2rem}
.stats .n{font-family:"Fraunces",serif;font-size:clamp(1.75rem,3vw,3rem);color:var(--primary)}
.stats .l{margin-top:.5rem;font-size:.7rem;text-transform:uppercase;letter-spacing:.15em;color:var(--muted)}
.link-arrow{margin-top:2.5rem;display:inline-flex;align-items:center;gap:.5rem;font-weight:600;font-size:.9rem}
.link-arrow:hover{color:var(--primary)}

/* Services */
.grid-services{margin-top:3.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
.service-card{overflow:hidden;border-radius:1.5rem;border:1px solid var(--border);background:var(--card);box-shadow:var(--shadow-card);transition:transform .3s,box-shadow .3s}
.service-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-elegant)}
.service-card .img{aspect-ratio:4/3;overflow:hidden}
.service-card .img img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.service-card:hover .img img{transform:scale(1.05)}
.service-card .body{padding:1.75rem}
.service-card h3{font-size:1.5rem}
.service-card p{margin-top:.5rem;font-size:.875rem;color:var(--muted);line-height:1.6}

/* Packages */
.grid-pkg{margin-top:3.5rem;display:grid;gap:1.5rem}
@media(min-width:1024px){.grid-pkg{grid-template-columns:repeat(3,1fr)}}
.pkg{position:relative;border-radius:1.5rem;padding:2rem;border:1px solid var(--border);background:var(--card);box-shadow:var(--shadow-card);display:flex;flex-direction:column}
.pkg.featured{background:var(--deep);color:var(--deep-fg);border-color:var(--deep)}
.pkg .label{font-size:.7rem;text-transform:uppercase;letter-spacing:.15em;font-weight:600;color:var(--primary)}
.pkg.featured .label{color:var(--gold)}
.pkg h3{margin-top:.75rem;font-size:1.875rem}
.pkg .desc{margin-top:.5rem;font-size:.875rem;color:var(--muted)}
.pkg.featured .desc{color:rgba(245,236,217,.8)}
.pkg .price-wrap{margin-top:1.5rem}
.pkg .price{font-family:"Fraunces",serif;font-size:2.25rem}
.pkg .sub{font-size:.7rem;text-transform:uppercase;letter-spacing:.15em;margin-top:.25rem;color:var(--muted)}
.pkg.featured .sub{color:rgba(245,236,217,.7)}
.pkg ul{margin-top:1.75rem;display:flex;flex-direction:column;gap:.75rem;font-size:.875rem;flex:1;list-style:none}
.pkg li{display:flex;gap:.625rem}
.pkg li::before{content:"";width:1rem;height:1rem;flex-shrink:0;margin-top:.25rem;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b58a4a' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'/></svg>") center/contain no-repeat}
.pkg.featured li::before{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c69447' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'/></svg>")}
.pkg .cta{margin-top:2rem;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border-radius:9999px;padding:.875rem 1.5rem;font-size:.875rem;font-weight:600;background:var(--fg);color:var(--bg)}
.pkg.featured .cta{background:var(--gold);color:var(--fg)}
.note{margin-top:2.5rem;text-align:center;font-size:.7rem;text-transform:uppercase;letter-spacing:.15em;color:var(--muted)}

/* Why */
.grid-why{display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.why-card{border-radius:1rem;border:1px solid var(--border);background:var(--card);padding:1.75rem;box-shadow:var(--shadow-card)}
.why-card .icon-lg{width:1.75rem;height:1.75rem;color:var(--primary)}
.why-card h3{margin-top:1rem;font-size:1.25rem}
.why-card p{margin-top:.5rem;font-size:.875rem;color:var(--muted)}

/* Contact */
.grid-contact{display:grid;gap:3rem}
@media(min-width:1024px){.grid-contact{grid-template-columns:5fr 7fr}}
.contact-info{margin-top:2.5rem;display:flex;flex-direction:column;gap:1.25rem}
.contact-info .label{font-size:.7rem;text-transform:uppercase;letter-spacing:.15em;color:var(--muted)}
.contact-info .val{margin-top:.25rem;color:var(--fg)}
.contact-info .val.big{font-family:"Fraunces",serif;font-size:1.5rem}
form.quote{background:var(--card);border:1px solid var(--border);border-radius:1.5rem;padding:2rem;box-shadow:var(--shadow-card)}
form.quote .field{margin-bottom:1rem}
form.quote label{display:block;font-size:.8rem;font-weight:600;margin-bottom:.4rem}
form.quote input,form.quote select,form.quote textarea{width:100%;border:1px solid var(--border);border-radius:.5rem;padding:.65rem .75rem;font-size:.9rem;font-family:inherit;background:var(--bg)}
form.quote textarea{min-height:120px;resize:vertical}
form.quote button{width:100%;margin-top:.5rem}

/* Gallery */
.gallery{margin-top:3.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
.gal-tile{aspect-ratio:4/3;border-radius:1.5rem;border:1px dashed var(--border);background:var(--card);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;color:var(--muted)}
.gal-tile span{font-size:.7rem;text-transform:uppercase;letter-spacing:.15em}

/* Footer */
footer.site{background:var(--deep);color:var(--deep-fg)}
footer.site .grid{display:grid;gap:3rem;padding:4rem 0}
@media(min-width:768px){footer.site .grid{grid-template-columns:repeat(4,1fr)}}
footer.site .brand-block{grid-column:span 2}
footer.site .logo-box{display:inline-flex;background:rgba(251,248,241,.95);padding:.75rem 1rem;border-radius:1rem;margin-bottom:1.25rem}
footer.site .logo-box img{height:3rem;width:auto}
footer.site h4{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.15em;margin-bottom:1rem;opacity:.9}
footer.site ul{list-style:none;display:flex;flex-direction:column;gap:.5rem;font-size:.875rem;opacity:.8}
footer.site ul.contact li{display:flex;align-items:flex-start;gap:.5rem}
footer.site ul.contact .icon{color:var(--gold);margin-top:.15rem}
footer.site .copy{border-top:1px solid rgba(255,255,255,.1)}
footer.site .copy .row{padding:1.5rem 0;font-size:.75rem;opacity:.7;display:flex;flex-direction:column;gap:.5rem}
@media(min-width:768px){footer.site .copy .row{flex-direction:row;justify-content:space-between}}
