/* Approved card manuscript on the current 700px homepage design. */
.cover-head > .definition { margin: 0 0 29px; padding-left: 17px; border-left: 2px solid #e06b7e; color: #efdce1; font-size: 14px; line-height: 1.9; max-width: 560px; }
.definition strong { color: inherit; font-weight: 500; }
.cover-head > p:not(.definition):not(.homepage-actions) { font-size: 16px; line-height: 1.85; margin-top: 20px; max-width: 550px; letter-spacing: -.012em; text-wrap: pretty; }
.cover-head > h1 + p { font-size: 18px !important; color: #fff8f9; font-weight: 550; }
.cover-head .homepage-actions { margin-top: 27px; }
.cover .campaign-hero { background: #171416; }
.cover .campaign-hero img { width: 100%; }
.section-nav { border-inline: 0; }
.content-section { padding-block: 48px; }
.content-section h2 { font-size: 28px; text-wrap: pretty; }
.section-heading { margin-bottom: 24px; }
.card-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; margin-block: 22px; }
.card-grid:first-child { margin-top: 0; }
.card-grid:last-child { margin-bottom: 0; }
.copy-card { min-width: 0; padding: 22px 21px; border: 1px solid #e5dcda; border-radius: var(--radius); background: #fff; }
.copy-card h3 { margin: 0 0 14px; font-size: 19px; line-height: 1.55; letter-spacing: -.025em; }
.copy-card p { font-size: 15px; line-height: 1.85; margin-bottom: 14px; }
.copy-card > :last-child { margin-bottom: 0; }
.copy-card p:has(> strong:only-child) { padding-top: 13px; margin-top: 15px; border-top: 1px solid #eee6e5; font-size: 14px; }
.copy-card p:has(> strong:only-child) strong { color: #842537; font-weight: 600; }
.cards-standards .copy-card { border-top: 3px solid #b9263a; }
.cards-care, .cards-visit { grid-template-columns: 1fr; }
.cards-care .copy-card, .cards-visit .copy-card { padding: 22px 24px; }
.cards-care .copy-card p, .cards-visit .copy-card p { font-size: 16px; }
.cards-care .copy-card p:has(> strong:only-child) { font-size: 15px; }
.cards-visit .copy-card { background: #ffffffa8; }
#aftercare { border-top: 0; }
#aftercare .section-body > p:first-child { font-size: 19px; line-height: 1.75; }
#aftercare .section-body > p:last-child { color: #e2d8dc; }
.cards-courses .copy-card { border-top: 3px solid #b9263a; background: #fcfaf7; }
.cards-courses .copy-card h3 { font-size: 23px; }
.cards-courses .copy-card h3 + p { border-top: 0; margin-top: 0; padding: 0 0 15px; border-bottom: 1px solid #e7dddd; }
.cards-courses .copy-card h3 + p strong { color: #9d2035; font-size: 16px; }
.cards-courses .copy-card p { font-size: 15px; }
.section-body hr { border: 0; border-top: 1px solid var(--section-line); margin: 24px 0; }
.profile-hub-image { margin-block: 24px !important; }
#managers .table-wrap { margin-top: 18px; }
#managers th, #managers td { text-align: center; }
#managers th { font-size: 18px; }
.cards-prices { grid-template-columns: 1fr; }
.cards-prices .copy-card { padding: 23px 24px; }
.cards-prices .copy-card > p:has(> strong:only-child) { border-top: 0; margin-top: 0; padding-top: 0; }
.cards-prices .copy-card > p:has(> strong:only-child) strong { font-size: 17px; }
.cards-prices .table-wrap { margin-block: 18px 0; }
.cards-prices th, .cards-prices td { text-align: right; }
.cards-prices th:first-child, .cards-prices td:first-child { text-align: left; }
.cards-booking .copy-card { background: #fcfaf7; }
.condition { margin: 10px 0; border: 1px solid #dfd4d6; border-radius: 11px; background: #fff; overflow: clip; }
.condition:first-of-type { margin-top: 24px; }
.condition > summary { display: flex; align-items: center; justify-content: space-between; gap: 14px; min-height: 61px; padding: 15px 19px; list-style: none; color: #32272c; font-size: 15px; font-weight: 600; line-height: 1.6; }
.condition > summary::after { content: '+'; flex: 0 0 26px; display: grid; place-items: center; width: 26px; height: 26px; border: 1px solid #e0cbd0; border-radius: 50%; color: #a4233a; font-size: 20px; font-weight: 400; line-height: 1; }
.condition > summary:hover { color: #9e2035; background: #fdf6f7; }
.condition[open] > summary { border-bottom: 1px solid #eadfe1; background: #fbf3f4; }
.condition[open] > summary::after { content: '−'; background: #f4e1e5; }
.condition > summary:focus-visible { outline-offset: -4px; }
.condition-content { padding: 21px 20px; }
.condition-content p, .condition-content li { font-size: 14px; line-height: 1.85; }
.condition-content p { margin-bottom: 16px; }
.condition-content p:last-child { margin-bottom: 0; }
.condition-content ul { margin: 0; padding-left: 20px; }
.condition-content li + li { margin-top: 9px; }
.section-body > p:has(> a:only-child) { margin-top: 25px; }
.section-body > p > a:only-child { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 11px 18px; border: 1px solid #cda7af; border-radius: 10px; text-decoration: none; font-size: 15px; }
.section-body > p > a:only-child:hover { background: #f7e9ec; border-color: #9c2539; }
#booking .section-body > p:last-child > a { display: flex; color: #fff; background: #b9263a; border-color: #b9263a; }
#booking .section-body > p:last-child > a:hover { background: #961a2b; }
.tdq-footer-v4__service { margin-top: 10px; }
.tdq-menu-directory { content-visibility: auto; contain-intrinsic-size: auto 120px; }
#content:focus { outline: none; }
@media (max-width: 600px) {
  .card-grid { grid-template-columns: 1fr; gap: 12px; }
  .copy-card, .cards-care .copy-card, .cards-visit .copy-card, .cards-prices .copy-card { padding: 22px 20px; }
  .copy-card p, .cards-courses .copy-card p { font-size: 16px; }
  .copy-card p:has(> strong:only-child) { font-size: 15px; }
  .content-section { padding-block: 40px; }
  .content-section h2 { font-size: 26px; line-height: 1.4; }
  .cover-head > .definition { font-size: 13.5px; margin-bottom: 25px; }
  .cover-head > p:not(.definition):not(.homepage-actions) { font-size: 15.5px; }
  .cover-head > h1 + p { font-size: 17px !important; }
  .cover-head .homepage-actions { display: flex; }
  .cover-head .homepage-actions .button { width: 100%; font-size: 15px; }
  .condition > summary { padding-inline: 16px; font-size: 14px; }
  .condition-content { padding: 19px 17px; }
  #managers th, #managers td { padding-inline: 8px; }
  #managers th { font-size: 17px; }
}
@media (max-width: 360px) {
  .content-section h2 { font-size: 24px; }
  .copy-card, .cards-care .copy-card, .cards-visit .copy-card, .cards-prices .copy-card { padding-inline: 17px; }
}
@media print {
  body { padding: 0; background: white; }
  #tdq-global-fab, #tdq-site-menu-open, .section-nav, .skip-link { display: none !important; }
  .content-section { break-inside: avoid; }
  details::details-content { display: block; }
}


/* Full-height campaign posters: preserve the original 2:3 composition. */
.content-section > figure.section-poster {
  margin: 25px calc(-1 * var(--gutter)) 30px;
  border-radius: 0;
  overflow: visible;
  background: #140e0c;
}
.content-section > figure.section-poster img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 2 / 3;
}
@media (max-width: 600px) {
  .content-section > figure.section-poster {
    margin-top: 22px;
    margin-bottom: 25px;
  }
}

/* Keep nine portrait compositions, with a clear mobile hierarchy. */
.section-poster { position: relative; }
.section-poster > .poster-frame { display: block; width: 100%; height: auto; aspect-ratio: 2 / 3; }
.profile-source-button {
  position: absolute; left: 4.6875%; top: 24.739583%; width: 90.625%;
  aspect-ratio: 1; padding: 0; border: 0; border-radius: 0;
  display: block; background: #fff; cursor: zoom-in; color: inherit;
  touch-action: manipulation;
}
.profile-source-button > img {
  display: block !important; width: 100% !important; height: 100% !important;
  aspect-ratio: 1 !important; object-fit: contain; border-radius: 0 !important;
}
.profile-source-button:focus-visible { outline: 3px solid #fff; outline-offset: 4px; }
.profile-source-button:hover { box-shadow: 0 0 0 2px #e96877; }
.profile-zoom-label {
  position: absolute; right: 6px; bottom: 6px; height: 25px; padding: 2px 8px;
  display: flex; align-items: center; gap: 5px; font: 500 12px/1.5 Pretendard, sans-serif;
  color: #fff; background: #21171b; border: 1px solid #8c5963;
  white-space: nowrap;
}
.profile-viewer {
  position: fixed; inset: 0; margin: auto; padding: 0;
  width: min(1080px, calc(100vw - 24px)); max-width: none;
  max-height: calc(100dvh - 24px); border: 1px solid #93636b; border-radius: 12px;
  color: #fff; background: #191317; overflow: hidden;
  font-family: Pretendard, sans-serif;
}
.profile-viewer::backdrop { background: rgb(0 0 0 / .8); }
.profile-viewer .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.profile-viewer-toolbar {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: 8px; padding: 10px 12px; border-bottom: 1px solid #58434a;
}
.profile-viewer-title { margin: 0; font-size: 14px; line-height: 1.5; font-weight: 600; }
.profile-viewer-tools { display: flex; gap: 5px; align-items: center; }
.profile-viewer button {
  min-width: 44px; min-height: 44px; padding: 8px 10px; border: 1px solid #8c6d77;
  border-radius: 6px; color: #fff; background: #31242b; font: 500 14px/1 Pretendard, sans-serif;
  cursor: pointer; touch-action: manipulation;
}
.profile-viewer button:hover { background: #52313e; border-color: #e296a8; }
.profile-viewer button:disabled { opacity: .45; cursor: default; }
.profile-viewer button:focus-visible, .profile-viewer-stage:focus-visible { outline: 2px solid #ffafbe; outline-offset: -3px; }
.profile-viewer-stage {
  height: min(78dvh, 850px); overflow: auto; overscroll-behavior: contain;
  background: #fafafa; scroll-padding: 10px;
}
.profile-viewer-stage > img {
  display: block; width: var(--profile-zoom, 200%); max-width: none; height: auto;
  border-radius: 0; margin: 0;
}
@media (max-width: 600px) {
  .content-section { padding-block: 32px; }
  .section-heading { margin-bottom: 0; }
  .content-section > figure.section-poster { margin-top: 18px; margin-bottom: 20px; }
  #standards > figure.section-poster,
  #aftercare > figure.section-poster,
  #prices > figure.section-poster,
  #booking > figure.section-poster {
    width: min(calc(100% + var(--gutter) + var(--gutter)), var(--poster-cap));
    margin-left: 50%; margin-right: 0; transform: translateX(-50%);
  }
  #standards { --poster-cap: 340px; }
  #aftercare, #booking { --poster-cap: 300px; }
  #prices { --poster-cap: 340px; }
  #courses > figure.section-poster,
  #managers > figure.section-poster { margin-top: 18px; }
  .profile-zoom-label { height: 23px; font-size: 12px; padding: 1px 5px; }
  .profile-viewer { width: calc(100vw - 16px); max-height: calc(100dvh - 16px); }
  .profile-viewer-toolbar { padding: 7px; gap: 5px; }
  .profile-viewer-title { font-size: 13px; }
  .profile-viewer-tools { gap: 3px; }
  .profile-viewer button { min-width: 44px; padding-inline: 7px; font-size: 13px; }
}
@media print { .profile-zoom-label, .profile-viewer { display: none !important; } }

body.profile-viewer-open { overflow: hidden; }

.tdq-legacy-anchor { display: block; height: 0; overflow: hidden; }
