/* Locally hosted fonts; licenses are in assets/fonts/. */
@font-face {
  font-family:"Cormorant Garamond";
  font-style:normal;
  font-weight:500;
  font-display:optional;
  src:url("../fonts/cormorant-garamond-latin-500-normal.woff2") format("woff2");
}
@font-face {
  font-family:"Cormorant Garamond";
  font-style:italic;
  font-weight:500;
  font-display:optional;
  src:url("../fonts/cormorant-garamond-latin-500-italic.woff2") format("woff2");
}
@font-face {
  font-family:"Inter";
  font-style:normal;
  font-weight:400;
  font-display:optional;
  src:url("../fonts/inter-latin-400-normal.woff2") format("woff2");
}
@font-face {
  font-family:"Inter";
  font-style:normal;
  font-weight:600;
  font-display:optional;
  src:url("../fonts/inter-latin-600-normal.woff2") format("woff2");
}
:root {
  --font-body:"Inter",Arial,Helvetica,sans-serif;
  --font-display:"Cormorant Garamond",Georgia,serif;
  --bs-body-font-family:var(--font-body);
  --ink:#202521;
  --paper:#f7f6f2;
  --accent:#a85c36;
  --line:#d4d5cd;
  --muted:#5d655e;
}
body {
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:1rem;
  line-height:1.65;
}
a {
  color:inherit;
  text-decoration:none;
}
img {
  display:block;
  max-width:100%;
  object-fit:cover;
}
h1,h2,h3,h4,h5,h6 {
  font-family:var(--font-display);
  font-weight:500;
  line-height:1.08;
}
h1 {
  font-size:clamp(3rem,5.4vw,5.9rem);
  letter-spacing:-.025em;
}
h2 {
  font-size:clamp(2.3rem,4vw,4.2rem);
  letter-spacing:-.02em;
}
h3 {
  font-size:2rem;
}
p {
  margin-bottom:0;
  max-width:42rem;
}
em {
  font-weight:inherit;
}
.container {
  max-width:1320px;
}
.site-header {
  border-bottom:1px solid var(--line);
}
.navbar {
  padding:18px 12px;
}
.brand img {
  width:180px;
  height:100px;
  object-fit:contain;
  mix-blend-mode:multiply;
}
.navbar-nav {
  font-size:.9rem;
}
.nav-link {
  color:var(--ink);
}
.nav-link[aria-current=page] {
  text-decoration:underline;
  text-underline-offset:7px;
}
.navbar-toggler {
  font-size:.95rem;
  border-radius:999px;
  padding:10px 12px;
}
.navbar-toggler-icon {
  width:1.2rem;
  height:1.2rem;
}
.dropdown-menu {
  background:var(--paper);
  border-color:var(--line);
  border-radius:0;
  font-size:1rem;
}
.dropdown-item:active {
  background:var(--ink);
}
.btn {
  padding:13px 23px;
  border-radius:999px;
  font-size:.9rem;
  font-weight:600;
  min-height:48px;
  display:inline-flex;
  justify-content:center;
  align-items:center;
}
.btn-primary {
  --bs-btn-bg:var(--accent);
  --bs-btn-border-color:var(--accent);
  --bs-btn-hover-bg:#864323;
  --bs-btn-hover-border-color:#864323;
  --bs-btn-active-bg:#864323;
  --bs-btn-active-border-color:#864323;
  --bs-btn-disabled-bg:var(--accent);
  --bs-btn-disabled-border-color:var(--accent);
  color:white;
}
.btn-outline-dark {
  --bs-btn-color:var(--ink);
  --bs-btn-border-color:var(--ink);
  --bs-btn-hover-bg:var(--ink);
  --bs-btn-hover-border-color:var(--ink);
}
.text-link {
  display:inline-block;
  border-bottom:1px solid currentColor;
  padding-bottom:4px;
  font-size:.95rem;
}
.hero-copy {
  padding:70px 5%;
  align-self:center;
}
.eyebrow {
  font-size:.78rem;
  letter-spacing:.16em;
  line-height:1.6;
  font-weight:600;
  margin-bottom:25px;
}
.hero-copy>p:not(.eyebrow) {
  margin-top:26px;
  color:var(--muted);
  max-width:360px;
}
.actions {
  display:flex;
  gap:24px;
  align-items:center;
  flex-wrap:wrap;
  margin-top:32px;
}
.hero-note {
  display:block;
  font-size:.75rem;
  letter-spacing:.12em;
  margin-top:55px;
}
.hero-photo {
  position:relative;
  align-self:center;
}
.hero-photo img {
  width:100%;
  height:auto;
  object-fit:contain;
  object-position:center;
}
.photo-label {
  position:absolute;
  bottom:24px;
  left:30px;
  color:#fff;
  text-shadow:0 1px 5px #000;
  font-family:var(--font-display);
  font-style:italic;
  font-size:1.2rem;
}
.intro {
  text-align:center;
  padding:90px 24px;
}
.intro p:last-child {
  margin:25px auto 0;
  max-width:580px;
  color:var(--muted);
}
.section {
  padding:75px 24px;
}
.section-heading {
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:30px;
  margin-bottom:40px;
}
.category img {
  width:100%;
  height:auto;
  object-fit:contain;
  transition:filter .2s;
}
.category:hover img {
  filter:brightness(.88);
}
.category>div {
  position:relative;
  padding-top:20px;
}
.category h3 {
  margin-bottom:10px;
}
.category p {
  font-size:.95rem;
  color:var(--muted);
}
.experience {
  border-top:1px solid var(--line);
  margin-top:50px;
}
.experience .btn {
  margin-top:30px;
}
.experience ol {
  list-style:none;
  margin-bottom:0;
}
.experience li {
  display:flex;
  gap:25px;
  padding-bottom:28px;
  margin-bottom:28px;
  border-bottom:1px solid var(--line);
}
.experience li>span {
  font-size:.9rem;
  color:var(--accent);
}
.experience li h3 {
  font-size:1.8rem;
  margin-bottom:13px;
}
.experience li p {
  color:var(--muted);
}
.gift-banner {
  text-align:center;
  padding:85px 24px;
  background:var(--ink);
  color:var(--paper);
}
.gift-banner p:not(.eyebrow) {
  margin:25px auto;
  max-width:500px;
  color:#d8dcd5;
}
.gift-banner .btn-outline-dark {
  --bs-btn-color:white;
  --bs-btn-border-color:white;
  --bs-btn-hover-bg:white;
  --bs-btn-hover-color:var(--ink);
}
.gift-banner .text-link {
  margin-left:25px;
}
.faq {
  max-width:1000px;
}
.accordion {
  --bs-accordion-bg:transparent;
  --bs-accordion-border-color:var(--line);
  --bs-accordion-active-bg:#e9eae4;
  --bs-accordion-active-color:var(--ink);
}
.accordion-button {
  font-size:1.1rem;
  padding:24px 12px;
  font-family:var(--font-body);
  line-height:1.5;
}
.accordion-body {
  color:var(--muted);
}
.final-cta {
  text-align:center;
  padding:90px 24px;
  border-top:1px solid var(--line);
}
.final-cta .btn {
  margin-top:30px;
}
.site-footer p {
  font-family:var(--font-display);
}
.site-footer small {
  width:100%;
  font-size:.85rem;
  color:var(--muted);
}
.page-intro {
  max-width:1320px;
  margin:auto;
  padding:75px 24px 35px;
}
.page-intro .text-link {
  margin-bottom:30px;
}
.page-intro p:last-child {
  margin-top:25px;
  color:var(--muted);
}
.portfolio-cards {
  padding-top:35px;
}
.category-nav {
  font-size:1rem;
}
.category-nav a[aria-current=page] {
  text-underline-offset:6px;
}
.gallery-photo {
  border:0;
  padding:0;
  background:transparent;
  display:block;
  cursor:zoom-in;
  overflow:hidden;
  border-radius:10px;
}
.gallery-photo img {
  width:100%;
  height:auto;
}
.gift-info p {
  margin-bottom:25px;
}
.modal-content {
  border-radius:0;
  background:var(--paper);
}
.modal-body {
  padding:24px;
}
.modal-body p {
  max-width:none;
}
.skip-link {
  position:absolute;
  left:20px;
  top:-100px;
  padding:10px;
  background:white;
  z-index:2000;
}
.skip-link:focus {
  top:20px;
}
:focus-visible {
  outline:3px solid var(--accent);
  outline-offset:5px;
}
@media(max-width:991.98px) {
  .hero-copy {
    padding:45px 6%;
  }
  .hero-note {
    margin-top:32px;
  }
  .navbar-nav .btn {
    width:100%;
  }
  .brand img {
    width:145px;
    height:85px;
  }
  .navbar {
    padding:12px 24px;
  }
  .section {
    padding:55px 24px;
  }
}
@media(max-width:767.98px) {
  .intro {
    padding:60px 24px;
  }
  .section-heading {
    align-items:start;
    flex-direction:column;
  }
  .gift-banner .text-link {
    display:table;
    margin:20px auto 0;
  }
  .final-cta {
    padding:65px 24px;
  }
  .page-intro {
    padding-top:45px;
  }
  .actions {
    gap:20px;
  }
  .hero-copy {
    padding:40px 24px;
  }
  h1 {
    font-size:clamp(2.8rem,10vw,4rem);
  }
  .eyebrow {
    font-size:.78rem;
    letter-spacing:.12em;
  }
  .modal-body {
    padding:16px;
  }
}

/* Alternating portfolio stories and desktop navigation. */
.portfolio-story {
  margin-bottom:65px;
  color:var(--ink);
}
.portfolio-story img {
  width:100%;
  height:auto;
  max-height:620px;
  object-fit:contain;
}
.portfolio-story:nth-child(even) .story-image {
  order:2;
}
.portfolio-story .eyebrow {
  max-width:330px;
}
.portfolio-story h2 {
  font-size:2.5rem;
  margin-bottom:25px;
}
@media(min-width:992px) {
  .site-header .navbar {
    flex-direction:row;
    padding:16px 24px;
    gap:20px;
  }
  .navbar-brand {
    margin-right:auto;
  }
  .navbar-collapse {
    flex-grow:0;
  }
  .navbar-nav {
    flex-direction:row!important;
    align-items:center;
    gap:18px;
  }
  .navbar-nav .dropdown-menu {
    position:absolute;
  }
}
@media(max-width:767.98px) {
  .portfolio-story:nth-child(even) .story-image {
    order:0;
  }
  .portfolio-story {
    margin-bottom:48px;
  }
  .portfolio-story .story-copy {
    margin-top:24px;
  }
  .portfolio-story h2 {
    font-size:2.25rem;
  }
}

/* Compact portfolio grids: three columns on desktop and two on most phones. */
.gallery {
  max-width:1120px;
  padding-top:36px;
}
@media(min-width:360px) and (max-width:575.98px) {
  .gallery {
    padding-left:16px;
    padding-right:16px;
  }
}

/* Masonry stacks natural-size images without the blank space left by grid rows. */
.gallery .row {
  display:block;
  margin:0;
  column-count:1;
  column-gap:12px;
}
.gallery .row>div {
  display:inline-block;
  vertical-align:top;
  width:100%;
  padding:0;
  margin:0 0 12px;
  break-inside:avoid;
}
@media(min-width:360px) {
  .gallery .row {
    column-count:2;
  }
}
@media(min-width:992px) {
  .gallery .row {
    column-count:3;
  }
}

/* Homepage photographs retain the full original composition. */
.category-grid.row {
  display:block;
  margin:0;
  column-count:1;
  column-gap:24px;
}
.category-grid.row>div {
  display:inline-block;
  width:100%;
  padding:0;
  margin:0 0 32px;
  break-inside:avoid;
}
@media(min-width:768px) {
  .category-grid.row {
    column-count:2;
  }
}

/* Rounded controls and clear accent hover states across every page. */
.accordion-button {
  border-radius:12px!important;
}
.btn-close {
  border-radius:50%;
}
a:not(.btn) {
  transition:color .18s ease;
}
a:not(.btn):hover,a:not(.btn):focus-visible {
  color:var(--accent);
}
.dropdown-toggle:hover,.dropdown-toggle:focus-visible {
  color:var(--accent);
}
.category:hover h3,.category:hover p,.portfolio-story:hover h2,.portfolio-story:hover .eyebrow {
  color:var(--accent);
}
.dropdown-item:hover,.dropdown-item:focus {
  color:var(--accent);
}

/* Clear, centered mobile navigation with comfortable touch targets. */
@media(max-width:991.98px) {
  .navbar-collapse {
    width:100%;
  }
  .navbar-nav {
    align-items:center;
    text-align:center;
    gap:8px;
    font-size:1.1rem;
  }
  .navbar-nav>.nav-item {
    width:100%;
    text-align:center;
  }
  .navbar-nav .nav-link {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:48px;
    padding:10px 20px;
    font-size:1.1rem;
  }
  .navbar-nav .btn {
    min-width:210px;
    font-size:1rem;
  }
  .navbar-nav .dropdown-menu {
    position:static;
    max-width:320px;
    margin:4px auto 12px;
    text-align:center;
  }
  .navbar-nav .dropdown-item {
    white-space:normal;
    min-height:48px;
    padding:12px 16px;
    font-size:1rem;
  }
}
@media(max-width:991.98px) {
  .session-submenu {
    list-style:none;
    padding:0;
    max-width:320px;
    margin:0 auto;
    text-align:center;
    background:#eeeee8;
    border-radius:16px;
  }
  .session-submenu .dropdown-item {
    min-height:48px;
    padding:12px 16px;
    font-size:1rem;
    white-space:normal;
  }
  .session-submenu .dropdown-item:first-child {
    border-radius:16px 16px 0 0;
  }
  .session-submenu .dropdown-item:last-child {
    border-radius:0 0 16px 16px;
  }
}

/* Portfolio category tabs with clear selection and touch-friendly spacing. */
.category-nav {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  border:0;
  background:#eeeee8;
  border-radius:24px;
  padding:12px;
  margin:20px auto 0;
  max-width:1060px;
  gap:10px!important;
}
.category-nav a {
  display:inline-flex;
  justify-content:center;
  align-items:center;
  min-height:48px;
  padding:11px 20px;
  border-radius:999px;
  font-size:.95rem;
  line-height:1.35;
  border:1px solid transparent;
  transition:color .18s ease,background-color .18s ease,border-color .18s ease;
}
.category-nav a:hover,.category-nav a:focus-visible {
  background:var(--paper);
  color:var(--accent);
  border-color:var(--accent);
}
.category-nav a[aria-current=page] {
  background:var(--accent);
  color:white;
  text-decoration:none;
  border-color:var(--accent);
}
.category-nav a[aria-current=page]:hover {
  background:#864323;
  color:white;
  border-color:#864323;
}
@media(max-width:767.98px) {
  .category-nav {
    grid-template-columns:repeat(2,minmax(0,1fr));
    margin:16px 16px 0;
    width:calc(100% - 32px);
    padding:8px;
    gap:8px!important;
    border-radius:20px;
  }
  .category-nav a {
    flex:1 1 calc(50% - 8px);
    font-size:.88rem;
    padding:10px 8px;
    min-height:52px;
  }
}

/* Session guide, client stories, and a footer that wraps cleanly on phones. */
.footer-links {
  align-items:center;
}
.footer-links a {
  display:inline-flex;
  align-items:center;
}
.footer-links a[aria-current=page] {
  text-underline-offset:5px;
}
.expectations-intro>p:last-of-type,.reviews-intro>p:last-of-type {
  max-width:740px;
  line-height:1.75;
}
.expectations-overview {
  padding-top:24px;
}
.experience-image {
  display:block;
  width:100%;
  height:auto;
  max-width:380px;
  margin:auto;
  border-radius:16px;
}
.expectations-overview p,.expectation-card p,.session-types p,.expectations-faq p {
  line-height:1.8;
  color:var(--muted);
}
.experience-quote {
  border-left:3px solid var(--accent);
  padding:8px 0 8px 24px;
  margin:32px 0 0;
}
.experience-quote p {
  font-family:var(--font-display);
  font-size:1.6rem;
  line-height:1.4;
  color:var(--ink);
}
.experience-quote cite {
  font-size:.9rem;
  font-style:normal;
  color:var(--muted);
}
.expectation-card {
  height:100%;
  padding:32px;
  background:#eeeee8;
  border-radius:20px;
}
.step-number {
  display:block;
  color:var(--accent);
  font-size:.9rem;
  letter-spacing:.12em;
  margin-bottom:18px;
}
.expectation-card h3,.session-types h3,.expectations-faq h3 {
  font-size:1.7rem;
  line-height:1.25;
}
.expectation-card p,.session-types p,.expectations-faq p {
  margin-top:16px;
}
.session-types,.expectations-faq {
  border-top:1px solid var(--line);
}
.reviews-section {
  padding-top:16px;
}
.reviews-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:28px;
  align-items:start;
}
.review-card {
  border:1px solid var(--line);
  border-radius:20px;
  overflow:hidden;
  background:var(--paper);
}
.review-image img {
  width:100%;
  height:auto;
  display:block;
}
.review-content {
  padding:28px;
}
.review-content h2 {
  font-size:2rem;
  line-height:1.2;
  margin-bottom:20px;
}
.review-content blockquote {
  margin:0;
  line-height:1.8;
  color:var(--muted);
}
.review-content blockquote p:last-child {
  margin-bottom:0;
}
.review-featured {
  grid-column:1/-1;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);
  align-items:start;
}
.review-featured .review-content {
  padding:36px;
}
.review-content .eyebrow {
  color:var(--accent);
}
@media(max-width:767.98px) {
  .reviews-grid {
    grid-template-columns:1fr;
    gap:24px;
  }
  .review-featured {
    display:block;
  }
  .review-content,.review-featured .review-content {
    padding:24px;
  }
  .expectation-card {
    padding:24px;
  }
  .site-footer p {
    width:100%;
  }
  .expectations-overview .experience-image {
    max-width:320px;
  }
}

/* A spacious, editorial closing note shared by every page. */
.site-footer {
  background:#e5e8df;
  border-top:3px solid var(--accent);
  padding:64px 24px 26px;
}
.site-footer .container {
  display:grid!important;
  grid-template-columns:240px minmax(0,1fr);
  grid-template-areas:"brand tagline" "brand links" "copyright copyright";
  gap:22px 64px!important;
  align-items:center!important;
}
.site-footer .brand {
  grid-area:brand;
  justify-self:start;
  border:1px solid #cbd0c3;
  border-radius:24px;
  padding:12px 20px;
  background:#f7f6f280;
}
.site-footer .brand img {
  width:200px;
  height:124px;
  object-fit:contain;
}
.site-footer p {
  grid-area:tagline;
  font-size:clamp(1.8rem,3.2vw,3rem);
  line-height:1.2;
  letter-spacing:-.015em;
  max-width:650px;
}
.site-footer .footer-links {
  grid-area:links;
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  justify-content:flex-start;
}
.site-footer .footer-links a {
  min-height:46px;
  padding:10px 18px;
  border:1px solid #cbd0c3;
  border-radius:999px;
  font-size:.88rem;
  line-height:1.4;
  background:#f7f6f250;
  justify-content:center;
  transition:color .18s ease,background-color .18s ease,border-color .18s ease;
}
.site-footer .footer-links a:hover,.site-footer .footer-links a:focus-visible {
  color:var(--accent);
  border-color:var(--accent);
  background:var(--paper);
}
.site-footer .footer-links a[aria-current=page] {
  color:var(--accent);
  border-color:var(--accent);
  background:var(--paper);
  text-decoration:none;
}
.site-footer small {
  grid-area:copyright;
  margin-top:14px;
  padding-top:22px;
  border-top:1px solid #cbd0c3;
  font-size:.78rem;
  letter-spacing:.035em;
  line-height:1.6;
}
@media(max-width:767.98px) {
  .site-footer {
    padding:40px 20px 24px;
  }
  .site-footer .container {
    grid-template-columns:minmax(0,1fr);
    grid-template-areas:"brand" "tagline" "links" "copyright";
    gap:24px!important;
    text-align:center;
  }
  .site-footer .brand {
    justify-self:center;
    padding:4px 20px;
    border-radius:20px;
  }
  .site-footer .brand img {
    width:180px;
    height:110px;
  }
  .site-footer p {
    font-size:2rem;
    max-width:360px;
    justify-self:center;
  }
  .site-footer .footer-links {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    width:100%;
    max-width:440px;
    justify-self:center;
  }
  .site-footer .footer-links a {
    padding:12px 10px;
    min-height:48px;
    font-size:.84rem;
  }
  .site-footer small {
    margin-top:4px;
    max-width:none;
  }
}

/* One hierarchy for headings, reading text, and interface labels. */
button,input,select,textarea,.btn,.accordion-button {
  font-family:var(--font-body);
}
h1,h2,h3,h4,h5,h6 {
  text-wrap:balance;
}
body {
  --bs-font-sans-serif:var(--font-body);
}
.photo-label,.experience-quote p,.site-footer p {
  font-weight:500;
}
@media(min-width:992px) and (max-width:1199.98px) {
  .site-header .navbar {
    gap:12px;
  }
  .navbar-nav {
    gap:12px;
  }
  .navbar-nav .btn {
    padding:12px 18px;
  }
  .site-header .brand img {
    width:155px;
  }
}

/* Center complete photographs in the portfolio viewer, independently of the close control. */
#lightbox .modal-content {
  height:90vh;
  height:min(90dvh,900px);
  position:relative;
}
#lightbox .modal-header {
  position:absolute;
  top:0;
  right:0;
  z-index:1;
  padding:16px;
}
#lightbox .modal-header .btn-close {
  margin:0!important;
  padding:12px;
  min-width:24px;
  min-height:24px;
}
#lightbox .modal-body {
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:0;
  padding:56px 24px;
}
#lightbox img {
  display:block;
  width:auto;
  height:auto;
  max-width:100%;
  max-height:100%;
  object-fit:contain;
  object-position:center;
  margin:0!important;
}
@media(max-width:575.98px) {
  #lightbox .modal-body {
    padding:56px 12px;
  }
}

/* Session pages: complete photographs and a shared, readable service-page rhythm. */
.session-hero {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(32px,6vw,88px);
  align-items:center;
  padding:64px 24px;
}
.session-hero-copy {
  min-width:0;
}
.session-hero h1 {
  font-size:clamp(2.8rem,4.6vw,4.8rem);
  letter-spacing:-.025em;
  line-height:1.08;
}
.session-hero .eyebrow {
  color:var(--accent);
  margin-bottom:20px;
}
.session-lead {
  margin-top:24px;
  color:var(--muted);
  font-size:1.05rem;
  line-height:1.8;
}
.session-summary {
  margin-top:24px;
  font-size:.88rem;
  line-height:1.8;
}
.session-hero-image img {
  width:100%;
  height:auto;
  max-height:720px;
  object-fit:contain;
  border-radius:20px;
}
.session-audience {
  text-align:center;
  border-top:1px solid var(--line);
  max-width:1040px;
}
.session-audience h2 {
  max-width:780px;
  margin:0 auto;
}
.session-audience>p:last-child {
  margin:24px auto 0;
  max-width:700px;
  color:var(--muted);
  line-height:1.8;
}
.session-work {
  padding-top:24px;
}
.session-gallery {
  padding:0;
  max-width:none;
}
.session-experience {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:64px;
  align-items:center;
  border-top:1px solid var(--line);
}
.session-experience p:not(.eyebrow) {
  line-height:1.8;
  color:var(--muted);
}
.session-experience .text-link {
  margin-top:24px;
}
.session-page h2 {
  font-size:clamp(2.3rem,3.8vw,3.8rem);
}
.session-inclusions {
  background:#e5e8df;
}
.session-section-intro {
  margin-top:24px;
  color:var(--muted);
  line-height:1.8;
}
.session-details-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:32px 40px;
  margin-top:40px;
}
.session-details-grid article {
  padding-top:24px;
  border-top:1px solid #cbd0c3;
}
.session-details-grid h3 {
  font-size:1.85rem;
  line-height:1.2;
}
.session-details-grid p {
  margin-top:14px;
  color:var(--muted);
  line-height:1.8;
}
.session-prep-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
  margin-top:36px;
}
.session-prep-grid h3 {
  font-size:1.85rem;
  line-height:1.2;
}
.session-booking {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:64px;
  border-top:1px solid var(--line);
  align-items:start;
}
.session-price {
  font-family:var(--font-display);
  font-size:clamp(2.2rem,4vw,3.8rem);
  font-weight:500;
  line-height:1.15;
  color:var(--accent);
  margin:24px 0 18px;
}
.session-booking>div>p:not(.eyebrow):not(.session-price) {
  color:var(--muted);
  line-height:1.8;
}
.session-booking-steps {
  list-style:none;
  padding:0;
  margin:0;
}
.session-booking-steps li {
  display:flex;
  gap:24px;
  padding:24px 0;
  border-bottom:1px solid var(--line);
}
.session-booking-steps li:first-child {
  padding-top:0;
}
.session-booking-steps li>span {
  color:var(--accent);
  font-size:.88rem;
  padding-top:4px;
}
.session-booking-steps h3 {
  font-size:1.85rem;
  line-height:1.2;
}
.session-booking-steps p {
  color:var(--muted);
  line-height:1.8;
  margin-top:14px;
}
.session-testimonial {
  display:grid;
  grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
  gap:64px;
  align-items:center;
  background:#eeeee8;
  border-radius:24px;
}
.session-review-photo img {
  max-width:100%;
  width:auto;
  height:auto;
  max-height:460px;
  object-fit:contain;
  margin:auto;
  border-radius:16px;
}
.session-testimonial blockquote {
  margin:0;
  border-left:3px solid var(--accent);
  padding-left:24px;
}
.session-testimonial blockquote p {
  font-family:var(--font-display);
  font-size:clamp(1.65rem,2.7vw,2.4rem);
  font-weight:500;
  line-height:1.35;
}
.session-testimonial cite {
  display:block;
  font-size:.9rem;
  font-style:normal;
  color:var(--muted);
  margin-top:20px;
}
.session-testimonial .text-link {
  margin-top:24px;
}
.dropdown-item[aria-current=page] {
  color:var(--accent);
  background:#eeeee8;
}
@media(max-width:991.98px) {
  .session-hero {
    gap:32px;
    padding:48px 24px;
  }
  .session-hero h1 {
    font-size:clamp(2.8rem,5vw,4rem);
  }
  .session-details-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .session-prep-grid {
    grid-template-columns:1fr;
  }
  .session-experience,.session-booking,.session-testimonial {
    gap:32px;
  }
  .session-testimonial {
    margin:0 24px;
    width:calc(100% - 48px);
  }
}
@media(max-width:767.98px) {
  .session-hero {
    grid-template-columns:1fr;
    padding:40px 24px;
    gap:32px;
  }
  .session-hero-image img {
    max-height:600px;
  }
  .session-experience,.session-booking,.session-testimonial {
    grid-template-columns:1fr;
  }
  .session-details-grid {
    gap:24px 20px;
  }
  .session-details-grid h3 {
    font-size:1.6rem;
  }
  .session-details-grid p {
    font-size:.95rem;
  }
  .session-audience {
    text-align:left;
  }
  .session-audience h2,.session-audience>p:last-child {
    margin-left:0;
    margin-right:0;
  }
  .session-review-photo img {
    max-height:360px;
  }
  .session-testimonial {
    padding:32px 24px;
  }
  .session-testimonial blockquote {
    padding-left:18px;
  }
  .session-testimonial cite {
    line-height:1.6;
  }
  .session-page .eyebrow {
    overflow-wrap:anywhere;
  }
}
@media(max-width:359.98px) {
  .session-details-grid {
    grid-template-columns:1fr;
  }
  .session-hero h1 {
    font-size:2.65rem;
  }
}

/* Keep padding inside the moving menu so Bootstrap can collapse cleanly to zero. */
@media(max-width:991.98px) {
  .site-header .navbar-collapse {
    padding:0;
  }
  .site-header .navbar-nav {
    padding:20px 0 12px;
  }
  .site-header .navbar-collapse.collapsing,.session-submenu.collapsing {
    transition:height .3s cubic-bezier(.22,1,.36,1);
  }
  .session-submenu {
    overflow:hidden;
  }
}
.accordion-collapse.collapsing {
  transition:height .28s cubic-bezier(.22,1,.36,1);
}
.dropdown-toggle::after {
  transition:transform .2s ease;
  transform-origin:center;
}
.dropdown-toggle[aria-expanded=true]::after {
  transform:rotate(180deg);
}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after {
    animation:none!important;
    transition:none!important;
    scroll-behavior:auto!important;
  }
}

/* Portrait investment and scheduled mini dates. */
.investment-grid,.mini-date-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:40px}.mini-date-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.investment-card{padding:32px;border:1px solid var(--line);border-radius:20px;background:#f7f5ef;display:flex;flex-direction:column;gap:16px;min-width:0}.investment-card h3{font-size:2rem}.investment-card .investment-price{font-size:3.8rem}.investment-card dl{margin:0 0 16px}.investment-card dt{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;margin-top:20px}.investment-card dd{margin:8px 0 0;line-height:1.65;color:var(--muted)}.investment-card>.btn{margin-top:auto;white-space:normal}.footer-location{font-family:var(--font-body);font-size:.8rem}.investment-grid .investment-card:nth-child(2){background:#e5e8df}@media(max-width:991.98px){.investment-grid{grid-template-columns:1fr}.investment-card{padding:28px}}@media(max-width:575.98px){.mini-date-grid{grid-template-columns:1fr}}


/* Shared editorial navigation, with a distinct primary action. */
.site-header { background:var(--paper); }
.site-header .navbar-nav { gap:16px; }
.site-header .nav-link {
  font-size:.78rem;
  font-weight:600;
  letter-spacing:.09em;
  text-transform:uppercase;
  padding:14px 0;
  text-decoration:none;
  border-bottom:1px solid transparent;
}
.site-header .nav-link:hover,.site-header .nav-link:focus-visible,
.site-header .nav-link[aria-current=page] { color:var(--accent); border-bottom-color:var(--accent); }
.site-header .dropdown-toggle::after { margin-left:8px; }
.site-header .navbar-nav .btn { font-size:.8rem; padding:11px 20px; }
.site-header .navbar-nav .btn-outline-dark {
  border-color:var(--line);
  background:transparent;
}
.site-header .navbar-nav .btn-outline-dark:hover { background:var(--ink); border-color:var(--ink); }
.site-header .dropdown-menu {
  min-width:260px;
  padding:12px;
  margin-top:12px;
  border:1px solid var(--line);
  border-radius:12px;
  box-shadow:0 16px 40px #20252112;
}
.site-header .dropdown-item { font-size:.9rem; padding:12px 14px; border-radius:6px; }
.site-header .dropdown-item:hover,.site-header .dropdown-item:focus { background:#eeeee8; color:var(--accent); }
.site-header a:focus-visible,.site-header button:focus-visible { outline:2px solid var(--accent); outline-offset:4px; }
.home-investment { padding-top:90px; padding-bottom:90px; }
.home-investment-heading { text-align:center; }
.home-investment-heading .eyebrow { color:var(--accent); }
.home-investment-heading>p:last-child { margin:24px auto 0; max-width:540px; color:var(--muted); }
.home-package-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:48px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.home-package { padding:36px 32px; text-align:center; }
.home-package+.home-package { border-left:1px solid var(--line); }
.home-package .eyebrow { font-size:.72rem; margin-bottom:20px; color:var(--muted); }
.home-package h3 { margin-bottom:16px; font-size:2.15rem; }
.home-package .home-package-price { font-family:var(--font-display); font-size:3.6rem; line-height:1.1; color:var(--accent); margin:0 auto 22px; }
.home-package>p:last-child { font-size:.9rem; line-height:1.85; color:var(--muted); margin:auto; }
.home-investment-footer { display:flex; align-items:center; justify-content:space-between; gap:24px; padding-top:32px; }
.home-investment-footer p { font-size:.82rem; color:var(--muted); }
@media(min-width:992px) and (max-width:1199.98px) {
  .site-header .navbar-nav { gap:12px; }
  .site-header .nav-link { font-size:.7rem; letter-spacing:.06em; }
  .site-header .navbar-nav .btn { padding:10px 14px; font-size:.75rem; }
  .site-header .brand img { width:155px; }
}
@media(max-width:991.98px) {
  .site-header .navbar { padding:12px 24px; }
  .site-header .brand img { width:150px; height:80px; }
  .site-header .navbar-toggler { border:1px solid var(--line); font-size:.75rem; letter-spacing:.08em; text-transform:uppercase; padding:12px 16px; }
  .site-header .navbar-toggler:focus { box-shadow:none; }
  .site-header .navbar-toggler[aria-expanded=true] { background:#e5e8df; border-color:var(--muted); }
  .site-header .navbar-nav { align-items:stretch; text-align:left; gap:0; padding:12px 0 24px; }
  .site-header .navbar-nav>.nav-item { text-align:left; }
  .site-header .navbar-nav .nav-link { display:flex; justify-content:space-between; width:100%; padding:16px 4px; font-size:.85rem; border-bottom:1px solid var(--line); min-height:56px; }
  .site-header .navbar-nav .nav-link:hover,.site-header .navbar-nav .nav-link[aria-current=page] { border-bottom-color:var(--accent); }
  .site-header .navbar-nav>.nav-item:nth-last-child(2) { margin-top:24px; }
  .site-header .navbar-nav>.nav-item:last-child { margin-top:12px; }
  .site-header .navbar-nav .btn { width:100%; min-width:0; min-height:48px; font-size:.85rem; }
  .site-header .session-submenu,.site-header .navbar-nav .dropdown-menu { max-width:none; margin:12px 0; text-align:left; background:#eeeee8; border:0; border-radius:12px; box-shadow:none; }
  .site-header .session-submenu { padding:0 12px; }
  .site-header .session-submenu .dropdown-item { padding:12px; font-size:.9rem; border-radius:6px; }
}
@media(max-width:767.98px) {
  .home-investment { padding:64px 24px; }
  .home-package-grid { grid-template-columns:1fr; margin-top:32px; }
  .home-package { padding:30px 12px; }
  .home-package+.home-package { border-left:0; border-top:1px solid var(--line); }
  .home-package h3 { font-size:2rem; }
  .home-package .home-package-price { font-size:3.1rem; margin-bottom:16px; }
  .home-investment-footer { flex-direction:column; text-align:center; }
}

/* One content frame and centered text blocks throughout the homepage. */
.home-page { --home-width:1240px; }
.home-page .site-header .container,.home-page main>.container,.home-page .site-footer>.container { max-width:var(--home-width); width:100%; padding-left:32px; padding-right:32px; }
.home-page .hero { max-width:var(--home-width); margin-left:auto!important; margin-right:auto!important; padding:0 32px; }
.home-page .hero-copy { padding:64px 48px 64px 0; }
.home-page .hero-photo { padding-left:24px; }
.home-page main>.intro { max-width:var(--home-width); margin:0 auto; padding:80px 32px; }
.home-page .intro>.eyebrow,.home-page .gift-banner>.eyebrow,.home-page .final-cta>.eyebrow,.home-investment-heading>.eyebrow { margin-left:auto; margin-right:auto; }
.home-page .gift-banner,.home-page .final-cta { padding:80px 32px; }
.home-page main>.section { padding-top:80px; padding-bottom:80px; }
.home-page .experience { margin-top:0; }
.home-page .experience .row { --bs-gutter-x:4rem; }
.home-page .experience li:last-child { margin-bottom:0; padding-bottom:0; border-bottom:0; }
.home-page .home-investment { border-top:1px solid var(--line); }
.home-page .faq .accordion { max-width:none; }
.home-page #contact { border-top:1px solid var(--line); }
@media(max-width:991.98px) {
  .home-page .hero-copy { padding:48px 0; }
  .home-page .hero-photo { padding-left:0; }
  .home-page .experience .row { --bs-gutter-x:1.5rem; }
}
@media(max-width:767.98px) {
  .home-page .site-header .container,.home-page main>.container,.home-page .site-footer>.container { padding-left:24px; padding-right:24px; }
  .home-page .hero { padding:0 24px; }
  .home-page main>.intro,.home-page .gift-banner,.home-page .final-cta { padding:60px 24px; }
  .home-page main>.section { padding-top:60px; padding-bottom:60px; }
}


/* Client stories and compact Investment details. */
.home-testimonials { border-top:1px solid var(--line); }
.home-review-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:40px; }
.home-review-grid figure { margin:0; padding-top:24px; border-top:1px solid var(--line); }
.home-review-grid blockquote { margin:0 0 24px; }
.home-review-grid blockquote p { font-family:var(--font-display); font-size:1.8rem; line-height:1.3; }
.home-review-grid figcaption { color:var(--accent); font-size:.85rem; font-weight:600; }
.home-review-grid figcaption span { display:block; color:var(--muted); font-size:.75rem; font-weight:400; margin-top:4px; }
.review-featured.review-text-only { display:block; }
.payment-terms { border-top:1px solid var(--line); }
.payment-terms article p { color:var(--muted); }
.investment-disclosure { border-bottom:1px solid var(--line); }
.investment-disclosure:first-of-type { margin-top:32px; border-top:1px solid var(--line); }
.investment-disclosure summary { list-style:none; display:flex; justify-content:space-between; align-items:center; gap:24px; padding:24px 0; font-size:1.05rem; cursor:pointer; }
.investment-disclosure summary::-webkit-details-marker { display:none; }
.investment-disclosure summary::after { content:'+'; font-size:1.6rem; color:var(--accent); }
.investment-disclosure[open] summary::after { content:'−'; }
.investment-disclosure summary:focus-visible { outline:2px solid var(--accent); outline-offset:4px; }
.disclosure-content { padding:0 0 32px; }
.disclosure-content>.eyebrow { display:none; }
.disclosure-content>.session-section-intro:first-of-type { margin-top:0; }
.disclosure-content>.actions { margin-top:24px; }
@media(max-width:767.98px) {
 .home-review-grid { grid-template-columns:1fr; gap:28px; }
 .home-page .site-header .navbar { padding-top:6px; padding-bottom:6px; }
 .home-page .site-header .brand img { width:115px; height:60px; }
 .home-page .site-header .navbar-toggler { padding:10px 14px; }
 .home-page .hero { position:relative; padding-top:16px; }
 .home-page .hero-copy { padding:20px 0 24px; }
 .home-page .hero-copy .eyebrow { margin-bottom:14px; font-size:.68rem; }
 .home-page .hero-copy h1 { font-size:clamp(2.45rem,9vw,3.4rem); }
 .home-page .hero-copy>p:not(.eyebrow) { margin-top:18px; line-height:1.55; }
 .home-page .hero-copy .actions { margin-top:20px; gap:16px; }
 .home-page .hero-copy .actions .btn { padding:11px 20px; }
 .home-page .hero-note { display:none; }
 .home-page .hero-photo { margin-bottom:32px; }
}

/* Earth-toned homepage section bands preserve the shared content frame. */
.home-page main>section {
  background:var(--section-color,var(--paper));
  box-shadow:0 0 0 100vmax var(--section-color,var(--paper));
  clip-path:inset(0 -100vmax);
}
.home-page .intro { --section-color:#eee8de; }
.home-page #work { --section-color:#f7f6f2; }
.home-page #experience { --section-color:#e5e8df; }
.home-page .home-testimonials { --section-color:#f1e3d9; }
.home-page .home-investment { --section-color:#eee8de; }
.home-page .gift-banner { --section-color:#202521; }
.home-page .faq { --section-color:#f7f6f2; }
.home-page #contact { --section-color:#e5e8df; }
.home-page .final-cta { --section-color:#f1e3d9; }
.home-page #experience,.home-page .home-testimonials,.home-page .home-investment,.home-page #contact { border-top:0; }

/* One consistent Full tier badge across homepage, package comparisons and gifts. */
.package-popular{display:inline-block;padding:3px 9px;border-radius:999px;background:var(--ink);color:#fff;font:600 .68rem/1.5 Inter,sans-serif;letter-spacing:.04em;vertical-align:middle}.booking-package .package-popular{display:table;margin-bottom:8px}.investment-card .package-popular{margin-left:8px}.home-package>.package-popular{display:table;margin:8px auto}.session-summary .package-popular{margin-bottom:8px}
