@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:400;font-display:swap;src:url("/assets/cormorant-garamond-regular.ttf") format("truetype")}
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:500;font-display:swap;src:url("/assets/cormorant-garamond-medium.ttf") format("truetype")}
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:600;font-display:swap;src:url("/assets/cormorant-garamond-semibold.ttf") format("truetype")}
@font-face{font-family:Outfit;src:url('/assets/outfit-300.ttf');font-weight:300;font-display:swap}@font-face{font-family:Outfit;src:url('/assets/outfit-400.ttf');font-weight:400;font-display:swap}@font-face{font-family:Outfit;src:url('/assets/outfit-500.ttf');font-weight:500 700;font-display:swap}
:root{--navy:#30373b;--lake:#b2905c;--ink:#30373b;--paper:#f8f5f2;--line:#d5ccbf;--body:#55534f;--gold:#7a6230}body{font-family:Outfit,sans-serif}h1,h2,h3{font-family:"Cormorant Garamond",Georgia,serif;letter-spacing:-.025em}h2{line-height:1.15}header{background:#30373b;color:#f8f5f2;border-color:#ffffff1f}.brand img{width:250px}header nav{font-weight:400;font-size:15px;gap:22px}header nav a:hover,footer a:hover{color:#dfc394;text-decoration:underline;text-underline-offset:6px}.button{background:#b2905c;border-color:#b2905c;color:#20272b;font-size:15px;font-weight:500;border-radius:4px}.button:hover{background:#dfc394;border-color:#dfc394;color:#20272b}.button.light{background:#f8f5f2;color:#30373b}.button.light:hover{background:#dfc394;border-color:#dfc394}.outline{border-color:#7a6230;color:#594821;border-radius:4px}.outline:hover{background:#30373b;color:#f8f5f2}.textlink{color:#705a30;font-size:16px}.textlink:hover{color:#30373b;text-decoration:underline;text-underline-offset:6px}.eyebrow,.amenities .eyebrow,.amenities .number{font:500 13px/1.5 Outfit,sans-serif;letter-spacing:.2em;color:#7a6230;text-transform:uppercase}.hero{height:min(760px,77vh);min-height:600px}.hero h1{font-size:clamp(3rem,6.4vw,6rem);letter-spacing:-.035em}.hero-copy{padding-top:105px}.hero .eyebrow{color:#dfc394}.hero-shade{background:linear-gradient(90deg,#161b20c9, #161b2066 60%,#161b2029),linear-gradient(0deg,#161b2066,transparent 45%)}.hero-controls{background:#30373bcc;border-radius:4px;padding:7px 10px}.hero-controls button{border-radius:4px;color:#f8f5f2;background:transparent}.hero-controls button:hover{background:#b2905c;color:#20272b}.hero-dots button span{background:#f8f5f255}.hero-dots button[aria-pressed=true] span{background:#dfc394}.hero-bottom{font-size:12px}.factbar{background:#e8e0d3}.factbar strong{font-weight:500;font-size:17px}.factbar span{font-size:14px;color:#59564f}.intro{padding-block:72px;gap:75px}.intro .lead{font-size:22px}.program-band{background:#f8f5f2;padding-bottom:72px}.program-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px}.program-grid article{display:flex;flex-direction:column;border-top:1px solid #c8b99f;padding-top:25px}.program-grid h3{font-size:27px;margin:12px 0 18px}.program-grid p{flex:1;margin-bottom:20px}.gallery-band{background:#e5dccd}.gallery-band .gallery{padding-block:65px}.facility-intro{padding:0 0 36px;max-width:none}.gallery .section-line .eyebrow{margin-bottom:0}.photo{border-radius:4px}.photo span{font-size:15px}.photo:hover img{transform:scale(1.025)}.photo img{transition:transform .3s}.spaces{padding-block:75px}.space-tabs{border-color:#b8ab96}.space-tabs button{color:#696052;font-size:16px}.space-tabs button[aria-selected=true]{color:#594821;border-color:#7a6230}.space-tabs button:hover{background:#e8e0d3}.space-content img{border-radius:4px;object-fit:cover;aspect-ratio:4/3;width:100%}.space-content h3{font-size:38px}.space-content p{margin:22px 0}.vet-band{background:#d3c4ad}.vet-band .lake{padding-top:72px;padding-bottom:40px}.vet-band .lake img{border-radius:4px}.vet-band .lake p{margin-bottom:22px}.vet-quote{margin:0 auto;padding-top:32px;padding-bottom:65px;text-align:center}.vet-quote blockquote{font:400 clamp(24px,2.5vw,34px)/1.4 "Cormorant Garamond",Georgia,serif;max-width:880px;margin:0 auto 20px}.vet-quote figcaption{font-size:14px;letter-spacing:.05em;color:#584929}.amenities{padding-top:0;padding-bottom:70px;background:#f8f5f2}.amenities>.wrap::before{display:none}.amenity-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:38px 45px}.amenity-grid h3{font:400 26px/1.2 "Cormorant Garamond",Georgia,serif;margin-bottom:16px}.amenity-grid article{border-color:#c8b99f}.story-band{background:#30373b;border:0;color:#f8f5f2}.story-band .story{padding-block:68px}.story-band .eyebrow{color:#dfc394}.testimonial-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px;margin-top:40px}.testimonial-grid h3{font-size:27px}.testimonial-grid blockquote{margin:20px 0;color:#e6e0d7;font-size:16px;line-height:1.75}.journal-preview{padding-block:70px;background:#f8f5f2}.journal-preview::before{display:none}.journal-preview .post-media{border-radius:4px;height:230px}.journal-preview .post-body{padding-top:22px}.post-body .eyebrow{margin-bottom:14px}.post-body h3{font-size:27px;line-height:1.2;margin-bottom:22px}.closing{background:#e5dccd;color:#30373b;padding:65px 24px}.closing .eyebrow{color:#7a6230}.closing p:not(.eyebrow){color:#55534f;margin:22px 0 28px}.closing h2{font-size:clamp(2rem,4vw,3.5rem)}footer{background:#30373b;color:#f8f5f2;padding:40px;gap:28px;align-items:start}footer p,footer span{color:#e5dccd;font-size:14px}.footer-links{display:flex;flex-wrap:wrap;gap:10px 20px;max-width:380px}footer .footer-links a{font-size:14px}footer .footer-links span{flex-basis:100%;margin-top:12px}dialog{background:#f8f5f2;color:#30373b;border:0;border-radius:6px;max-width:1000px;width:94vw}dialog::backdrop{background:#171c21dc}.dialog-top button,.gallery-view button{border-radius:4px;background:#30373b;color:#f8f5f2}.dialog-top button:hover,.gallery-view button:hover{background:#b2905c;color:#20272b}#thumbnails button{border-radius:4px}#thumbnails button img{width:85px;height:60px;object-fit:cover}#thumbnails{display:flex;overflow-x:auto;gap:8px}#viewer-caption{text-align:center;margin:15px 0}.menu{color:#f8f5f2!important}
@media(max-width:1100px){header{padding-inline:24px;gap:15px}.brand img{width:200px}header nav{gap:14px}.button.small{padding-inline:14px;white-space:nowrap}.program-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-bottom span:last-child{display:none}}
@media(max-width:940px){header nav{background:#30373b!important}.testimonial-grid{grid-template-columns:1fr;gap:30px}.testimonial-grid article{border-top:1px solid #ffffff33;padding-top:24px}.amenity-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){header{height:80px;padding-inline:18px}.brand img{width:180px}header>.button{display:none}header nav{top:80px}.hero{height:650px;min-height:0}.hero-copy{padding-top:95px}.hero h1{font-size:clamp(3rem,9vw,4.5rem)}.hero-copy>p:not(.eyebrow){font-size:18px}.hero-controls{bottom:70px;right:24px}.hero-bottom{left:24px;right:24px;bottom:24px;font-size:11px}.factbar{padding:24px 16px;gap:20px 0}.factbar strong{font-size:15px}.factbar span{font-size:13px}.intro{padding-block:48px;gap:24px}.program-band{padding-bottom:48px}.program-grid{gap:28px}.program-grid h3{font-size:24px}.gallery-band .gallery{padding-block:48px}.facility-intro{padding:0 0 32px}.gallery .section-line{align-items:start;gap:20px}.spaces{padding-block:48px}.space-tabs{overflow:auto;white-space:nowrap;display:flex}.space-tabs button{padding:14px 18px}.space-content h3{font-size:32px}.vet-band .lake{padding-block:48px 30px}.vet-quote{padding-bottom:45px}.amenity-grid{gap:28px}.story-band .story,.journal-preview{padding-block:48px}.closing{padding-block:48px}footer{padding:32px 24px}.footer-links{max-width:none}.gallery-view{grid-template-columns:40px minmax(0,1fr) 40px;gap:8px}}
@media(max-width:420px){.program-grid,.amenity-grid{grid-template-columns:1fr}.gallery .section-line{flex-direction:column}.hero h1{font-size:2.9rem}}

/* September 2026 interaction, amenities, testimonials and footer refinements */
a:hover, a:focus-visible { text-decoration: none !important; }
/* Keep link contrast on the surface beneath it; underline identifies interaction. */
a:not(.button):not(.outline):hover,
a:not(.button):not(.outline):focus-visible {
  color: inherit;
  opacity: 1;
  text-decoration: underline;
  text-underline-offset: 5px;
  text-decoration-thickness: 1px;
}
.textlink:hover, .textlink:focus-visible { color: #30373b; }
.amenity-grid article { position: relative; padding-top: 76px; }
.amenity-grid .amenity-icon { position: absolute; top: 0; left: 0; width: 56px; height: 56px; object-fit: contain; filter: brightness(.69) saturate(1.12); }
.amenity-grid h3 { color: #7a6230; font: 400 15px/1.35 Outfit, sans-serif; letter-spacing: .13em; text-transform: uppercase; margin: 0 0 16px; }
.testimonial-grid { display: block; max-width: 850px; margin: 40px auto 0; min-height: 390px; }
.testimonial-grid article { display: none; }
.testimonial-grid article.active { display: block; animation: testimonial-fade .35s ease; }
.testimonial-grid blockquote { font-size: clamp(17px, 1.7vw, 20px); }
.testimonial-controls { display: flex; align-items: center; justify-content: center; gap: 14px; margin-top: 28px; }
.testimonial-controls button { width: 44px; height: 44px; border: 1px solid #dfc394; border-radius: 50%; background: transparent; color: #f8f5f2; font: 400 20px/1 Outfit, sans-serif; }
.testimonial-controls button:hover { background: #b2905c; color: #20272b; }
.testimonial-status { min-width: 54px; color: #e5dccd; font: 400 13px/1 Outfit, sans-serif; letter-spacing: .12em; }
footer { align-items: flex-start; }
.footer-identity { display: flex; flex-direction: column; align-items: flex-start; gap: 18px; }
.footer-identity address { color: #e5dccd; font: normal 400 14px/1.6 Outfit, sans-serif; }
.footer-links { max-width: 470px; }
@keyframes testimonial-fade { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }
@media(max-width:940px){.testimonial-grid{min-height:430px}.testimonial-grid article{border-top:0;padding-top:0}}
@media(max-width:760px){footer{flex-direction:column}.footer-identity{gap:14px}.testimonial-grid{min-height:520px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

header .brand img,footer .brand img{filter:brightness(0) invert(94%) sepia(9%) saturate(307%) hue-rotate(344deg) brightness(104%) contrast(94%)}

/* September 2026 homepage content refinements */
.factbar div { border-right-color: #c4b8a5; }
.facility-intro .facility-closing { color: #30373b; font-weight: 500; font-style: italic; margin-top: 26px; }

/* Brand typography, contrast and footer contact details */
header nav a,
.button,
.outline {
  font-family: Outfit, sans-serif;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.nav-dropdown,
.nav-submenu { position: relative; }
.nav-trigger,
.nav-submenu-trigger {
  background: transparent;
  border: 0;
  color: inherit;
  font-family: Outfit, sans-serif;
  font-size: inherit;
  font-weight: inherit;
  letter-spacing: .08em;
  padding: 0;
  text-transform: uppercase;
}
.nav-trigger::after { content: "⌄"; display: inline-block; font-size: 12px; margin-left: 7px; transform: translateY(-1px); }
.nav-dropdown-menu,
.nav-submenu-menu {
  background: #30373b;
  border: 1px solid #ffffff24;
  box-shadow: 0 14px 28px #14191d38;
  display: flex;
  flex-direction: column;
  gap: 0;
  min-width: 230px;
  opacity: 0;
  padding: 9px 0;
  pointer-events: none;
  position: absolute;
  top: calc(100% + 16px);
  transform: translateY(-5px);
  transition: opacity .18s ease, transform .18s ease, visibility .18s;
  visibility: hidden;
  z-index: 30;
}
.nav-dropdown-menu { left: -18px; }
.nav-dropdown-menu a,
.nav-submenu-menu a { color: #f8f5f2; padding: 10px 18px; white-space: nowrap; }
.nav-dropdown.open > .nav-dropdown-menu,
.nav-dropdown:hover > .nav-dropdown-menu,
.nav-dropdown:focus-within > .nav-dropdown-menu,
.nav-submenu.open .nav-submenu-menu,
.nav-submenu:hover .nav-submenu-menu,
.nav-submenu:focus-within .nav-submenu-menu {
  opacity: 1;
  pointer-events: auto;
  transform: none;
  visibility: visible;
}
.nav-submenu-heading { align-items: center; display: flex; }
.nav-submenu-heading > a { flex: 1; }
.nav-submenu-trigger { color: #dfc394; font-size: 21px; padding: 5px 16px 5px 8px; }
.nav-submenu-menu { left: calc(100% - 4px); top: -9px; }
.button,
.button:hover {
  color: #f8f5f2;
}
.button.light {
  color: #30373b;
}
.testimonial-grid h3 {
  color: #dfc394;
}
.footer-contact {
  margin-top: 18px;
  color: #e5dccd;
  font: normal 400 14px/1.7 Outfit, sans-serif;
}
.footer-contact a {
  display: inline;
  color: inherit;
}
.footer-contact .social-links {
  margin-top: 2px;
}
.footer-navigation {
  align-items: start;
  display: grid;
  grid-template-columns: repeat(2, minmax(190px, 1fr));
  gap: 34px 56px;
  width: min(100%, 620px);
}
.footer-column {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 9px;
}
.footer-column h3 {
  color: #dfc394;
  font: 400 13px/1.4 Outfit, sans-serif;
  letter-spacing: .13em;
  margin: 0 0 9px;
  text-transform: uppercase;
}
.footer-column a {
  color: #f8f5f2;
  font-size: 14px;
}
.footer-legal {
  border-top: 1px solid #ffffff2e;
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 8px;
  grid-column: 1 / -1;
  padding-top: 18px;
  white-space: nowrap;
}
.footer-legal a,
.footer-legal span {
  color: #e5dccd;
  font-size: 12px;
}
.footer-legal .footer-separator { color: #9d9f9d; }
@media(max-width:760px) {
  footer { text-align: left; }
  .footer-identity {
    align-items: flex-start;
    align-self: stretch;
    text-align: left;
  }
  .footer-identity address,
  .footer-contact { width: 100%; text-align: left; }
  .footer-navigation { width: 100%; }
  .footer-legal { flex-wrap: wrap; white-space: normal; }
}
@media(max-width:940px) {
  .nav-dropdown { width: 100%; }
  .nav-trigger { padding: 8px; text-align: left; width: 100%; }
  .nav-dropdown-menu,
  .nav-submenu-menu {
    background: #272e32;
    border: 0;
    box-shadow: none;
    display: none;
    min-width: 0;
    opacity: 1;
    padding: 4px 0 6px 15px;
    pointer-events: auto;
    position: static;
    transform: none;
    visibility: visible;
  }
  .nav-dropdown.open > .nav-dropdown-menu,
  .nav-submenu.open .nav-submenu-menu { display: flex; }
  .nav-dropdown:not(.open):hover > .nav-dropdown-menu,
  .nav-dropdown:not(.open):focus-within > .nav-dropdown-menu,
  .nav-submenu:not(.open):hover .nav-submenu-menu,
  .nav-submenu:not(.open):focus-within .nav-submenu-menu { display: none; }
  .nav-dropdown-menu a,
  .nav-submenu-menu a { padding: 8px 10px; white-space: normal; }
  .nav-submenu-heading > a { padding-left: 10px; }
  .nav-submenu-trigger { padding-right: 14px; }
}

/* Availability panel and standalone fallback */
.availability-dialog {
  background: #f8f5f2;
  border: 0;
  border-radius: 6px;
  color: #30373b;
  max-width: 980px;
  padding: clamp(28px, 5vw, 58px);
  width: min(92vw, 980px);
}
.availability-dialog::backdrop { background: #151b1fd9; backdrop-filter: blur(3px); }
.availability-dialog-top { align-items: flex-start; display: flex; gap: 25px; justify-content: space-between; }
.availability-dialog-top h2 { font-size: clamp(2.2rem, 4vw, 3.5rem); }
.availability-close { background: transparent; border: 1px solid #c8b99f; border-radius: 50%; color: #30373b; flex: 0 0 44px; height: 44px; }
.availability-intro { font-size: 17px; margin: 22px 0 30px; max-width: 760px; }
.availability-card-grid,
.availability-page-grid { display: grid; gap: 18px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.availability-card { background: #fff; border-top: 3px solid #7a6230; padding: 25px 23px; }
.availability-card .eyebrow { margin-bottom: 13px; }
.availability-card h3 { font-size: 25px; margin-bottom: 12px; }
.availability-card p:not(.eyebrow) { font-size: 15px; }
.availability-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 14px; margin-top: 30px; }
.availability-actions .outline { min-height: 50px; align-items: center; display: inline-flex; }
.availability-page { background: #f8f5f2; }
.availability-hero { background: #e5dccd; padding: 90px 0 75px; }
.availability-hero h1 { font: 400 clamp(3.2rem, 6vw, 5.6rem)/1.02 "Cormorant Garamond", Georgia, serif; }
.availability-hero p:not(.eyebrow) { font-size: 19px; margin-top: 24px; max-width: 720px; }
.availability-page-grid { padding-bottom: 80px; padding-top: 70px; }
.availability-page-grid .availability-card { box-shadow: 0 12px 30px #30373b0b; }
.availability-page-grid .textlink { margin-top: 24px; }
.availability-page-note { background: #30373b; color: #f8f5f2; padding: 72px 0; text-align: center; }
.availability-page-note .eyebrow { color: #dfc394; }
.availability-page-note p:not(.eyebrow) { color: #e5dccd; margin: 20px auto 28px; }
.availability-page-note .outline.light { border-color: #f8f5f2; color: #f8f5f2; }
.availability-page-note .outline.light:hover { background: #dfc394; border-color: #dfc394; color: #20272b; }
@media(max-width:760px) {
  .availability-card-grid,
  .availability-page-grid { grid-template-columns: 1fr; }
  .availability-dialog { padding: 26px 20px; }
  .availability-dialog-top h2 { font-size: 2.25rem; }
  .availability-actions { align-items: stretch; flex-direction: column; }
  .availability-actions .button,
  .availability-actions .outline { width: 100%; }
  .availability-hero { padding: 58px 0 48px; }
  .availability-page-grid { padding-bottom: 50px; padding-top: 45px; }
}
@media(max-width:520px) {
  .footer-navigation { grid-template-columns: 1fr; }
  .footer-legal { grid-column: 1; }
}

/* Keep the post-hero feature band consistent across the site. */
.factbar div { text-align: center; }
.factbar strong {
  font-family: Outfit, sans-serif;
  font-size: .9rem;
  font-weight: 700;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.factbar span { font-family: Outfit, sans-serif; text-align: center; }

/* Keep the program introduction visually connected to the interactive chooser. */
.programs-intro { padding-bottom: 52px; }
.programs-intro + .spaces { padding-top: 0; }
@media(max-width:760px) {
  .programs-intro { padding-bottom: 36px; }
}

/* Give "Cormorant Garamond" Classico display headings a little more breathing room sitewide. */
body h1,
body h2,
body h3 {
  letter-spacing: 0 !important;
}

#gallery-dialog .dialog-top {
  justify-content: flex-end;
}

.program-image-frame {
  height: 390px;
  overflow: hidden;
  border-radius: 4px;
}

.program-image-frame .program-image {
  width: 100%;
  height: 100%;
  aspect-ratio: auto;
  border-radius: 0;
  object-fit: cover;
  transition: transform .3s ease;
}

.program-image-frame .program-image[src*="kyra_fraser_dressage_trainer_snohomish_wa"] {
  transform: scale(1.1);
}

@media(max-width: 1000px) {
  .program-image-frame { height: 360px; }
}

@media(max-width: 760px) {
  .program-image-frame { height: 280px; }
}

.programs-intro .lead {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 38px;
  font-weight: 400;
  letter-spacing: -.025em;
  line-height: 1.2;
}

@media(max-width: 680px) {
  .programs-intro .lead { font-size: 38px; }
}

.hero-copy > p:not(.eyebrow) { white-space: nowrap; }

@media(max-width: 680px) {
  .hero-copy > p:not(.eyebrow) { white-space: normal; }
}

/* Text links on slate and photographic sections need a light hover color. */
:where(header,footer,.story-band,.image-statement,.service-hero,.vet-band .dark) a:not(.button):not(.outline):hover,
:where(header,footer,.story-band,.image-statement,.service-hero,.vet-band .dark) a:not(.button):not(.outline):focus-visible {
  color:#f8f5f2;
  opacity:1;
  text-decoration:underline;
  text-underline-offset:5px;
}

/* Keep footer interactions visible against the slate background. */
footer a:not(.brand):hover,
footer a:not(.brand):focus-visible {
  color: #dfc394;
  opacity: 1;
  text-decoration: underline !important;
  text-decoration-thickness: 1px;
  text-underline-offset: 5px;
}
footer a:focus-visible {
  outline: 2px solid #dfc394;
  outline-offset: 4px;
}
