:root {
  --forest: #285448;
  --forest-soft: #4d7467;
  --honey: #e67f32;
  --yellow: #e3b84f;
  --cream: #ffffff;
  --cream-deep: #fff8e8;
  --line: #e4ded2;
  --ink: #213b33;
  --muted: #66736c;
  --white: #ffffff;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--white); color: var(--ink); font-family: 'DM Sans', Arial, sans-serif; font-size: 16px; line-height: 1.55; }
a { color: inherit; }
.shell { width: min(1140px, calc(100% - 48px)); margin: 0 auto; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
.site-header { position: relative; z-index: 4; padding: 15px 0; background: var(--white); }
.header-inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.brand { display: inline-flex; align-items: center; text-decoration: none; flex: 0 0 auto; }
.brand img { display: block; width: 210px; height: 72px; object-fit: contain; }
.site-nav { display: flex; align-items: center; gap: 24px; font-size: 13px; font-weight: 500; color: var(--forest); }
.site-nav a, .site-footer a { text-decoration: none; }
.site-nav a:hover, .site-footer a:hover, .contact-links a:hover { color: var(--honey); }
.menu-toggle { display: none; border: 0; background: none; color: var(--forest); padding: 8px 4px; }
.menu-toggle span:not(.sr-only) { display: block; width: 22px; height: 1.5px; background: currentColor; margin: 5px 0; }
.hero { min-height: 575px; display: flex; align-items: center; padding: 45px 0 88px; overflow: hidden; background: var(--white); }
.hero-grid { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(360px, .8fr); align-items: center; gap: 48px; }
.hero-copy { position: relative; z-index: 1; }
.eyebrow { margin: 0 0 17px; color: var(--forest-soft); text-transform: uppercase; letter-spacing: .12em; font-size: 11px; font-weight: 600; display: flex; align-items: center; gap: 9px; }
.eyebrow span { width: 22px; height: 1px; background: var(--yellow); }
h1, h2 { font-family: Fraunces, Georgia, serif; font-weight: 500; letter-spacing: -.04em; color: var(--forest); }
h1 { max-width: 670px; font-size: clamp(44px, 5.2vw, 68px); line-height: 1.01; margin: 0; }
.hero-emphasis { color: var(--honey); font-family: 'Caveat', cursive; font-weight: 600; font-size: 1.14em; letter-spacing: -.025em; white-space: nowrap; }
.profession { display: flex; align-items: center; gap: 7px; color: var(--forest-soft); font-size: 15px; font-weight: 600; margin: 24px 0 8px; }
.credential-icon { width: 16px; height: 16px; flex: 0 0 auto; color: #8a918d; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.intro { max-width: 530px; color: var(--muted); font-size: 18px; margin: 0; }
.rating { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; color: var(--muted); font-size: 14px; margin: 26px 0; }
.rating strong { color: var(--forest); }
.rating-stars { display: flex; gap: 1px; color: var(--yellow); }
.rating-stars svg { width: 15px; height: 15px; fill: currentColor; }
.button { appearance: none; border: 0; border-radius: 7px; padding: 14px 21px; background: var(--forest); color: white; font: 600 14px 'DM Sans', sans-serif; letter-spacing: .01em; cursor: pointer; }
.button:hover { background: var(--forest-soft); }
.booking-actions { position: relative; display: inline-block; }
.booking-options { position: absolute; z-index: 3; top: calc(100% + 9px); left: 0; min-width: 215px; overflow: hidden; border: 1px solid var(--line); border-radius: 9px; background: var(--white); box-shadow: 0 12px 28px rgba(39,72,61,.12); }
.booking-options a { display: block; padding: 11px 14px; color: var(--forest); font-size: 13px; font-weight: 600; text-decoration: none; }
.booking-options a + a { border-top: 1px solid var(--line); }
.booking-options a:hover { color: var(--honey); background: var(--cream-deep); }
/* BUSSI_ILLUSTRATION_CSS_START */
.hero-art { width: min(100%, 490px); justify-self: end; position: relative; }
.botanical-art { display: block; width: 100%; height: auto; }
.art-sun { fill: #fff1c9; }
.art-stem { stroke: #31594b; stroke-width: 2.1; stroke-linecap: round; }
.art-leaf { fill: #4f7867; }
.art-leaf.pale { fill: #a5bb8c; }
.art-flower { fill: #e67f32; }
.art-dot { fill: #e3b84f; }
.art-dot.small { fill: #31594b; }
/* BUSSI_ILLUSTRATION_CSS_END */
.services-section { position: relative; padding: 88px 0 96px; background: var(--white); overflow: hidden; }
.services-section > .shell { position: relative; z-index: 1; }
.services-floral-accents { position: absolute; inset: 0; z-index: 0; pointer-events: none; color: var(--forest-soft); opacity: .18; }
.floral-accent { position: absolute; display: block; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.floral-accent-one { width: 190px; height: 190px; top: 12px; right: 3%; transform: rotate(8deg); }
.floral-accent-two { width: 220px; height: 220px; left: 1%; bottom: -50px; transform: rotate(-7deg); }
.section-heading { margin-bottom: 31px; }
.section-heading .eyebrow { margin-bottom: 9px; }
h2 { margin: 0; font-size: clamp(34px, 4vw, 48px); line-height: 1.08; }
.services-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.service-card { position: relative; padding: 25px 24px; border: 1px solid var(--line); border-radius: 16px; background: #fffaf0; overflow: hidden; }
.service-card::after { content: ''; position: absolute; right: -17px; bottom: -17px; width: 46px; height: 46px; border: 1px solid rgba(230,127,50,.4); border-radius: 50%; }
.service-card h3 { margin: 0 0 8px; color: var(--forest); font-family: Fraunces, Georgia, serif; font-size: 21px; font-weight: 500; }
.service-card p { margin: 0; color: var(--muted); font-size: 14px; }
.about-section { padding: 82px 0; background: var(--cream-deep); }
.about-layout { display: grid; grid-template-columns: minmax(270px, .75fr) minmax(0, 1.25fr); gap: 70px; align-items: start; }
.about-layout .section-heading { margin-bottom: 0; }
.about-copy { max-width: 690px; padding-top: 24px; }
.about-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; }
.about-tags span { padding: 6px 10px; border: 1px solid rgba(40,84,72,.18); border-radius: 999px; background: rgba(255,255,255,.58); color: var(--forest); font-size: 11px; font-weight: 600; letter-spacing: .02em; }
.about-copy p { margin: 0; color: var(--muted); font-size: 17px; }
.about-copy p + p { margin-top: 13px; }
.testimonials-section { padding: 88px 0 96px; background: var(--white); }
.testimonials-layout { display: grid; grid-template-columns: minmax(260px, .68fr) minmax(0, 1.32fr); gap: 58px; align-items: start; }
.testimonials-layout .section-heading { margin-bottom: 0; }
.testimonial-spotlight { display: grid; position: relative; min-height: 310px; padding: 32px 34px 54px; border: 1px solid var(--line); border-radius: 16px; background: #fffaf0; overflow: hidden; }
.testimonial-slide { grid-area: 1 / 1; align-self: start; opacity: 0; visibility: hidden; transform: translateY(5px); transition: opacity .45s ease, transform .45s ease, visibility .45s; }
.testimonial-slide.is-active { opacity: 1; visibility: visible; transform: translateY(0); }
.review-rating { margin: 0 0 15px; color: var(--honey); font-size: 11px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.testimonial-slide blockquote { margin: 0; color: var(--ink); font-family: Fraunces, Georgia, serif; font-size: clamp(18px, 2vw, 23px); line-height: 1.45; font-weight: 400; }
.reviewer { margin: 18px 0 0; color: var(--forest-soft); font-size: 13px; font-weight: 400; }
.testimonial-dots { position: absolute; left: 34px; bottom: 25px; display: flex; gap: 8px; }
.testimonial-dots button { width: 7px; height: 7px; padding: 0; border: 0; border-radius: 50%; background: var(--line); cursor: pointer; }
.testimonial-dots button.is-active { background: var(--honey); }
.practical-section { padding: 88px 0 96px; background: var(--white); }
.practical-layout { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(330px, .92fr); gap: 22px; align-items: stretch; }
.info-card, .map-card { border: 1px solid var(--line); border-radius: 16px; overflow: hidden; background: var(--white); }
.info-row { display: grid; grid-template-columns: 42px 1fr; gap: 15px; padding: 24px 27px; min-height: 112px; align-items: start; }
.info-row + .info-row { border-top: 1px solid var(--line); }
.info-icon { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; background: #fff0c8; color: var(--forest); }
.info-icon svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.info-row h3 { margin: 1px 0 4px; font-size: 13px; font-weight: 600; color: var(--forest); }
.info-row p, .info-row address { margin: 0; color: var(--muted); font-style: normal; font-size: 15px; }
.contact-links a, .social-links a { color: var(--forest); font-weight: 500; text-decoration: none; }
.social-links { display: flex; flex-wrap: wrap; gap: 7px 18px; }
.social-links a:hover { color: var(--honey); }
.map-card { min-height: 336px; display: flex; align-items: stretch; padding: 12px; }
.map-card iframe { width: 100%; min-height: 310px; display: block; border: 0; border-radius: 11px; }
.site-footer { border-top: 1px solid var(--line); background: var(--cream-deep); padding: 25px 0; color: var(--muted); font-size: 12px; }
.footer-inner { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.footer-inner p { margin: 0; }
.site-footer nav { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px; }
.socials { display: flex; align-items: center; gap: 10px; }
.social-placeholder { width: 25px; height: 25px; display: grid; place-items: center; color: var(--forest-soft); opacity: .82; text-decoration: none; }
.social-placeholder:hover { opacity: 1; }
.social-placeholder svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.65; stroke-linecap: round; stroke-linejoin: round; }
.social-placeholder:first-child svg { fill: currentColor; stroke: none; }
@media (max-width: 900px) {
  .site-nav { gap: 15px; }
  .site-nav a { font-size: 12px; }
  .services-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .testimonials-layout { gap: 35px; }
}
@media (max-width: 760px) {
  .shell { width: min(100% - 36px, 600px); }
  .site-header { padding: 10px 0; }
  .brand img { width: 180px; height: 62px; }
  .menu-toggle { display: block; }
  .site-nav { display: none; position: absolute; top: 72px; right: 18px; width: 225px; padding: 14px; border: 1px solid var(--line); border-radius: 10px; background: var(--white); box-shadow: 0 10px 25px rgba(39,72,61,.08); }
  .site-nav.is-open { display: grid; gap: 8px; }
  .site-nav a { padding: 7px; font-size: 14px; }
  .hero { min-height: auto; padding: 55px 0 69px; }
  .hero-grid { grid-template-columns: 1fr; gap: 11px; }
  h1 { font-size: clamp(42px, 11.5vw, 58px); }
  .hero-emphasis { white-space: normal; }
  .profession { align-items: flex-start; }
  .credential-icon { margin-top: 3px; }
  .hero-art { width: min(100%, 380px); justify-self: center; margin-top: -10px; }
  .services-section, .testimonials-section { padding: 64px 0 70px; }
  .floral-accent-one { width: 145px; height: 145px; top: 10px; right: -35px; }
  .floral-accent-two { width: 165px; height: 165px; left: -45px; bottom: -30px; }
  .services-grid { grid-template-columns: 1fr; }
  .about-section { padding: 62px 0 68px; }
  .about-layout, .testimonials-layout { grid-template-columns: 1fr; gap: 28px; }
  .about-copy { padding-top: 0; }
  .testimonial-spotlight { min-height: 375px; padding: 27px 25px 52px; }
  .testimonial-dots { left: 25px; bottom: 23px; }
  .practical-section { padding: 64px 0 70px; }
  .practical-layout { grid-template-columns: 1fr; }
  .map-card { min-height: 255px; }
  .map-card iframe { min-height: 275px; }
  .footer-inner { align-items: flex-start; flex-wrap: wrap; }
  .site-footer nav { order: 3; width: 100%; justify-content: flex-start; }
}
@media (max-width: 420px) {
  .brand img { width: 156px; height: 55px; }
  .info-row { padding: 20px; grid-template-columns: 37px 1fr; gap: 12px; }
  .info-icon { width: 34px; height: 34px; }
  .site-footer nav { gap: 12px; }
  .testimonial-spotlight { min-height: 440px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .testimonial-slide { transition: none; }
}