/* Shared BEAUTY / PROTECTION service-page design, v1.6.6.
   One outer border per price card; tables never draw another outer border.
   Do not use height:100%, separate width calculations or negative margins. */
#cps-services {
  --s-line:#d9dcdf; --s-ink:#141a1f; --s-muted:#59636c;
  --s-dark:#10161c; --s-gold:#b89458;
  --s-serif:"Times New Roman","Hiragino Mincho ProN","Yu Mincho","Noto Serif CJK JP",serif;
  --s-sans:"Helvetica Neue",Arial,"Hiragino Sans","Yu Gothic","Noto Sans CJK JP",sans-serif;
  width:100%; max-width:100%; min-width:0; margin:0; padding:0;
  background:#fff; color:var(--s-ink); font-family:var(--s-sans);
}
#cps-services, #cps-services *, #cps-services *::before, #cps-services *::after {box-sizing:border-box;}
#cps-services [id] {scroll-margin-top:24px;}
#cps-services > .cps-section {width:100%; max-width:1120px; margin:0 auto; padding:38px 32px;}
#cps-services > .cps-featurewide, #cps-services > .cps-xpel {max-width:1120px; margin:0 auto;}
#cps-services .cps-head {width:100%; max-width:none; margin:0 0 22px;}
#cps-services .cps-head > span {font-size:9px; letter-spacing:.16em;}
#cps-services .cps-head h2 {font-family:var(--s-serif); font-weight:400; font-size:clamp(26px,3.1vw,38px); line-height:1.2; letter-spacing:.025em;}
#cps-services .cps-head p {font-size:12px; line-height:1.75;}
#cps-services .cps-anchor {justify-content:center; flex-wrap:wrap; overflow:visible;}
#cps-services .cps-anchor a {min-height:42px; padding:13px 16px; font-size:9px;}
#cps-services .cps-price-section > .cps-head,
#cps-services .cps-price-section > .cps-beauty-pricebox,
#cps-services .cps-price-section > .cps-detailblock,
#cps-services .cps-price-section > .cps-price-note {width:100%; max-width:760px; margin-left:auto; margin-right:auto;}
#cps-services .cps-price-section > .cps-beauty-pricebox {margin-top:0; padding:0;}

/* PRICE TABLE — native rows, no nested frames, predictable sizing. */
#cps-services .cps-price-frame {display:block; width:100%; min-width:0; max-width:100%; height:auto; margin:0; padding:0; border:1px solid var(--s-line); border-radius:0; background:#fff; overflow:hidden; box-shadow:none;}
#cps-services .cps-price-table {display:table; position:static; float:none; width:100%; max-width:100%; min-width:0; height:auto; margin:0; padding:0; border:0; border-radius:0; box-shadow:none; border-collapse:separate; border-spacing:0; table-layout:fixed; background:#fff; color:var(--s-ink); font:400 12px/1.5 var(--s-sans);}
#cps-services .cps-price-table .cps-price-col-menu {width:67%;}
#cps-services .cps-price-table .cps-price-col-amount {width:33%;}
#cps-services .cps-price-table--3 .cps-price-col-menu {width:41%;}
#cps-services .cps-price-table--3 .cps-price-col-amount {width:29.5%;}
#cps-services .cps-price-table thead {display:table-header-group; background:var(--s-dark);}
#cps-services .cps-price-table tbody {display:table-row-group; background:#fff;}
#cps-services .cps-price-table tr {display:table-row; position:static; height:auto; padding:0; margin:0; border:0; transform:none; background:transparent;}
#cps-services .cps-price-table th, #cps-services .cps-price-table td {
  display:table-cell; position:static; float:none; width:auto; height:auto; margin:0; padding:11px 14px;
  border:0; border-bottom:1px solid var(--s-line); border-radius:0; box-shadow:none;
  background:#fff; color:var(--s-ink); vertical-align:middle; text-align:left;
  font:inherit; font-weight:400; line-height:1.5; letter-spacing:0; word-break:normal; overflow-wrap:normal;
}
#cps-services .cps-price-table thead th {background:var(--s-dark); color:#fff; padding-top:10px; padding-bottom:10px; border:0; font-size:10px; font-weight:600; letter-spacing:.055em;}
#cps-services .cps-price-table td {text-align:right; font-weight:600; white-space:nowrap; font-variant-numeric:tabular-nums;}
#cps-services .cps-price-table thead th:not(:first-child) {text-align:right;}
#cps-services .cps-price-table tbody tr:last-child > * {border-bottom:0;}
#cps-services .cps-price-table th::before, #cps-services .cps-price-table th::after,
#cps-services .cps-price-table td::before, #cps-services .cps-price-table td::after {content:none;}
#cps-services .cps-price-label, #cps-services .cps-price-detail {display:block; position:static; width:auto; margin:0; padding:0; border:0; background:none; color:inherit; font:inherit; line-height:1.5;}
#cps-services .cps-price-detail {margin-top:2px; color:var(--s-muted); font-size:11px;}
#cps-services .cps-price-label--en {font-size:11px; letter-spacing:.025em; font-weight:500;}
#cps-services .cps-price-note {margin:12px 0 0; color:var(--s-muted); font-size:11px; line-height:1.8;}

/* Service headers and tables share their parent's single continuous outline. */
#cps-services .cps-detailblocks {display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; gap:24px; width:100%; margin:0; padding:0;}
#cps-services .cps-detailblock {display:block; position:relative; float:none; width:100%; min-width:0; max-width:100%; height:auto; margin:0; padding:0; border:1px solid var(--s-line); border-radius:0; box-shadow:none; background:#fff; overflow:hidden;}
#cps-services .cps-detailblock > .cps-price-frame {border:0; margin:0; padding:0; width:100%; max-width:100%;}
#cps-services .cps-detailblock__top {display:grid; grid-template-columns:minmax(0,40%) minmax(0,60%); width:100%; max-width:100%; min-width:0; height:auto; margin:0; padding:0; gap:0; border:0; background:var(--s-dark);}
#cps-services .cps-detailblock__image {display:block; position:static; width:100%; min-width:0; height:auto; min-height:124px; margin:0; padding:0; border:0; background-size:cover; background-position:center;}
#cps-services .cps-detailblock__title {display:flex; position:static; min-width:0; max-width:100%; flex-direction:column; justify-content:center; width:100%; height:auto; margin:0; padding:18px; border:0; background:var(--s-dark); color:#fff;}
#cps-services .cps-detailblock__title > span {display:block; position:static; width:auto; margin:0 0 8px; padding:0; border:0; background:none; color:#d0ad70; font:400 14px/1.2 var(--s-sans); letter-spacing:.09em;}
#cps-services .cps-detailblock__title h3 {position:static; margin:0; padding:0; border:0; color:#fff; background:none; font:500 20px/1.25 var(--s-sans); letter-spacing:.02em; overflow-wrap:normal;}
#cps-services .cps-detailblock__title small {position:static; display:block; margin:6px 0 0; padding:0; border:0; background:none; color:#d7dde2; font:400 10px/1.5 var(--s-sans); letter-spacing:.02em;}
#cps-services .cps-detailcard b, #cps-services .cps-detailcard small {color:#fff;}
#cps-services .cps-detailcards {grid-template-columns:repeat(4,minmax(0,1fr));}
#cps-services .cps-detailcard b {font-size:12px; line-height:1.3;}
#cps-services .cps-detailcard small {font-size:9px; letter-spacing:.02em;}

/* Keep the established side-by-side wash panel; never let generic span styles paint a white box. */
#cps-services .cps-washpanel {display:grid; grid-template-columns:minmax(0,42%) minmax(0,58%); width:100%; max-width:760px; margin:0 auto; padding:0; border:1px solid var(--s-line); background:var(--s-dark);}
#cps-services .cps-washpanel__copy {min-width:0; padding:24px; color:#fff;}
#cps-services .cps-washpanel__copy .cps-eyebrow {display:block; position:static; inset:auto; width:auto; max-width:100%; height:auto; margin:0 0 10px; padding:0; border:0; background:transparent; box-shadow:none; transform:none; color:#d0ad70; font-size:10px; line-height:1.5;}
#cps-services .cps-washpanel__copy h2 {font-size:28px; line-height:1.5; color:#fff; margin:0 0 12px;}
#cps-services .cps-washpanel__copy p {font-size:12px; line-height:1.8; margin:0; color:#d9dfe4;}
#cps-services .cps-washpanel__image {min-width:0; min-height:218px;}
#cps-services > .cps-section--washpanel {background:#fff; padding:24px 32px 0 !important;}
#cps-services .cps-faq summary {display:block; position:relative; padding:12px 26px 12px 0; font-size:12px; line-height:1.65; color:var(--s-ink);}
#cps-services .cps-faq summary::after {content:'+'; position:absolute; right:0; top:12px; color:var(--s-gold); font-size:18px; line-height:1;}
#cps-services .cps-faq details[open] > summary::after {content:'−';}
#cps-services .cps-faq p {font-size:11px; color:var(--s-muted);}
#cps-services .cps-question-mark, #cps-services .cps-answer-mark {display:inline-block; margin-right:10px; font-weight:600; color:#95743f;}
#cps-services .cps-faq summary:focus-visible, #cps-services .cps-anchor a:focus-visible {outline:2px solid var(--s-gold); outline-offset:3px;}
@media(max-width:760px) {
  #cps-services > .cps-section {padding:28px 18px;}
  #cps-services .cps-head {margin-bottom:18px;}
  #cps-services .cps-head h2 {font-size:clamp(24px,7vw,30px); letter-spacing:.015em;}
  #cps-services .cps-head p {font-size:11px;}
  #cps-services .cps-anchor a {font-size:8px; padding:12px 11px;}
  #cps-services .cps-detailblocks {grid-template-columns:minmax(0,1fr); gap:18px;}
  #cps-services .cps-detailblock__image {min-height:112px;}
  #cps-services .cps-detailblock__title {padding:14px 12px;}
  #cps-services .cps-detailblock__title h3 {font-size:18px;}
  #cps-services .cps-detailblock__title small {font-size:10px;}
  #cps-services .cps-detailcards {grid-template-columns:repeat(2,minmax(0,1fr));}
  #cps-services .cps-detailcard b {font-size:10px;}
  #cps-services .cps-detailcard small {font-size:8px;}
  #cps-services .cps-price-table {font-size:10.5px;}
  #cps-services .cps-price-table th, #cps-services .cps-price-table td {padding:9px 10px;}
  #cps-services .cps-price-table thead th {font-size:9px; padding:9px 10px;}
  #cps-services .cps-price-detail {font-size:9.5px;}
  #cps-services .cps-price-label--en {font-size:9.5px;}
  #cps-services .cps-price-note {font-size:10px;}
  #cps-services > .cps-section--washpanel {padding:18px 18px 0 !important;}
  #cps-services .cps-washpanel__copy {padding:16px 12px;}
  #cps-services .cps-washpanel__copy .cps-eyebrow {font-size:9px; letter-spacing:.08em;}
  #cps-services .cps-washpanel__copy h2 {font-size:20px;}
  #cps-services .cps-washpanel__copy p {font-size:10px;}
  #cps-services .cps-washpanel__image {min-height:190px;}
  #cps-services .cps-faq summary {font-size:11px;}
}
@media(max-width:360px) {
  #cps-services .cps-price-table th, #cps-services .cps-price-table td {padding-left:8px; padding-right:8px;}
  #cps-services .cps-price-table--3 {font-size:9px;}
  #cps-services .cps-price-table thead th {font-size:8px; padding-left:8px; padding-right:8px;}
  #cps-services .cps-detailblock__title h3 {font-size:16px;}
  #cps-services .cps-washpanel__copy h2 {font-size:18px;}
}
