/* My Nest Makeover — custom presentation layer over Bootstrap 5.3 */
:root {
  --ink: #17201d;
  --forest: #16392e;
  --forest-2: #245746;
  --sage: #8ca596;
  --sage-soft: #dfe9e2;
  --clay: #c96f45;
  --clay-dark: #9f4f2d;
  --cream: #f6f2e9;
  --paper: #fffdf9;
  --line: rgba(22, 57, 46, 0.14);
  --muted: #65706b;
  --shadow-sm: 0 12px 34px rgba(22, 57, 46, 0.09);
  --shadow-lg: 0 28px 70px rgba(16, 39, 31, 0.18);
  --radius-sm: 10px;
  --radius-md: 18px;
  --radius-lg: 28px;
  --transition: 220ms ease;
}

html { scroll-behavior: smooth; }
body {
  color: var(--ink);
  background: var(--paper);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 1rem;
  line-height: 1.72;
  overflow-x: hidden;
}

h1, h2, h3, h4, h5, .display-font {
  color: var(--forest);
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 500;
  letter-spacing: -0.035em;
  line-height: 1.08;
}
h1 { font-size: clamp(2.75rem, 7vw, 6.35rem); }
h2 { font-size: clamp(2.15rem, 4.8vw, 4rem); }
h3 { font-size: clamp(1.4rem, 2vw, 1.8rem); }
p { color: var(--muted); }
a { color: var(--forest-2); text-decoration-color: rgba(36, 87, 70, 0.35); text-underline-offset: .18em; }
a:hover { color: var(--clay-dark); }
img { max-width: 100%; }
::selection { color: #fff; background: var(--clay); }

.skip-link {
  position: fixed;
  top: -100px;
  left: 1rem;
  z-index: 2000;
  padding: .7rem 1rem;
  color: #fff;
  background: var(--forest);
  border-radius: 0 0 8px 8px;
  transition: top var(--transition);
}
.skip-link:focus { top: 0; color: #fff; }

.announcement {
  padding: .48rem 0;
  color: rgba(255,255,255,.82);
  background: var(--forest);
  font-size: .78rem;
  letter-spacing: .08em;
  text-align: center;
  text-transform: uppercase;
}
.announcement a { color: #fff; text-decoration-color: rgba(255,255,255,.4); }
.site-header { position: relative; z-index: 1020; }
.site-navbar {
  min-height: 82px;
  padding: .65rem 0;
  background: rgba(255, 253, 249, .94);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(18px);
}
.navbar-brand {
  display: inline-flex;
  align-items: center;
  gap: .72rem;
  color: var(--forest) !important;
  text-decoration: none;
}
.brand-mark {
  display: grid;
  width: 45px;
  height: 45px;
  place-items: center;
  color: #fff;
  background: var(--forest);
  border-radius: 50% 50% 50% 8px;
  transform: rotate(-2deg);
}
.brand-mark svg { width: 25px; height: 25px; }
.brand-copy { display: flex; flex-direction: column; line-height: 1; }
.brand-copy strong { font-family: Georgia, "Times New Roman", serif; font-size: 1.2rem; font-weight: 500; letter-spacing: -.035em; }
.brand-copy small { margin-top: .27rem; color: var(--muted); font-size: .62rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.navbar-toggler { border: 0; box-shadow: none !important; }
.navbar-toggler-icon { width: 1.35em; height: 1.35em; }
.navbar-nav { gap: .15rem; }
.nav-link {
  position: relative;
  padding: .65rem .82rem !important;
  color: #46504c;
  font-size: .9rem;
  font-weight: 650;
  text-decoration: none;
}
.nav-link::after {
  position: absolute;
  right: .82rem;
  bottom: .48rem;
  left: .82rem;
  height: 1px;
  background: var(--clay);
  content: "";
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--transition);
}
.nav-link:hover, .nav-link.active { color: var(--forest); }
.nav-link:hover::after, .nav-link.active::after { transform: scaleX(1); }

.btn {
  --bs-btn-padding-x: 1.28rem;
  --bs-btn-padding-y: .78rem;
  --bs-btn-font-size: .9rem;
  --bs-btn-font-weight: 700;
  --bs-btn-border-radius: 999px;
  letter-spacing: .01em;
  transition: transform var(--transition), box-shadow var(--transition), background var(--transition);
}
.btn:hover { transform: translateY(-2px); }
.btn-brand { color: #fff; background: var(--clay); border: 1px solid var(--clay); box-shadow: 0 10px 24px rgba(201,111,69,.22); }
.btn-brand:hover, .btn-brand:focus { color: #fff; background: var(--clay-dark); border-color: var(--clay-dark); box-shadow: 0 14px 30px rgba(159,79,45,.27); }
.btn-forest { color: #fff; background: var(--forest); border-color: var(--forest); }
.btn-forest:hover, .btn-forest:focus { color: #fff; background: var(--forest-2); border-color: var(--forest-2); }
.btn-outline-forest { color: var(--forest); background: transparent; border: 1px solid rgba(22,57,46,.4); }
.btn-outline-forest:hover { color: #fff; background: var(--forest); border-color: var(--forest); }
.text-link { display: inline-flex; align-items: center; gap: .55rem; color: var(--forest); font-weight: 750; text-decoration: none; }
.text-link svg { width: 17px; transition: transform var(--transition); }
.text-link:hover svg { transform: translateX(4px); }

.section-pad { padding: clamp(4.6rem, 9vw, 8rem) 0; }
.section-pad-sm { padding: clamp(3rem, 6vw, 5rem) 0; }
.bg-cream { background: var(--cream); }
.bg-forest { color: #fff; background: var(--forest); }
.bg-forest h2, .bg-forest h3, .bg-forest h4 { color: #fff; }
.bg-forest p { color: rgba(255,255,255,.68); }
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: .7rem;
  margin-bottom: 1rem;
  color: var(--clay-dark);
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .15em;
  text-transform: uppercase;
}
.eyebrow::before { width: 28px; height: 1px; background: currentColor; content: ""; }
.bg-forest .eyebrow { color: #f0a27c; }
.lede { max-width: 720px; color: #4f5c56; font-size: clamp(1.05rem, 1.8vw, 1.25rem); line-height: 1.72; }
.section-heading { max-width: 780px; }
.section-heading.center { margin-right: auto; margin-left: auto; text-align: center; }
.section-heading.center .lede { margin-right: auto; margin-left: auto; }

.hero-home {
  position: relative;
  min-height: 745px;
  background: var(--cream);
  isolation: isolate;
}
.hero-home::before {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  z-index: -1;
  width: 58%;
  background-image: radial-gradient(circle at 16% 24%, rgba(140,165,150,.24), transparent 25%), linear-gradient(135deg, #f9f6ef 0%, #eee8dd 100%);
  content: "";
}
.hero-home .container, .hero-home .row { min-height: inherit; }
.hero-copy { padding: 5rem 0; }
.hero-copy h1 { max-width: 760px; margin-bottom: 1.5rem; }
.hero-copy h1 em { color: var(--clay); font-style: italic; }
.hero-copy .lede { max-width: 610px; }
.hero-actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 2rem; }
.hero-image-wrap { position: absolute; top: 0; right: 0; bottom: 0; width: 45%; overflow: hidden; }
.hero-image-wrap::after { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(246,242,233,.2), transparent 30%), linear-gradient(0deg, rgba(9,29,23,.22), transparent 38%); content: ""; }
.hero-image-wrap img { width: 100%; height: 100%; object-fit: cover; }
.hero-note {
  position: absolute;
  right: clamp(1rem, 4vw, 4rem);
  bottom: 2.6rem;
  z-index: 2;
  width: min(340px, calc(100% - 2rem));
  padding: 1.2rem 1.3rem;
  color: #fff;
  background: rgba(16,44,35,.84);
  border: 1px solid rgba(255,255,255,.2);
  border-radius: var(--radius-md) var(--radius-md) 4px var(--radius-md);
  backdrop-filter: blur(13px);
}
.hero-note strong { display: block; margin-bottom: .15rem; font-family: Georgia, "Times New Roman", serif; font-size: 1.25rem; font-weight: 500; }
.hero-note span { color: rgba(255,255,255,.72); font-size: .83rem; }
.promise-row { padding: 1.4rem 0; background: var(--forest); }
.promise-item { display: flex; align-items: center; justify-content: center; gap: .72rem; color: rgba(255,255,255,.82); font-size: .84rem; font-weight: 650; }
.promise-item svg { width: 20px; height: 20px; color: #f0a27c; flex: 0 0 auto; }

.service-card {
  position: relative;
  height: 100%;
  padding: 1.6rem;
  overflow: hidden;
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  transition: transform var(--transition), box-shadow var(--transition), border-color var(--transition);
}
.service-card::after {
  position: absolute;
  right: -30px;
  bottom: -38px;
  width: 95px;
  height: 95px;
  background: var(--sage-soft);
  border-radius: 50%;
  content: "";
  opacity: 0;
  transition: opacity var(--transition), transform var(--transition);
}
.service-card:hover { z-index: 1; border-color: rgba(201,111,69,.32); box-shadow: var(--shadow-sm); transform: translateY(-5px); }
.service-card:hover::after { opacity: .65; transform: scale(1.3); }
.service-icon {
  display: grid;
  width: 48px;
  height: 48px;
  margin-bottom: 1.35rem;
  color: var(--forest);
  background: var(--sage-soft);
  border-radius: 14px 14px 4px 14px;
  place-items: center;
}
.service-icon svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; }
.service-card h3 { margin-bottom: .7rem; font-size: 1.35rem; }
.service-card p { margin: 0; font-size: .91rem; line-height: 1.68; }
.service-card .text-link { margin-top: 1.1rem; font-size: .86rem; }

.split-image { position: relative; min-height: 610px; }
.split-image .main-image { width: calc(100% - 52px); height: 560px; object-fit: cover; border-radius: 4px var(--radius-lg) var(--radius-lg) var(--radius-lg); box-shadow: var(--shadow-lg); }
.split-image .inset-image { position: absolute; right: 0; bottom: 0; width: 47%; height: 245px; object-fit: cover; border: 9px solid var(--paper); border-radius: var(--radius-md) var(--radius-md) 4px var(--radius-md); box-shadow: var(--shadow-sm); }
.check-list { margin: 1.8rem 0 2.1rem; padding: 0; list-style: none; }
.check-list li { display: flex; gap: .8rem; margin-bottom: .85rem; color: #46524d; }
.check-list svg { width: 20px; height: 20px; margin-top: .25rem; color: var(--clay); flex: 0 0 auto; }

.process-card { position: relative; padding: 1.65rem 1.5rem 1.4rem; border-top: 1px solid rgba(255,255,255,.18); }
.process-number { display: inline-grid; width: 36px; height: 36px; margin-bottom: 2rem; color: #fff; background: var(--clay); border-radius: 50%; place-items: center; font-family: Georgia, serif; }
.process-card h3 { margin-bottom: .75rem; font-size: 1.35rem; }
.process-card p { margin: 0; font-size: .9rem; }

.story-mosaic { display: grid; grid-template-columns: 1.15fr .85fr; grid-template-rows: 260px 260px; gap: 1rem; }
.story-mosaic figure { position: relative; margin: 0; overflow: hidden; border-radius: var(--radius-md); }
.story-mosaic figure:first-child { grid-row: 1 / 3; }
.story-mosaic img { width: 100%; height: 100%; object-fit: cover; transition: transform 500ms ease; }
.story-mosaic figure:hover img { transform: scale(1.035); }
.story-mosaic figcaption { position: absolute; right: 1rem; bottom: 1rem; left: 1rem; padding: .7rem .85rem; color: #fff; background: rgba(15,42,33,.72); border-radius: 10px; font-size: .8rem; backdrop-filter: blur(8px); }

.cta-panel { position: relative; padding: clamp(2.3rem, 6vw, 4.7rem); overflow: hidden; color: #fff; background: var(--forest); border-radius: var(--radius-lg); }
.cta-panel::after { position: absolute; right: -105px; bottom: -130px; width: 360px; height: 360px; border: 70px solid rgba(255,255,255,.055); border-radius: 50%; content: ""; }
.cta-panel h2 { max-width: 740px; color: #fff; }
.cta-panel p { max-width: 620px; color: rgba(255,255,255,.7); }
.cta-panel .btn { position: relative; z-index: 1; }

.page-hero { position: relative; padding: clamp(4.4rem, 9vw, 7.5rem) 0; overflow: hidden; background: var(--cream); }
.page-hero::after { position: absolute; top: -140px; right: -110px; width: 420px; height: 420px; border: 82px solid rgba(140,165,150,.16); border-radius: 50%; content: ""; }
.page-hero h1 { max-width: 900px; margin-bottom: 1.3rem; font-size: clamp(2.8rem, 6.5vw, 5.45rem); }
.page-hero .lede { max-width: 740px; }
.breadcrumb { --bs-breadcrumb-divider-color: #99a29e; --bs-breadcrumb-item-active-color: var(--muted); margin-bottom: 1.5rem; font-size: .78rem; letter-spacing: .06em; text-transform: uppercase; }
.breadcrumb a { color: var(--forest); font-weight: 700; text-decoration: none; }
.page-hero-image { min-height: 520px; }
.page-hero-image img { width: 100%; height: 520px; object-fit: cover; border-radius: 4px var(--radius-lg) var(--radius-lg) var(--radius-lg); box-shadow: var(--shadow-lg); }

.value-card { height: 100%; padding: 2rem; background: var(--cream); border-radius: var(--radius-md); }
.value-card .service-icon { background: var(--paper); }
.value-card h3 { margin-bottom: .8rem; }
.value-card p { margin: 0; }
.quote-block { padding: 2.5rem; background: var(--sage-soft); border-left: 4px solid var(--clay); border-radius: 0 var(--radius-md) var(--radius-md) 0; }
.quote-block blockquote { margin: 0; color: var(--forest); font-family: Georgia, serif; font-size: clamp(1.35rem, 2.5vw, 2rem); line-height: 1.4; }

.service-detail { height: 100%; padding: 2rem; background: #fff; border: 1px solid var(--line); border-radius: var(--radius-md); }
.service-detail h2 { margin-bottom: .9rem; font-size: 1.7rem; }
.service-detail p { margin-bottom: 1rem; }
.service-detail ul { margin: 0; padding-left: 1.15rem; color: var(--muted); font-size: .9rem; }
.service-detail li { margin-bottom: .4rem; }
.service-detail .service-icon { margin-bottom: 1.5rem; }
.accordion-item { background: transparent; border-color: var(--line); }
.accordion-button { padding: 1.25rem 0; color: var(--forest); background: transparent; font-family: Georgia, "Times New Roman", serif; font-size: 1.2rem; box-shadow: none !important; }
.accordion-button:not(.collapsed) { color: var(--clay-dark); background: transparent; }
.accordion-button:focus { border-color: transparent; box-shadow: 0 0 0 .2rem rgba(140,165,150,.16) !important; }
.accordion-body { padding: 0 0 1.35rem; color: var(--muted); }

.blog-feature { overflow: hidden; background: var(--cream); border-radius: var(--radius-lg); }
.blog-feature img { width: 100%; min-height: 430px; height: 100%; object-fit: cover; }
.blog-feature-copy { padding: clamp(2rem, 5vw, 4.3rem); }
.article-date { margin-bottom: .8rem; color: var(--clay-dark); font-size: .75rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.blog-card { height: 100%; overflow: hidden; background: #fff; border: 1px solid var(--line); border-radius: var(--radius-md); transition: transform var(--transition), box-shadow var(--transition); }
.blog-card:hover { box-shadow: var(--shadow-sm); transform: translateY(-5px); }
.blog-card img { width: 100%; height: 245px; object-fit: cover; }
.blog-card-body { padding: 1.6rem; }
.blog-card h2 { margin-bottom: .75rem; font-size: 1.55rem; }
.article-body { max-width: 840px; margin: 0 auto; }
.article-body + .article-body { margin-top: 5rem; padding-top: 5rem; border-top: 1px solid var(--line); }
.article-body h2 { margin-bottom: 1.2rem; }
.article-body h3 { margin-top: 2.2rem; margin-bottom: .8rem; }
.article-body p, .article-body li { color: #57635d; }

.form-shell { padding: clamp(1.6rem, 4vw, 3rem); background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); }
.form-label { margin-bottom: .45rem; color: var(--forest); font-size: .84rem; font-weight: 750; }
.form-control, .form-select {
  min-height: 52px;
  padding: .72rem .9rem;
  color: var(--ink);
  background-color: #fbfaf6;
  border-color: rgba(22,57,46,.18);
  border-radius: 10px;
}
textarea.form-control { min-height: 145px; resize: vertical; }
.form-control:focus, .form-select:focus { background: #fff; border-color: var(--sage); box-shadow: 0 0 0 .24rem rgba(140,165,150,.18); }
.form-control::placeholder { color: #9aa19e; }
.form-check-input:checked { background-color: var(--forest); border-color: var(--forest); }
.form-text, .form-check-label { color: var(--muted); font-size: .8rem; }
.form-status { display: none; margin-top: 1rem; padding: .85rem 1rem; border-radius: 10px; font-size: .88rem; }
.form-status.success { display: block; color: #164e37; background: #e7f5ed; border: 1px solid #bddfca; }
.form-status.error { display: block; color: #812f29; background: #fff0ee; border: 1px solid #efc7c1; }
.form-status.info { display: block; color: #654813; background: #fff7df; border: 1px solid #ead89c; }
.honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.contact-panel { height: 100%; padding: 2.4rem; color: #fff; background: var(--forest); border-radius: var(--radius-lg); }
.contact-panel h2, .contact-panel h3 { color: #fff; }
.contact-panel p, .contact-panel address { color: rgba(255,255,255,.7); }
.contact-item { display: flex; gap: 1rem; padding: 1.25rem 0; border-bottom: 1px solid rgba(255,255,255,.12); }
.contact-item:last-child { border-bottom: 0; }
.contact-item svg { width: 23px; height: 23px; color: #f0a27c; flex: 0 0 auto; }
.contact-item strong { display: block; margin-bottom: .15rem; color: #fff; font-size: .86rem; }
.contact-item a { color: rgba(255,255,255,.78); text-decoration-color: rgba(255,255,255,.24); }

.newsletter-wrap { max-width: 850px; margin: 0 auto; }
.newsletter-tabs { gap: .6rem; padding: .45rem; background: var(--cream); border: 0; border-radius: 999px; }
.newsletter-tabs .nav-link { width: 100%; border: 0 !important; border-radius: 999px; }
.newsletter-tabs .nav-link::after { display: none; }
.newsletter-tabs .nav-link.active { color: #fff; background: var(--forest); }
.newsletter-tabs .nav-item { flex: 1; }

.legal-content { max-width: 880px; }
.legal-content h2 { margin-top: 2.7rem; margin-bottom: .9rem; font-size: 1.85rem; }
.legal-content h3 { margin-top: 1.8rem; font-size: 1.3rem; }
.legal-content p, .legal-content li { color: #59635f; }
.legal-content a { font-weight: 650; }
.legal-note { padding: 1.3rem 1.5rem; background: var(--cream); border-radius: var(--radius-sm); }

.site-footer { padding: 5rem 0 1.5rem; color: rgba(255,255,255,.7); background: #102920; }
.site-footer .brand-copy strong, .site-footer h3 { color: #fff; }
.site-footer .brand-copy small { color: rgba(255,255,255,.55); }
.site-footer .brand-mark { color: var(--forest); background: #f2a07a; }
.footer-intro { max-width: 430px; margin-top: 1.3rem; color: rgba(255,255,255,.62); }
.footer-title { margin-bottom: 1.2rem; color: #fff; font-family: inherit; font-size: .75rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.footer-links { margin: 0; padding: 0; list-style: none; }
.footer-links li { margin-bottom: .62rem; }
.footer-links a { color: rgba(255,255,255,.66); font-size: .9rem; text-decoration: none; }
.footer-links a:hover { color: #fff; }
.footer-contact { font-style: normal; font-size: .9rem; line-height: 1.8; }
.footer-contact a { color: rgba(255,255,255,.72); }
.footer-bottom { margin-top: 3.4rem; padding-top: 1.4rem; border-top: 1px solid rgba(255,255,255,.1); font-size: .78rem; }
.footer-bottom p { margin: 0; color: rgba(255,255,255,.48); }
.footer-legal { display: flex; flex-wrap: wrap; gap: 1.1rem; justify-content: flex-end; }
.footer-legal a { color: rgba(255,255,255,.52); text-decoration: none; }

.reveal { opacity: 0; transform: translateY(18px); transition: opacity 650ms ease, transform 650ms ease; }
.reveal.visible { opacity: 1; transform: none; }

@media (max-width: 1199.98px) {
  .hero-home { min-height: 690px; }
  .hero-image-wrap { width: 42%; }
  .hero-home::before { width: 64%; }
}

@media (max-width: 991.98px) {
  .site-navbar { min-height: 72px; }
  .navbar-collapse { margin-top: .7rem; padding: 1rem; background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); }
  .navbar-nav { margin-bottom: .9rem; }
  .navbar .btn { width: 100%; }
  .hero-home { min-height: auto; }
  .hero-home::before { width: 100%; }
  .hero-copy { padding: 4.5rem 0 3.2rem; }
  .hero-image-wrap { position: relative; width: 100%; height: 520px; }
  .hero-note { bottom: 1.2rem; }
  .promise-item { justify-content: flex-start; }
  .split-image { min-height: 540px; }
  .split-image .main-image { height: 500px; }
  .page-hero-image, .page-hero-image img { min-height: 430px; height: 430px; }
}

@media (max-width: 767.98px) {
  body { font-size: .96rem; }
  .announcement { padding: .4rem .6rem; font-size: .66rem; }
  .brand-copy small { display: none; }
  .hero-copy { padding-top: 3.6rem; }
  .hero-image-wrap { height: 430px; }
  .promise-item { padding: .3rem 0; }
  .story-mosaic { grid-template-columns: 1fr 1fr; grid-template-rows: 360px 190px; }
  .story-mosaic figure:first-child { grid-column: 1 / 3; grid-row: auto; }
  .split-image { min-height: 470px; }
  .split-image .main-image { width: calc(100% - 30px); height: 435px; }
  .split-image .inset-image { width: 48%; height: 190px; border-width: 6px; }
  .page-hero-image, .page-hero-image img { min-height: 350px; height: 350px; }
  .blog-feature img { min-height: 320px; }
  .footer-legal { margin-top: .8rem; justify-content: flex-start; }
}

@media (max-width: 575.98px) {
  .hero-actions .btn { width: 100%; }
  .hero-image-wrap { height: 390px; }
  .hero-note { right: .8rem; bottom: .8rem; left: .8rem; width: auto; }
  .story-mosaic { grid-template-columns: 1fr; grid-template-rows: 320px 190px 190px; }
  .story-mosaic figure:first-child { grid-column: auto; }
  .form-shell, .contact-panel { padding: 1.4rem; }
  .newsletter-tabs { border-radius: 16px; }
  .newsletter-tabs .nav-link { border-radius: 11px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
  .reveal { opacity: 1; transform: none; }
}
