@roottale/cms-renderer-next 0.41.1 → 0.42.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/dist/before-after-client.d.ts +15 -0
  3. package/dist/before-after-client.js +8 -0
  4. package/dist/before-after-client.js.map +1 -0
  5. package/dist/chunk-4LQPZDXZ.js +75 -0
  6. package/dist/chunk-4LQPZDXZ.js.map +1 -0
  7. package/dist/chunk-6GQCFFHU.js +540 -0
  8. package/dist/chunk-6GQCFFHU.js.map +1 -0
  9. package/dist/chunk-F3G6RVIR.js +220 -0
  10. package/dist/chunk-F3G6RVIR.js.map +1 -0
  11. package/dist/chunk-H46JUIHZ.js +79 -0
  12. package/dist/chunk-H46JUIHZ.js.map +1 -0
  13. package/dist/chunk-K62RR4UQ.js +53 -0
  14. package/dist/chunk-K62RR4UQ.js.map +1 -0
  15. package/dist/chunk-NUUTTSGT.js +916 -0
  16. package/dist/chunk-NUUTTSGT.js.map +1 -0
  17. package/dist/chunk-RSNUZ4BF.js +3378 -0
  18. package/dist/chunk-RSNUZ4BF.js.map +1 -0
  19. package/dist/chunk-U5AKACPN.js +113 -0
  20. package/dist/chunk-U5AKACPN.js.map +1 -0
  21. package/dist/chunk-WWS43XCT.js +206 -0
  22. package/dist/chunk-WWS43XCT.js.map +1 -0
  23. package/dist/cms-public.css +164 -51
  24. package/dist/concerns-client.d.ts +12 -0
  25. package/dist/concerns-client.js +8 -0
  26. package/dist/concerns-client.js.map +1 -0
  27. package/dist/expertise-client.d.ts +10 -0
  28. package/dist/expertise-client.js +8 -0
  29. package/dist/expertise-client.js.map +1 -0
  30. package/dist/hero-carousel-client.d.ts +36 -0
  31. package/dist/hero-carousel-client.js +8 -0
  32. package/dist/hero-carousel-client.js.map +1 -0
  33. package/dist/routes.d.ts +51 -5
  34. package/dist/routes.js +109 -62
  35. package/dist/routes.js.map +1 -1
  36. package/dist/seo-checks.d.ts +87 -0
  37. package/dist/seo-checks.js +27 -0
  38. package/dist/seo-checks.js.map +1 -0
  39. package/dist/server.d.ts +51 -2
  40. package/dist/server.js +8 -2
  41. package/dist/site-config-DgYGGwu1.d.ts +3910 -0
  42. package/dist/spaces-client.d.ts +10 -0
  43. package/dist/spaces-client.js +8 -0
  44. package/dist/spaces-client.js.map +1 -0
  45. package/dist/templates.css +3246 -194
  46. package/dist/templates.d.ts +20 -1028
  47. package/dist/templates.js +70 -2
  48. package/dist/templates.js.map +1 -1
  49. package/dist/{theme-css-vars-BiyHBsJG.d.ts → theme-css-vars-CD3jcEkp.d.ts} +2 -2
  50. package/dist/ui-react-motion-client.d.ts +73 -0
  51. package/dist/ui-react-motion-client.js +14 -0
  52. package/dist/ui-react-motion-client.js.map +1 -0
  53. package/dist/validate.d.ts +15 -1
  54. package/dist/validate.js +806 -17
  55. package/dist/validate.js.map +1 -1
  56. package/package.json +18 -6
  57. package/dist/chunk-GOHP7RWD.js +0 -1647
  58. package/dist/chunk-GOHP7RWD.js.map +0 -1
  59. package/dist/chunk-IOYBEH6E.js +0 -271
  60. package/dist/chunk-IOYBEH6E.js.map +0 -1
@@ -14,7 +14,7 @@
14
14
 
15
15
  :where([data-roottale-tpl]) {
16
16
  container-type: inline-size;
17
- padding-block: clamp(3rem, 8cqi, 6rem);
17
+ padding-block: var(--rt-section-space-y, clamp(3rem, 7cqi, 5rem));
18
18
  background: var(--rt-color-background, transparent);
19
19
  color: var(--rt-color-foreground, #06162f);
20
20
  font-family: var(--rt-font-body, system-ui, -apple-system, sans-serif);
@@ -30,23 +30,32 @@
30
30
 
31
31
  [data-roottale-tpl] :where(.rt-tpl-heading) {
32
32
  font-family: var(--rt-font-display, var(--rt-font-body, system-ui, sans-serif));
33
- font-size: clamp(1.5rem, 3cqi, 2rem);
33
+ font-size: clamp(1.75rem, 3.6cqi, 2.5rem);
34
34
  font-weight: 800;
35
- margin-block: 0 1.5rem;
35
+ letter-spacing: -0.025em;
36
+ line-height: 1.25;
37
+ word-break: keep-all;
38
+ text-wrap: balance;
39
+ margin-block: 0 var(--rt-section-heading-gap, 1.5rem);
36
40
  }
37
41
 
38
42
  [data-roottale-tpl] :where(.rt-tpl-section-desc) {
39
43
  color: var(--rt-color-muted-foreground, #6e6e6e);
44
+ font-size: 1.0625rem;
45
+ line-height: 1.65;
46
+ word-break: keep-all;
40
47
  max-inline-size: 46rem;
41
- margin-block: -0.75rem 2rem;
48
+ margin-block: -0.75rem 2.5rem;
42
49
  }
43
50
 
44
51
  [data-roottale-tpl] :where(.rt-tpl-btn) {
45
52
  display: inline-flex;
46
53
  align-items: center;
47
54
  gap: 0.5rem;
48
- padding: 0.75rem 1.5rem;
55
+ padding: 0.875rem 1.75rem;
49
56
  border-radius: 999px;
57
+ font-size: 1rem;
58
+ letter-spacing: -0.01em;
50
59
  font-weight: 700;
51
60
  text-decoration: none;
52
61
  transition:
@@ -98,16 +107,20 @@
98
107
 
99
108
  [data-roottale-tpl] :where(.rt-tpl-hero-eyebrow) {
100
109
  color: var(--rt-color-primary, #06162f);
101
- font-weight: 800;
102
- letter-spacing: 0.04em;
103
- margin: 0 0 0.75rem;
110
+ font-size: 0.9375rem;
111
+ font-weight: 700;
112
+ letter-spacing: 0.08em;
113
+ margin: 0 0 0.875rem;
104
114
  }
105
115
 
106
116
  [data-roottale-tpl] :where(.rt-tpl-hero-title) {
107
117
  font-family: var(--rt-font-display, var(--rt-font-body, system-ui, sans-serif));
108
- font-size: clamp(2rem, 6cqi, 3.5rem);
109
- font-weight: 900;
110
- line-height: 1.1;
118
+ font-size: clamp(2.25rem, 6.5cqi, 4rem);
119
+ font-weight: 800;
120
+ letter-spacing: -0.03em;
121
+ line-height: 1.12;
122
+ word-break: keep-all;
123
+ text-wrap: balance;
111
124
  margin: 0 0 1.25rem;
112
125
  }
113
126
 
@@ -117,6 +130,8 @@
117
130
 
118
131
  [data-roottale-tpl] :where(.rt-tpl-hero-desc) {
119
132
  font-size: 1.125rem;
133
+ line-height: 1.7;
134
+ word-break: keep-all;
120
135
  color: var(--rt-color-muted-foreground, #6e6e6e);
121
136
  max-inline-size: 40rem;
122
137
  margin: 0 0 2rem;
@@ -128,6 +143,73 @@
128
143
  border-radius: var(--rt-radius-md, 0.5rem);
129
144
  }
130
145
 
146
+ [data-roottale-tpl="hero"][data-variant="overlay-panel"] {
147
+ position: relative;
148
+ display: grid;
149
+ min-block-size: clamp(34rem, 78cqi, 46rem);
150
+ padding-block: 0;
151
+ overflow: hidden;
152
+ }
153
+
154
+ [data-roottale-tpl="hero"][data-variant="overlay-panel"]
155
+ :where(.rt-tpl-hero-overlay-img),
156
+ [data-roottale-tpl="hero"][data-variant="overlay-panel"]
157
+ :where(.rt-tpl-hero-overlay-scrim),
158
+ [data-roottale-tpl="hero"][data-variant="overlay-panel"]
159
+ :where(.rt-tpl-hero-overlay-inner) {
160
+ grid-area: 1 / 1;
161
+ }
162
+
163
+ [data-roottale-tpl="hero"][data-variant="overlay-panel"]
164
+ :where(.rt-tpl-hero-overlay-img) {
165
+ inline-size: 100%;
166
+ block-size: 100%;
167
+ object-fit: cover;
168
+ }
169
+
170
+ [data-roottale-tpl="hero"][data-variant="overlay-panel"]
171
+ :where(.rt-tpl-hero-overlay-scrim) {
172
+ background: linear-gradient(
173
+ to top,
174
+ color-mix(in srgb, var(--rt-color-foreground, #06162f) 42%, transparent),
175
+ transparent 58%
176
+ );
177
+ }
178
+
179
+ [data-roottale-tpl="hero"][data-variant="overlay-panel"]
180
+ :where(.rt-tpl-hero-overlay-inner) {
181
+ position: relative;
182
+ z-index: 1;
183
+ display: flex;
184
+ align-items: end;
185
+ padding-block: clamp(2rem, 6cqi, 4rem);
186
+ }
187
+
188
+ [data-roottale-tpl="hero"][data-variant="overlay-panel"]
189
+ :where(.rt-tpl-hero-overlay-panel) {
190
+ inline-size: min(100%, 34rem);
191
+ padding: clamp(1.25rem, 4cqi, 2rem);
192
+ border: 1px solid color-mix(in srgb, var(--rt-color-border, #dceef3) 70%, transparent);
193
+ border-radius: var(--rt-radius-md, 0.5rem);
194
+ background: color-mix(
195
+ in srgb,
196
+ var(--rt-color-background, #ffffff) 88%,
197
+ transparent
198
+ );
199
+ backdrop-filter: blur(14px);
200
+ }
201
+
202
+ [data-roottale-tpl="hero"][data-variant="overlay-panel"]
203
+ :where(.rt-tpl-hero-title) {
204
+ font-size: clamp(2rem, 5.5cqi, 3.5rem);
205
+ letter-spacing: 0;
206
+ }
207
+
208
+ [data-roottale-tpl="hero"][data-variant="overlay-panel"]
209
+ :where(.rt-tpl-hero-desc) {
210
+ color: var(--rt-color-foreground, #06162f);
211
+ }
212
+
131
213
  /* ── rich-text ────────────────────────────────────────────────────────────── */
132
214
 
133
215
  [data-roottale-tpl] :where(.rt-tpl-rich-text-p) {
@@ -188,304 +270,3274 @@
188
270
  margin: 0;
189
271
  }
190
272
 
191
- /* ── faq ──────────────────────────────────────────────────────────────────── */
192
-
193
- [data-roottale-tpl] :where(.rt-tpl-faq-list) {
273
+ [data-roottale-tpl="services"][data-variant="photo-cards"]
274
+ :where(.rt-tpl-services-photo-list) {
194
275
  display: grid;
195
- gap: 0.75rem;
196
- max-inline-size: 46rem;
276
+ grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
277
+ gap: var(--rt-services-photo-list-gap, clamp(1rem, 3cqi, 1.5rem));
278
+ padding: 0;
279
+ margin: 0;
280
+ list-style: none;
197
281
  }
198
282
 
199
- [data-roottale-tpl] :where(.rt-tpl-faq-item) {
283
+ [data-roottale-tpl="services"][data-variant="photo-cards"]
284
+ :where(.rt-tpl-services-photo-link) {
285
+ display: block;
286
+ block-size: 100%;
287
+ color: inherit;
288
+ text-decoration: none;
289
+ }
290
+
291
+ [data-roottale-tpl="services"][data-variant="photo-cards"]
292
+ :where(.rt-tpl-services-photo-card) {
293
+ display: grid;
294
+ grid-template-rows: auto 1fr;
295
+ block-size: 100%;
296
+ overflow: hidden;
200
297
  border: 1px solid var(--rt-color-border, #dceef3);
201
298
  border-radius: var(--rt-radius-md, 0.5rem);
202
- padding: 1rem 1.25rem;
203
299
  background: var(--rt-color-background, #ffffff);
300
+ transition:
301
+ border-color 160ms ease,
302
+ transform 160ms ease;
204
303
  }
205
304
 
206
- [data-roottale-tpl] :where(.rt-tpl-faq-q) {
305
+ [data-roottale-tpl="services"][data-variant="photo-cards"]
306
+ :where(.rt-tpl-services-photo-link:hover .rt-tpl-services-photo-card) {
307
+ border-color: color-mix(
308
+ in srgb,
309
+ var(--rt-color-primary, #06162f) 40%,
310
+ var(--rt-color-border, #dceef3)
311
+ );
312
+ transform: translateY(-2px);
313
+ }
314
+
315
+ [data-roottale-tpl="services"][data-variant="photo-cards"]
316
+ :where(.rt-tpl-services-photo-img) {
317
+ inline-size: 100%;
318
+ aspect-ratio: var(--rt-services-photo-aspect-ratio, 4 / 3);
319
+ object-fit: cover;
320
+ background: var(--muted, #f4f4f5);
321
+ }
322
+
323
+ [data-roottale-tpl="services"][data-variant="photo-cards"]
324
+ :where(.rt-tpl-services-photo-body) {
325
+ display: grid;
326
+ align-content: start;
327
+ gap: var(--rt-services-photo-body-gap, 0.65rem);
328
+ padding: var(--rt-services-photo-body-padding, clamp(1rem, 3cqi, 1.35rem));
329
+ }
330
+
331
+ /* ── services: index-rows (C10 §1-1 — hairline 인덱스 행, 카드/아이콘 없음) ─── */
332
+
333
+ [data-roottale-tpl="services"][data-variant="index-rows"]
334
+ :where(.rt-tpl-services-index-list) {
335
+ display: grid;
336
+ padding: 0;
337
+ margin: 0;
338
+ list-style: none;
339
+ border-block-start: 1px solid var(--rt-color-border, #dceef3);
340
+ }
341
+
342
+ [data-roottale-tpl="services"][data-variant="index-rows"]
343
+ :where(.rt-tpl-services-index-row) {
344
+ border-block-end: 1px solid var(--rt-color-border, #dceef3);
345
+ }
346
+
347
+ [data-roottale-tpl="services"][data-variant="index-rows"]
348
+ :where(.rt-tpl-services-index-link) {
349
+ display: flex;
350
+ align-items: baseline;
351
+ gap: clamp(1rem, 4cqi, 2rem);
352
+ padding-block: clamp(1.25rem, 3.4cqi, 1.75rem);
353
+ padding-inline: 0.25rem;
354
+ text-decoration: none;
355
+ color: inherit;
356
+ transition: background-color 180ms ease;
357
+ }
358
+
359
+ [data-roottale-tpl="services"][data-variant="index-rows"]
360
+ :where(.rt-tpl-services-index-link:hover) {
361
+ background-color: color-mix(
362
+ in srgb,
363
+ var(--rt-color-primary, #06162f) 3%,
364
+ var(--rt-color-background, #ffffff)
365
+ );
366
+ }
367
+
368
+ [data-roottale-tpl="services"][data-variant="index-rows"]
369
+ :where(.rt-tpl-services-index-num) {
370
+ flex: 0 0 auto;
371
+ min-inline-size: 2.5ch;
372
+ font-variant-numeric: tabular-nums;
373
+ font-size: 0.8125rem;
207
374
  font-weight: 700;
208
- cursor: pointer;
209
- list-style-position: inside;
375
+ letter-spacing: 0.04em;
376
+ color: var(--rt-color-muted-foreground, #6e6e6e);
210
377
  }
211
378
 
212
- [data-roottale-tpl] :where(.rt-tpl-faq-item[open] .rt-tpl-faq-q) {
213
- color: var(--rt-color-primary, #06162f);
379
+ [data-roottale-tpl="services"][data-variant="index-rows"]
380
+ :where(.rt-tpl-services-index-title) {
381
+ font-family: var(--rt-font-display, var(--rt-font-body, system-ui, sans-serif));
382
+ font-size: 1.1875rem;
383
+ font-weight: 700;
384
+ letter-spacing: -0.02em;
385
+ word-break: keep-all;
386
+ margin: 0 0 0.375rem;
214
387
  }
215
388
 
216
- [data-roottale-tpl] :where(.rt-tpl-faq-a) {
217
- margin: 0.75rem 0 0;
389
+ [data-roottale-tpl="services"][data-variant="index-rows"]
390
+ :where(.rt-tpl-services-index-desc) {
218
391
  color: var(--rt-color-muted-foreground, #6e6e6e);
392
+ font-size: 0.9375rem;
393
+ margin: 0;
219
394
  }
220
395
 
221
- /* ── cta-banner ───────────────────────────────────────────────────────────── */
396
+ /* ── services: split-featured (C10 §1-2 — 비대칭 5/7, 균등 카드 금지) ───────── */
222
397
 
223
- [data-roottale-tpl] :where(.rt-tpl-cta-banner-inner) {
398
+ [data-roottale-tpl="services"][data-variant="split-featured"]
399
+ :where(.rt-tpl-services-split) {
400
+ display: grid;
401
+ gap: clamp(1.5rem, 5cqi, 2.5rem);
402
+ grid-template-columns: 1fr;
403
+ }
404
+
405
+ @container (min-width: 44rem) {
406
+ [data-roottale-tpl="services"][data-variant="split-featured"]
407
+ :where(.rt-tpl-services-split) {
408
+ grid-template-columns: 5fr 7fr;
409
+ align-items: stretch;
410
+ }
411
+ }
412
+
413
+ [data-roottale-tpl="services"][data-variant="split-featured"]
414
+ :where(.rt-tpl-services-split-featured) {
224
415
  display: flex;
225
416
  flex-direction: column;
226
- align-items: center;
227
- gap: 1.5rem;
228
- text-align: center;
229
- padding: clamp(2.5rem, 6cqi, 4rem);
417
+ justify-content: center;
418
+ gap: 1rem;
419
+ padding: clamp(1.75rem, 5cqi, 2.75rem);
230
420
  border-radius: var(--rt-radius-md, 0.5rem);
231
421
  background: color-mix(
232
422
  in srgb,
233
- var(--rt-color-primary, #06162f) 8%,
423
+ var(--rt-color-primary, #06162f) 6%,
234
424
  var(--rt-color-background, #ffffff)
235
425
  );
236
426
  border: 1px solid var(--rt-color-border, #dceef3);
237
427
  }
238
428
 
239
- [data-roottale-tpl] :where(.rt-tpl-cta-banner-title) {
429
+ [data-roottale-tpl="services"][data-variant="split-featured"]
430
+ :where(.rt-tpl-services-split-featured-title) {
240
431
  font-family: var(--rt-font-display, var(--rt-font-body, system-ui, sans-serif));
241
- font-size: clamp(1.5rem, 4cqi, 2.25rem);
432
+ font-size: clamp(1.375rem, 4cqi, 1.75rem);
242
433
  font-weight: 800;
243
434
  margin: 0;
244
435
  }
245
436
 
246
- [data-roottale-tpl] :where(.rt-tpl-cta-banner-desc) {
437
+ [data-roottale-tpl="services"][data-variant="split-featured"]
438
+ :where(.rt-tpl-services-split-featured-desc) {
247
439
  color: var(--rt-color-muted-foreground, #6e6e6e);
248
440
  margin: 0;
249
- max-inline-size: 40rem;
250
441
  }
251
442
 
252
- [data-roottale-tpl] :where(.rt-tpl-sr-only) {
253
- position: absolute;
254
- inline-size: 1px;
255
- block-size: 1px;
443
+ [data-roottale-tpl="services"][data-variant="split-featured"]
444
+ :where(.rt-tpl-services-split-featured-cta) {
445
+ align-self: flex-start;
446
+ margin-block-start: 0.5rem;
447
+ }
448
+
449
+ [data-roottale-tpl="services"][data-variant="split-featured"]
450
+ :where(.rt-tpl-services-split-list) {
451
+ display: grid;
452
+ gap: 0;
256
453
  padding: 0;
257
- margin: -1px;
258
- overflow: hidden;
259
- clip: rect(0 0 0 0);
260
- white-space: nowrap;
261
- border: 0;
454
+ margin: 0;
455
+ list-style: none;
262
456
  }
263
457
 
264
- [data-roottale-tpl="trust"],
265
- [data-roottale-tpl="contact"] {
266
- container-type: inline-size;
267
- background: var(--background);
268
- color: var(--foreground);
269
- font-family: var(--font-sans);
270
- word-break: keep-all;
458
+ [data-roottale-tpl="services"][data-variant="split-featured"]
459
+ :where(.rt-tpl-services-split-item) {
460
+ border-block-end: 1px solid var(--rt-color-border, #dceef3);
461
+ padding-block: 1.25rem;
271
462
  }
272
463
 
273
- [data-roottale-tpl="trust"] :where(.rt-tpl-container),
274
- [data-roottale-tpl="trust"] :where(.rt-tpl-container *),
275
- [data-roottale-tpl="contact"] :where(.rt-tpl-container),
276
- [data-roottale-tpl="contact"] :where(.rt-tpl-container *) {
277
- box-sizing: border-box;
464
+ [data-roottale-tpl="services"][data-variant="split-featured"]
465
+ :where(.rt-tpl-services-split-item:first-child) {
466
+ padding-block-start: 0;
278
467
  }
279
468
 
280
- [data-roottale-tpl="trust"] {
281
- padding-block: clamp(2.25rem, 6cqi, 4.5rem);
469
+ [data-roottale-tpl="services"][data-variant="split-featured"]
470
+ :where(.rt-tpl-services-split-item-link) {
471
+ display: block;
472
+ text-decoration: none;
473
+ color: inherit;
282
474
  }
283
475
 
284
- [data-roottale-tpl="trust"][data-variant="stat-band"] {
285
- background: var(--secondary);
476
+ [data-roottale-tpl="services"][data-variant="split-featured"]
477
+ :where(.rt-tpl-services-split-item-title) {
478
+ font-family: var(--rt-font-display, var(--rt-font-body, system-ui, sans-serif));
479
+ font-size: 1rem;
480
+ font-weight: 700;
481
+ margin: 0 0 0.25rem;
286
482
  }
287
483
 
288
- [data-roottale-tpl="trust"] :where(.rt-tpl-heading),
289
- [data-roottale-tpl="contact"] :where(.rt-tpl-heading) {
290
- color: var(--foreground);
291
- font-family: var(--font-display);
292
- letter-spacing: 0;
293
- text-wrap: balance;
484
+ [data-roottale-tpl="services"][data-variant="split-featured"]
485
+ :where(.rt-tpl-services-split-item-desc) {
486
+ color: var(--rt-color-muted-foreground, #6e6e6e);
487
+ font-size: 0.875rem;
488
+ margin: 0;
294
489
  }
295
490
 
296
- [data-roottale-tpl="trust"] :where(.rt-tpl-trust-stat-band) {
491
+ /* ── faq ──────────────────────────────────────────────────────────────────── */
492
+
493
+ [data-roottale-tpl] :where(.rt-tpl-faq-list) {
297
494
  display: grid;
298
- gap: var(--space-4);
299
- align-items: stretch;
495
+ gap: 0;
496
+ max-inline-size: 46rem;
497
+ border-block-start: 1px solid var(--rt-color-border, #dceef3);
300
498
  }
301
499
 
302
- @container (min-width: 36rem) {
303
- [data-roottale-tpl="trust"] :where(.rt-tpl-trust-stat-band) {
304
- grid-template-columns: repeat(2, minmax(0, 1fr));
305
- }
500
+ [data-roottale-tpl] :where(.rt-tpl-faq-item) {
501
+ border-block-end: 1px solid var(--rt-color-border, #dceef3);
502
+ padding-block: 1.25rem;
306
503
  }
307
504
 
308
- @container (min-width: 56rem) {
309
- [data-roottale-tpl="trust"] :where(.rt-tpl-trust-stat-band) {
310
- grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
311
- }
505
+ [data-roottale-tpl] :where(.rt-tpl-faq-q) {
506
+ display: flex;
507
+ align-items: baseline;
508
+ justify-content: space-between;
509
+ gap: 1rem;
510
+ font-size: 1.0625rem;
511
+ font-weight: 700;
512
+ letter-spacing: -0.015em;
513
+ word-break: keep-all;
514
+ cursor: pointer;
515
+ list-style: none;
312
516
  }
313
517
 
314
- [data-roottale-tpl="trust"] :where(.rt-tpl-trust-logo-list),
315
- [data-roottale-tpl="trust"] :where(.rt-tpl-trust-cred-list) {
316
- display: grid;
317
- gap: var(--space-3);
318
- padding: 0;
319
- margin: 0;
320
- list-style: none;
518
+ [data-roottale-tpl] :where(.rt-tpl-faq-q)::-webkit-details-marker {
519
+ display: none;
321
520
  }
322
521
 
323
- @container (min-width: 36rem) {
324
- [data-roottale-tpl="trust"] :where(.rt-tpl-trust-logo-list),
325
- [data-roottale-tpl="trust"] :where(.rt-tpl-trust-cred-list) {
326
- grid-template-columns: repeat(2, minmax(0, 1fr));
327
- }
522
+ [data-roottale-tpl] :where(.rt-tpl-faq-q)::after {
523
+ content: "+";
524
+ flex: 0 0 auto;
525
+ font-weight: 400;
526
+ font-size: 1.25rem;
527
+ line-height: 1;
528
+ color: var(--rt-color-muted-foreground, #6e6e6e);
529
+ transition: transform 200ms ease;
328
530
  }
329
531
 
330
- @container (min-width: 48rem) {
331
- [data-roottale-tpl="trust"] :where(.rt-tpl-trust-logo-list),
332
- [data-roottale-tpl="trust"] :where(.rt-tpl-trust-cred-list) {
333
- grid-template-columns: repeat(4, minmax(0, 1fr));
334
- }
532
+ [data-roottale-tpl] :where(.rt-tpl-faq-item[open] .rt-tpl-faq-q)::after {
533
+ transform: rotate(45deg);
335
534
  }
336
535
 
337
- [data-roottale-tpl="trust"] :where(.rt-tpl-trust-logo-item) {
338
- display: flex;
339
- align-items: center;
340
- justify-content: center;
341
- min-block-size: var(--space-12);
342
- border: 1px solid var(--border);
343
- border-radius: var(--radius-sm);
344
- background: var(--card);
536
+ [data-roottale-tpl] :where(.rt-tpl-faq-item[open] .rt-tpl-faq-q) {
537
+ color: var(--rt-color-primary, #06162f);
345
538
  }
346
539
 
347
- [data-roottale-tpl="trust"] :where(.rt-tpl-trust-logo-link) {
348
- display: inline-flex;
349
- align-items: center;
350
- justify-content: center;
540
+ [data-roottale-tpl] :where(.rt-tpl-faq-a) {
541
+ margin: 0.875rem 0 0;
542
+ line-height: 1.7;
543
+ word-break: keep-all;
544
+ max-inline-size: 42rem;
545
+ color: var(--rt-color-muted-foreground, #6e6e6e);
351
546
  }
352
547
 
353
- [data-roottale-tpl="trust"] :where(.rt-tpl-trust-logo) {
354
- max-block-size: var(--space-8);
355
- max-inline-size: 100%;
356
- filter: grayscale(1) opacity(0.7);
357
- transition: filter var(--motion-fast) var(--ease-standard);
548
+ [data-roottale-tpl="faq"][data-variant="two-column"]
549
+ :where(.rt-tpl-faq-two-column-list) {
550
+ display: grid;
551
+ gap: 1rem;
358
552
  }
359
553
 
360
- [data-roottale-tpl="trust"] :where(.rt-tpl-trust-logo-link:hover .rt-tpl-trust-logo) {
361
- filter: grayscale(0) opacity(1);
554
+ @container (min-width: 42rem) {
555
+ [data-roottale-tpl="faq"][data-variant="two-column"]
556
+ :where(.rt-tpl-faq-two-column-list) {
557
+ grid-template-columns: repeat(2, minmax(0, 1fr));
558
+ }
362
559
  }
363
560
 
364
- [data-roottale-tpl="trust"] :where(.rt-tpl-trust-cred-list li) {
365
- min-inline-size: 0;
561
+ [data-roottale-tpl="faq"][data-variant="two-column"]
562
+ :where(.rt-tpl-faq-groups) {
563
+ display: grid;
564
+ gap: clamp(2rem, 5cqi, 3rem);
366
565
  }
367
566
 
368
- [data-roottale-tpl="trust"] :where(.rt-tpl-trust-disclaimer) {
369
- margin-block: var(--space-4) 0;
370
- color: var(--muted-foreground);
371
- font-size: var(--font-size-xs);
372
- line-height: var(--font-leading-normal);
567
+ [data-roottale-tpl="faq"][data-variant="two-column"]
568
+ :where(.rt-tpl-faq-group-title) {
569
+ margin-block: 0 1rem;
570
+ font-family: var(--rt-font-display, var(--rt-font-body, system-ui, sans-serif));
571
+ font-size: 0.875rem;
572
+ font-weight: 800;
573
+ letter-spacing: 0;
574
+ color: var(--rt-color-primary, #06162f);
373
575
  }
374
576
 
375
- [data-roottale-tpl="contact"] :where(.rt-tpl-contact-inner) {
376
- display: grid;
377
- gap: var(--space-6);
378
- align-items: start;
577
+ [data-roottale-tpl="faq"][data-variant="two-column"]
578
+ :where(.rt-tpl-faq-open-item) {
579
+ border-block-start: 1px solid var(--rt-color-border, #dceef3);
580
+ padding-block: 1.125rem;
379
581
  }
380
582
 
583
+ [data-roottale-tpl="faq"][data-variant="two-column"]
584
+ :where(.rt-tpl-faq-open-q) {
585
+ margin: 0 0 0.5rem;
586
+ font-family: var(--rt-font-display, var(--rt-font-body, system-ui, sans-serif));
587
+ font-size: 1rem;
588
+ font-weight: 800;
589
+ letter-spacing: 0;
590
+ line-height: 1.45;
591
+ word-break: keep-all;
592
+ }
593
+
594
+ [data-roottale-tpl="faq"][data-variant="two-column"]
595
+ :where(.rt-tpl-faq-open-a) {
596
+ margin: 0;
597
+ color: var(--rt-color-muted-foreground, #6e6e6e);
598
+ line-height: 1.7;
599
+ word-break: keep-all;
600
+ }
601
+
602
+ [data-roottale-tpl="faq"][data-variant="with-contact"]
603
+ :where(.rt-tpl-faq-with-contact) {
604
+ display: grid;
605
+ gap: clamp(1.5rem, 5cqi, 3rem);
606
+ align-items: start;
607
+ }
608
+
609
+ @container (min-width: 52rem) {
610
+ [data-roottale-tpl="faq"][data-variant="with-contact"]
611
+ :where(.rt-tpl-faq-with-contact) {
612
+ grid-template-columns: minmax(0, 7fr) minmax(16rem, 3fr);
613
+ }
614
+ }
615
+
616
+ [data-roottale-tpl="faq"][data-variant="with-contact"]
617
+ :where(.rt-tpl-faq-contact) {
618
+ display: grid;
619
+ gap: 0.875rem;
620
+ padding: clamp(1.25rem, 4cqi, 1.75rem);
621
+ border: 1px solid var(--rt-color-border, #dceef3);
622
+ border-radius: var(--rt-radius-md, 0.5rem);
623
+ background: color-mix(
624
+ in srgb,
625
+ var(--rt-color-primary, #06162f) 5%,
626
+ var(--rt-color-background, #ffffff)
627
+ );
628
+ }
629
+
630
+ @container (min-width: 52rem) {
631
+ [data-roottale-tpl="faq"][data-variant="with-contact"]
632
+ :where(.rt-tpl-faq-contact) {
633
+ position: sticky;
634
+ inset-block-start: 1rem;
635
+ }
636
+ }
637
+
638
+ [data-roottale-tpl="faq"][data-variant="with-contact"]
639
+ :where(.rt-tpl-faq-contact-title) {
640
+ margin: 0;
641
+ font-family: var(--rt-font-display, var(--rt-font-body, system-ui, sans-serif));
642
+ font-size: 1.125rem;
643
+ font-weight: 800;
644
+ letter-spacing: 0;
645
+ }
646
+
647
+ [data-roottale-tpl="faq"][data-variant="with-contact"]
648
+ :where(.rt-tpl-faq-contact-desc) {
649
+ margin: 0;
650
+ color: var(--rt-color-muted-foreground, #6e6e6e);
651
+ line-height: 1.65;
652
+ }
653
+
654
+ [data-roottale-tpl="faq"][data-variant="with-contact"]
655
+ :where(.rt-tpl-faq-contact-phone) {
656
+ color: var(--rt-color-primary, #06162f);
657
+ font-family: var(--rt-font-display, var(--rt-font-body, system-ui, sans-serif));
658
+ font-size: 1.25rem;
659
+ font-weight: 800;
660
+ font-variant-numeric: tabular-nums;
661
+ text-decoration: none;
662
+ }
663
+
664
+ [data-roottale-tpl="faq"][data-variant="with-contact"]
665
+ :where(.rt-tpl-faq-contact-cta) {
666
+ justify-self: start;
667
+ }
668
+
669
+ /* ── cta-banner ───────────────────────────────────────────────────────────── */
670
+
671
+ [data-roottale-tpl] :where(.rt-tpl-cta-banner-inner) {
672
+ display: flex;
673
+ flex-direction: column;
674
+ align-items: center;
675
+ gap: 1.5rem;
676
+ text-align: center;
677
+ padding: var(--rt-cta-banner-padding, clamp(2.5rem, 6cqi, 4rem));
678
+ border-radius: var(--rt-radius-md, 0.5rem);
679
+ background: color-mix(
680
+ in srgb,
681
+ var(--rt-color-primary, #06162f) 8%,
682
+ var(--rt-color-background, #ffffff)
683
+ );
684
+ border: 1px solid var(--rt-color-border, #dceef3);
685
+ }
686
+
687
+ [data-roottale-tpl] :where(.rt-tpl-cta-banner-title) {
688
+ font-family: var(--rt-font-display, var(--rt-font-body, system-ui, sans-serif));
689
+ font-size: clamp(1.75rem, 4.5cqi, 2.5rem);
690
+ font-weight: 800;
691
+ letter-spacing: -0.025em;
692
+ line-height: 1.25;
693
+ word-break: keep-all;
694
+ text-wrap: balance;
695
+ margin: 0;
696
+ }
697
+
698
+ [data-roottale-tpl] :where(.rt-tpl-cta-banner-desc) {
699
+ color: var(--rt-color-muted-foreground, #6e6e6e);
700
+ margin: 0;
701
+ max-inline-size: 40rem;
702
+ }
703
+
704
+ /* ── cta-banner: photo-overlay (C10 §1-5 — 풀블리드 사진 + 다크 오버레이) ───── */
705
+
706
+ [data-roottale-tpl="cta-banner"][data-variant="photo-overlay"] {
707
+ padding-block: 0;
708
+ }
709
+
710
+ [data-roottale-tpl="cta-banner"][data-variant="photo-overlay"]
711
+ :where(.rt-tpl-cta-banner-photo) {
712
+ position: relative;
713
+ display: grid;
714
+ align-items: end;
715
+ min-block-size: clamp(24rem, 60cqi, 34rem);
716
+ overflow: hidden;
717
+ }
718
+
719
+ [data-roottale-tpl="cta-banner"][data-variant="photo-overlay"]
720
+ :where(.rt-tpl-cta-banner-photo-img) {
721
+ grid-area: 1 / 1;
722
+ inline-size: 100%;
723
+ block-size: 100%;
724
+ object-fit: cover;
725
+ }
726
+
727
+ [data-roottale-tpl="cta-banner"][data-variant="photo-overlay"]
728
+ :where(.rt-tpl-cta-banner-photo-scrim) {
729
+ grid-area: 1 / 1;
730
+ background: linear-gradient(
731
+ to top,
732
+ color-mix(in srgb, var(--rt-color-foreground, #06162f) 88%, transparent) 0%,
733
+ color-mix(in srgb, var(--rt-color-foreground, #06162f) 20%, transparent) 60%,
734
+ transparent 100%
735
+ );
736
+ }
737
+
738
+ [data-roottale-tpl="cta-banner"][data-variant="photo-overlay"]
739
+ :where(.rt-tpl-cta-banner-photo-inner) {
740
+ grid-area: 1 / 1;
741
+ align-self: end;
742
+ display: flex;
743
+ flex-direction: column;
744
+ gap: 1.25rem;
745
+ padding-block: clamp(2rem, 7cqi, 4rem);
746
+ color: var(--rt-color-primary-foreground, #ffffff);
747
+ }
748
+
749
+ [data-roottale-tpl="cta-banner"][data-variant="photo-overlay"]
750
+ :where(.rt-tpl-cta-banner-photo-title) {
751
+ font-family: var(--rt-font-display, var(--rt-font-body, system-ui, sans-serif));
752
+ font-size: clamp(2rem, 7cqi, 3.5rem);
753
+ font-weight: 900;
754
+ line-height: 1.1;
755
+ color: inherit;
756
+ margin: 0;
757
+ max-inline-size: 40rem;
758
+ }
759
+
760
+ [data-roottale-tpl="cta-banner"][data-variant="photo-overlay"]
761
+ :where(.rt-tpl-cta-banner-photo-desc) {
762
+ color: color-mix(in srgb, var(--rt-color-primary-foreground, #ffffff) 85%, transparent);
763
+ margin: 0;
764
+ max-inline-size: 36rem;
765
+ }
766
+
767
+ [data-roottale-tpl="cta-banner"][data-variant="photo-overlay"]
768
+ :where(.rt-tpl-cta-banner-photo-cta) {
769
+ align-self: flex-start;
770
+ }
771
+
772
+ [data-roottale-tpl] :where(.rt-tpl-sr-only) {
773
+ position: absolute;
774
+ inline-size: 1px;
775
+ block-size: 1px;
776
+ padding: 0;
777
+ margin: -1px;
778
+ overflow: hidden;
779
+ clip: rect(0 0 0 0);
780
+ white-space: nowrap;
781
+ border: 0;
782
+ }
783
+
784
+ [data-roottale-tpl="trust"],
785
+ [data-roottale-tpl="contact"] {
786
+ container-type: inline-size;
787
+ background: var(--background);
788
+ color: var(--foreground);
789
+ font-family: var(--font-sans);
790
+ word-break: keep-all;
791
+ }
792
+
793
+ [data-roottale-tpl="trust"] :where(.rt-tpl-container),
794
+ [data-roottale-tpl="trust"] :where(.rt-tpl-container *),
795
+ [data-roottale-tpl="contact"] :where(.rt-tpl-container),
796
+ [data-roottale-tpl="contact"] :where(.rt-tpl-container *) {
797
+ box-sizing: border-box;
798
+ }
799
+
800
+ [data-roottale-tpl="trust"] {
801
+ padding-block: clamp(2.25rem, 6cqi, 4.5rem);
802
+ }
803
+
804
+ [data-roottale-tpl="trust"][data-variant="stat-band"] {
805
+ background: var(--secondary);
806
+ }
807
+
808
+ [data-roottale-tpl="trust"] :where(.rt-tpl-heading),
809
+ [data-roottale-tpl="contact"] :where(.rt-tpl-heading) {
810
+ color: var(--foreground);
811
+ font-family: var(--font-display);
812
+ letter-spacing: 0;
813
+ text-wrap: balance;
814
+ }
815
+
816
+ [data-roottale-tpl="trust"] :where(.rt-tpl-trust-stat-band) {
817
+ display: grid;
818
+ gap: var(--space-6);
819
+ align-items: stretch;
820
+ }
821
+
822
+ /* 미감 라운드 2 — 넓은 밴드에서 좌정렬 + hairline 칼럼(균등 중앙 리듬 탈피). */
381
823
  @container (min-width: 56rem) {
382
- [data-roottale-tpl="contact"][data-variant="form-map-5050"]
383
- :where(.rt-tpl-contact-inner) {
384
- grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
824
+ [data-roottale-tpl="trust"][data-variant="stat-band"]
825
+ :where(.rt-tpl-trust-stat-band) {
826
+ gap: 0;
827
+ }
828
+
829
+ [data-roottale-tpl="trust"][data-variant="stat-band"]
830
+ :where(.rt-stat[data-variant="band-item"]) {
831
+ align-items: flex-start;
832
+ text-align: start;
833
+ padding-inline: var(--space-6);
834
+ }
835
+
836
+ [data-roottale-tpl="trust"][data-variant="stat-band"]
837
+ :where(.rt-stat[data-variant="band-item"]:not(:first-child)) {
838
+ border-inline-start: 1px solid var(--border);
839
+ }
840
+
841
+ [data-roottale-tpl="trust"][data-variant="stat-band"]
842
+ :where(.rt-stat[data-variant="band-item"]:first-child) {
843
+ padding-inline-start: 0;
844
+ }
845
+ }
846
+
847
+ @container (min-width: 36rem) {
848
+ [data-roottale-tpl="trust"] :where(.rt-tpl-trust-stat-band) {
849
+ grid-template-columns: repeat(2, minmax(0, 1fr));
850
+ }
851
+ }
852
+
853
+ @container (min-width: 56rem) {
854
+ [data-roottale-tpl="trust"] :where(.rt-tpl-trust-stat-band) {
855
+ grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
856
+ }
857
+ }
858
+
859
+ [data-roottale-tpl="trust"] :where(.rt-tpl-trust-logo-list),
860
+ [data-roottale-tpl="trust"] :where(.rt-tpl-trust-cred-list) {
861
+ display: grid;
862
+ gap: var(--space-3);
863
+ padding: 0;
864
+ margin: 0;
865
+ list-style: none;
866
+ }
867
+
868
+ @container (min-width: 36rem) {
869
+ [data-roottale-tpl="trust"] :where(.rt-tpl-trust-logo-list),
870
+ [data-roottale-tpl="trust"] :where(.rt-tpl-trust-cred-list) {
871
+ grid-template-columns: repeat(2, minmax(0, 1fr));
872
+ }
873
+ }
874
+
875
+ @container (min-width: 48rem) {
876
+ [data-roottale-tpl="trust"] :where(.rt-tpl-trust-logo-list),
877
+ [data-roottale-tpl="trust"] :where(.rt-tpl-trust-cred-list) {
878
+ grid-template-columns: repeat(4, minmax(0, 1fr));
385
879
  }
880
+ }
881
+
882
+ [data-roottale-tpl="trust"] :where(.rt-tpl-trust-logo-item) {
883
+ display: flex;
884
+ align-items: center;
885
+ justify-content: center;
886
+ min-block-size: var(--space-12);
887
+ border: 1px solid var(--border);
888
+ border-radius: var(--radius-sm);
889
+ background: var(--card);
890
+ }
891
+
892
+ [data-roottale-tpl="trust"] :where(.rt-tpl-trust-logo-link) {
893
+ display: inline-flex;
894
+ align-items: center;
895
+ justify-content: center;
896
+ }
897
+
898
+ [data-roottale-tpl="trust"] :where(.rt-tpl-trust-logo) {
899
+ max-block-size: var(--space-8);
900
+ max-inline-size: 100%;
901
+ filter: grayscale(1) opacity(0.7);
902
+ transition: filter var(--motion-fast) var(--ease-standard);
903
+ }
904
+
905
+ [data-roottale-tpl="trust"] :where(.rt-tpl-trust-logo-link:hover .rt-tpl-trust-logo) {
906
+ filter: grayscale(0) opacity(1);
907
+ }
908
+
909
+ [data-roottale-tpl="trust"] :where(.rt-tpl-trust-cred-list li) {
910
+ min-inline-size: 0;
911
+ }
912
+
913
+ [data-roottale-tpl="trust"] :where(.rt-tpl-trust-disclaimer) {
914
+ margin-block: var(--space-4) 0;
915
+ color: var(--muted-foreground);
916
+ font-size: var(--font-size-xs);
917
+ line-height: var(--font-leading-normal);
918
+ }
919
+
920
+ /* ── trust: logo-marquee (C10 §1-3 — C8 Marquee 소비, 흑백/저채도 로고 스트립) ── */
921
+
922
+ [data-roottale-tpl="trust"][data-variant="logo-marquee"]
923
+ :where(.rt-tpl-trust-marquee) {
924
+ padding-block: var(--space-2);
925
+ }
926
+
927
+ [data-roottale-tpl="trust"] :where(.rt-tpl-trust-marquee-logo) {
928
+ max-block-size: var(--space-8);
929
+ inline-size: auto;
930
+ filter: grayscale(1) opacity(0.7);
931
+ transition: filter var(--motion-fast) var(--ease-standard);
932
+ }
933
+
934
+ [data-roottale-tpl="trust"] :where(.rt-tpl-trust-marquee-logo:hover) {
935
+ filter: grayscale(0) opacity(1);
936
+ }
937
+
938
+ /* ── trust: credential-list (C10 §1-4 — 연도 tabular + hairline 자격 리스트) ── */
939
+
940
+ [data-roottale-tpl="trust"] :where(.rt-tpl-trust-credential-list) {
941
+ display: grid;
942
+ padding: 0;
943
+ margin: 0;
944
+ list-style: none;
945
+ border-block-start: 1px solid var(--border);
946
+ }
947
+
948
+ [data-roottale-tpl="trust"] :where(.rt-tpl-trust-credential-row) {
949
+ display: flex;
950
+ flex-wrap: wrap;
951
+ align-items: baseline;
952
+ gap: var(--space-3);
953
+ padding-block: var(--space-3);
954
+ border-block-end: 1px solid var(--border);
955
+ }
956
+
957
+ [data-roottale-tpl="trust"] :where(.rt-tpl-trust-credential-year) {
958
+ flex: 0 0 auto;
959
+ min-inline-size: 4ch;
960
+ font-variant-numeric: tabular-nums;
961
+ font-size: var(--font-size-xs);
962
+ font-weight: var(--font-weight-semibold);
963
+ color: var(--muted-foreground);
964
+ }
965
+
966
+ [data-roottale-tpl="trust"] :where(.rt-tpl-trust-credential-name) {
967
+ font-family: var(--font-display);
968
+ font-weight: var(--font-weight-bold);
969
+ color: var(--foreground);
970
+ }
971
+
972
+ [data-roottale-tpl="trust"] :where(.rt-tpl-trust-credential-issuer) {
973
+ color: var(--muted-foreground);
974
+ font-size: var(--font-size-sm);
975
+ }
976
+
977
+ [data-roottale-tpl="contact"] :where(.rt-tpl-contact-inner) {
978
+ display: grid;
979
+ gap: var(--space-6);
980
+ align-items: start;
981
+ }
982
+
983
+ @container (min-width: 56rem) {
984
+ [data-roottale-tpl="contact"][data-variant="form-map-5050"]
985
+ :where(.rt-tpl-contact-inner) {
986
+ grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
987
+ }
988
+
989
+ [data-roottale-tpl="contact"][data-variant="split"]
990
+ :where(.rt-tpl-contact-inner) {
991
+ grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
992
+ }
993
+ }
994
+
995
+ [data-roottale-tpl="contact"] :where(.rt-tpl-contact-info) {
996
+ display: grid;
997
+ gap: var(--space-4);
998
+ }
999
+
1000
+ [data-roottale-tpl="contact"] :where(.rt-tpl-contact-phone) {
1001
+ display: inline-flex;
1002
+ align-items: center;
1003
+ justify-content: center;
1004
+ justify-self: start;
1005
+ padding-block: var(--space-3);
1006
+ padding-inline: var(--space-4);
1007
+ border-radius: var(--radius-md);
1008
+ background: var(--accent);
1009
+ color: var(--accent-foreground);
1010
+ font-family: var(--font-display);
1011
+ font-size: clamp(1.25rem, 4cqi, 2rem);
1012
+ font-weight: var(--font-weight-bold);
1013
+ line-height: var(--font-leading-tight);
1014
+ font-variant-numeric: tabular-nums;
1015
+ text-decoration: none;
1016
+ }
1017
+
1018
+ [data-roottale-tpl="contact"] :where(.rt-tpl-contact-address) {
1019
+ color: var(--foreground);
1020
+ font-style: normal;
1021
+ line-height: var(--font-leading-body);
1022
+ }
1023
+
1024
+ [data-roottale-tpl="contact"] :where(.rt-tpl-contact-hours) {
1025
+ inline-size: 100%;
1026
+ border-collapse: collapse;
1027
+ color: var(--foreground);
1028
+ font-variant-numeric: tabular-nums;
1029
+ }
1030
+
1031
+ [data-roottale-tpl="contact"] :where(.rt-tpl-contact-hours th),
1032
+ [data-roottale-tpl="contact"] :where(.rt-tpl-contact-hours td) {
1033
+ padding-block: var(--space-2);
1034
+ border-block-end: 1px solid var(--border);
1035
+ text-align: start;
1036
+ vertical-align: top;
1037
+ }
1038
+
1039
+ [data-roottale-tpl="contact"] :where(.rt-tpl-contact-hours th) {
1040
+ color: var(--muted-foreground);
1041
+ font-weight: var(--font-weight-semibold);
1042
+ white-space: nowrap;
1043
+ }
1044
+
1045
+ [data-roottale-tpl="contact"] :where(.rt-tpl-contact-hours td) {
1046
+ display: flex;
1047
+ flex-wrap: wrap;
1048
+ gap: var(--space-1);
1049
+ }
1050
+
1051
+ [data-roottale-tpl="contact"] :where(.rt-tpl-contact-hours-note) {
1052
+ color: var(--muted-foreground);
1053
+ }
1054
+
1055
+ [data-roottale-tpl="contact"] :where(.rt-tpl-contact-map) {
1056
+ aspect-ratio: 4 / 3;
1057
+ overflow: hidden;
1058
+ border: 1px solid var(--border);
1059
+ border-radius: var(--radius-md);
1060
+ background: var(--muted);
1061
+ }
1062
+
1063
+ [data-roottale-tpl="contact"] :where(.rt-tpl-contact-map iframe) {
1064
+ inline-size: 100%;
1065
+ block-size: 100%;
1066
+ border: 0;
1067
+ }
1068
+
1069
+ [data-roottale-tpl="contact"] :where(.rt-tpl-contact-map-fallback) {
1070
+ margin: 0;
1071
+ }
1072
+
1073
+ [data-roottale-tpl="contact"] :where(.rt-tpl-contact-map-fallback a) {
1074
+ color: var(--accent-foreground);
1075
+ text-decoration: underline;
1076
+ text-underline-offset: var(--space-1);
1077
+ }
1078
+
1079
+ [data-roottale-tpl="contact"] :where(.rt-tpl-contact-form) {
1080
+ min-inline-size: 0;
1081
+ }
1082
+
1083
+ [data-roottale-tpl="contact"][data-variant="channel-cards"]
1084
+ :where(.rt-tpl-contact-channel-layout) {
1085
+ display: grid;
1086
+ gap: var(--space-6);
1087
+ }
1088
+
1089
+ @container (min-width: 56rem) {
1090
+ [data-roottale-tpl="contact"][data-variant="channel-cards"]
1091
+ :where(.rt-tpl-contact-channel-layout) {
1092
+ grid-template-columns: minmax(0, 7fr) minmax(16rem, 5fr);
1093
+ align-items: stretch;
1094
+ }
1095
+ }
1096
+
1097
+ [data-roottale-tpl="contact"][data-variant="channel-cards"]
1098
+ :where(.rt-tpl-contact-channel-list) {
1099
+ display: grid;
1100
+ gap: var(--space-3);
1101
+ padding: 0;
1102
+ margin: 0;
1103
+ list-style: none;
1104
+ }
1105
+
1106
+ @container (min-width: 40rem) {
1107
+ [data-roottale-tpl="contact"][data-variant="channel-cards"]
1108
+ :where(.rt-tpl-contact-channel-list) {
1109
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1110
+ }
1111
+ }
1112
+
1113
+ [data-roottale-tpl="contact"][data-variant="channel-cards"]
1114
+ :where(.rt-tpl-contact-channel-card) {
1115
+ display: grid;
1116
+ gap: var(--space-2);
1117
+ min-block-size: 100%;
1118
+ padding: var(--space-5);
1119
+ border: 1px solid var(--border);
1120
+ border-radius: var(--radius-sm);
1121
+ background: var(--card);
1122
+ color: var(--foreground);
1123
+ text-decoration: none;
1124
+ }
1125
+
1126
+ [data-roottale-tpl="contact"][data-variant="channel-cards"]
1127
+ :where(a.rt-tpl-contact-channel-card:hover) {
1128
+ border-color: color-mix(in srgb, var(--primary) 45%, var(--border));
1129
+ }
1130
+
1131
+ [data-roottale-tpl="contact"][data-variant="channel-cards"]
1132
+ :where(.rt-tpl-contact-channel-label) {
1133
+ color: var(--muted-foreground);
1134
+ font-size: var(--font-size-xs);
1135
+ font-weight: var(--font-weight-semibold);
1136
+ }
1137
+
1138
+ [data-roottale-tpl="contact"][data-variant="channel-cards"]
1139
+ :where(.rt-tpl-contact-channel-value) {
1140
+ font-family: var(--font-display);
1141
+ font-size: clamp(1.125rem, 3cqi, 1.5rem);
1142
+ font-weight: var(--font-weight-bold);
1143
+ line-height: var(--font-leading-tight);
1144
+ font-variant-numeric: tabular-nums;
1145
+ color: var(--foreground);
1146
+ }
1147
+
1148
+ [data-roottale-tpl="contact"][data-variant="channel-cards"]
1149
+ :where(.rt-tpl-contact-channel-desc) {
1150
+ color: var(--muted-foreground);
1151
+ font-size: var(--font-size-sm);
1152
+ line-height: var(--font-leading-normal);
1153
+ }
1154
+
1155
+ [data-roottale-tpl="contact"][data-variant="channel-cards"]
1156
+ :where(.rt-tpl-contact-channel-action) {
1157
+ align-self: end;
1158
+ color: var(--primary);
1159
+ font-size: var(--font-size-sm);
1160
+ font-weight: var(--font-weight-semibold);
1161
+ }
1162
+
1163
+ [data-roottale-tpl="contact"][data-variant="channel-cards"]
1164
+ :where(.rt-tpl-contact-map) {
1165
+ min-block-size: 18rem;
1166
+ }
1167
+
1168
+ [data-roottale-tpl="contact"][data-variant="visit-band"]
1169
+ :where(.rt-tpl-contact-visit-band) {
1170
+ display: grid;
1171
+ gap: var(--rt-contact-visit-band-gap, var(--space-4));
1172
+ }
1173
+
1174
+ @container (min-width: 56rem) {
1175
+ [data-roottale-tpl="contact"][data-variant="visit-band"]
1176
+ :where(.rt-tpl-contact-visit-band) {
1177
+ grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.25fr) minmax(0, 0.9fr);
1178
+ align-items: stretch;
1179
+ }
1180
+ }
1181
+
1182
+ [data-roottale-tpl="contact"][data-variant="visit-band"]
1183
+ :where(.rt-tpl-contact-visit-panel) {
1184
+ display: grid;
1185
+ align-content: start;
1186
+ gap: var(--rt-contact-visit-panel-gap, var(--space-3));
1187
+ min-inline-size: 0;
1188
+ padding: var(--rt-contact-visit-panel-padding, clamp(1.125rem, 3cqi, 1.5rem));
1189
+ border: 1px solid var(--border);
1190
+ border-radius: var(--rt-radius-md, 0.5rem);
1191
+ background: color-mix(in srgb, var(--card) 94%, var(--rt-color-primary) 6%);
1192
+ }
1193
+
1194
+ [data-roottale-tpl="contact"][data-variant="visit-band"]
1195
+ :where(.rt-tpl-contact-visit-title) {
1196
+ margin: 0;
1197
+ font-family: var(--font-display);
1198
+ font-size: clamp(1.125rem, 2.6cqi, 1.375rem);
1199
+ font-weight: var(--font-weight-bold);
1200
+ line-height: var(--font-leading-tight);
1201
+ }
1202
+
1203
+ [data-roottale-tpl="contact"][data-variant="visit-band"]
1204
+ :where(.rt-tpl-contact-visit-hours) {
1205
+ inline-size: 100%;
1206
+ border-collapse: collapse;
1207
+ color: var(--foreground);
1208
+ font-size: var(--font-size-sm);
1209
+ font-variant-numeric: tabular-nums;
1210
+ }
1211
+
1212
+ [data-roottale-tpl="contact"][data-variant="visit-band"]
1213
+ :where(.rt-tpl-contact-visit-hours th),
1214
+ [data-roottale-tpl="contact"][data-variant="visit-band"]
1215
+ :where(.rt-tpl-contact-visit-hours td) {
1216
+ padding-block: var(--rt-contact-visit-hours-row-padding, 0.55rem);
1217
+ border-block-end: 1px solid var(--border);
1218
+ text-align: start;
1219
+ vertical-align: top;
1220
+ }
1221
+
1222
+ [data-roottale-tpl="contact"][data-variant="visit-band"]
1223
+ :where(.rt-tpl-contact-visit-hours th) {
1224
+ color: var(--muted-foreground);
1225
+ font-weight: var(--font-weight-semibold);
1226
+ white-space: nowrap;
1227
+ }
1228
+
1229
+ [data-roottale-tpl="contact"][data-variant="visit-band"]
1230
+ :where(.rt-tpl-contact-visit-hours td) {
1231
+ display: flex;
1232
+ flex-wrap: wrap;
1233
+ gap: var(--space-1);
1234
+ justify-content: end;
1235
+ }
1236
+
1237
+ [data-roottale-tpl="contact"][data-variant="visit-band"]
1238
+ :where(.rt-tpl-contact-map-block) {
1239
+ gap: var(--space-2);
1240
+ }
1241
+
1242
+ [data-roottale-tpl="contact"][data-variant="visit-band"]
1243
+ :where(.rt-tpl-contact-map) {
1244
+ aspect-ratio: var(--rt-contact-visit-map-aspect-ratio, 16 / 7);
1245
+ min-block-size: var(--rt-contact-visit-map-min-block, 8.5rem);
1246
+ border-radius: calc(var(--rt-radius-md, 0.5rem) * 0.85);
1247
+ }
1248
+
1249
+ [data-roottale-tpl="contact"][data-variant="visit-band"]
1250
+ :where(.rt-tpl-contact-visit-address) {
1251
+ margin: 0;
1252
+ color: var(--foreground);
1253
+ font-style: normal;
1254
+ font-size: var(--font-size-sm);
1255
+ line-height: var(--font-leading-normal);
1256
+ }
1257
+
1258
+ [data-roottale-tpl="contact"][data-variant="visit-band"]
1259
+ :where(.rt-tpl-contact-visit-link) {
1260
+ justify-self: start;
1261
+ color: var(--primary);
1262
+ font-size: var(--font-size-sm);
1263
+ font-weight: var(--font-weight-semibold);
1264
+ text-decoration: none;
1265
+ }
1266
+
1267
+ [data-roottale-tpl="contact"][data-variant="visit-band"]
1268
+ :where(.rt-tpl-contact-visit-phone) {
1269
+ color: var(--primary);
1270
+ font-family: var(--font-display);
1271
+ font-size: clamp(1.75rem, 5cqi, 2.25rem);
1272
+ font-weight: var(--font-weight-bold);
1273
+ line-height: var(--font-leading-tight);
1274
+ font-variant-numeric: tabular-nums;
1275
+ text-decoration: none;
1276
+ }
1277
+
1278
+ /* ── testimonials: shared (C11 — 후기 섹션) ───────────────────────────────── */
1279
+
1280
+ [data-roottale-tpl="testimonials"] :where(.rt-tpl-heading) {
1281
+ color: var(--foreground);
1282
+ font-family: var(--font-display);
1283
+ text-wrap: balance;
1284
+ }
1285
+
1286
+ [data-roottale-tpl="testimonials"] :where(.rt-tpl-testimonials-disclaimer) {
1287
+ margin-block: var(--space-4) 0;
1288
+ color: var(--muted-foreground);
1289
+ font-size: var(--font-size-xs);
1290
+ line-height: var(--font-leading-normal);
1291
+ }
1292
+
1293
+ /* ── testimonials: editorial-quote (C11 §1 — 대형 인용 타이포 에디토리얼) ─── */
1294
+
1295
+ [data-roottale-tpl="testimonials"][data-variant="editorial-quote"]
1296
+ :where(.rt-tpl-testimonials-editorial-list) {
1297
+ display: grid;
1298
+ gap: var(--space-8);
1299
+ padding: 0;
1300
+ /* 대형 인용부호 장식이 위로 번지므로(아래 ::before) 헤딩/설명과 겹치지
1301
+ * 않도록 리스트 자체에 여유 공간을 확보한다(콘텐츠량과 무관하게 고정). */
1302
+ margin: clamp(3rem, 7cqi, 4.5rem) 0 0;
1303
+ list-style: none;
1304
+ }
1305
+
1306
+ [data-roottale-tpl="testimonials"][data-variant="editorial-quote"]
1307
+ :where(.rt-tpl-testimonials-editorial-list--single) {
1308
+ justify-items: center;
1309
+ text-align: center;
1310
+ max-inline-size: 44rem;
1311
+ margin-inline: auto;
1312
+ }
1313
+
1314
+ [data-roottale-tpl="testimonials"][data-variant="editorial-quote"]
1315
+ :where(
1316
+ .rt-tpl-testimonials-editorial-list--stack
1317
+ .rt-tpl-testimonials-editorial-item:not(:first-child)
1318
+ ) {
1319
+ border-block-start: 1px solid var(--border);
1320
+ padding-block-start: var(--space-8);
1321
+ }
1322
+
1323
+ [data-roottale-tpl="testimonials"][data-variant="editorial-quote"]
1324
+ :where(.rt-tpl-testimonials-editorial-quote) {
1325
+ position: relative;
1326
+ margin: 0;
1327
+ }
1328
+
1329
+ /* 대형 인용부호 = CSS 타이포 장식(이미지/이모지 금지) — muted 톤 배경, 본문
1330
+ * 위에 겹치되 z-index 로 텍스트 아래에 둔다. */
1331
+ [data-roottale-tpl="testimonials"][data-variant="editorial-quote"]
1332
+ :where(.rt-tpl-testimonials-editorial-quote)::before {
1333
+ content: "\201C";
1334
+ position: absolute;
1335
+ inset-block-start: -0.2em;
1336
+ inset-inline-start: -0.05em;
1337
+ z-index: 0;
1338
+ font-family: var(--font-display);
1339
+ font-size: clamp(4rem, 14cqi, 8rem);
1340
+ font-weight: 800;
1341
+ line-height: 1;
1342
+ color: color-mix(in srgb, var(--foreground) 20%, transparent);
1343
+ pointer-events: none;
1344
+ }
1345
+
1346
+ [data-roottale-tpl="testimonials"][data-variant="editorial-quote"]
1347
+ :where(.rt-tpl-testimonials-editorial-text) {
1348
+ position: relative;
1349
+ z-index: 1;
1350
+ margin: 0;
1351
+ font-family: var(--font-display);
1352
+ font-size: clamp(1.25rem, 3cqi, 1.75rem);
1353
+ font-weight: 500;
1354
+ line-height: 1.6;
1355
+ word-break: keep-all;
1356
+ text-wrap: balance;
1357
+ color: var(--foreground);
1358
+ }
1359
+
1360
+ [data-roottale-tpl="testimonials"][data-variant="editorial-quote"]
1361
+ :where(.rt-tpl-testimonials-editorial-footer) {
1362
+ position: relative;
1363
+ z-index: 1;
1364
+ display: flex;
1365
+ flex-wrap: wrap;
1366
+ align-items: baseline;
1367
+ gap: var(--space-3);
1368
+ margin-block-start: var(--space-4);
1369
+ padding-block-start: var(--space-3);
1370
+ border-block-start: 1px solid var(--border);
1371
+ }
1372
+
1373
+ [data-roottale-tpl="testimonials"][data-variant="editorial-quote"]
1374
+ :where(
1375
+ .rt-tpl-testimonials-editorial-list--single
1376
+ .rt-tpl-testimonials-editorial-footer
1377
+ ) {
1378
+ justify-content: center;
1379
+ }
1380
+
1381
+ [data-roottale-tpl="testimonials"]
1382
+ :where(.rt-tpl-testimonials-editorial-author) {
1383
+ font-style: normal;
1384
+ font-weight: var(--font-weight-semibold);
1385
+ font-size: var(--font-size-sm);
1386
+ color: var(--foreground);
1387
+ }
1388
+
1389
+ [data-roottale-tpl="testimonials"]
1390
+ :where(.rt-tpl-testimonials-editorial-context) {
1391
+ font-size: var(--font-size-xs);
1392
+ color: var(--muted-foreground);
1393
+ }
1394
+
1395
+ /* ── testimonials: quote-rail (C11 §2 — hairline 좌측 보더 컬럼 + scroll-snap) ── */
1396
+
1397
+ [data-roottale-tpl="testimonials"][data-variant="quote-rail"]
1398
+ :where(.rt-tpl-testimonials-rail-viewport) {
1399
+ margin-block-start: var(--rt-testimonials-rail-margin-start, var(--space-6));
1400
+ }
1401
+
1402
+ [data-roottale-tpl="testimonials"][data-variant="quote-rail"]
1403
+ :where(.rt-tpl-testimonials-rail) {
1404
+ display: flex;
1405
+ gap: var(--rt-testimonials-rail-gap, var(--space-6));
1406
+ padding: var(--space-2) 0;
1407
+ margin: 0;
1408
+ list-style: none;
1409
+ overflow-x: auto;
1410
+ overscroll-behavior-inline: contain;
1411
+ scroll-snap-type: inline mandatory;
1412
+ scrollbar-width: none;
1413
+ }
1414
+
1415
+ [data-roottale-tpl="testimonials"][data-variant="quote-rail"]
1416
+ :where(.rt-tpl-testimonials-rail)::-webkit-scrollbar {
1417
+ display: none;
1418
+ }
1419
+
1420
+ [data-roottale-tpl="testimonials"][data-variant="quote-rail"]
1421
+ :where(.rt-tpl-testimonials-rail-item) {
1422
+ flex: 0 0 auto;
1423
+ inline-size: var(--rt-testimonials-rail-item-width, min(22rem, 82cqi));
1424
+ scroll-snap-align: start;
1425
+ border-inline-start: 2px solid var(--accent);
1426
+ padding-inline-start: var(--space-5);
1427
+ padding-block: var(--space-1);
1428
+ }
1429
+
1430
+ [data-roottale-tpl="testimonials"][data-variant="quote-rail"]
1431
+ :where(.rt-tpl-testimonials-rail-quote) {
1432
+ margin: 0;
1433
+ display: grid;
1434
+ gap: var(--space-4);
1435
+ }
1436
+
1437
+ [data-roottale-tpl="testimonials"][data-variant="quote-rail"]
1438
+ :where(.rt-tpl-testimonials-rail-text) {
1439
+ margin: 0;
1440
+ line-height: var(--font-leading-body);
1441
+ word-break: keep-all;
1442
+ color: var(--foreground);
1443
+ }
1444
+
1445
+ [data-roottale-tpl="testimonials"][data-variant="quote-rail"]
1446
+ :where(.rt-tpl-testimonials-rail-footer) {
1447
+ display: flex;
1448
+ flex-direction: column;
1449
+ gap: var(--space-1);
1450
+ }
1451
+
1452
+ [data-roottale-tpl="testimonials"] :where(.rt-tpl-testimonials-rail-author) {
1453
+ font-style: normal;
1454
+ font-weight: var(--font-weight-semibold);
1455
+ font-size: var(--font-size-sm);
1456
+ color: var(--foreground);
1457
+ }
1458
+
1459
+ [data-roottale-tpl="testimonials"] :where(.rt-tpl-testimonials-rail-context) {
1460
+ font-size: var(--font-size-xs);
1461
+ color: var(--muted-foreground);
1462
+ }
1463
+
1464
+ [data-roottale-tpl="team"] {
1465
+ container-type: inline-size;
1466
+ }
1467
+
1468
+ [data-roottale-tpl="team"] :where(.rt-tpl-team-grid),
1469
+ [data-roottale-tpl="team"] :where(.rt-tpl-team-spotlight-list) {
1470
+ display: grid;
1471
+ gap: 1.25rem;
1472
+ padding: 0;
1473
+ margin: 0;
1474
+ list-style: none;
1475
+ }
1476
+
1477
+ [data-roottale-tpl="team"] :where(.rt-tpl-team-grid) {
1478
+ grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
1479
+ }
1480
+
1481
+ [data-roottale-tpl="team"][data-variant="row"]
1482
+ :where(.rt-tpl-team-row-list) {
1483
+ display: grid;
1484
+ gap: var(--space-4);
1485
+ padding: 0;
1486
+ margin: 0;
1487
+ list-style: none;
1488
+ }
1489
+
1490
+ @container (min-width: 52rem) {
1491
+ [data-roottale-tpl="team"][data-variant="row"]
1492
+ :where(.rt-tpl-team-row-list) {
1493
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1494
+ }
1495
+ }
1496
+
1497
+ [data-roottale-tpl="team"] :where(.rt-tpl-team-card) {
1498
+ display: grid;
1499
+ gap: 1.25rem;
1500
+ align-content: start;
1501
+ min-inline-size: 0;
1502
+ overflow: hidden;
1503
+ border: 1px solid var(--border);
1504
+ border-radius: var(--rt-radius-md, 0.5rem);
1505
+ background: var(--card);
1506
+ }
1507
+
1508
+ [data-roottale-tpl="team"][data-variant="row"]
1509
+ :where(.rt-tpl-team-card--row) {
1510
+ grid-template-columns: minmax(7.5rem, 0.82fr) minmax(0, 1.18fr);
1511
+ gap: 0;
1512
+ min-block-size: var(--rt-team-row-card-min-block, 12rem);
1513
+ }
1514
+
1515
+ @container (max-width: 36rem) {
1516
+ [data-roottale-tpl="team"][data-variant="row"]
1517
+ :where(.rt-tpl-team-card--row) {
1518
+ grid-template-columns: 1fr;
1519
+ }
1520
+ }
1521
+
1522
+ [data-roottale-tpl="team"] :where(.rt-tpl-team-photo),
1523
+ [data-roottale-tpl="team"] :where(.rt-tpl-team-initials) {
1524
+ inline-size: 100%;
1525
+ aspect-ratio: 4 / 3;
1526
+ }
1527
+
1528
+ [data-roottale-tpl="team"] :where(.rt-tpl-team-photo) {
1529
+ display: block;
1530
+ object-fit: cover;
1531
+ object-position: center top;
1532
+ background: var(--muted);
1533
+ }
1534
+
1535
+ [data-roottale-tpl="team"] :where(.rt-tpl-team-initials) {
1536
+ display: grid;
1537
+ place-items: center;
1538
+ color: var(--primary);
1539
+ font-family: var(--rt-font-display, var(--rt-font-body, system-ui, sans-serif));
1540
+ font-size: clamp(2.25rem, 9cqi, 4rem);
1541
+ font-weight: 800;
1542
+ background: var(--muted);
1543
+ }
1544
+
1545
+ [data-roottale-tpl="team"] :where(.rt-tpl-team-body) {
1546
+ display: grid;
1547
+ gap: 0.75rem;
1548
+ padding: 0 1.25rem 1.25rem;
1549
+ }
1550
+
1551
+ [data-roottale-tpl="team"][data-variant="row"]
1552
+ :where(.rt-tpl-team-card--row .rt-tpl-team-photo),
1553
+ [data-roottale-tpl="team"][data-variant="row"]
1554
+ :where(.rt-tpl-team-card--row .rt-tpl-team-initials) {
1555
+ block-size: var(--rt-team-row-photo-block, var(--rt-team-row-card-min-block, 12rem));
1556
+ min-block-size: var(--rt-team-row-card-min-block, 12rem);
1557
+ aspect-ratio: auto;
1558
+ }
1559
+
1560
+ @container (max-width: 36rem) {
1561
+ [data-roottale-tpl="team"][data-variant="row"]
1562
+ :where(.rt-tpl-team-card--row .rt-tpl-team-photo),
1563
+ [data-roottale-tpl="team"][data-variant="row"]
1564
+ :where(.rt-tpl-team-card--row .rt-tpl-team-initials) {
1565
+ block-size: auto;
1566
+ min-block-size: 0;
1567
+ aspect-ratio: var(--rt-team-row-mobile-photo-aspect-ratio, 16 / 10);
1568
+ }
1569
+ }
1570
+
1571
+ [data-roottale-tpl="team"][data-variant="row"]
1572
+ :where(.rt-tpl-team-card--row .rt-tpl-team-body) {
1573
+ align-content: center;
1574
+ gap: 0.6rem;
1575
+ padding: clamp(1rem, 2.8cqi, 1.35rem);
1576
+ }
1577
+
1578
+ [data-roottale-tpl="team"][data-variant="row"]
1579
+ :where(.rt-tpl-team-card--row .rt-tpl-team-bio) {
1580
+ display: none;
1581
+ }
1582
+
1583
+ [data-roottale-tpl="team"][data-variant="row"]
1584
+ :where(.rt-tpl-team-card--row .rt-tpl-team-credentials) {
1585
+ gap: 0.35rem;
1586
+ }
1587
+
1588
+ [data-roottale-tpl="team"] :where(.rt-tpl-team-name) {
1589
+ margin: 0;
1590
+ font-family: var(--rt-font-display, var(--rt-font-body, system-ui, sans-serif));
1591
+ font-size: clamp(1.25rem, 3.2cqi, 1.5rem);
1592
+ font-weight: 800;
1593
+ line-height: 1.3;
1594
+ word-break: keep-all;
1595
+ }
1596
+
1597
+ [data-roottale-tpl="team"] :where(.rt-tpl-team-title) {
1598
+ margin: -0.35rem 0 0;
1599
+ color: var(--muted-foreground);
1600
+ font-weight: 700;
1601
+ }
1602
+
1603
+ [data-roottale-tpl="team"] :where(.rt-tpl-team-specialties),
1604
+ [data-roottale-tpl="team"] :where(.rt-tpl-team-credentials) {
1605
+ display: flex;
1606
+ flex-wrap: wrap;
1607
+ gap: 0.5rem;
1608
+ padding: 0;
1609
+ margin: 0;
1610
+ list-style: none;
1611
+ }
1612
+
1613
+ [data-roottale-tpl="team"] :where(.rt-tpl-team-specialties li) {
1614
+ display: inline-flex;
1615
+ align-items: center;
1616
+ min-block-size: 1.75rem;
1617
+ padding-inline: 0.75rem;
1618
+ border-radius: 999px;
1619
+ color: var(--primary);
1620
+ font-size: 0.8125rem;
1621
+ font-weight: 800;
1622
+ background: var(--muted);
1623
+ }
1624
+
1625
+ [data-roottale-tpl="team"] :where(.rt-tpl-team-credentials) {
1626
+ display: grid;
1627
+ gap: 0.45rem;
1628
+ }
1629
+
1630
+ [data-roottale-tpl="team"] :where(.rt-tpl-team-credentials li),
1631
+ [data-roottale-tpl="team"] :where(.rt-tpl-team-bio) {
1632
+ color: var(--muted-foreground);
1633
+ font-size: 0.9375rem;
1634
+ line-height: 1.65;
1635
+ word-break: keep-all;
1636
+ }
1637
+
1638
+ [data-roottale-tpl="team"] :where(.rt-tpl-team-credentials li)::before {
1639
+ content: "";
1640
+ display: inline-block;
1641
+ inline-size: 0.375rem;
1642
+ block-size: 0.375rem;
1643
+ margin-inline-end: 0.5rem;
1644
+ border-radius: 999px;
1645
+ background: var(--primary);
1646
+ vertical-align: 0.12em;
1647
+ }
1648
+
1649
+ [data-roottale-tpl="team"] :where(.rt-tpl-team-bio) {
1650
+ margin: 0;
1651
+ }
1652
+
1653
+ [data-roottale-tpl="team"][data-variant="spotlight"]
1654
+ :where(.rt-tpl-team-spotlight) {
1655
+ display: grid;
1656
+ gap: 1.25rem;
1657
+ }
1658
+
1659
+ @container (min-width: 54rem) {
1660
+ [data-roottale-tpl="team"][data-variant="spotlight"]
1661
+ :where(.rt-tpl-team-spotlight) {
1662
+ grid-template-columns: minmax(0, 7fr) minmax(16rem, 5fr);
1663
+ align-items: start;
1664
+ }
1665
+ }
1666
+
1667
+ [data-roottale-tpl="team"][data-variant="spotlight"]
1668
+ :where(.rt-tpl-team-card--featured) {
1669
+ gap: 0;
1670
+ }
1671
+
1672
+ [data-roottale-tpl="team"][data-variant="spotlight"]
1673
+ :where(.rt-tpl-team-card--featured .rt-tpl-team-body) {
1674
+ padding: clamp(1.25rem, 4cqi, 2rem);
1675
+ }
1676
+
1677
+ [data-roottale-tpl="team"][data-variant="spotlight"]
1678
+ :where(.rt-tpl-team-photo--featured, .rt-tpl-team-initials--featured) {
1679
+ aspect-ratio: 16 / 10;
1680
+ }
1681
+
1682
+ [data-roottale-tpl="expertise"],
1683
+ [data-roottale-tpl="spaces"],
1684
+ [data-roottale-tpl="concerns"] {
1685
+ container-type: inline-size;
1686
+ }
1687
+
1688
+ [data-roottale-tpl] :where(.rt-tpl-client-section-header) {
1689
+ max-inline-size: 48rem;
1690
+ }
1691
+
1692
+ [data-roottale-tpl] :where(.rt-tpl-client-tags),
1693
+ [data-roottale-tpl] :where(.rt-tpl-expertise-tags) {
1694
+ display: flex;
1695
+ flex-wrap: wrap;
1696
+ gap: 0.5rem;
1697
+ padding: 0;
1698
+ margin: 0;
1699
+ list-style: none;
1700
+ }
1701
+
1702
+ [data-roottale-tpl] :where(.rt-tpl-client-tags li),
1703
+ [data-roottale-tpl] :where(.rt-tpl-expertise-tags li) {
1704
+ display: inline-flex;
1705
+ align-items: center;
1706
+ min-block-size: 1.75rem;
1707
+ padding-inline: 0.75rem;
1708
+ border: 1px solid var(--rt-color-border);
1709
+ border-radius: 999px;
1710
+ color: var(--rt-color-primary);
1711
+ font-size: 0.8125rem;
1712
+ font-weight: 800;
1713
+ background: color-mix(
1714
+ in srgb,
1715
+ var(--rt-color-primary) 5%,
1716
+ var(--rt-color-background)
1717
+ );
1718
+ }
1719
+
1720
+ [data-roottale-tpl] :where(.rt-tpl-client-disclaimer) {
1721
+ margin-block: 1rem 0;
1722
+ padding: 1rem;
1723
+ border-inline-start: 3px solid var(--rt-color-border);
1724
+ color: var(--rt-color-muted-foreground);
1725
+ font-size: 0.875rem;
1726
+ line-height: 1.65;
1727
+ background: color-mix(
1728
+ in srgb,
1729
+ var(--rt-color-primary) 3%,
1730
+ var(--rt-color-background)
1731
+ );
1732
+ }
1733
+
1734
+ [data-roottale-tpl="expertise"] :where(.rt-tpl-expertise-stage) {
1735
+ display: grid;
1736
+ gap: clamp(1.5rem, 4cqi, 2.5rem);
1737
+ }
1738
+
1739
+ @container (min-width: 52rem) {
1740
+ [data-roottale-tpl="expertise"] :where(.rt-tpl-expertise-stage) {
1741
+ grid-template-columns: minmax(14rem, 4fr) minmax(0, 8fr);
1742
+ align-items: stretch;
1743
+ }
1744
+ }
1745
+
1746
+ [data-roottale-tpl="expertise"] :where(.rt-tpl-expertise-tabs) {
1747
+ display: grid;
1748
+ align-content: start;
1749
+ border-block-start: 1px solid var(--rt-color-border);
1750
+ }
1751
+
1752
+ [data-roottale-tpl="expertise"] :where(.rt-tpl-expertise-tab) {
1753
+ display: grid;
1754
+ gap: 0.375rem;
1755
+ inline-size: 100%;
1756
+ padding: 1rem 0.25rem;
1757
+ border: 0;
1758
+ border-block-end: 1px solid var(--rt-color-border);
1759
+ background: transparent;
1760
+ color: inherit;
1761
+ text-align: start;
1762
+ cursor: pointer;
1763
+ }
1764
+
1765
+ [data-roottale-tpl="expertise"] :where(.rt-tpl-expertise-tab[data-active="true"]) {
1766
+ color: var(--rt-color-primary);
1767
+ }
1768
+
1769
+ [data-roottale-tpl="expertise"] :where(.rt-tpl-expertise-tab-label),
1770
+ [data-roottale-tpl="expertise"] :where(.rt-tpl-expertise-kicker) {
1771
+ margin: 0;
1772
+ color: var(--rt-color-muted-foreground);
1773
+ font-size: 0.8125rem;
1774
+ font-weight: 800;
1775
+ }
1776
+
1777
+ [data-roottale-tpl="expertise"] :where(.rt-tpl-expertise-tab-title) {
1778
+ font-family: var(--rt-font-display, var(--rt-font-body, system-ui, sans-serif));
1779
+ font-size: 1rem;
1780
+ font-weight: 800;
1781
+ line-height: 1.35;
1782
+ word-break: keep-all;
1783
+ }
1784
+
1785
+ [data-roottale-tpl="expertise"] :where(.rt-tpl-expertise-panel),
1786
+ [data-roottale-tpl="expertise"] :where(.rt-tpl-expertise-card) {
1787
+ overflow: hidden;
1788
+ border: 1px solid var(--rt-color-border);
1789
+ border-radius: var(--rt-radius-md, 0.5rem);
1790
+ background: var(--rt-color-background);
1791
+ }
1792
+
1793
+ [data-roottale-tpl="expertise"] :where(.rt-tpl-expertise-panel) {
1794
+ display: grid;
1795
+ }
1796
+
1797
+ @container (min-width: 44rem) {
1798
+ [data-roottale-tpl="expertise"] :where(.rt-tpl-expertise-panel) {
1799
+ grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
1800
+ }
1801
+ }
1802
+
1803
+ [data-roottale-tpl="expertise"] :where(.rt-tpl-expertise-panel-img),
1804
+ [data-roottale-tpl="expertise"] :where(.rt-tpl-expertise-card-img) {
1805
+ inline-size: 100%;
1806
+ block-size: 100%;
1807
+ min-block-size: 18rem;
1808
+ object-fit: cover;
1809
+ background: var(--rt-color-muted);
1810
+ }
1811
+
1812
+ [data-roottale-tpl="expertise"] :where(.rt-tpl-expertise-panel-body),
1813
+ [data-roottale-tpl="expertise"] :where(.rt-tpl-expertise-card-body) {
1814
+ display: grid;
1815
+ align-content: center;
1816
+ gap: 1rem;
1817
+ padding: clamp(1.25rem, 4cqi, 2rem);
1818
+ }
1819
+
1820
+ [data-roottale-tpl="expertise"] :where(.rt-tpl-expertise-title) {
1821
+ margin: 0;
1822
+ font-family: var(--rt-font-display, var(--rt-font-body, system-ui, sans-serif));
1823
+ font-size: clamp(1.375rem, 3.6cqi, 1.875rem);
1824
+ font-weight: 800;
1825
+ line-height: 1.3;
1826
+ word-break: keep-all;
1827
+ }
1828
+
1829
+ [data-roottale-tpl="expertise"] :where(.rt-tpl-expertise-body) {
1830
+ margin: 0;
1831
+ color: var(--rt-color-muted-foreground);
1832
+ line-height: 1.7;
1833
+ word-break: keep-all;
1834
+ }
1835
+
1836
+ [data-roottale-tpl="expertise"] :where(.rt-tpl-expertise-cta),
1837
+ [data-roottale-tpl="concerns"] :where(.rt-tpl-concerns-cta) {
1838
+ justify-self: start;
1839
+ color: var(--rt-color-primary);
1840
+ font-size: 0.9375rem;
1841
+ font-weight: 800;
1842
+ text-decoration: none;
1843
+ }
1844
+
1845
+ [data-roottale-tpl="expertise"] :where(.rt-tpl-expertise-card-grid) {
1846
+ display: grid;
1847
+ grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
1848
+ gap: 1.25rem;
1849
+ padding: 0;
1850
+ margin: 0;
1851
+ list-style: none;
1852
+ }
1853
+
1854
+ [data-roottale-tpl="expertise"] :where(.rt-tpl-expertise-card) {
1855
+ display: grid;
1856
+ }
1857
+
1858
+ [data-roottale-tpl="expertise"] :where(.rt-tpl-expertise-card-img) {
1859
+ aspect-ratio: 16 / 10;
1860
+ min-block-size: 0;
1861
+ }
1862
+
1863
+ [data-roottale-tpl="spaces"] :where(.rt-tpl-spaces-stage) {
1864
+ display: grid;
1865
+ gap: 1rem;
1866
+ }
1867
+
1868
+ [data-roottale-tpl="spaces"] :where(.rt-tpl-spaces-main) {
1869
+ position: relative;
1870
+ min-block-size: clamp(22rem, 58cqi, 34rem);
1871
+ margin: 0;
1872
+ overflow: hidden;
1873
+ border-radius: var(--rt-radius-md, 0.5rem);
1874
+ background: var(--rt-color-muted);
1875
+ }
1876
+
1877
+ [data-roottale-tpl="spaces"] :where(.rt-tpl-spaces-main-img) {
1878
+ inline-size: 100%;
1879
+ block-size: 100%;
1880
+ object-fit: cover;
1881
+ }
1882
+
1883
+ [data-roottale-tpl="spaces"] :where(.rt-tpl-spaces-caption) {
1884
+ position: absolute;
1885
+ inset-inline: 0;
1886
+ inset-block-end: 0;
1887
+ display: grid;
1888
+ gap: 0.375rem;
1889
+ padding: clamp(1rem, 4cqi, 1.75rem);
1890
+ background: linear-gradient(
1891
+ to top,
1892
+ color-mix(in srgb, var(--rt-color-foreground) 76%, transparent),
1893
+ transparent
1894
+ );
1895
+ color: var(--rt-color-primary-foreground);
1896
+ }
1897
+
1898
+ [data-roottale-tpl="spaces"] :where(.rt-tpl-spaces-kicker) {
1899
+ font-size: 0.75rem;
1900
+ font-weight: 800;
1901
+ }
1902
+
1903
+ [data-roottale-tpl="spaces"] :where(.rt-tpl-spaces-title) {
1904
+ font-family: var(--rt-font-display, var(--rt-font-body, system-ui, sans-serif));
1905
+ font-size: clamp(1.25rem, 3.6cqi, 1.75rem);
1906
+ font-weight: 800;
1907
+ line-height: 1.25;
1908
+ }
1909
+
1910
+ [data-roottale-tpl="spaces"] :where(.rt-tpl-spaces-desc) {
1911
+ max-inline-size: 42rem;
1912
+ color: color-mix(in srgb, var(--rt-color-primary-foreground) 82%, transparent);
1913
+ line-height: 1.6;
1914
+ }
1915
+
1916
+ [data-roottale-tpl="spaces"] :where(.rt-tpl-spaces-rail) {
1917
+ display: flex;
1918
+ gap: 0.75rem;
1919
+ overflow-x: auto;
1920
+ padding-block: 0.25rem;
1921
+ scrollbar-width: none;
1922
+ }
1923
+
1924
+ [data-roottale-tpl="spaces"] :where(.rt-tpl-spaces-rail)::-webkit-scrollbar {
1925
+ display: none;
1926
+ }
1927
+
1928
+ [data-roottale-tpl="spaces"] :where(.rt-tpl-spaces-thumb) {
1929
+ flex: 0 0 min(13rem, 72cqi);
1930
+ display: grid;
1931
+ gap: 0.5rem;
1932
+ padding: 0;
1933
+ border: 1px solid var(--rt-color-border);
1934
+ border-radius: var(--rt-radius-md, 0.5rem);
1935
+ overflow: hidden;
1936
+ color: inherit;
1937
+ background: var(--rt-color-background);
1938
+ cursor: pointer;
1939
+ text-align: start;
1940
+ }
1941
+
1942
+ [data-roottale-tpl="spaces"] :where(.rt-tpl-spaces-thumb[data-active="true"]) {
1943
+ border-color: var(--rt-color-primary);
1944
+ }
1945
+
1946
+ [data-roottale-tpl="spaces"] :where(.rt-tpl-spaces-thumb img) {
1947
+ inline-size: 100%;
1948
+ aspect-ratio: 16 / 10;
1949
+ object-fit: cover;
1950
+ }
1951
+
1952
+ [data-roottale-tpl="spaces"] :where(.rt-tpl-spaces-thumb span) {
1953
+ padding: 0 0.75rem 0.75rem;
1954
+ font-size: 0.875rem;
1955
+ font-weight: 800;
1956
+ }
1957
+
1958
+ [data-roottale-tpl="spaces"] :where(.rt-tpl-spaces-mosaic) {
1959
+ display: grid;
1960
+ gap: 1rem;
1961
+ padding: 0;
1962
+ margin: 0;
1963
+ list-style: none;
1964
+ }
1965
+
1966
+ @container (min-width: 48rem) {
1967
+ [data-roottale-tpl="spaces"] :where(.rt-tpl-spaces-mosaic) {
1968
+ grid-template-columns: repeat(4, minmax(0, 1fr));
1969
+ }
1970
+
1971
+ [data-roottale-tpl="spaces"] :where(.rt-tpl-spaces-tile:first-child) {
1972
+ grid-column: span 2;
1973
+ grid-row: span 2;
1974
+ }
1975
+ }
1976
+
1977
+ [data-roottale-tpl="spaces"] :where(.rt-tpl-spaces-tile) {
1978
+ position: relative;
1979
+ min-block-size: 15rem;
1980
+ overflow: hidden;
1981
+ border-radius: var(--rt-radius-md, 0.5rem);
1982
+ background: var(--rt-color-muted);
1983
+ }
1984
+
1985
+ [data-roottale-tpl="spaces"] :where(.rt-tpl-spaces-tile img) {
1986
+ inline-size: 100%;
1987
+ block-size: 100%;
1988
+ object-fit: cover;
1989
+ }
1990
+
1991
+ [data-roottale-tpl="spaces"] :where(.rt-tpl-spaces-tile-caption) {
1992
+ position: absolute;
1993
+ inset-inline: 0;
1994
+ inset-block-end: 0;
1995
+ display: grid;
1996
+ gap: 0.375rem;
1997
+ padding: 1rem;
1998
+ background: linear-gradient(
1999
+ to top,
2000
+ color-mix(in srgb, var(--rt-color-foreground) 76%, transparent),
2001
+ transparent
2002
+ );
2003
+ color: var(--rt-color-primary-foreground);
2004
+ }
2005
+
2006
+ [data-roottale-tpl="spaces"] :where(.rt-tpl-spaces-tile-caption h3),
2007
+ [data-roottale-tpl="spaces"] :where(.rt-tpl-spaces-tile-caption p) {
2008
+ margin: 0;
2009
+ }
2010
+
2011
+ [data-roottale-tpl="spaces"] :where(.rt-tpl-spaces-tile-caption h3) {
2012
+ font-family: var(--rt-font-display, var(--rt-font-body, system-ui, sans-serif));
2013
+ font-size: 1.125rem;
2014
+ font-weight: 800;
2015
+ }
2016
+
2017
+ [data-roottale-tpl="spaces"] :where(.rt-tpl-spaces-tile-caption p) {
2018
+ color: color-mix(in srgb, var(--rt-color-primary-foreground) 82%, transparent);
2019
+ font-size: 0.875rem;
2020
+ line-height: 1.55;
2021
+ }
2022
+
2023
+ [data-roottale-tpl="concerns"] :where(.rt-tpl-concerns-map-layout) {
2024
+ display: grid;
2025
+ gap: clamp(1.5rem, 5cqi, 2.5rem);
2026
+ }
2027
+
2028
+ @container (min-width: 52rem) {
2029
+ [data-roottale-tpl="concerns"] :where(.rt-tpl-concerns-map-layout) {
2030
+ grid-template-columns: minmax(0, 7fr) minmax(16rem, 5fr);
2031
+ align-items: start;
2032
+ }
2033
+ }
2034
+
2035
+ [data-roottale-tpl="concerns"] :where(.rt-tpl-concerns-figure-wrap) {
2036
+ position: relative;
2037
+ overflow: hidden;
2038
+ border: 1px solid var(--rt-color-border);
2039
+ border-radius: var(--rt-radius-md, 0.5rem);
2040
+ background: var(--rt-color-background);
2041
+ }
2042
+
2043
+ [data-roottale-tpl="concerns"] :where(.rt-tpl-concerns-figure) {
2044
+ display: block;
2045
+ inline-size: 100%;
2046
+ min-block-size: clamp(22rem, 56cqi, 34rem);
2047
+ object-fit: cover;
2048
+ }
2049
+
2050
+ [data-roottale-tpl="concerns"] :where(.rt-tpl-concerns-hotspot) {
2051
+ position: absolute;
2052
+ transform: translate(-50%, -50%);
2053
+ display: inline-flex;
2054
+ align-items: center;
2055
+ justify-content: center;
2056
+ min-inline-size: 2rem;
2057
+ min-block-size: 2rem;
2058
+ padding: 0.375rem 0.75rem;
2059
+ border: 1px solid var(--rt-color-primary);
2060
+ border-radius: 999px;
2061
+ background: color-mix(
2062
+ in srgb,
2063
+ var(--rt-color-background) 88%,
2064
+ transparent
2065
+ );
2066
+ color: var(--rt-color-primary);
2067
+ font-size: 0.8125rem;
2068
+ font-weight: 800;
2069
+ cursor: pointer;
2070
+ backdrop-filter: blur(8px);
2071
+ }
2072
+
2073
+ [data-roottale-tpl="concerns"] :where(.rt-tpl-concerns-hotspot[data-active="true"]) {
2074
+ background: var(--rt-color-primary);
2075
+ color: var(--rt-color-primary-foreground);
2076
+ }
2077
+
2078
+ [data-roottale-tpl="concerns"] :where(.rt-tpl-concerns-side) {
2079
+ display: grid;
2080
+ gap: 1rem;
2081
+ }
2082
+
2083
+ [data-roottale-tpl="concerns"] :where(.rt-tpl-concerns-button-list) {
2084
+ display: flex;
2085
+ flex-wrap: wrap;
2086
+ gap: 0.5rem;
2087
+ }
2088
+
2089
+ [data-roottale-tpl="concerns"] :where(.rt-tpl-concerns-list-button) {
2090
+ min-block-size: 2rem;
2091
+ padding-inline: 0.875rem;
2092
+ border: 1px solid var(--rt-color-border);
2093
+ border-radius: 999px;
2094
+ background: var(--rt-color-background);
2095
+ color: var(--rt-color-foreground);
2096
+ font-size: 0.875rem;
2097
+ font-weight: 800;
2098
+ cursor: pointer;
2099
+ }
2100
+
2101
+ [data-roottale-tpl="concerns"] :where(.rt-tpl-concerns-list-button[data-active="true"]) {
2102
+ border-color: var(--rt-color-primary);
2103
+ color: var(--rt-color-primary);
2104
+ }
2105
+
2106
+ [data-roottale-tpl="concerns"] :where(.rt-tpl-concerns-panel),
2107
+ [data-roottale-tpl="concerns"] :where(.rt-tpl-concerns-card) {
2108
+ display: grid;
2109
+ gap: 0.875rem;
2110
+ padding: clamp(1.25rem, 4cqi, 1.75rem);
2111
+ border: 1px solid var(--rt-color-border);
2112
+ border-radius: var(--rt-radius-md, 0.5rem);
2113
+ background: var(--rt-color-background);
2114
+ }
2115
+
2116
+ [data-roottale-tpl="concerns"] :where(.rt-tpl-concerns-label) {
2117
+ margin: 0;
2118
+ color: var(--rt-color-primary);
2119
+ font-size: 0.8125rem;
2120
+ font-weight: 800;
2121
+ }
2122
+
2123
+ [data-roottale-tpl="concerns"] :where(.rt-tpl-concerns-title) {
2124
+ margin: 0;
2125
+ font-family: var(--rt-font-display, var(--rt-font-body, system-ui, sans-serif));
2126
+ font-size: clamp(1.25rem, 3.4cqi, 1.625rem);
2127
+ font-weight: 800;
2128
+ line-height: 1.3;
2129
+ word-break: keep-all;
2130
+ }
2131
+
2132
+ [data-roottale-tpl="concerns"] :where(.rt-tpl-concerns-desc) {
2133
+ margin: 0;
2134
+ color: var(--rt-color-muted-foreground);
2135
+ line-height: 1.7;
2136
+ word-break: keep-all;
2137
+ }
2138
+
2139
+ [data-roottale-tpl="concerns"] :where(.rt-tpl-concerns-items) {
2140
+ display: grid;
2141
+ gap: 0.5rem;
2142
+ padding-inline-start: 1.25rem;
2143
+ margin: 0;
2144
+ color: var(--rt-color-muted-foreground);
2145
+ font-size: 0.9375rem;
2146
+ }
2147
+
2148
+ [data-roottale-tpl="concerns"] :where(.rt-tpl-concerns-list) {
2149
+ display: grid;
2150
+ grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
2151
+ gap: 1rem;
2152
+ padding: 0;
2153
+ margin: 0;
2154
+ list-style: none;
2155
+ }
2156
+
2157
+ /* ── placeholder (admin preview 의 customSections skeleton) ──────────────── */
2158
+
2159
+ [data-roottale-tpl] :where(.rt-tpl-placeholder-box) {
2160
+ border: 2px dashed var(--rt-color-border, #dceef3);
2161
+ border-radius: var(--rt-radius-md, 0.5rem);
2162
+ padding: 2.5rem;
2163
+ text-align: center;
2164
+ color: var(--rt-color-muted-foreground, #6e6e6e);
2165
+ font-family: ui-monospace, monospace;
2166
+ font-size: 0.875rem;
2167
+ }
2168
+
2169
+ /* ── hero: carousel (ADR-0073 K3 C1) ─────────────────────────────────────────
2170
+ * 별도 섹션에 둔다 — 위 legacy 5종/trust/contact CSS 는 트러스트 회귀 테스트가
2171
+ * "@media 금지 + hex 리터럴 금지"를 강제하는 영역이라(`trust-contact.test.tsx`),
2172
+ * `prefers-reduced-motion` 미디어쿼리가 필요한 이 variant 는 그 계약 밖에
2173
+ * 둬야 두 계약이 충돌하지 않는다. 풀스크린은 컨테이너 쿼리 대신 `svh` 사용
2174
+ * (이 리포에 아직 block-axis(`cqb`/`container-type: size`) 컨벤션이 없음 —
2175
+ * S2 의 inline-axis(`cqi`) 컨벤션과는 다른 축이라 그대로 확장할 수 없다.
2176
+ * ds-rule-pack.md 에 명시된 편차). */
2177
+
2178
+ [data-roottale-tpl="hero"][data-variant="carousel"] {
2179
+ position: relative;
2180
+ container-type: inline-size;
2181
+ padding-block: 0;
2182
+ overflow: hidden;
2183
+ /* 고정 100svh — `min-block-size` 였다면 절대배치 아닌 자손(과거 컨트롤 바)이
2184
+ * grid auto-row 를 밀어 첫 화면보다 커질 수 있다. 자손은 전부
2185
+ * absolute/inset 로 이 고정 박스 안에서만 움직인다. */
2186
+ block-size: 100svh;
2187
+ block-size: var(--rt-hero-carousel-height, 100svh);
2188
+ display: grid;
2189
+ }
2190
+
2191
+ [data-roottale-tpl="hero"][data-variant="carousel"] :where(.rt-tpl-hero-carousel),
2192
+ [data-roottale-tpl="hero"][data-variant="carousel"] :where(.rt-tpl-hero-carousel-overlay) {
2193
+ grid-area: 1 / 1;
2194
+ }
2195
+
2196
+ [data-roottale-tpl="hero"][data-variant="carousel"] :where(.rt-tpl-hero-carousel) {
2197
+ position: relative;
2198
+ inline-size: 100%;
2199
+ block-size: 100%;
2200
+ overflow: hidden;
2201
+ }
2202
+
2203
+ [data-roottale-tpl="hero"][data-variant="carousel"]
2204
+ :where(.rt-tpl-hero-carousel-viewport) {
2205
+ overflow: hidden;
2206
+ inline-size: 100%;
2207
+ block-size: 100%;
2208
+ }
2209
+
2210
+ [data-roottale-tpl="hero"][data-variant="carousel"]
2211
+ :where(.rt-tpl-hero-carousel-track) {
2212
+ display: flex;
2213
+ inline-size: 100%;
2214
+ block-size: 100%;
2215
+ }
2216
+
2217
+ [data-roottale-tpl="hero"][data-variant="carousel"]
2218
+ :where(.rt-tpl-hero-carousel-slide) {
2219
+ position: relative;
2220
+ flex: 0 0 100%;
2221
+ block-size: 100%;
2222
+ overflow: hidden;
2223
+ }
2224
+
2225
+ [data-roottale-tpl="hero"][data-variant="carousel"]
2226
+ :where(.rt-tpl-hero-carousel-img) {
2227
+ position: absolute;
2228
+ inset: 0;
2229
+ inline-size: 100%;
2230
+ block-size: 100%;
2231
+ object-fit: cover;
2232
+ transform: scale(1);
2233
+ }
2234
+
2235
+ /* Ken Burns — 활성 슬라이드만, reduced-motion 아닐 때만(M5). */
2236
+ @media (prefers-reduced-motion: no-preference) {
2237
+ [data-roottale-tpl="hero"][data-variant="carousel"]
2238
+ :where(.rt-tpl-hero-carousel-img[data-active="true"]) {
2239
+ animation: rt-hero-carousel-kenburns 8s ease-out forwards;
2240
+ }
2241
+ }
2242
+
2243
+ @keyframes rt-hero-carousel-kenburns {
2244
+ from {
2245
+ transform: scale(1);
2246
+ }
2247
+ to {
2248
+ transform: scale(1.05);
2249
+ }
2250
+ }
2251
+
2252
+ /* 오버레이 eyebrow — 스크림 위에서는 테마 primary(잉크/민트)가 아니라 밝은
2253
+ * 전경색이어야 읽힌다(미감 라운드 2 — 민트 eyebrow 소실 실측). */
2254
+ [data-roottale-tpl="hero"][data-variant="carousel"]
2255
+ :where(.rt-tpl-hero-carousel-overlay .rt-tpl-hero-eyebrow) {
2256
+ color: color-mix(in srgb, var(--rt-color-primary-foreground, #ffffff) 85%, transparent);
2257
+ font-size: 0.875rem;
2258
+ font-weight: 600;
2259
+ letter-spacing: 0.12em;
2260
+ }
2261
+
2262
+ /* 카피 오버레이 — 슬라이드와 무관하게 고정. 배경 위 대비 확보용 스크림. */
2263
+ [data-roottale-tpl="hero"][data-variant="carousel"]
2264
+ :where(.rt-tpl-hero-carousel-overlay) {
2265
+ position: relative;
2266
+ z-index: 1;
2267
+ align-self: end;
2268
+ inline-size: 100%;
2269
+ padding-block-end: clamp(3rem, 9cqi, 6.5rem);
2270
+ padding-block-start: clamp(7rem, 22cqi, 11rem);
2271
+ /* 스크림 = 중립 잉크(foreground) 기반 — background(흰) 기반이면 안개,
2272
+ * primary(브랜드색 — 민트 테마면 청록) 기반이면 사진이 브랜드색으로 덮인다.
2273
+ * 명암은 중립, 브랜드색은 액센트(CTA·eyebrow)에만(미감 라운드 1~3 실측). */
2274
+ background: linear-gradient(
2275
+ to top,
2276
+ color-mix(in srgb, var(--rt-color-foreground, #06162f) 82%, transparent) 0%,
2277
+ color-mix(in srgb, var(--rt-color-foreground, #06162f) 34%, transparent) 55%,
2278
+ transparent 100%
2279
+ );
2280
+ color: var(--rt-color-primary-foreground, #ffffff);
2281
+ }
2282
+
2283
+ [data-roottale-tpl="hero"][data-variant="carousel"]
2284
+ :where(.rt-tpl-hero-carousel-title) {
2285
+ font-size: clamp(2.625rem, 8.5cqi, 5rem);
2286
+ font-weight: 800;
2287
+ letter-spacing: -0.035em;
2288
+ line-height: 1.08;
2289
+ word-break: keep-all;
2290
+ text-wrap: balance;
2291
+ max-inline-size: 22ch;
2292
+ color: inherit;
2293
+ }
2294
+
2295
+ [data-roottale-tpl="hero"][data-variant="carousel"]
2296
+ :where(.rt-tpl-hero-carousel-subtitle) {
2297
+ font-size: 1.125rem;
2298
+ line-height: 1.7;
2299
+ word-break: keep-all;
2300
+ color: color-mix(in srgb, var(--rt-color-primary-foreground, #ffffff) 88%, transparent);
2301
+ max-inline-size: 40rem;
2302
+ }
2303
+
2304
+ /* 화살표 */
2305
+ [data-roottale-tpl="hero"][data-variant="carousel"]
2306
+ :where(.rt-tpl-hero-carousel-arrow) {
2307
+ position: absolute;
2308
+ z-index: 2;
2309
+ inset-block-start: 50%;
2310
+ transform: translateY(-50%);
2311
+ inline-size: 2.75rem;
2312
+ block-size: 2.75rem;
2313
+ display: inline-flex;
2314
+ align-items: center;
2315
+ justify-content: center;
2316
+ border-radius: 999px;
2317
+ border: 1px solid color-mix(in srgb, var(--rt-color-primary-foreground, #ffffff) 28%, transparent);
2318
+ background: color-mix(in srgb, var(--rt-color-foreground, #06162f) 24%, transparent);
2319
+ backdrop-filter: blur(8px);
2320
+ color: var(--rt-color-primary-foreground, #ffffff);
2321
+ cursor: pointer;
2322
+ transition: background 180ms ease, border-color 180ms ease;
2323
+ }
2324
+
2325
+ [data-roottale-tpl="hero"][data-variant="carousel"]
2326
+ :where(.rt-tpl-hero-carousel-arrow:hover) {
2327
+ background: color-mix(in srgb, var(--rt-color-foreground, #06162f) 48%, transparent);
2328
+ border-color: color-mix(in srgb, var(--rt-color-primary-foreground, #ffffff) 45%, transparent);
2329
+ }
2330
+
2331
+ [data-roottale-tpl="hero"][data-variant="carousel"]
2332
+ :where(.rt-tpl-hero-carousel-arrow svg) {
2333
+ inline-size: 1.25rem;
2334
+ block-size: 1.25rem;
2335
+ }
2336
+
2337
+ [data-roottale-tpl="hero"][data-variant="carousel"]
2338
+ :where(.rt-tpl-hero-carousel-arrow--prev) {
2339
+ inset-inline-start: clamp(1rem, 4cqi, 2.5rem);
2340
+ }
2341
+
2342
+ [data-roottale-tpl="hero"][data-variant="carousel"]
2343
+ :where(.rt-tpl-hero-carousel-arrow--next) {
2344
+ inset-inline-end: clamp(1rem, 4cqi, 2.5rem);
2345
+ }
2346
+
2347
+ /* 도트 + N/M 카운터 — absolute 로 뷰포트 바닥에 고정(일반 flow 에 두면 카피
2348
+ * 오버레이 아래로 페이지 높이가 100svh 를 넘어버린다, VRT 로 실측). */
2349
+ [data-roottale-tpl="hero"][data-variant="carousel"]
2350
+ :where(.rt-tpl-hero-carousel-controls) {
2351
+ position: absolute;
2352
+ z-index: 2;
2353
+ inset-inline: 0;
2354
+ inset-block-end: clamp(1rem, 3cqi, 1.5rem);
2355
+ display: flex;
2356
+ align-items: center;
2357
+ justify-content: space-between;
2358
+ gap: 1rem;
2359
+ max-inline-size: var(--rt-tpl-page-max, 72rem);
2360
+ margin-inline: auto;
2361
+ padding-inline: 1.25rem;
2362
+ }
2363
+
2364
+ [data-roottale-tpl="hero"][data-variant="carousel"]
2365
+ :where(.rt-tpl-hero-carousel-dots) {
2366
+ display: flex;
2367
+ align-items: center;
2368
+ gap: 0.5rem;
2369
+ }
2370
+
2371
+ [data-roottale-tpl="hero"][data-variant="carousel"]
2372
+ :where(.rt-tpl-hero-carousel-dot) {
2373
+ inline-size: 0.5rem;
2374
+ block-size: 0.5rem;
2375
+ border-radius: 999px;
2376
+ border: 0;
2377
+ padding: 0;
2378
+ cursor: pointer;
2379
+ background: color-mix(in srgb, var(--rt-color-primary-foreground, #ffffff) 40%, transparent);
2380
+ transition: inline-size 240ms ease, background 240ms ease;
2381
+ }
2382
+
2383
+ [data-roottale-tpl="hero"][data-variant="carousel"]
2384
+ :where(.rt-tpl-hero-carousel-dot[data-active="true"]) {
2385
+ inline-size: 1.375rem;
2386
+ }
2387
+
2388
+ [data-roottale-tpl="hero"][data-variant="carousel"]
2389
+ :where(.rt-tpl-hero-carousel-dot[data-active="true"]) {
2390
+ background: var(--rt-color-primary-foreground, #ffffff);
2391
+ }
2392
+
2393
+ [data-roottale-tpl="hero"][data-variant="carousel"]
2394
+ :where(.rt-tpl-hero-carousel-counter) {
2395
+ margin: 0;
2396
+ font-variant-numeric: tabular-nums;
2397
+ color: color-mix(in srgb, var(--rt-color-primary-foreground, #ffffff) 92%, transparent);
2398
+ font-size: 0.8125rem;
2399
+ font-weight: 600;
2400
+ letter-spacing: 0.06em;
2401
+ }
2402
+
2403
+ [data-roottale-tpl="hours"],
2404
+ [data-roottale-tpl="pricing"],
2405
+ [data-roottale-tpl="process"] {
2406
+ container-type: inline-size;
2407
+ }
2408
+
2409
+ [data-roottale-tpl] :where(.rt-tpl-practice-header) {
2410
+ max-inline-size: 48rem;
2411
+ }
2412
+
2413
+ [data-roottale-tpl] :where(.rt-tpl-practice-eyebrow) {
2414
+ margin: 0 0 0.75rem;
2415
+ color: var(--rt-color-primary, #06162f);
2416
+ font-size: 0.8125rem;
2417
+ font-weight: 800;
2418
+ letter-spacing: 0.08em;
2419
+ }
2420
+
2421
+ [data-roottale-tpl] :where(.rt-tpl-practice-table-wrap) {
2422
+ overflow-x: auto;
2423
+ border: 1px solid var(--rt-color-border, #dceef3);
2424
+ border-radius: var(--rt-radius-md, 0.5rem);
2425
+ background: var(--rt-color-background, #ffffff);
2426
+ }
2427
+
2428
+ [data-roottale-tpl] :where(.rt-tpl-practice-table) {
2429
+ inline-size: 100%;
2430
+ min-inline-size: 44rem;
2431
+ border-collapse: collapse;
2432
+ font-size: 0.9375rem;
2433
+ }
2434
+
2435
+ [data-roottale-tpl] :where(.rt-tpl-practice-table th),
2436
+ [data-roottale-tpl] :where(.rt-tpl-practice-table td) {
2437
+ padding: 1rem;
2438
+ border-block-end: 1px solid var(--rt-color-border, #dceef3);
2439
+ text-align: start;
2440
+ vertical-align: top;
2441
+ }
2442
+
2443
+ [data-roottale-tpl] :where(.rt-tpl-practice-table thead th) {
2444
+ color: var(--rt-color-muted-foreground, #6e6e6e);
2445
+ font-size: 0.75rem;
2446
+ font-weight: 800;
2447
+ letter-spacing: 0.04em;
2448
+ }
2449
+
2450
+ [data-roottale-tpl] :where(.rt-tpl-practice-primary) {
2451
+ color: var(--rt-color-foreground, #06162f);
2452
+ font-weight: 800;
2453
+ }
2454
+
2455
+ [data-roottale-tpl] :where(.rt-tpl-practice-muted) {
2456
+ color: var(--rt-color-muted-foreground, #6e6e6e);
2457
+ }
2458
+
2459
+ [data-roottale-tpl] :where(.rt-tpl-practice-table-note td) {
2460
+ color: var(--rt-color-muted-foreground, #6e6e6e);
2461
+ background: color-mix(
2462
+ in srgb,
2463
+ var(--rt-color-primary, #06162f) 4%,
2464
+ var(--rt-color-background, #ffffff)
2465
+ );
2466
+ }
2467
+
2468
+ [data-roottale-tpl] :where(.rt-tpl-practice-badges) {
2469
+ display: flex;
2470
+ flex-wrap: wrap;
2471
+ gap: 0.375rem;
2472
+ }
2473
+
2474
+ [data-roottale-tpl] :where(.rt-tpl-practice-badge) {
2475
+ display: inline-flex;
2476
+ align-items: center;
2477
+ min-block-size: 1.5rem;
2478
+ padding-inline: 0.625rem;
2479
+ border: 1px solid var(--rt-color-border, #dceef3);
2480
+ border-radius: 999px;
2481
+ color: var(--rt-color-muted-foreground, #6e6e6e);
2482
+ font-size: 0.75rem;
2483
+ font-weight: 700;
2484
+ background: var(--rt-color-background, #ffffff);
2485
+ }
2486
+
2487
+ [data-roottale-tpl] :where(.rt-tpl-practice-note),
2488
+ [data-roottale-tpl] :where(.rt-tpl-practice-disclaimer) {
2489
+ margin-block: 1rem 0;
2490
+ color: var(--rt-color-muted-foreground, #6e6e6e);
2491
+ font-size: 0.875rem;
2492
+ line-height: 1.65;
2493
+ }
2494
+
2495
+ [data-roottale-tpl] :where(.rt-tpl-practice-disclaimer) {
2496
+ padding: 1rem;
2497
+ border-inline-start: 3px solid var(--rt-color-border, #dceef3);
2498
+ background: color-mix(
2499
+ in srgb,
2500
+ var(--rt-color-primary, #06162f) 3%,
2501
+ var(--rt-color-background, #ffffff)
2502
+ );
2503
+ }
2504
+
2505
+ [data-roottale-tpl="hours"][data-variant="compact"]
2506
+ :where(.rt-tpl-hours-compact-list) {
2507
+ display: grid;
2508
+ gap: 0;
2509
+ margin: 0;
2510
+ border-block-start: 1px solid var(--rt-color-border, #dceef3);
2511
+ }
2512
+
2513
+ [data-roottale-tpl="hours"][data-variant="compact"]
2514
+ :where(.rt-tpl-hours-compact-row) {
2515
+ display: grid;
2516
+ gap: 0.75rem;
2517
+ padding-block: 1rem;
2518
+ border-block-end: 1px solid var(--rt-color-border, #dceef3);
2519
+ }
2520
+
2521
+ @container (min-width: 38rem) {
2522
+ [data-roottale-tpl="hours"][data-variant="compact"]
2523
+ :where(.rt-tpl-hours-compact-row) {
2524
+ grid-template-columns: 10rem minmax(0, 1fr);
2525
+ }
2526
+ }
2527
+
2528
+ [data-roottale-tpl="hours"][data-variant="compact"]
2529
+ :where(.rt-tpl-hours-compact-day) {
2530
+ font-weight: 800;
2531
+ }
2532
+
2533
+ [data-roottale-tpl="hours"][data-variant="compact"]
2534
+ :where(.rt-tpl-hours-compact-body) {
2535
+ display: flex;
2536
+ flex-wrap: wrap;
2537
+ gap: 0.5rem 1rem;
2538
+ margin: 0;
2539
+ }
2540
+
2541
+ [data-roottale-tpl] :where(.rt-tpl-hours-time) {
2542
+ font-weight: 700;
2543
+ font-variant-numeric: tabular-nums;
2544
+ }
2545
+
2546
+ [data-roottale-tpl] :where(.rt-tpl-hours-muted) {
2547
+ color: var(--rt-color-muted-foreground, #6e6e6e);
2548
+ }
2549
+
2550
+ [data-roottale-tpl="pricing"] :where(.rt-tpl-pricing-group-row td) {
2551
+ color: var(--rt-color-primary, #06162f);
2552
+ font-weight: 800;
2553
+ background: color-mix(
2554
+ in srgb,
2555
+ var(--rt-color-primary, #06162f) 5%,
2556
+ var(--rt-color-background, #ffffff)
2557
+ );
2558
+ }
2559
+
2560
+ [data-roottale-tpl="pricing"] :where(.rt-tpl-pricing-price) {
2561
+ color: var(--rt-color-foreground, #06162f);
2562
+ font-weight: 800;
2563
+ font-variant-numeric: tabular-nums;
2564
+ }
2565
+
2566
+ [data-roottale-tpl="pricing"][data-variant="cards"]
2567
+ :where(.rt-tpl-pricing-card-groups) {
2568
+ display: grid;
2569
+ gap: clamp(1.5rem, 4cqi, 2rem);
2570
+ }
2571
+
2572
+ [data-roottale-tpl="pricing"][data-variant="cards"]
2573
+ :where(.rt-tpl-pricing-group-title) {
2574
+ margin: 0 0 0.75rem;
2575
+ color: var(--rt-color-primary, #06162f);
2576
+ font-family: var(--rt-font-display, var(--rt-font-body, system-ui, sans-serif));
2577
+ font-size: 1rem;
2578
+ font-weight: 800;
2579
+ }
2580
+
2581
+ [data-roottale-tpl="pricing"][data-variant="cards"]
2582
+ :where(.rt-tpl-pricing-card-list) {
2583
+ display: grid;
2584
+ grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
2585
+ gap: 1rem;
2586
+ padding: 0;
2587
+ margin: 0;
2588
+ list-style: none;
2589
+ }
2590
+
2591
+ [data-roottale-tpl="pricing"][data-variant="cards"]
2592
+ :where(.rt-tpl-pricing-card) {
2593
+ display: grid;
2594
+ gap: 1rem;
2595
+ align-content: start;
2596
+ padding: 1.25rem;
2597
+ border: 1px solid var(--rt-color-border, #dceef3);
2598
+ border-radius: var(--rt-radius-md, 0.5rem);
2599
+ background: var(--rt-color-background, #ffffff);
2600
+ }
2601
+
2602
+ [data-roottale-tpl="pricing"] :where(.rt-tpl-pricing-name) {
2603
+ margin: 0 0 0.375rem;
2604
+ font-family: var(--rt-font-display, var(--rt-font-body, system-ui, sans-serif));
2605
+ font-size: 1.0625rem;
2606
+ font-weight: 800;
2607
+ }
2608
+
2609
+ [data-roottale-tpl="pricing"] :where(.rt-tpl-pricing-desc),
2610
+ [data-roottale-tpl="pricing"] :where(.rt-tpl-pricing-condition) {
2611
+ margin: 0;
2612
+ color: var(--rt-color-muted-foreground, #6e6e6e);
2613
+ line-height: 1.6;
2614
+ }
2615
+
2616
+ [data-roottale-tpl="process"] :where(.rt-tpl-process-list) {
2617
+ display: grid;
2618
+ gap: 1rem;
2619
+ padding: 0;
2620
+ margin: 0;
2621
+ list-style: none;
2622
+ }
2623
+
2624
+ @container (min-width: 48rem) {
2625
+ [data-roottale-tpl="process"][data-variant="horizontal"]
2626
+ :where(.rt-tpl-process-list) {
2627
+ grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
2628
+ }
2629
+ }
2630
+
2631
+ [data-roottale-tpl="process"][data-variant="vertical"]
2632
+ :where(.rt-tpl-process-list) {
2633
+ max-inline-size: 48rem;
2634
+ gap: 0;
2635
+ border-block-start: 1px solid var(--rt-color-border, #dceef3);
2636
+ }
2637
+
2638
+ [data-roottale-tpl="process"] :where(.rt-tpl-process-item) {
2639
+ position: relative;
2640
+ }
2641
+
2642
+ [data-roottale-tpl="process"] :where(.rt-tpl-process-content) {
2643
+ display: grid;
2644
+ gap: 0.625rem;
2645
+ padding: 1.25rem;
2646
+ border: 1px solid var(--rt-color-border, #dceef3);
2647
+ border-radius: var(--rt-radius-md, 0.5rem);
2648
+ background: var(--rt-color-background, #ffffff);
2649
+ }
2650
+
2651
+ [data-roottale-tpl="process"][data-variant="vertical"]
2652
+ :where(.rt-tpl-process-content) {
2653
+ border: 0;
2654
+ border-block-end: 1px solid var(--rt-color-border, #dceef3);
2655
+ border-radius: 0;
2656
+ padding-inline: 0;
2657
+ }
2658
+
2659
+ [data-roottale-tpl="process"] :where(.rt-tpl-process-step) {
2660
+ margin: 0;
2661
+ color: var(--rt-color-muted-foreground, #6e6e6e);
2662
+ font-size: 0.75rem;
2663
+ font-weight: 800;
2664
+ letter-spacing: 0.06em;
2665
+ text-transform: uppercase;
2666
+ }
2667
+
2668
+ [data-roottale-tpl="process"] :where(.rt-tpl-process-title) {
2669
+ margin: 0;
2670
+ font-family: var(--rt-font-display, var(--rt-font-body, system-ui, sans-serif));
2671
+ font-size: 1.125rem;
2672
+ font-weight: 800;
2673
+ line-height: 1.4;
2674
+ }
2675
+
2676
+ [data-roottale-tpl="process"] :where(.rt-tpl-process-desc),
2677
+ [data-roottale-tpl="process"] :where(.rt-tpl-process-duration) {
2678
+ margin: 0;
2679
+ color: var(--rt-color-muted-foreground, #6e6e6e);
2680
+ line-height: 1.65;
2681
+ }
2682
+
2683
+ [data-roottale-tpl="process"] :where(.rt-tpl-process-duration) {
2684
+ font-size: 0.875rem;
2685
+ font-variant-numeric: tabular-nums;
2686
+ }
2687
+
2688
+ [data-roottale-tpl="process"][data-variant="timeline-marked"]
2689
+ :where(.rt-tpl-process-marked-list) {
2690
+ display: grid;
2691
+ gap: var(--space-4);
2692
+ padding: 0;
2693
+ margin: 0;
2694
+ list-style: none;
2695
+ }
2696
+
2697
+ @container (min-width: 50rem) {
2698
+ [data-roottale-tpl="process"][data-variant="timeline-marked"]
2699
+ :where(.rt-tpl-process-marked-list) {
2700
+ grid-template-columns: repeat(3, minmax(0, 1fr));
2701
+ }
2702
+ }
2703
+
2704
+ [data-roottale-tpl="process"][data-variant="timeline-marked"]
2705
+ :where(.rt-tpl-process-marked-item) {
2706
+ position: relative;
2707
+ min-inline-size: 0;
2708
+ }
2709
+
2710
+ @container (min-width: 50rem) {
2711
+ [data-roottale-tpl="process"][data-variant="timeline-marked"]
2712
+ :where(.rt-tpl-process-marked-item:not(:last-child))::after {
2713
+ content: "";
2714
+ position: absolute;
2715
+ inset-block-start: calc(50% - 1px);
2716
+ inset-inline-start: calc(100% + 0.1rem);
2717
+ inline-size: calc(var(--space-4) - 0.2rem);
2718
+ block-size: 2px;
2719
+ background:
2720
+ linear-gradient(90deg, var(--border) 50%, transparent 0) 0 / 0.5rem 2px
2721
+ repeat-x;
2722
+ }
2723
+ }
2724
+
2725
+ [data-roottale-tpl="process"][data-variant="timeline-marked"]
2726
+ :where(.rt-tpl-process-marked-card) {
2727
+ display: grid;
2728
+ grid-template-columns: auto minmax(0, 1fr);
2729
+ gap: var(--space-4);
2730
+ min-block-size: 8.5rem;
2731
+ padding: clamp(1rem, 3cqi, 1.35rem);
2732
+ border: 1px solid var(--border);
2733
+ border-radius: var(--rt-radius-md, 0.5rem);
2734
+ background: var(--card);
2735
+ box-shadow: 0 16px 36px rgb(17 24 39 / 0.045);
2736
+ }
2737
+
2738
+ [data-roottale-tpl="process"][data-variant="timeline-marked"]
2739
+ :where(.rt-tpl-process-marked-icon) {
2740
+ display: grid;
2741
+ place-items: center;
2742
+ inline-size: 3.5rem;
2743
+ block-size: 3.5rem;
2744
+ border-radius: 999px;
2745
+ background: color-mix(in srgb, var(--primary) 9%, var(--muted));
2746
+ }
2747
+
2748
+ [data-roottale-tpl="process"][data-variant="timeline-marked"]
2749
+ :where(.rt-tpl-process-marked-icon span) {
2750
+ display: grid;
2751
+ place-items: center;
2752
+ inline-size: 1.35rem;
2753
+ block-size: 1.35rem;
2754
+ border-radius: 999px;
2755
+ background: var(--primary);
2756
+ }
2757
+
2758
+ [data-roottale-tpl="process"][data-variant="timeline-marked"]
2759
+ :where(.rt-tpl-process-marked-icon span[data-mark="check"])::before {
2760
+ content: "";
2761
+ inline-size: 0.55rem;
2762
+ block-size: 0.32rem;
2763
+ border-inline-start: 2px solid var(--primary-foreground);
2764
+ border-block-end: 2px solid var(--primary-foreground);
2765
+ transform: rotate(-45deg) translateY(-1px);
2766
+ }
2767
+
2768
+ [data-roottale-tpl="process"][data-variant="timeline-marked"]
2769
+ :where(.rt-tpl-process-marked-icon span[data-mark="dot"])::before {
2770
+ content: "";
2771
+ inline-size: 0.38rem;
2772
+ block-size: 0.38rem;
2773
+ border-radius: 999px;
2774
+ background: var(--primary-foreground);
2775
+ }
2776
+
2777
+ [data-roottale-tpl="process"][data-variant="timeline-marked"]
2778
+ :where(.rt-tpl-process-marked-icon span[data-mark="none"]) {
2779
+ background: transparent;
2780
+ border: 1px solid var(--border);
2781
+ }
2782
+
2783
+ [data-roottale-tpl="process"][data-variant="timeline-marked"]
2784
+ :where(.rt-tpl-process-marked-body) {
2785
+ display: grid;
2786
+ align-content: center;
2787
+ gap: 0.45rem;
2788
+ min-inline-size: 0;
2789
+ }
2790
+
2791
+ [data-roottale-tpl="process"][data-variant="timeline-marked"]
2792
+ :where(.rt-tpl-process-marked-step) {
2793
+ justify-self: start;
2794
+ margin: 0;
2795
+ padding: 0.25rem 0.55rem;
2796
+ border-radius: 999px;
2797
+ background: color-mix(in srgb, var(--primary) 12%, var(--background));
2798
+ color: var(--primary);
2799
+ font-size: var(--font-size-xs);
2800
+ font-weight: var(--font-weight-bold);
2801
+ line-height: 1.2;
2802
+ }
2803
+
2804
+ [data-roottale-tpl="before-after"] :where(.rt-tpl-before-after-slider),
2805
+ [data-roottale-tpl="before-after"] :where(.rt-tpl-before-after-pair) {
2806
+ margin-block-start: 1.5rem;
2807
+ }
2808
+
2809
+ [data-roottale-tpl="before-after"] :where(.rt-tpl-before-after-slider) {
2810
+ overflow: hidden;
2811
+ border: 1px solid var(--rt-color-border, #dceef3);
2812
+ border-radius: var(--rt-radius-md, 0.5rem);
2813
+ background: var(--rt-color-background, #ffffff);
2814
+ touch-action: none;
2815
+ user-select: none;
2816
+ }
2817
+
2818
+ [data-roottale-tpl="before-after"] :where(.rt-tpl-before-after-frame) {
2819
+ position: relative;
2820
+ aspect-ratio: 16 / 9;
2821
+ background: color-mix(
2822
+ in srgb,
2823
+ var(--rt-color-muted, #eef7f9) 84%,
2824
+ var(--rt-color-background, #ffffff)
2825
+ );
2826
+ }
2827
+
2828
+ [data-roottale-tpl="before-after"] :where(.rt-tpl-before-after-img) {
2829
+ display: block;
2830
+ inline-size: 100%;
2831
+ block-size: 100%;
2832
+ object-fit: cover;
2833
+ }
2834
+
2835
+ [data-roottale-tpl="before-after"]
2836
+ :where(.rt-tpl-before-after-slider .rt-tpl-before-after-img) {
2837
+ position: absolute;
2838
+ inset: 0;
2839
+ }
2840
+
2841
+ [data-roottale-tpl="before-after"] :where(.rt-tpl-before-after-img--before) {
2842
+ overflow: hidden;
2843
+ }
2844
+
2845
+ [data-roottale-tpl="before-after"] :where(.rt-tpl-before-after-handle) {
2846
+ position: absolute;
2847
+ inset-block: 0;
2848
+ display: grid;
2849
+ inline-size: 2.75rem;
2850
+ margin-inline-start: -1.375rem;
2851
+ place-items: center;
2852
+ color: var(--rt-color-primary-foreground, #ffffff);
2853
+ cursor: ew-resize;
2854
+ }
2855
+
2856
+ [data-roottale-tpl="before-after"] :where(.rt-tpl-before-after-handle)::before {
2857
+ position: absolute;
2858
+ inset-block: 0;
2859
+ inline-size: 1px;
2860
+ background: var(--rt-color-primary, #06162f);
2861
+ content: "";
2862
+ }
2863
+
2864
+ [data-roottale-tpl="before-after"] :where(.rt-tpl-before-after-thumb) {
2865
+ position: relative;
2866
+ z-index: 1;
2867
+ display: block;
2868
+ inline-size: 2.75rem;
2869
+ block-size: 2.75rem;
2870
+ border: 1px solid var(--rt-color-primary, #06162f);
2871
+ border-radius: 999px;
2872
+ background: var(--rt-color-primary, #06162f);
2873
+ box-shadow: 0 10px 24px
2874
+ color-mix(in srgb, var(--rt-color-foreground, #06162f) 20%, transparent);
2875
+ }
2876
+
2877
+ [data-roottale-tpl="before-after"] :where(.rt-tpl-before-after-thumb)::before,
2878
+ [data-roottale-tpl="before-after"] :where(.rt-tpl-before-after-thumb)::after {
2879
+ position: absolute;
2880
+ inset-block-start: 50%;
2881
+ inline-size: 0.45rem;
2882
+ block-size: 0.45rem;
2883
+ border-block-start: 1.5px solid currentColor;
2884
+ border-inline-start: 1.5px solid currentColor;
2885
+ content: "";
2886
+ }
2887
+
2888
+ [data-roottale-tpl="before-after"] :where(.rt-tpl-before-after-thumb)::before {
2889
+ inset-inline-start: 0.8rem;
2890
+ transform: translateY(-50%) rotate(-45deg);
2891
+ }
2892
+
2893
+ [data-roottale-tpl="before-after"] :where(.rt-tpl-before-after-thumb)::after {
2894
+ inset-inline-end: 0.8rem;
2895
+ transform: translateY(-50%) rotate(135deg);
2896
+ }
2897
+
2898
+ [data-roottale-tpl="before-after"]
2899
+ :where(.rt-tpl-before-after-handle:focus-visible .rt-tpl-before-after-thumb) {
2900
+ outline: 2px solid var(--rt-color-ring, var(--rt-color-primary, #06162f));
2901
+ outline-offset: 3px;
2902
+ }
2903
+
2904
+ [data-roottale-tpl="before-after"] :where(.rt-tpl-before-after-labels) {
2905
+ position: absolute;
2906
+ inset: 1rem;
2907
+ display: flex;
2908
+ align-items: flex-start;
2909
+ justify-content: space-between;
2910
+ gap: 0.75rem;
2911
+ pointer-events: none;
2912
+ }
2913
+
2914
+ [data-roottale-tpl="before-after"] :where(.rt-tpl-before-after-label),
2915
+ [data-roottale-tpl="before-after"] :where(.rt-tpl-before-after-caption) {
2916
+ border: 1px solid
2917
+ color-mix(in srgb, var(--rt-color-background, #ffffff) 26%, transparent);
2918
+ border-radius: var(--rt-radius-sm, 0.375rem);
2919
+ background: color-mix(
2920
+ in srgb,
2921
+ var(--rt-color-foreground, #06162f) 68%,
2922
+ transparent
2923
+ );
2924
+ color: var(--rt-color-primary-foreground, #ffffff);
2925
+ font-size: 0.8125rem;
2926
+ font-weight: 700;
2927
+ line-height: 1.3;
2928
+ word-break: keep-all;
2929
+ }
2930
+
2931
+ [data-roottale-tpl="before-after"] :where(.rt-tpl-before-after-label) {
2932
+ max-inline-size: min(45%, 16rem);
2933
+ padding: 0.5rem 0.75rem;
2934
+ }
2935
+
2936
+ [data-roottale-tpl="before-after"] :where(.rt-tpl-before-after-pair) {
2937
+ display: grid;
2938
+ grid-template-columns: repeat(2, minmax(0, 1fr));
2939
+ gap: 1rem;
2940
+ }
2941
+
2942
+ [data-roottale-tpl="before-after"] :where(.rt-tpl-before-after-figure) {
2943
+ position: relative;
2944
+ overflow: hidden;
2945
+ aspect-ratio: 16 / 9;
2946
+ margin: 0;
2947
+ border: 1px solid var(--rt-color-border, #dceef3);
2948
+ border-radius: var(--rt-radius-md, 0.5rem);
2949
+ background: var(--rt-color-background, #ffffff);
2950
+ }
2951
+
2952
+ [data-roottale-tpl="before-after"] :where(.rt-tpl-before-after-caption) {
2953
+ position: absolute;
2954
+ inset-block-start: 0.75rem;
2955
+ inset-inline-start: 0.75rem;
2956
+ padding: 0.45rem 0.65rem;
2957
+ }
2958
+
2959
+ @container (max-width: 42rem) {
2960
+ [data-roottale-tpl="before-after"] :where(.rt-tpl-before-after-pair) {
2961
+ grid-template-columns: 1fr;
2962
+ }
2963
+
2964
+ [data-roottale-tpl="before-after"] :where(.rt-tpl-before-after-labels) {
2965
+ inset: 0.625rem;
2966
+ }
2967
+ }
2968
+
2969
+ [data-roottale-tpl="hero"] :where(.rt-tpl-hero-proof) {
2970
+ display: flex;
2971
+ flex-wrap: wrap;
2972
+ gap: 0.625rem;
2973
+ margin-block-start: 1rem;
2974
+ }
2975
+
2976
+ [data-roottale-tpl="hero"] :where(.rt-tpl-hero-proof-item) {
2977
+ display: grid;
2978
+ grid-template-columns: auto 1fr;
2979
+ gap: 0.125rem 0.5rem;
2980
+ min-inline-size: 8rem;
2981
+ padding: 0.7rem 0.85rem;
2982
+ border: 1px solid var(--rt-color-border);
2983
+ border-radius: var(--rt-radius-md);
2984
+ background: color-mix(in srgb, var(--rt-color-background) 86%, transparent);
2985
+ }
2986
+
2987
+ [data-roottale-tpl="hero"] :where(.rt-tpl-hero-proof-icon) {
2988
+ grid-row: span 3;
2989
+ inline-size: 1.5rem;
2990
+ block-size: 1.5rem;
2991
+ object-fit: contain;
2992
+ }
2993
+
2994
+ [data-roottale-tpl="hero"] :where(.rt-tpl-hero-proof-value) {
2995
+ font-variant-numeric: tabular-nums;
2996
+ font-weight: 800;
2997
+ }
2998
+
2999
+ [data-roottale-tpl="hero"] :where(.rt-tpl-hero-proof-label),
3000
+ [data-roottale-tpl="hero"] :where(.rt-tpl-hero-proof-source) {
3001
+ color: var(--rt-color-muted-foreground);
3002
+ font-size: 0.78rem;
3003
+ line-height: 1.3;
3004
+ }
3005
+
3006
+ [data-roottale-tpl="hero"][data-variant="carousel"]
3007
+ :where(.rt-tpl-hero-carousel-slide-panel) {
3008
+ position: absolute;
3009
+ z-index: 2;
3010
+ inset-inline-end: clamp(1rem, 4cqi, 4rem);
3011
+ inset-block-end: clamp(5.5rem, 9cqi, 8rem);
3012
+ display: grid;
3013
+ gap: 0.55rem;
3014
+ max-inline-size: min(28rem, 88cqi);
3015
+ padding: clamp(1rem, 2.5cqi, 1.5rem);
3016
+ border: 1px solid color-mix(in srgb, var(--rt-color-background) 22%, transparent);
3017
+ border-radius: var(--rt-radius-lg);
3018
+ background: color-mix(in srgb, var(--rt-color-foreground) 58%, transparent);
3019
+ color: var(--rt-color-primary-foreground);
3020
+ }
3021
+
3022
+ [data-roottale-tpl="hero"][data-variant="carousel"]
3023
+ :where(.rt-tpl-hero-carousel-slide-title) {
3024
+ margin: 0;
3025
+ font-size: clamp(1.1rem, 3cqi, 1.7rem);
3026
+ font-weight: 800;
3027
+ line-height: 1.2;
3028
+ }
3029
+
3030
+ [data-roottale-tpl="hero"][data-variant="carousel"]
3031
+ :where(.rt-tpl-hero-carousel-slide-eyebrow, .rt-tpl-hero-carousel-slide-subtitle, .rt-tpl-hero-carousel-slide-desc) {
3032
+ margin: 0;
3033
+ line-height: 1.45;
3034
+ }
3035
+
3036
+ [data-roottale-tpl="hero"][data-variant="carousel"]
3037
+ :where(.rt-tpl-hero-carousel-slide-metrics) {
3038
+ display: grid;
3039
+ grid-template-columns: repeat(auto-fit, minmax(6rem, 1fr));
3040
+ gap: 0.5rem;
3041
+ margin: 0;
3042
+ }
3043
+
3044
+ [data-roottale-tpl="hero"][data-variant="carousel"]
3045
+ :where(.rt-tpl-hero-carousel-slide-metrics div) {
3046
+ padding: 0.55rem;
3047
+ border: 1px solid color-mix(in srgb, currentColor 18%, transparent);
3048
+ border-radius: var(--rt-radius-sm);
3049
+ }
3050
+
3051
+ [data-roottale-tpl="hero"][data-variant="carousel"]
3052
+ :where(.rt-tpl-hero-carousel-slide-metrics dt) {
3053
+ color: color-mix(in srgb, currentColor 72%, transparent);
3054
+ font-size: 0.72rem;
3055
+ }
3056
+
3057
+ [data-roottale-tpl="hero"][data-variant="carousel"]
3058
+ :where(.rt-tpl-hero-carousel-slide-metrics dd) {
3059
+ margin: 0;
3060
+ font-weight: 800;
3061
+ }
3062
+
3063
+ [data-roottale-tpl="hero"][data-variant="carousel"]
3064
+ :where(.rt-tpl-hero-carousel-slide-actions) {
3065
+ display: flex;
3066
+ flex-wrap: wrap;
3067
+ gap: 0.5rem;
3068
+ }
3069
+
3070
+ [data-roottale-tpl="hero"][data-variant="carousel"]
3071
+ :where(.rt-tpl-hero-carousel-dots--tabs) {
3072
+ gap: 0.4rem;
3073
+ }
3074
+
3075
+ [data-roottale-tpl="hero"][data-variant="carousel"]
3076
+ :where(.rt-tpl-hero-carousel-dots--tabs .rt-tpl-hero-carousel-dot) {
3077
+ inline-size: auto;
3078
+ block-size: auto;
3079
+ min-inline-size: 4rem;
3080
+ padding: 0.45rem 0.6rem;
3081
+ border-radius: var(--rt-radius-sm);
3082
+ }
3083
+
3084
+ [data-roottale-tpl="hero"][data-variant="carousel"]
3085
+ :where(.rt-tpl-hero-carousel-dot span, .rt-tpl-hero-carousel-dot small) {
3086
+ display: block;
3087
+ line-height: 1.2;
3088
+ }
3089
+
3090
+ [data-roottale-tpl="services"] :where(.rt-tpl-services-icon) {
3091
+ inline-size: 2rem;
3092
+ block-size: 2rem;
3093
+ object-fit: contain;
3094
+ }
3095
+
3096
+ [data-roottale-tpl="services"] :where(.rt-tpl-services-subtitle) {
3097
+ margin: 0;
3098
+ color: var(--rt-color-muted-foreground);
3099
+ font-size: 0.88rem;
3100
+ font-weight: 700;
3101
+ }
3102
+
3103
+ [data-roottale-tpl="services"] :where(.rt-tpl-services-chips),
3104
+ [data-roottale-tpl="services"] :where(.rt-tpl-services-meta) {
3105
+ display: flex;
3106
+ flex-wrap: wrap;
3107
+ gap: 0.35rem;
3108
+ padding: 0;
3109
+ margin: 0.65rem 0 0;
3110
+ list-style: none;
3111
+ }
386
3112
 
387
- [data-roottale-tpl="contact"][data-variant="split"]
388
- :where(.rt-tpl-contact-inner) {
389
- grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
390
- }
3113
+ [data-roottale-tpl="services"] :where(.rt-tpl-services-chips li) {
3114
+ padding: 0.2rem 0.45rem;
3115
+ border: 1px solid var(--rt-color-border);
3116
+ border-radius: 999px;
3117
+ color: var(--rt-color-primary);
3118
+ font-size: 0.75rem;
3119
+ font-weight: 700;
391
3120
  }
392
3121
 
393
- [data-roottale-tpl="contact"] :where(.rt-tpl-contact-info) {
3122
+ [data-roottale-tpl="services"] :where(.rt-tpl-services-meta li) {
3123
+ color: var(--rt-color-muted-foreground);
3124
+ font-size: 0.78rem;
3125
+ }
3126
+
3127
+ [data-roottale-tpl="services"] :where(.rt-tpl-services-action-label) {
3128
+ display: inline-block;
3129
+ margin-block-start: 0.65rem;
3130
+ color: var(--rt-color-primary);
3131
+ font-size: 0.82rem;
3132
+ font-weight: 800;
3133
+ }
3134
+
3135
+ [data-roottale-tpl="services"] :where(.rt-tpl-services-action-rail) {
394
3136
  display: grid;
395
- gap: var(--space-4);
3137
+ grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
3138
+ gap: 0.75rem;
3139
+ padding: 0;
3140
+ margin: 1.25rem 0 0;
3141
+ list-style: none;
396
3142
  }
397
3143
 
398
- [data-roottale-tpl="contact"] :where(.rt-tpl-contact-phone) {
3144
+ [data-roottale-tpl="services"] :where(.rt-tpl-services-action-card) {
3145
+ display: grid;
3146
+ gap: 0.65rem;
3147
+ block-size: 100%;
3148
+ padding: 1rem;
3149
+ border: 1px solid var(--rt-color-border);
3150
+ border-radius: var(--rt-radius-md);
3151
+ background: var(--rt-color-background);
3152
+ color: inherit;
3153
+ text-decoration: none;
3154
+ }
3155
+
3156
+ [data-roottale-tpl="faq"] :where(.rt-tpl-faq-q small) {
3157
+ display: block;
3158
+ margin-block-start: 0.25rem;
3159
+ color: var(--rt-color-muted-foreground);
3160
+ font-size: 0.8rem;
3161
+ font-weight: 600;
3162
+ }
3163
+
3164
+ [data-roottale-tpl="faq"] :where(.rt-tpl-faq-content-groups) {
3165
+ display: grid;
3166
+ gap: 1.25rem;
3167
+ }
3168
+
3169
+ [data-roottale-tpl="faq"] :where(.rt-tpl-faq-content-body) {
3170
+ display: grid;
3171
+ gap: 0.65rem;
3172
+ }
3173
+
3174
+ [data-roottale-tpl="faq"] :where(.rt-tpl-faq-content-body p) {
3175
+ margin: 0;
3176
+ }
3177
+
3178
+ [data-roottale-tpl="faq"] :where(.rt-tpl-faq-content-signs) {
3179
+ display: flex;
3180
+ flex-wrap: wrap;
3181
+ gap: 0.35rem;
3182
+ padding: 0;
3183
+ margin: 0;
3184
+ list-style: none;
3185
+ }
3186
+
3187
+ [data-roottale-tpl="faq"] :where(.rt-tpl-faq-content-signs li) {
3188
+ padding: 0.2rem 0.45rem;
3189
+ border: 1px solid var(--rt-color-border);
3190
+ border-radius: 999px;
3191
+ color: var(--rt-color-muted-foreground);
3192
+ font-size: 0.76rem;
3193
+ }
3194
+
3195
+ [data-roottale-tpl="faq"] :where(.rt-tpl-faq-content-link) {
3196
+ color: var(--rt-color-primary);
3197
+ font-weight: 800;
3198
+ }
3199
+
3200
+ [data-roottale-tpl="trust"] :where(.rt-tpl-trust-dashboard) {
3201
+ display: grid;
3202
+ grid-template-columns: minmax(0, 1.3fr) minmax(16rem, 0.7fr);
3203
+ gap: 1rem;
3204
+ align-items: stretch;
3205
+ }
3206
+
3207
+ [data-roottale-tpl="trust"] :where(.rt-tpl-trust-dashboard-chart),
3208
+ [data-roottale-tpl="trust"] :where(.rt-tpl-trust-dashboard-metrics) {
3209
+ padding: 1rem;
3210
+ border: 1px solid var(--rt-color-border);
3211
+ border-radius: var(--rt-radius-md);
3212
+ background: var(--rt-color-background);
3213
+ }
3214
+
3215
+ [data-roottale-tpl="trust"] :where(.rt-tpl-trust-dashboard-title) {
3216
+ margin: 0;
3217
+ font-size: 1.1rem;
3218
+ }
3219
+
3220
+ [data-roottale-tpl="trust"] :where(.rt-tpl-trust-dashboard-desc) {
3221
+ margin: 0.35rem 0 0;
3222
+ color: var(--rt-color-muted-foreground);
3223
+ }
3224
+
3225
+ [data-roottale-tpl="trust"] :where(.rt-tpl-trust-dashboard-bars),
3226
+ [data-roottale-tpl="trust"] :where(.rt-tpl-trust-dashboard-metrics) {
3227
+ display: grid;
3228
+ gap: 0.7rem;
3229
+ padding: 0;
3230
+ margin: 1rem 0 0;
3231
+ list-style: none;
3232
+ }
3233
+
3234
+ [data-roottale-tpl="trust"] :where(.rt-tpl-trust-dashboard-bars li) {
3235
+ display: grid;
3236
+ grid-template-columns: minmax(3rem, 0.35fr) minmax(0, 1fr) auto;
3237
+ gap: 0.65rem;
3238
+ align-items: center;
3239
+ font-size: 0.86rem;
3240
+ }
3241
+
3242
+ [data-roottale-tpl="trust"] :where(.rt-tpl-trust-dashboard-track) {
3243
+ overflow: hidden;
3244
+ block-size: 0.55rem;
3245
+ border-radius: 999px;
3246
+ background: var(--rt-color-muted);
3247
+ }
3248
+
3249
+ [data-roottale-tpl="trust"] :where(.rt-tpl-trust-dashboard-bar) {
3250
+ display: block;
3251
+ block-size: 100%;
3252
+ border-radius: inherit;
3253
+ background: var(--rt-color-primary);
3254
+ }
3255
+
3256
+ [data-roottale-tpl="trust"] :where(.rt-tpl-trust-dashboard-icon) {
3257
+ inline-size: 2rem;
3258
+ block-size: 2rem;
3259
+ object-fit: contain;
3260
+ }
3261
+
3262
+ [data-roottale-tpl="contact"] :where(.rt-tpl-contact-channel-side) {
3263
+ display: grid;
3264
+ gap: 1rem;
3265
+ }
3266
+
3267
+ [data-roottale-tpl="contact"] :where(.rt-tpl-contact-channel-icon) {
3268
+ inline-size: 1.35rem;
3269
+ block-size: 1.35rem;
3270
+ object-fit: contain;
3271
+ }
3272
+
3273
+ [data-roottale-tpl="contact"] :where(.rt-tpl-contact-map-block) {
3274
+ display: grid;
3275
+ gap: 0.75rem;
3276
+ }
3277
+
3278
+ [data-roottale-tpl="contact"] :where(.rt-tpl-contact-map-facade) {
3279
+ overflow: hidden;
3280
+ margin: 0;
3281
+ border: 1px solid var(--rt-color-border);
3282
+ border-radius: var(--rt-radius-md);
3283
+ }
3284
+
3285
+ [data-roottale-tpl="contact"] :where(.rt-tpl-contact-map-facade img) {
3286
+ display: block;
3287
+ inline-size: 100%;
3288
+ aspect-ratio: 16 / 9;
3289
+ object-fit: cover;
3290
+ }
3291
+
3292
+ [data-roottale-tpl="contact"] :where(.rt-tpl-contact-map-facade figcaption) {
3293
+ padding: 0.55rem 0.75rem;
3294
+ background: var(--rt-color-muted);
3295
+ font-size: 0.82rem;
3296
+ font-weight: 800;
3297
+ }
3298
+
3299
+ [data-roottale-tpl="contact"] :where(.rt-tpl-contact-actions) {
3300
+ display: flex;
3301
+ flex-wrap: wrap;
3302
+ gap: 0.5rem;
3303
+ padding: 0;
3304
+ margin: 0;
3305
+ list-style: none;
3306
+ }
3307
+
3308
+ [data-roottale-tpl="contact"] :where(.rt-tpl-contact-actions a) {
399
3309
  display: inline-flex;
3310
+ min-block-size: 2.5rem;
400
3311
  align-items: center;
401
- justify-content: center;
402
- justify-self: start;
403
- padding-block: var(--space-3);
404
- padding-inline: var(--space-4);
405
- border-radius: var(--radius-md);
406
- background: var(--accent);
407
- color: var(--accent-foreground);
408
- font-family: var(--font-display);
409
- font-size: clamp(1.25rem, 4cqi, 2rem);
410
- font-weight: var(--font-weight-bold);
411
- line-height: var(--font-leading-tight);
412
- font-variant-numeric: tabular-nums;
3312
+ padding: 0.45rem 0.75rem;
3313
+ border: 1px solid var(--rt-color-border);
3314
+ border-radius: var(--rt-radius-sm);
3315
+ color: var(--rt-color-primary);
3316
+ font-weight: 800;
413
3317
  text-decoration: none;
414
3318
  }
415
3319
 
416
- [data-roottale-tpl="contact"] :where(.rt-tpl-contact-address) {
417
- color: var(--foreground);
3320
+ [data-roottale-tpl="testimonials"] :where(.rt-tpl-testimonials-meta) {
3321
+ display: flex;
3322
+ flex-wrap: wrap;
3323
+ gap: 0.35rem;
3324
+ color: var(--rt-color-muted-foreground);
3325
+ font-size: 0.78rem;
418
3326
  font-style: normal;
419
- line-height: var(--font-leading-body);
420
3327
  }
421
3328
 
422
- [data-roottale-tpl="contact"] :where(.rt-tpl-contact-hours) {
423
- inline-size: 100%;
424
- border-collapse: collapse;
425
- color: var(--foreground);
3329
+ [data-roottale-tpl="testimonials"] :where(.rt-tpl-testimonials-meta span) {
3330
+ padding: 0.15rem 0.4rem;
3331
+ border: 1px solid var(--rt-color-border);
3332
+ border-radius: 999px;
3333
+ }
3334
+
3335
+ [data-roottale-tpl="testimonials"] :where(.rt-tpl-testimonials-reply) {
3336
+ margin: 0.85rem 0 0;
3337
+ color: var(--rt-color-muted-foreground);
3338
+ font-size: 0.86rem;
3339
+ }
3340
+
3341
+ [data-roottale-tpl="testimonials"]
3342
+ :where(.rt-tpl-testimonials-rail--marquee) {
3343
+ scroll-snap-type: none;
3344
+ }
3345
+
3346
+ [data-roottale-tpl="team"] :where(.rt-tpl-team-cta) {
3347
+ color: var(--rt-color-primary);
3348
+ font-size: 0.86rem;
3349
+ font-weight: 800;
3350
+ text-decoration: none;
3351
+ }
3352
+
3353
+ [data-roottale-tpl="team"] :where(.rt-tpl-team-expanding-stage) {
3354
+ display: grid;
3355
+ grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
3356
+ gap: 0.75rem;
3357
+ padding: 0;
3358
+ margin: 1.25rem 0 0;
3359
+ list-style: none;
3360
+ }
3361
+
3362
+ [data-roottale-tpl="team"] :where(.rt-tpl-team-expanding-index) {
3363
+ color: var(--rt-color-muted-foreground);
426
3364
  font-variant-numeric: tabular-nums;
3365
+ font-size: 0.78rem;
3366
+ font-weight: 800;
427
3367
  }
428
3368
 
429
- [data-roottale-tpl="contact"] :where(.rt-tpl-contact-hours th),
430
- [data-roottale-tpl="contact"] :where(.rt-tpl-contact-hours td) {
431
- padding-block: var(--space-2);
432
- border-block-end: 1px solid var(--border);
433
- text-align: start;
434
- vertical-align: top;
3369
+ [data-roottale-tpl="footer"] {
3370
+ background: color-mix(
3371
+ in srgb,
3372
+ var(--rt-color-foreground, #06162f) 96%,
3373
+ var(--rt-color-background, #ffffff)
3374
+ );
3375
+ color: var(--rt-color-background, #ffffff);
435
3376
  }
436
3377
 
437
- [data-roottale-tpl="contact"] :where(.rt-tpl-contact-hours th) {
438
- color: var(--muted-foreground);
439
- font-weight: var(--font-weight-semibold);
440
- white-space: nowrap;
3378
+ [data-roottale-tpl="footer"] :where(.rt-tpl-footer-columns) {
3379
+ display: grid;
3380
+ gap: clamp(2rem, 5cqi, 3rem);
441
3381
  }
442
3382
 
443
- [data-roottale-tpl="contact"] :where(.rt-tpl-contact-hours td) {
3383
+ @container (min-width: 56rem) {
3384
+ [data-roottale-tpl="footer"] :where(.rt-tpl-footer-columns) {
3385
+ grid-template-columns: minmax(16rem, 1.2fr) minmax(0, 2fr) minmax(14rem, 0.8fr);
3386
+ align-items: start;
3387
+ }
3388
+ }
3389
+
3390
+ [data-roottale-tpl="footer"] :where(.rt-tpl-footer-brand) {
3391
+ display: grid;
3392
+ gap: 0.85rem;
3393
+ align-content: start;
3394
+ }
3395
+
3396
+ [data-roottale-tpl="footer"] :where(.rt-tpl-footer-logo) {
3397
+ max-inline-size: 9rem;
3398
+ max-block-size: 3rem;
3399
+ object-fit: contain;
3400
+ }
3401
+
3402
+ [data-roottale-tpl="footer"] :where(.rt-tpl-footer-name) {
3403
+ margin: 0;
3404
+ font-family: var(--rt-font-display, var(--rt-font-body, system-ui, sans-serif));
3405
+ font-size: 1.15rem;
3406
+ font-weight: 800;
3407
+ line-height: 1.3;
3408
+ }
3409
+
3410
+ [data-roottale-tpl="footer"] :where(.rt-tpl-footer-description) {
3411
+ max-inline-size: 24rem;
3412
+ margin: 0;
3413
+ color: color-mix(in srgb, currentColor 72%, transparent);
3414
+ font-size: 0.92rem;
3415
+ line-height: 1.7;
3416
+ }
3417
+
3418
+ [data-roottale-tpl="footer"] :where(.rt-tpl-footer-nav) {
3419
+ display: grid;
3420
+ gap: 1.5rem;
3421
+ grid-template-columns: repeat(auto-fit, minmax(min(100%, 9rem), 1fr));
3422
+ }
3423
+
3424
+ [data-roottale-tpl="footer"] :where(.rt-tpl-footer-column-title) {
3425
+ margin: 0 0 0.75rem;
3426
+ color: color-mix(in srgb, currentColor 86%, transparent);
3427
+ font-size: 0.82rem;
3428
+ font-weight: 800;
3429
+ }
3430
+
3431
+ [data-roottale-tpl="footer"] :where(.rt-tpl-footer-column ul) {
3432
+ display: grid;
3433
+ gap: 0.55rem;
3434
+ padding: 0;
3435
+ margin: 0;
3436
+ list-style: none;
3437
+ }
3438
+
3439
+ [data-roottale-tpl="footer"] :where(a) {
3440
+ color: color-mix(in srgb, currentColor 76%, transparent);
3441
+ text-decoration: none;
3442
+ }
3443
+
3444
+ [data-roottale-tpl="footer"] :where(a:hover) {
3445
+ color: currentColor;
3446
+ }
3447
+
3448
+ [data-roottale-tpl="footer"] :where(.rt-tpl-footer-contact) {
3449
+ display: grid;
3450
+ gap: 0.45rem;
3451
+ margin: 0;
3452
+ color: color-mix(in srgb, currentColor 72%, transparent);
3453
+ font-size: 0.9rem;
3454
+ font-style: normal;
3455
+ line-height: 1.7;
3456
+ }
3457
+
3458
+ [data-roottale-tpl="footer"] :where(.rt-tpl-footer-bottom) {
444
3459
  display: flex;
445
3460
  flex-wrap: wrap;
446
- gap: var(--space-1);
3461
+ gap: 1rem 2rem;
3462
+ justify-content: space-between;
3463
+ margin-block-start: clamp(2rem, 5cqi, 3rem);
3464
+ padding-block-start: 1.25rem;
3465
+ border-block-start: 1px solid color-mix(in srgb, currentColor 18%, transparent);
3466
+ color: color-mix(in srgb, currentColor 64%, transparent);
3467
+ font-size: 0.78rem;
3468
+ line-height: 1.65;
447
3469
  }
448
3470
 
449
- [data-roottale-tpl="contact"] :where(.rt-tpl-contact-hours-note) {
450
- color: var(--muted-foreground);
3471
+ [data-roottale-tpl="footer"] :where(.rt-tpl-footer-legal) {
3472
+ display: grid;
3473
+ gap: 0.25rem;
451
3474
  }
452
3475
 
453
- [data-roottale-tpl="contact"] :where(.rt-tpl-contact-map) {
454
- aspect-ratio: 4 / 3;
455
- overflow: hidden;
456
- border: 1px solid var(--border);
457
- border-radius: var(--radius-md);
458
- background: var(--muted);
3476
+ [data-roottale-tpl="footer"] :where(.rt-tpl-footer-legal p) {
3477
+ margin: 0;
459
3478
  }
460
3479
 
461
- [data-roottale-tpl="contact"] :where(.rt-tpl-contact-map iframe) {
462
- inline-size: 100%;
463
- block-size: 100%;
464
- border: 0;
3480
+ [data-roottale-tpl="footer"] :where(.rt-tpl-footer-policy) {
3481
+ display: flex;
3482
+ flex-wrap: wrap;
3483
+ gap: 0.75rem 1rem;
465
3484
  }
466
3485
 
467
- [data-roottale-tpl="contact"] :where(.rt-tpl-contact-map-fallback) {
3486
+ [data-roottale-tpl="footer"] :where(.rt-tpl-footer-minimal-row) {
3487
+ display: flex;
3488
+ flex-wrap: wrap;
3489
+ gap: 1.25rem 2rem;
3490
+ align-items: flex-start;
3491
+ justify-content: space-between;
3492
+ }
3493
+
3494
+ [data-roottale-tpl="footer"] :where(.rt-tpl-footer-credit) {
468
3495
  margin: 0;
3496
+ margin-inline-start: auto;
3497
+ font-size: 0.75rem;
3498
+ font-weight: 400;
3499
+ color: var(--rt-color-muted-foreground, #6e6e6e);
469
3500
  }
470
3501
 
471
- [data-roottale-tpl="contact"] :where(.rt-tpl-contact-map-fallback a) {
472
- color: var(--accent-foreground);
473
- text-decoration: underline;
474
- text-underline-offset: var(--space-1);
3502
+ [data-roottale-tpl="footer"] :where(.rt-tpl-footer-credit a) {
3503
+ color: inherit;
3504
+ text-decoration: none;
3505
+ transition: color 150ms ease;
475
3506
  }
476
3507
 
477
- [data-roottale-tpl="contact"] :where(.rt-tpl-contact-form) {
478
- min-inline-size: 0;
3508
+ [data-roottale-tpl="footer"] :where(.rt-tpl-footer-credit a:hover),
3509
+ [data-roottale-tpl="footer"] :where(.rt-tpl-footer-credit a:focus-visible) {
3510
+ color: var(--rt-color-foreground, #06162f);
479
3511
  }
480
3512
 
481
- /* ── placeholder (admin preview 의 customSections skeleton) ──────────────── */
3513
+ [data-roottale-tpl="footer"][data-variant="minimal"]
3514
+ :where(.rt-tpl-footer-brand) {
3515
+ grid-template-columns: auto 1fr;
3516
+ align-items: center;
3517
+ }
482
3518
 
483
- [data-roottale-tpl] :where(.rt-tpl-placeholder-box) {
484
- border: 2px dashed var(--rt-color-border, #dceef3);
485
- border-radius: var(--rt-radius-md, 0.5rem);
486
- padding: 2.5rem;
487
- text-align: center;
488
- color: var(--rt-color-muted-foreground, #6e6e6e);
489
- font-family: ui-monospace, monospace;
490
- font-size: 0.875rem;
3519
+ [data-roottale-tpl="process"] :where(.rt-tpl-process-image) {
3520
+ inline-size: 100%;
3521
+ aspect-ratio: 4 / 3;
3522
+ margin-block-end: 0.85rem;
3523
+ border-radius: var(--rt-radius-md);
3524
+ object-fit: cover;
3525
+ }
3526
+
3527
+ [data-roottale-tpl="process"] :where(.rt-tpl-process-list[data-connector="rail"]) {
3528
+ border-inline-start: 2px solid var(--rt-color-border);
3529
+ padding-inline-start: 1rem;
3530
+ }
3531
+
3532
+ @container (max-width: 52rem) {
3533
+ [data-roottale-tpl="trust"] :where(.rt-tpl-trust-dashboard) {
3534
+ grid-template-columns: 1fr;
3535
+ }
3536
+
3537
+ [data-roottale-tpl="hero"][data-variant="carousel"]
3538
+ :where(.rt-tpl-hero-carousel-slide-panel) {
3539
+ position: relative;
3540
+ inset: auto;
3541
+ margin: 1rem;
3542
+ }
491
3543
  }