/* Top-page phone layout only. Loaded with media="(max-width: 760px)".
   Keep the shared desktop/detail-page styles and the breed price table intact. */
:root { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
main > section, main > .bubble-note, footer { min-width: 0; }
.mobile-tail, .mobile-phrase, .mobile-word { white-space: nowrap; }

/* Reading columns: an element's box is centered, its prose is left aligned. */
.salon-intro p.original-copy,
#care .care-card p:not(.eyebrow):not(.handnote),
#reservation > p:not(.handnote):not(.eyebrow),
#menu > p:not(.handnote):not(.eyebrow),
#menu .course-notes p, #menu .options-note p, #menu .care-notes p,
.bubble-note p.original-copy, #album .section-head p:not(.eyebrow),
#staff .original-copy, #access .source-note,
#inquiry > p, #contact > p:not(.eyebrow) {
  text-align: left; text-align-last: auto;
  letter-spacing: normal; word-spacing: normal;
  line-height: 1.8; white-space: normal;
  word-break: normal; line-break: strict; overflow-wrap: normal; text-wrap: wrap;
}
.salon-intro .original-copy .keep-word,
#care p .keep-word, #reservation p .keep-word,
#menu p .keep-word, .bubble-note p .keep-word,
#album p .keep-word, #staff .original-copy .keep-word,
#access p .keep-word, #inquiry p .keep-word, #contact p .keep-word {
  display: inline; white-space: normal;
}
.handnote { text-align: center; transform: none; letter-spacing: 0; }
.section-head, .section-head > div { width: 100%; min-width: 0; }
.section-head { justify-content: center; margin-bottom: 20px; }
.section-head h2, .section-head .eyebrow { text-align: center; }
.guide-link { width: 100%; min-width: 0; }
.guide-link > span, .care-notes summary, .k9-disclosure > summary {
  letter-spacing: 0; line-height: 1.75; word-break: normal; line-break: strict; text-wrap: wrap;
}

/* Preserve the already balanced welcome, mascot, paws and three photographs. */
.welcome > .eyebrow { margin-left: 16px; margin-right: 16px; }
.welcome > .welcome-copy { font-size: clamp(12px, 3.2vw, 14px); letter-spacing: 0; }
.welcome .text-link { display: inline-block; max-width: calc(100% - 32px); }
.salon-collage { margin-left: auto; margin-right: auto; }
.salon-intro > div { width: 100%; min-width: 0; }
.salon-intro h2 { text-align: center; }
.salon-intro p.original-copy,
#reservation > .booking-advice, #reservation > .waiting-advice {
  display: block; width: 100%; max-width: none; min-width: 0;
  margin-left: auto; margin-right: auto; padding-left: 0; padding-right: 0;
  text-align: left; text-align-last: auto; white-space: normal;
  word-break: normal; line-break: strict; overflow-wrap: normal; text-wrap: wrap;
}
#reservation > .booking-advice, #reservation > .waiting-advice {
  width: calc(100% + 28px); margin-left: -14px; margin-right: -14px;
}
.salon-intro p.original-copy .flow-keep,
#reservation > .booking-advice .flow-keep, #reservation > .waiting-advice .flow-keep {
  display: inline; white-space: nowrap;
}

/* Item 1 and its paragraph are deliberately left untouched. */
.about-letter > .handnote { display: none; }
.about-letter .philosophy-point ~ .philosophy-point,
.about-letter .philosophy-point ~ .philosophy-point + p.original-copy {
  width: 100%; min-width: 0; max-width: none; margin-left: auto; margin-right: auto;
}
.about-letter .philosophy-point ~ .philosophy-point + p.original-copy { text-wrap: wrap; }

/* K9: no intrinsic-width grid child or floated decoration stealing prose width. */
#care { padding: 28px 18px; }
#care .section-head .handnote { margin: 0 0 10px; }
#care .section-head h2 { margin: 0; font-size: clamp(23px, 6vw, 27px); letter-spacing: .02em; }
#care .care-grid { grid-template-columns: minmax(0, 1fr); }
#care .care-card.food { width: 100%; min-width: 0; max-width: 100%; padding: 24px 20px; margin: 0 auto; }
#care .care-card.food > .sketch { display: none; }
#care .care-card.food > .eyebrow { text-align: center; white-space: nowrap; letter-spacing: .08em; }
#care .care-card.food > h3 { white-space: nowrap; font-size: clamp(25px, 6.8vw, 30px); letter-spacing: 0; margin: 6px 0 12px; }
#care .care-card.food > .pill { display: table; margin: 0 auto 18px; }
#care .care-card.food > .button { display: flex; width: fit-content; max-width: 100%; margin: 20px auto 0; }
#care .care-card p { margin: 14px 0; }
#care .small-note { line-height: 1.75; }
#care .care-card p .brand-name { display: inline; white-space: nowrap; }
#k9-story h2 .heading-unit:last-child { white-space: nowrap; font-size: clamp(18px, 5vw, 23px); }

/* Reservation cards retain two equal columns, with one date/time pair per row. */
#reservation .handnote { font-size: clamp(16px, 4.3vw, 19px) !important; padding: 0 14px; }
#reservation.paper > p.handnote, #reservation.paper > p.booking-news {
  width: 100%; margin-left: auto; margin-right: auto; text-align: center; letter-spacing: 0;
}
#reservation > .handnote > .reservation-line,
#reservation > .booking-news > .reservation-line { display: block; white-space: nowrap; }
#reservation > .eyebrow, #reservation > h2, #reservation > h3 { text-align: center; }
#reservation::before { top: 8px; right: 12px; font-size: 28px; line-height: 1; }
#reservation > h3 { margin-top: 24px; font-size: 18px; letter-spacing: 0; }
#reservation .booking-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 1fr; gap: 12px; }
#reservation .booking-grid article { width: 100%; min-width: 0; padding: 16px 8px; }
#reservation .booking-grid h3 { margin-bottom: 8px; text-align: center; }
#reservation .booking-grid p { text-align: center; font-size: 13px; letter-spacing: 0; line-height: 1.9; }
#reservation .booking-slot, #reservation .booking-empty { white-space: nowrap; }
#reservation .booking-slot { display: block; }
#reservation .booking-slot > span + span { margin-left: .45em; }
#reservation .booking-slot + br { display: none; }
.contact-buttons { display: flex; flex-direction: column; align-items: stretch; width: 100%; max-width: 300px; gap: 12px; margin: 20px auto; }
.contact-buttons > a { width: 100%; min-height: 48px; margin: 0; }
#reservation > .guide-link > span { font-size: clamp(13px, 3.5vw, 15px); white-space: nowrap; }

/* Keep every breed table rule and its parent geometry unchanged. */
#menu .menu-mobile-omit { display: none; }
#menu > h2 { margin: 10px 0; }
#menu.paper > p.menu-tax-note { text-align: center; margin: 8px 0 18px; }
#menu > .handnote { font-size: clamp(16px, 4.3vw, 19px) !important; }
#menu > .eyebrow, #menu > h2 { text-align: center; }
#menu > h2 { font-size: clamp(23px, 6.2vw, 26px); letter-spacing: .02em; }
#menu .course-notes { min-width: 0; }
#menu .options-note h3 { text-align: center; font-size: clamp(20px, 5.4vw, 24px); letter-spacing: 0; }
#menu .options-note dl > div { grid-template-columns: minmax(0, 1fr); gap: 5px; padding: 14px 0; }
#menu .options-note dt { font-size: 13px; line-height: 1.8; letter-spacing: 0; }
#menu .options-note dd { text-align: right; font-size: 14px; }
#menu .care-notes summary {
  display: block; width: calc(100% + 24px); margin: 0 -12px;
  padding: 4px 0; list-style: none; text-align: center;
  font-size: clamp(13px, 3.55vw, 15px); letter-spacing: 0; line-height: 1.8;
}
#menu .care-notes summary::-webkit-details-marker { display: none; }
#menu .care-summary-line { display: block; white-space: nowrap; }
#menu .care-summary-arrow[hidden] { display: inline; font-size: .8em; }
#menu .care-summary-full { display: block; white-space: nowrap; }
#menu .care-notes .care-desktop-copy { display: none; }
#menu .care-mobile-copy[hidden] {
  display: block; list-style: none; margin: 16px 0 0; padding: 0;
  text-align: left; font-size: 14px; letter-spacing: normal; line-height: 1.8;
}
#menu .care-mobile-copy > li {
  position: relative; padding-left: 1.4em; margin: 0 0 12px;
  white-space: normal; word-break: normal; line-break: strict; overflow-wrap: normal;
}
#menu .care-mobile-copy > li::before { content: '◎'; position: absolute; left: 0; }
#menu .care-mobile-copy .care-item-end { white-space: nowrap; }
#menu .care-mobile-copy > li.care-two-lines {
  width: calc(100% + 8px); margin-left: -4px; margin-right: -4px;
  font-size: clamp(13px, 3.3vw, 14px);
}
#menu .care-two-lines .care-fixed-line { display: block; white-space: nowrap; }

.bubble-note { width: calc(100% - 28px); margin: 24px auto; padding: 22px 18px; }
.bubble-note > h3 { text-align: center; font-size: clamp(17px, 4.6vw, 20px); letter-spacing: 0; }
.bubble-note > h3 .heading-unit { display: block; }
.bubble-note .bubble-photo { max-width: 100%; margin: 16px auto; }
.bubble-note .bubble-symptom { display: block; margin-top: 14px; }

/* A single caption contains two unbreakable units, allowed to wrap between them. */
#album .section-head h2 { white-space: nowrap; font-size: clamp(24px, 6.4vw, 29px); letter-spacing: 0; }
#album .section-head h2 .paw-print { width: 25px; height: 25px; margin-left: 8px; }
#album .gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 20px 14px; }
#album .photo { width: 100%; min-width: 0; }
#album .photo img { width: 100%; height: auto; aspect-ratio: 1; object-fit: contain; }
#album .photo-caption { display: block; width: 100%; padding: 8px 0 0; text-align: center; line-height: 1.65; letter-spacing: 0; }
#album .caption-parts { display: flex; justify-content: center; flex-wrap: wrap; gap: 0; width: 100%; font-size: 12px; }
#album .dog-name, #album .dog-breed { display: inline-block; flex: 0 0 auto; max-width: 100%; white-space: nowrap; overflow-wrap: normal; word-break: normal; }
#album .album-toolbar { justify-content: center; }

#staff > h2 { font-size: clamp(23px, 6.2vw, 28px); letter-spacing: .01em; }
#staff .staff-grid { grid-template-columns: minmax(0, 1fr); }
#staff .staff-grid > article { width: 100%; min-width: 0; }
#staff .original-copy { width: 100%; margin: 14px auto; }
#staff .owner-history dd { word-break: normal; line-break: strict; overflow-wrap: normal; }
#staff .owner-history .keep-word { display: inline; white-space: normal; }
#staff .instagram-note .handnote { font-size: 17px !important; }

#access .access-grid { grid-template-columns: minmax(0, 1fr); gap: 24px; }
#access > .eyebrow { text-align: center; }
#access .access-grid > div { width: 100%; min-width: 0; }
#access .access-grid h3 { text-align: center; }
#access .access-grid > div > h3 { display: none; }
#access .access-grid h3 .salon-tagline { display: none; }
#access .access-grid h3 .heading-unit:last-child { margin: 0; }
#access .access-grid dl > div { grid-template-columns: 5em minmax(0, 1fr); gap: 12px; }
#access .access-grid dl > .payment-row { grid-template-columns: minmax(0, 1fr); gap: 6px; }
#access .payment-row .desktop-payment { display: none; }
#access .payment-row .mobile-payment[hidden] { display: block; }
#access .payment-row .payment-line { display: block; line-height: 1.8; }
#access .payment-row .payment-line + .payment-line { margin-top: 5px; }
#access .access-grid > div > .button { display: flex; width: fit-content; margin: 20px auto 12px; }

#inquiry form { width: 100%; max-width: 560px; min-width: 0; margin: 18px auto; }
#inquiry input, #inquiry textarea { width: 100%; min-width: 0; font-size: 16px; }
#inquiry form > .button { display: flex; min-width: 180px; margin: 22px auto 0; }
#inquiry form > .form-status:empty { min-height: 0; margin: 0; }
#inquiry > p { margin: 14px auto; }
#contact > h2 { width: 100%; margin: 14px auto; font-size: clamp(24px, 6.4vw, 29px); letter-spacing: .01em; line-height: 1.65; text-align: center; text-wrap: nowrap; }
#contact > p { width: 100%; max-width: 480px; margin-left: auto; margin-right: auto; }
#contact > .eyebrow { text-align: center; font-size: 10px; letter-spacing: .1em; }
footer .registration { min-width: 0; }
footer .registration dl { width: 100%; }
