@font-face {
  font-family: 'Bodoni Moda';
  src: url('assets/fonts/BodoniModa.ttf') format('truetype');
  font-style: normal;
  font-weight: 400 900;
  font-display: swap;
}
:root { --numeral-serif: 'Bodoni Moda', 'Noto Serif JP', 'Times New Roman', serif; }
/* Bande: an emerald and gold editorial design. */
:root{--ink:#183b32;--green:#102f29;--paper:#faf7ef;--muted:#647066;--line:#d8d0b8;--lime:#d9bd79;--soft:#ece9df;--gold:#dcc58b;--gold-deep:#98732e}
body{background:var(--paper)}.site-header{width:100%;height:123px;padding:20px 5.5%;margin:0;background:#102f29;color:#f8f4e9;gap:24px;border-bottom:1px solid rgba(220,197,139,.2)}.brand-name{font-size:3.15rem;font-weight:400;letter-spacing:-.06em}.brand-dot{color:var(--gold)}.brand-small{letter-spacing:.2em;font-size:.75rem}.site-header nav{font-size:.875rem;gap:28px;letter-spacing:.04em}.site-header nav a:hover{color:var(--gold)}.header-book{background:transparent;border:1px solid #bba366;color:var(--gold);border-radius:0;min-height:49px;font-size:.875rem;gap:12px;padding:10px 21px}.header-book:hover{background:#25473a;color:#fff7e0}.luxury-hero{background:radial-gradient(ellipse at 70% 45%,#245045 0,#16392f 42%,#102f29 77%);color:#fffbed;position:relative;overflow:hidden}.luxury-hero::before{content:'';position:absolute;width:74vw;height:74vw;border:1px solid rgba(218,194,135,.1);border-radius:50%;right:-16vw;top:-21vw;pointer-events:none}.luxury-hero::after{content:'';position:absolute;width:77vw;height:77vw;border:1px solid rgba(218,194,135,.07);border-radius:50%;right:-17.5vw;top:-22.5vw;pointer-events:none}.hero{min-height:735px;padding:76px 0 96px;grid-template-columns:1.05fr 1fr;gap:80px;z-index:1}.hero .eyebrow{font-size:.75rem;letter-spacing:.25em;color:var(--gold);margin-bottom:29px}.hero h1{font-size:clamp(2.5rem,3.8vw,3.55rem);font-weight:400;line-height:1.8;letter-spacing:.055em;margin-bottom:29px}.underline{background:none;color:#e0c78a;position:relative}.underline::after{content:'';position:absolute;left:0;right:0;bottom:-6px;border-bottom:1px solid #bca162}.hero-description{font-size:1rem;color:#dfdfcf;line-height:2.25;letter-spacing:.08em;margin-bottom:36px}.hero .primary{border-radius:0;background:linear-gradient(115deg,#e5ce96,#c5a65d);color:#15362b;min-width:258px;min-height:60px;box-shadow:inset 0 0 0 4px rgba(255,247,224,.16);letter-spacing:.07em}.hero .primary:hover{background:#e7cf94}.hero-meta{color:#c6ccb8;margin-top:30px;font-size:.875rem;letter-spacing:.05em}.hero-meta span+span{border-left-color:#657965}.hero-visual{aspect-ratio:.9;border-radius:48% 48% 2px 2px;overflow:visible;background:transparent;margin:9px 10px 0 0;position:relative;box-shadow:18px 26px 65px #00180f55}.hero-visual::before{content:'';position:absolute;inset:-13px;border:1px solid #bda269;border-radius:inherit;pointer-events:none}.hero-visual::after{content:'';position:absolute;inset:-21px;border:1px solid #bda26935;border-radius:inherit;pointer-events:none}.hero-photo{border-radius:inherit;object-position:58% center}.photo-caption{background:linear-gradient(transparent,#062419b8);padding:80px 25px 25px;border-radius:0 0 2px 2px}.photo-caption span:first-child{color:#ede1be;letter-spacing:.2em;font-size:.75rem}.photo-caption span:last-child{font-family:var(--serif);font-size:1rem;letter-spacing:.14em}.hero-seal{position:absolute;width:112px;height:112px;right:-35px;top:24px;border-radius:50%;background:#d6bb7d;color:#173b2c;display:flex;flex-direction:column;align-items:center;justify-content:center;outline:1px solid #d6bb7d;outline-offset:5px;transform:rotate(12deg);box-shadow:0 10px 25px #102f292e;line-height:1.4}.hero-seal>span{font-family:Georgia,serif;font-size:.75rem;letter-spacing:.1em}.hero-seal b{font-family:Georgia,serif;font-size:1.75rem;font-weight:400;margin:4px 0}.scroll-note{color:#c8b582;bottom:27px;font-size:.75rem;letter-spacing:.17em}.luxury-ribbon{border-top:1px solid #b99e593b;border-bottom:1px solid #b99e592b;background:#0c2922;display:flex;align-items:center;justify-content:center;gap:55px;padding:21px 5%;color:#cfb77b;font-family:Georgia,serif;letter-spacing:.2em;font-size:.8rem}.luxury-ribbon i{font-size:1.1rem;font-style:normal}.eyebrow{color:#927437;letter-spacing:.22em}.about{border-top:0;padding:118px 0 112px;gap:90px;position:relative}.about h2{font-size:2.15rem;line-height:1.85}.about h2::after{content:'';display:block;width:55px;border-bottom:2px solid #c0a363;margin-top:27px}.about-copy{color:#526255;font-size:1rem;padding-top:42px;line-height:2.25}.about-foot{color:#7e713f;border-top:1px solid #dbd1b4;padding-top:19px;font-size:.875rem}.services{background:#173b30;color:#fffbee;padding:94px 0 102px;border-block:5px solid #c2a76c}.services .eyebrow{color:var(--gold)}.services .section-aside{color:#d2d2bc}.section-heading{margin-bottom:49px}.section-heading h2{font-size:2.2rem}.service-grid{gap:0;border:1px solid #9d925443;background:#ffffff03}.service{border-top:0;padding:37px 35px 39px;position:relative}.service+.service{border-left:1px solid #9d925443}.service::before{content:'';height:2px;background:#c8ac6d;width:36px;display:block;margin-bottom:29px}.service-no{color:#d0b775;font-family:Georgia,serif;font-size:.95rem;letter-spacing:.13em}.service h3{color:#fff8e6;font-size:1.6rem;line-height:1.8;margin:24px 0 20px;letter-spacing:.055em}.service p{color:#d0d7c8;font-size:1rem;line-height:2.1;min-height:101px}.service a{color:#e4cb8c;border-bottom-color:#9d925475;font-size:.875rem;gap:35px;padding-bottom:9px}.service a:hover{color:white}.prices{padding:106px 0 66px}.prices .section-heading{position:relative;padding-bottom:28px;border-bottom:1px solid #d9d1b6}.prices .section-heading::after{content:'✧';position:absolute;right:0;bottom:-16px;background:var(--paper);color:#a58a49;padding-left:15px;font-size:23px}.table-caption{margin-top:34px}.table-caption h3{font-family:var(--serif);font-size:1.3rem}.price-table{border:1px solid #cbbd99;background:#fffdf5}.price-table thead{background:#234739;color:#f8efd7}.price-table thead th{padding-block:22px;border-right:1px solid #89946f40}.price-table tbody tr:nth-child(even){background:#eeebdf}.price-table tbody tr{border-color:#ded5bb}.price-table tbody th{padding-block:22px}.price-table td{font-family:var(--numeral-serif);font-size:1.6rem;color:#304a36}.cat-menu{background:linear-gradient(110deg,#eee6d0,#f7f0df);border:1px solid #c8b584;outline:1px solid #d8c8a5;outline-offset:-8px;border-radius:0;padding:42px 46px;gap:70px}.cat-menu .eyebrow{color:#96763c}.cat-menu h3{font-size:1.65rem}.cat-menu p{font-size:.9rem}.cat-prices dd{font-family:var(--numeral-serif);font-size:1.6rem}.cat-prices>div{border-color:#cbbb925e}.other-services{gap:38px;padding-top:22px;padding-bottom:105px}.detail-panel{border:1px solid #cfc4a4;background:#fdfaf2;padding:37px 34px;position:relative}.detail-panel::before{content:'';display:block;width:38px;height:3px;background:#b99850;position:absolute;left:34px;top:-2px}.detail-title h2{font-size:1.6rem}.tag{border-radius:0;background:#f0e9d6;border-color:#d7c798;color:#746339;font-size:.75rem}.detail-intro{font-size:1rem;line-height:2.1}.training-list li{border-left-color:#c3a86c}.lesson-price p,.daycare-prices dd{font-family:var(--numeral-serif);color:#746034}.free-consult{border-radius:0;background:#294d3c;color:#fff7df;font-size:.875rem;margin-top:24px;padding:12px}.daycare-prices>div{padding-block:28px}.access{background:linear-gradient(115deg,#1c4033,#0d2c23);color:#fff9e8;border-top:5px solid #bea568;padding:91px 0}.access .eyebrow{color:var(--gold)}.access h2{font-size:2.25rem}.access-title>p:not(.eyebrow){color:#d9dbca;letter-spacing:.05em}.map-link{color:#e3cd96;border-color:#a69963}.map-link:hover{color:white}.shop-details>div{border-color:#d0bd8033;padding-block:20px}.shop-details dt{color:#caba89;font-size:.875rem}.shop-details dd{font-size:.94rem}.shop-details dd>span{color:#c9d0be;font-size:.875rem}.shop-details a{color:#f0dfb5}.contact{padding-top:105px;padding-bottom:67px;gap:60px}.contact h2{font-size:1.6rem}.contact-phone>a{font-family:var(--numeral-serif);font-size:clamp(1.75rem,3vw,2.65rem);border-color:#a88c4d;padding-bottom:21px;letter-spacing:0}.contact-phone>a span{background:#183f30;color:#dfc384;border:1px solid #b29854;border-radius:0;width:46px;height:46px}.contact-hours{color:#92773d}.source-note{font-size:.75rem;margin-bottom:27px}.site-footer{border-top:1px solid #ccbc91;padding-block:43px}.site-footer .brand-name{font-size:2.75rem}
@media(min-width:1500px){.hero{min-height:780px}.hero h1{font-size:3.65rem}}
@media(max-width:1100px){.site-header nav{font-size:.75rem;gap:17px}.header-book{font-size:.75rem;padding-inline:14px}.hero{gap:48px;min-height:655px}.hero h1{font-size:clamp(2rem,3.7vw,3rem)}.hero-seal{width:93px;height:93px;right:-23px;top:16px}.hero-seal b{font-size:1.6rem}.service{padding:30px 23px}.service h3{font-size:1.35rem}.service p{font-size:.94rem}.about{gap:55px}.about h2{font-size:1.85rem}.detail-panel{padding:30px 24px}.detail-title h2{font-size:1.45rem}.access-inner{gap:50px}.contact{gap:40px}.contact h2{font-size:1.38rem}}
@media(max-width:760px){.site-header{height:100px;padding:20px 6%}.site-header .brand-name{font-size:2.55rem}.site-header .brand-small{font-size:.68rem}.header-book{font-size:.75rem;min-height:45px;padding:10px 12px;gap:6px}.hero{grid-template-columns:1fr;padding:45px 0 68px;gap:51px;min-height:0;width:86%}.hero .eyebrow{font-size:.75rem;letter-spacing:.17em;margin-bottom:23px}.hero h1{font-size:clamp(1.9rem,6.9vw,3rem);line-height:1.8;margin-bottom:26px;letter-spacing:.05em}.hero-description{font-size:1rem;line-height:2.15;margin-bottom:29px}.hero .primary{min-height:57px;min-width:255px}.hero-meta{margin-top:24px;font-size:.8rem}.hero-visual{width:calc(100% - 22px);margin:0 auto;aspect-ratio:1.08}.hero-visual::before{inset:-9px}.hero-visual::after{inset:-15px}.hero-seal{width:86px;height:86px;right:-19px;top:6px;outline-offset:3px}.hero-seal b{font-size:1.4rem}.hero-seal>span{font-size:.65rem}.photo-caption{padding:65px 19px 20px}.photo-caption span:first-child{font-size:.7rem}.photo-caption span:last-child{font-size:.9rem}.scroll-note{font-size:.65rem;bottom:21px}.luxury-ribbon{padding:17px 4%;gap:15px;font-size:.62rem;letter-spacing:.08em}.luxury-ribbon i{font-size:.85rem}.about{padding:69px 0 68px;gap:30px}.about h2{font-size:1.85rem}.about h2::after{margin-top:22px}.about-copy{padding-top:0;line-height:2.15;font-size:1rem}.services{padding:62px 0 67px;border-block-width:3px}.section-heading h2{font-size:1.75rem}.services .section-aside{margin-top:16px}.service-grid{grid-template-columns:1fr}.service{padding:30px}.service+.service{border-left:0;border-top:1px solid #9d925443}.service::before{margin-bottom:21px}.service-no{font-size:.875rem}.service h3{font-size:1.5rem;margin:17px 0}.service p{font-size:1rem;min-height:0}.service a{font-size:.875rem}.prices{padding:66px 0 34px}.prices .section-heading{margin-bottom:28px}.table-caption{margin-top:29px}.price-table td{font-size:1.4rem}.price-table tbody th{padding-block:20px}.cat-menu{gap:24px;padding:31px 26px;margin-top:32px}.cat-menu h3{font-size:1.5rem}.cat-menu p{font-size:.875rem}.cat-prices dt{font-size:.875rem}.other-services{gap:29px;padding:0 0 68px}.detail-panel{padding:31px 26px}.detail-title h2{font-size:1.5rem}.detail-intro{font-size:1rem}.lesson-price{gap:8px}.lesson-price p{font-size:1.9rem}.lesson-price p span{font-size:.7rem;margin-left:4px}.free-consult{font-size:.83rem;padding:12px 7px}.access{padding:65px 0;border-top-width:3px}.access-inner{gap:39px}.access h2{font-size:2rem}.shop-details>div{gap:10px;padding-block:18px}.shop-details dd{font-size:.9rem}.contact{padding:66px 0 38px;gap:26px}.contact h2{font-size:1.45rem}.contact-phone>a{font-size:clamp(1.55rem,7.05vw,2.7rem)}.source-note{font-size:.75rem}.site-footer{padding-block:35px}.site-footer .brand-name{font-size:2.55rem}}
@media(max-width:370px){.site-header{padding-inline:5%;gap:10px}.site-header .brand-name{font-size:2.25rem}.header-book{font-size:.7rem;padding-inline:9px}.hero h1{font-size:1.85rem}.hero-description{font-size:.94rem}.hero .primary{min-width:240px}.luxury-ribbon{gap:10px;font-size:.58rem}.detail-panel{padding-inline:20px}.lesson-price p{font-size:1.8rem}.lesson-price>span{font-size:.8rem}.contact-phone>a{font-size:1.55rem}.cat-prices dt{font-size:.8rem}}


/* Keep factual numbers on one baseline, with equal-width lining digits. */
.price-table,.cat-prices dd,.lesson-price p,.daycare-prices dd,
.contact-phone>a,.service-no,.numeric {
  font-variant-numeric: lining-nums tabular-nums;
  font-feature-settings: "lnum" 1, "tnum" 1;
}
.price-table tbody th,.price-table small,.numeric,.service-no {
  font-family: var(--serif);
}
.price-table td:not(.consult-cell),.cat-prices dd,.lesson-price p,
.daycare-prices dd,.contact-phone>a,.numeric {
  letter-spacing: 0;
  font-kerning: none;
  white-space: nowrap;
}
.price-table { table-layout: fixed; }
.price-table .weight-column { width: 31%; }
.price-table .course-column { width: 23%; }
.price-table td { vertical-align: middle; }
.price-table td:not(.consult-cell),.cat-prices dd { line-height: 1.5; }
.price-table td>span,.cat-prices dd span,.lesson-price p span {
  display: inline;
  font-size: .875rem;
  line-height: 1.5;
  vertical-align: baseline;
  margin-left: .35rem;
}
.cat-prices>div { align-items: baseline; }
.cat-prices dd { flex: 0 0 auto; text-align: right; }
.lesson-price { align-items: baseline; flex-wrap: wrap; gap: .5rem 1rem; }
.lesson-price p { flex: 0 0 auto; margin-left: auto; line-height: 1.5; }
.daycare-prices>div { align-items: baseline; }
.daycare-prices dd { flex: 0 0 auto; line-height: 1.5; }
.daycare-prices dd span { font-size: .875rem; line-height: 1.5; }
.shop-details dd>.numeric { display: inline; color: inherit; font-size: inherit; margin: 0; }

/* Refined serif figures retain the same tabular widths and lining baseline. */
.price-table td:not(.consult-cell),.cat-prices dd,.lesson-price p,
.daycare-prices dd,.contact-phone>a,.service-no {
  font-family: var(--numeral-serif);
  font-weight: 600;
  font-optical-sizing: none;
  font-variation-settings: "opsz" 6;
}
.price-table td>span,.cat-prices dd span,.lesson-price p span,.daycare-prices dd span {
  font-family: var(--serif);
  font-weight: 600;
}

/* The text-size optical design keeps serif hairlines visible on small screens. */
.hero h1,h2,.service h3,.cat-menu h3,.table-caption h3 { font-weight: 600; }
.price-table tbody th,.numeric { font-weight: 600; }
.price-table small { font-family: var(--sans); font-weight: 500; }

/* Photography introduces each service, while keeping its description readable. */
.service-grid { gap: 24px; border: 0; }
.service {
  --service-inset: 28px;
  display: flex;
  flex-direction: column;
  padding: 0 0 32px;
  border: 1px solid #9d925443;
  background: #ffffff04;
  min-width: 0;
}
.service::before { display: none; }
.service-photo {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  object-position: center;
  border-bottom: 1px solid #9d925443;
}
.service-photo--grooming { object-position: 57% 35%; }
.service > :not(.service-photo) {
  margin-left: var(--service-inset);
  margin-right: var(--service-inset);
}
.service .service-no {
  margin-top: 25px;
  font-size: .8rem;
  letter-spacing: .08em;
  line-height: 1.5;
  white-space: nowrap;
}
.service h3 { margin-top: 15px; margin-bottom: 16px; }
.service p { flex-grow: 1; }
.service a { align-self: flex-start; margin-top: auto; }
@media (max-width: 1100px) {
  .section-heading { display: block; }
  .section-heading h2 { font-size: clamp(1.6rem, 3vw, 2.2rem); text-wrap: balance; }
  .section-aside { display: block; margin-top: 18px; white-space: normal; }
}
@media (min-width: 761px) and (max-width: 1100px) {
  .service { --service-inset: 20px; }
  .service h3 { font-size: 1.2rem; }
  .service a { gap: 19px; }
}
@media (max-width: 760px) {
  .service-grid { gap: 25px; }
  .service { --service-inset: 26px; padding-bottom: 28px; }
  .service .service-no { margin-top: 23px; }
  .service h3 { font-size: 1.5rem; }
}
