/* v02: the existing palette and type, with a new hierarchy for TIRION-X. */
:root { --berry:#8e3650; --rule:#dac8c9; --violet:#eee6f3; --celadon:#e2eee7; }
.gsl-v02 [hidden] { display:none !important; }
.gsl-v02 .fine { font-size:13px; }
.gsl-v02 .section-lead { margin:16px 0 22px; font-size:16px; }
.gsl-v02 .hero-v2 { min-height:0; background:#f8e8df; }
.hero-v2 .hero-photo { inset:0 0 0 29%; }
.hero-v2 .hero-photo > img { height:100%; object-position:72% 44%; }
.hero-v2 .hero-shape { background:linear-gradient(90deg,#fdf3eb 0%,#fdf3eb 29%,#fdf3ebd9 43%,#fdf3eb00 68%); }
.hero-v2 .hero-inner { padding:45px 0 46px; }
.hero-v2 .hero-copy { width:57%; max-width:620px; }
.hero-v2 .location { margin:0 0 16px; font-size:13px; }
.hero-v2 h1 { font-size:clamp(37px,4.2vw,64px); line-height:1.39; letter-spacing:.035em; }
.hero-v2 h1 span { color:var(--berry); }
.hero-v2 .hero-model { display:flex; align-items:baseline; gap:13px; flex-wrap:wrap; margin-top:11px; color:#583442; line-height:1.22; }
.hero-model strong { font:500 43px/1.12 Georgia,serif; letter-spacing:.045em; }
.hero-model > span { font-size:13px; }
.hero-v2 .hero-description { margin:12px 0 16px; font-size:16px; line-height:1.68; }
.hero-v2 .hero-description br { display:none; }
.hero-device-art { position:absolute; z-index:1; right:4.5%; bottom:35px; width:clamp(100px,12vw,177px); margin:0; padding:15px 14px 9px; border:1px solid #fff; border-radius:90px 90px 9px 9px; background:#fff9f0d9; box-shadow:0 8px 27px #54394122; text-align:center; }
.hero-device-art img { width:100%; height:clamp(144px,16vw,232px); object-fit:contain; }
.hero-device-art figcaption { font:600 12px/1.5 Georgia,serif; letter-spacing:.08em; color:#654651; margin-top:6px; }
.hero-v2 .hero-photo-caption { bottom:9px; right:22px; }
.hero-proof { width:min(100%,480px); padding:9px 14px 10px; border:1px solid #d6abaf; border-radius:8px; background:#fff9f4e8; }
.hero-proof-scope { color:#754454; font-weight:700; font-size:13px; line-height:1.45; }
.hero-proof-stats { display:flex; gap:16px; align-items:baseline; margin:2px 0; color:var(--berry); }
.hero-proof-stats span { display:inline-flex; gap:.26em; align-items:baseline; font-size:15px; white-space:nowrap; }
.hero-proof-stats span + span { border-left:1px solid #d6abaf; padding-left:14px; }
.hero-proof-stats strong { font:500 40px/1 Georgia,serif; }
.hero-proof-stats b { font-size:23px; line-height:1.35; }
.hero-proof-source { display:inline-block; color:#624c53; font-size:13px; line-height:1.5; text-decoration-thickness:1px; }
.hero-proof-source .source-date { white-space:nowrap; }
.hero-pore-detail { border-left:3px solid #92b5a4; padding:9px 13px; background:#f7fcf5d9; margin:0 0 16px; font-size:14px; }
.hero-v2 .hero-offer { display:flex; flex-wrap:nowrap; gap:18px; align-items:end; margin:19px 0 14px; }
.hero-v2 .offer-label { margin:0; color:#58444c; font-weight:700; font-size:14px; }
.hero-v2 .price { margin:4px 0 0; }
.hero-v2 .price strong { font-size:50px; color:var(--berry); }
.hero-time { display:grid; gap:3px; padding:0 0 2px 14px; border-left:1px solid #bfa6aa; white-space:nowrap; color:#5b4650; font-size:13px; line-height:1.3; }
.hero-time strong { font-size:17px; }
.hero-v2 .line-button { min-height:62px; }
.hero-v2 .cta-note { font-size:13px; line-height:1.55; margin-top:10px; }

.proof-band { padding:42px 0; background:var(--violet); border-block:1px solid #e3d6ea; }
.proof-grid { display:grid; grid-template-columns:1.1fr 1fr; gap:36px; align-items:center; }
.proof-band h2 { font-size:clamp(24px,2.65vw,36px); line-height:1.58; }
.proof-band h2 span { color:var(--berry); }
.proof-band h2 + p { font-size:13px; color:#614e5c; line-height:1.65; margin-top:12px; }
.locations-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; list-style:none; }
.locations-list li { display:flex; flex-wrap:wrap; gap:7px 10px; align-items:center; padding:8px 12px; background:#fffaf6c9; border:1px solid #dfd0e4; border-radius:6px; font-size:14px; line-height:1.5; }
.locations-list small { color:#665164; font-size:12px; }
.locations-list .local-location { grid-column:1/-1; background:#f9d9d1; border-color:#d7a5ae; }
.local-location strong { font-size:20px; color:#80354e; }
.local-location span { color:#613a50; font:600 13px/1.3 Georgia,serif; letter-spacing:.04em; }

.story-section .manga-v2 .manga-art { isolation:isolate; }
.manga-v2 .bubble { position:absolute; left:var(--bubble-x); top:var(--bubble-y); right:auto; width:var(--bubble-w); margin:0; line-height:1.6; padding:8px 9px; font-size:clamp(14px,3.7cqw,18px); border-radius:30px; text-wrap:pretty; }
.manga-v2 .no-split { white-space:nowrap; }
.manga-v2 .bubble::after,.manga-v2 .bubble::before { z-index:1; }
.manga-v2 .tail-left::before,.manga-v2 .tail-left::after { left:10%; right:auto; }
.manga-v2 .tail-right::before,.manga-v2 .tail-right::after { right:11%; left:auto; }
.manga-v2 .tail-speech::after { right:20%; left:auto; }
.manga-v2 .manga-place { display:inline-flex; align-items:center; gap:5px; position:absolute; left:9%; top:57%; padding:4px 9px; border-radius:24px; border:1px solid #caa1ad; background:#fff8f1; color:#80354e; font-size:13px; line-height:1.3; font-weight:700; transform:rotate(-5deg); }
.manga-place svg { width:13px; height:15px; fill:none; stroke:currentColor; stroke-width:1.6; }

.machine-section { background:#edf4ed; border-radius:64px 64px 0 0; }
.machine-layout { display:grid; grid-template-columns:minmax(235px,.75fr) minmax(0,1.4fr); gap:clamp(32px,6vw,88px); align-items:center; }
.machine-portrait { display:grid; justify-items:center; align-content:center; margin:0; padding:34px 16px 20px; min-height:420px; border:1px solid #c4d8cb; border-radius:175px 175px 18px 18px; background:radial-gradient(ellipse at 45% 40%,#fffdf7 0%,#f9eee9 70%,#ebdfed 100%); }
.machine-portrait img { width:65%; height:320px; object-fit:contain; }
.machine-portrait-kicker { font-size:10px; font-weight:700; letter-spacing:.18em; color:#795d64; margin-bottom:10px; }
.machine-portrait figcaption { font:500 27px/1.2 Georgia,serif; color:#5a3846; text-align:center; letter-spacing:.06em; }
.machine-portrait figcaption small { display:block; font:12px/1.7 var(--sans); letter-spacing:0; }
.mechanism-pair { display:grid; grid-template-columns:1fr 1fr; gap:13px; }
.mechanism { padding:17px; border:1px solid #e0bec0; background:#fae3d9; border-radius:13px; }
.mechanism.cooling { border-color:#c5d6ce; background:#e1ece9; }
.mechanism > span { display:block; font-size:11px; letter-spacing:.1em; color:#744656; margin-bottom:4px; font-weight:700; }
.mechanism.cooling > span { color:#315b50; }
.mechanism h3 { font-size:19px; margin:0 0 5px; }
.mechanism p { margin:0; line-height:1.65; font-size:15px; }
.machine-comfort { margin:17px 0 6px; font-size:14px; line-height:1.7; }

.why-section { background:#fff7ef; }
.why-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:23px; }
.why-item { min-width:0; background:#fffdfa; border:1px solid #e8d6cd; border-radius:16px; overflow:hidden; }
.why-item figure { margin:0; background:#f3e9e8; }
.why-item figure img { width:100%; height:180px; object-fit:cover; object-position:center; }
.why-item .why-device { background:#ede4f1; }
.why-item .why-device img { object-fit:contain; padding:9px; }
.why-item figure figcaption { color:#5e4f57; text-align:center; padding:5px 10px; font-size:12px; }
.why-item > div { padding:20px; }
.why-item h3 { margin:0 0 9px; font-size:21px; }
.why-item p:not(.eyebrow) { margin:0; font-size:15px; line-height:1.7; }
.why-note { margin:17px 0 0; }

.experience-section { background:linear-gradient(135deg,#f5e0da,#f0e8f2); }
.experience-layout { display:grid; grid-template-columns:1fr 1.15fr; align-items:center; gap:clamp(24px,5vw,68px); }
.experience-offer { padding:clamp(22px,4vw,43px); background:#fffaf6; border:1px solid #dec2c2; border-radius:24px; }
.experience-offer h2 { margin-bottom:12px; }
.experience-offer .price { margin:8px 0 3px; }
.experience-offer .price strong { color:var(--berry); }
.experience-offer .line-button { margin-top:19px; }
.experience-offer .fine { margin:10px 0 0; }
.experience-price { padding-top:7px; }
.experience-price > p:nth-child(2) { font-size:13px; font-weight:700; }
.experience-flow h3 { font-size:24px; margin:0 0 16px; }
.experience-flow .visit-steps { display:grid; gap:0; }
.experience-flow .visit-steps li { gap:12px; min-height:0; padding:12px 0; border-bottom:1px solid #d8c3ca; }
.experience-flow .visit-steps li:last-child { border-bottom:0; }
.experience-flow .visit-steps li::before { display:none; }
.experience-flow .visit-steps h4 { margin:0; font-size:16px; }
.experience-flow .visit-steps p { margin:2px 0 0; }

.compare-courses { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; align-items:stretch; }
.compare-card { display:flex; flex-direction:column; align-items:flex-start; padding:20px; border:1px solid #e5d4d1; border-radius:16px; background:#fff; }
.compare-card.compare-face { background:#f3e8f3; border-color:#dac7e2; }
.compare-card.compare-pore { background:#ffefe7; border-color:#e5c9bf; }
.compare-card.compare-peel { background:#eaf3e9; border-color:#c9dbcc; }
.compare-label { display:inline-block; font-size:13px; font-weight:700; color:#674150; border:1px solid #ccb3bb; border-radius:20px; padding:4px 12px; background:#fffaf7; margin:0 0 13px; }
.compare-card img { width:100%; height:118px; object-fit:contain; margin-bottom:10px; }
.compare-card h3 { font-size:21px; margin:3px 0 8px; }
.compare-card > p:not(.compare-label) { font-size:15px; line-height:1.65; }
.compare-card .compare-price { margin-top:auto; padding-top:12px; }
.compare-price strong { color:var(--berry); font-size:19px; }
.compare-link { display:flex; width:100%; justify-content:space-between; font-size:14px; font-weight:700; border-top:1px solid #ccb7ca; margin-top:14px; padding:12px 0 0; }
.compare-card .course-details { width:100%; margin:10px 0 0; }
.compare-card .course-details p { margin:8px 0 9px; font-size:14px; }
.compare-card .course-cta { width:100%; }
.compare-section .menu-conditions { margin-top:15px; }
.review-link { display:inline-block; margin-top:13px; font-size:14px; color:#574250; }
.dialog-course { font-weight:700; color:var(--berry); background:#f8e6e0; padding:10px 13px; border-radius:8px; margin:12px 0; font-size:14px; }

@media(max-width:1050px) {
  .hero-v2 .hero-copy { width:60%; }
  .hero-v2 .hero-device-art { right:3%; }
  .why-grid { gap:14px; }
  .why-item > div { padding:15px; }
  .why-item h3 { font-size:19px; }
}
@media(max-width:800px) {
  .hero-v2 .hero-inner { padding-top:32px; padding-bottom:36px; }
  .hero-v2 .hero-device-art { width:105px; bottom:30px; }
  .hero-v2 .hero-device-art img { height:138px; }
  .hero-model strong { font-size:36px; }
  .hero-v2 .hero-description br { display:initial; }
  .hero-proof-stats { gap:10px; }
  .hero-proof-stats span + span { padding-left:9px; }
  .proof-grid { gap:21px; }
  .why-item figure img { height:130px; }
  .experience-layout { align-items:start; }
}
@media(max-width:600px) {
  .gsl-v02 .hero-v2 .hero-photo { height:216px; inset:auto; }
  .hero-v2 .hero-photo > img { object-position:74% 33%; }
  .hero-v2 .hero-photo-caption { right:12px; bottom:8px; }
  .hero-v2 .hero-shape { top:160px; height:58px; background:linear-gradient(0deg,#f9ebe2 0%,#f9ebe200 100%); }
  .hero-v2 .hero-device-art { top:64px; bottom:auto; left:16px; right:auto; width:86px; padding:8px 8px 5px; }
  .hero-v2 .hero-device-art img { height:99px; }
  .hero-device-art figcaption { font-size:11px; margin-top:2px; }
  .hero-v2 .hero-inner { margin-top:-6px; padding:0 0 28px; }
  .hero-v2 .hero-copy { width:100%; }
  .hero-v2 .location { position:static; padding:0; margin:0 0 6px; background:none; font-size:12px; }
  .hero-v2 h1 { font-size:clamp(29px,8.55vw,43px); line-height:1.29; }
  .hero-v2 .hero-model { gap:10px; margin-top:9px; }
  .hero-model strong { font-size:31px; }
  .hero-model > span { font-size:12px; }
  .hero-v2 .hero-description { font-size:15px; line-height:1.55; margin:8px 0 12px; }
  .hero-v2 .hero-description br { display:initial; }
  .hero-proof { width:100%; padding:7px 10px 8px; }
  .hero-proof-scope { font-size:12px; }
  .hero-proof-stats span { font-size:13px; }
  .hero-proof-stats strong { font-size:33px; }
  .hero-proof-stats b { font-size:20px; }
  .hero-proof-source { font-size:12px; line-height:1.4; }
  .hero-v2 .hero-offer { margin:12px 0 11px; gap:10px; }
  .hero-v2 .offer-label { font-size:13px; }
  .hero-v2 .price strong { font-size:38px; }
  .hero-time { padding-left:9px; gap:2px; }
  .hero-time strong { font-size:15px; }
  .hero-time span { font-size:12px; }
  .hero-v2 .line-button { min-height:53px; }
  .hero-v2 .cta-note { font-size:12px; margin-top:9px; }
  .proof-band { padding:30px 0; }
  .proof-grid { grid-template-columns:1fr; gap:16px; }
  .proof-band h2 { font-size:23px; }
  .machine-section { border-radius:36px 36px 0 0; }
  .machine-layout { grid-template-columns:1fr; gap:24px; }
  .machine-portrait { order:2; min-height:0; padding:18px 10px 12px; width:min(78%,260px); margin:auto; }
  .machine-portrait img { height:180px; }
  .machine-portrait figcaption { font-size:22px; }
  .mechanism-pair { grid-template-columns:1fr; gap:10px; }
  .mechanism { padding:14px; }
  .why-grid { grid-template-columns:1fr; gap:16px; }
  .why-item figure img { height:175px; }
  .why-item > div { padding:17px; }
  .experience-layout { grid-template-columns:1fr; }
  .experience-offer { padding:21px; }
  .experience-flow h3 { font-size:22px; }
  .compare-courses { grid-template-columns:1fr; gap:16px; }
  .compare-card { padding:17px; }
  .compare-card img { height:120px; }
}
