@roottale/cms-renderer-next 0.51.1 → 0.53.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 (76) hide show
  1. package/CHANGELOG.md +96 -0
  2. package/README.md +54 -4
  3. package/dist/{chunk-U2IM6OCQ.js → chunk-HM5VP7SR.js} +1 -1
  4. package/dist/{chunk-U2IM6OCQ.js.map → chunk-HM5VP7SR.js.map} +1 -1
  5. package/dist/chunk-KSPPYX22.js +14 -0
  6. package/dist/chunk-KSPPYX22.js.map +1 -0
  7. package/dist/cms-public.css +46 -0
  8. package/dist/routes.d.ts +25 -1
  9. package/dist/routes.js +72 -14
  10. package/dist/routes.js.map +1 -1
  11. package/dist/section-runtime.d.ts +46 -0
  12. package/dist/section-runtime.js +9 -0
  13. package/dist/server.d.ts +5 -3
  14. package/dist/server.js +1679 -34
  15. package/dist/server.js.map +1 -1
  16. package/package.json +7 -23
  17. package/dist/before-after-client.d.ts +0 -15
  18. package/dist/before-after-client.js +0 -8
  19. package/dist/chunk-27RT6B3O.js +0 -93
  20. package/dist/chunk-27RT6B3O.js.map +0 -1
  21. package/dist/chunk-2QU4JU46.js +0 -3927
  22. package/dist/chunk-2QU4JU46.js.map +0 -1
  23. package/dist/chunk-4RQ3SEDL.js +0 -106
  24. package/dist/chunk-4RQ3SEDL.js.map +0 -1
  25. package/dist/chunk-6GQCFFHU.js +0 -540
  26. package/dist/chunk-6GQCFFHU.js.map +0 -1
  27. package/dist/chunk-H46JUIHZ.js +0 -79
  28. package/dist/chunk-H46JUIHZ.js.map +0 -1
  29. package/dist/chunk-K62RR4UQ.js +0 -53
  30. package/dist/chunk-K62RR4UQ.js.map +0 -1
  31. package/dist/chunk-LEHHSI6G.js +0 -64
  32. package/dist/chunk-LEHHSI6G.js.map +0 -1
  33. package/dist/chunk-QYNEOFL7.js +0 -418
  34. package/dist/chunk-QYNEOFL7.js.map +0 -1
  35. package/dist/chunk-U5AKACPN.js +0 -113
  36. package/dist/chunk-U5AKACPN.js.map +0 -1
  37. package/dist/chunk-UM37DOIK.js +0 -961
  38. package/dist/chunk-UM37DOIK.js.map +0 -1
  39. package/dist/chunk-YLSQAT6B.js +0 -59
  40. package/dist/chunk-YLSQAT6B.js.map +0 -1
  41. package/dist/chunk-ZL2NA3QT.js +0 -313
  42. package/dist/chunk-ZL2NA3QT.js.map +0 -1
  43. package/dist/concerns-client.d.ts +0 -12
  44. package/dist/concerns-client.js +0 -8
  45. package/dist/concerns-client.js.map +0 -1
  46. package/dist/contact-map-client.d.ts +0 -27
  47. package/dist/contact-map-client.js +0 -8
  48. package/dist/contact-map-client.js.map +0 -1
  49. package/dist/expertise-client.d.ts +0 -16
  50. package/dist/expertise-client.js +0 -9
  51. package/dist/expertise-client.js.map +0 -1
  52. package/dist/hero-carousel-client.d.ts +0 -52
  53. package/dist/hero-carousel-client.js +0 -9
  54. package/dist/hero-carousel-client.js.map +0 -1
  55. package/dist/seo-checks.d.ts +0 -87
  56. package/dist/seo-checks.js +0 -27
  57. package/dist/seo-checks.js.map +0 -1
  58. package/dist/site-config-BvUyDx_f.d.ts +0 -3961
  59. package/dist/spaces-client.d.ts +0 -10
  60. package/dist/spaces-client.js +0 -8
  61. package/dist/spaces-client.js.map +0 -1
  62. package/dist/team-expanding-stage-client.d.ts +0 -35
  63. package/dist/team-expanding-stage-client.js +0 -8
  64. package/dist/team-expanding-stage-client.js.map +0 -1
  65. package/dist/templates.css +0 -4145
  66. package/dist/templates.d.ts +0 -171
  67. package/dist/templates.js +0 -291
  68. package/dist/templates.js.map +0 -1
  69. package/dist/theme-css-vars-CD3jcEkp.d.ts +0 -7
  70. package/dist/ui-react-motion-client.d.ts +0 -76
  71. package/dist/ui-react-motion-client.js +0 -16
  72. package/dist/ui-react-motion-client.js.map +0 -1
  73. package/dist/validate.d.ts +0 -104
  74. package/dist/validate.js +0 -1204
  75. package/dist/validate.js.map +0 -1
  76. /package/dist/{before-after-client.js.map → section-runtime.js.map} +0 -0
@@ -1,4145 +0,0 @@
1
- /*
2
- * @roottale/cms-renderer-next/templates/styles — 빌트인 섹션 템플릿 CSS.
3
- *
4
- * Scope: 모든 셀렉터가 섹션 루트의 `[data-roottale-tpl]` 아래 `:where()` 로
5
- * 산다 — specificity 0, customer 는 plain class / Tailwind utility 로 자유
6
- * override (cms-public.css 와 동일 계약, ADR-0023 §5.1 #10). `!important` 금지.
7
- *
8
- * Token contract (zero-dependency): 모든 `--rt-*` 변수는 정적 fallback 을
9
- * 가진다. admin /design 값은 `RootTaleThemeProvider` 가 주입.
10
- *
11
- * `<head>` 삽입 순서 (RFC §③): tokens.css → emotion insertion point →
12
- * cms-public.css·본 파일 → 클라 globals.css.
13
- */
14
-
15
- :where([data-roottale-tpl]) {
16
- container-type: inline-size;
17
- padding-block: var(--rt-section-space-y, clamp(3rem, 7cqi, 5rem));
18
- background: var(--rt-color-background, transparent);
19
- color: var(--rt-color-foreground, #06162f);
20
- font-family: var(--rt-font-body, system-ui, -apple-system, sans-serif);
21
- word-break: keep-all;
22
- }
23
-
24
- [data-roottale-tpl] :where(.rt-tpl-container) {
25
- inline-size: 100%;
26
- max-inline-size: var(--rt-tpl-page-max, 72rem);
27
- margin-inline: auto;
28
- padding-inline: 1.25rem;
29
- }
30
-
31
- [data-roottale-tpl] :where(.rt-tpl-heading) {
32
- font-family: var(--rt-font-display, var(--rt-font-body, system-ui, sans-serif));
33
- font-size: clamp(1.75rem, 3.6cqi, 2.5rem);
34
- font-weight: 800;
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);
40
- }
41
-
42
- [data-roottale-tpl] :where(.rt-tpl-section-desc) {
43
- color: var(--rt-color-muted-foreground, #6e6e6e);
44
- font-size: 1.0625rem;
45
- line-height: 1.65;
46
- word-break: keep-all;
47
- max-inline-size: 46rem;
48
- margin-block: -0.75rem 2.5rem;
49
- }
50
-
51
- [data-roottale-tpl] :where(.rt-tpl-btn) {
52
- display: inline-flex;
53
- align-items: center;
54
- gap: 0.5rem;
55
- padding: 0.875rem 1.75rem;
56
- border-radius: 999px;
57
- font-size: 1rem;
58
- letter-spacing: -0.01em;
59
- font-weight: 700;
60
- text-decoration: none;
61
- transition:
62
- transform 160ms ease,
63
- opacity 160ms ease;
64
- }
65
-
66
- [data-roottale-tpl] :where(.rt-tpl-btn:hover) {
67
- transform: translateY(-1px);
68
- }
69
-
70
- [data-roottale-tpl] :where(.rt-tpl-btn--primary) {
71
- background: var(--rt-color-primary, #06162f);
72
- color: var(--rt-color-primary-foreground, #ffffff);
73
- }
74
-
75
- /* ── hero ─────────────────────────────────────────────────────────────────── */
76
-
77
- [data-roottale-tpl="hero"] :where(.rt-tpl-hero-inner) {
78
- padding-block: clamp(2rem, 6cqi, 4rem);
79
- }
80
-
81
- [data-roottale-tpl="hero"][data-variant="split"] :where(.rt-tpl-hero-inner) {
82
- display: flex;
83
- align-items: center;
84
- gap: clamp(2rem, 5cqi, 4rem);
85
- flex-wrap: wrap;
86
- }
87
-
88
- [data-roottale-tpl="hero"][data-variant="split"] :where(.rt-tpl-hero-copy) {
89
- flex: 1 1 24rem;
90
- }
91
-
92
- [data-roottale-tpl="hero"][data-variant="split"] :where(.rt-tpl-hero-media) {
93
- flex: 1 1 18rem;
94
- }
95
-
96
- [data-roottale-tpl="hero"][data-variant="minimal"] :where(.rt-tpl-hero-inner) {
97
- text-align: center;
98
- }
99
-
100
- [data-roottale-tpl="hero"][data-variant="minimal"] :where(.rt-tpl-hero-desc) {
101
- margin-inline: auto;
102
- }
103
-
104
- [data-roottale-tpl="hero"][data-variant="image"] :where(.rt-tpl-hero-media) {
105
- margin-block-start: 2rem;
106
- }
107
-
108
- [data-roottale-tpl] :where(.rt-tpl-hero-eyebrow) {
109
- color: var(--rt-color-primary, #06162f);
110
- font-size: 0.9375rem;
111
- font-weight: 700;
112
- letter-spacing: 0.08em;
113
- margin: 0 0 0.875rem;
114
- }
115
-
116
- [data-roottale-tpl] :where(.rt-tpl-hero-title) {
117
- font-family: var(--rt-font-display, var(--rt-font-body, system-ui, sans-serif));
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;
124
- margin: 0 0 1.25rem;
125
- }
126
-
127
- [data-roottale-tpl] :where(.rt-tpl-hero-title-line) {
128
- display: block;
129
- }
130
-
131
- [data-roottale-tpl] :where(.rt-tpl-hero-desc) {
132
- font-size: 1.125rem;
133
- line-height: 1.7;
134
- word-break: keep-all;
135
- color: var(--rt-color-muted-foreground, #6e6e6e);
136
- max-inline-size: 40rem;
137
- margin: 0 0 2rem;
138
- }
139
-
140
- [data-roottale-tpl] :where(.rt-tpl-hero-img) {
141
- inline-size: 100%;
142
- block-size: auto;
143
- border-radius: var(--rt-radius-md, 0.5rem);
144
- }
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
-
213
- /* ── rich-text ────────────────────────────────────────────────────────────── */
214
-
215
- [data-roottale-tpl] :where(.rt-tpl-rich-text-p) {
216
- font-size: 1.0625rem;
217
- max-inline-size: 46rem;
218
- }
219
-
220
- /* ── services ─────────────────────────────────────────────────────────────── */
221
-
222
- [data-roottale-tpl] :where(.rt-tpl-services-list) {
223
- display: grid;
224
- gap: 1.25rem;
225
- padding: 0;
226
- margin: 0;
227
- list-style: none;
228
- }
229
-
230
- [data-roottale-tpl="services"][data-variant="grid"]
231
- :where(.rt-tpl-services-list) {
232
- grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
233
- }
234
-
235
- [data-roottale-tpl] :where(.rt-tpl-services-item) {
236
- border: 1px solid var(--rt-color-border, #dceef3);
237
- border-radius: var(--rt-radius-md, 0.5rem);
238
- padding: 1.5rem;
239
- background: var(--rt-color-background, #ffffff);
240
- transition:
241
- border-color 160ms ease,
242
- transform 160ms ease;
243
- }
244
-
245
- [data-roottale-tpl] :where(.rt-tpl-services-item:hover) {
246
- border-color: color-mix(
247
- in srgb,
248
- var(--rt-color-primary, #06162f) 40%,
249
- var(--rt-color-border, #dceef3)
250
- );
251
- transform: translateY(-2px);
252
- }
253
-
254
- [data-roottale-tpl] :where(.rt-tpl-services-link) {
255
- text-decoration: none;
256
- color: inherit;
257
- display: block;
258
- }
259
-
260
- [data-roottale-tpl] :where(.rt-tpl-services-title) {
261
- font-family: var(--rt-font-display, var(--rt-font-body, system-ui, sans-serif));
262
- font-size: 1.125rem;
263
- font-weight: 800;
264
- margin: 0 0 0.5rem;
265
- }
266
-
267
- [data-roottale-tpl] :where(.rt-tpl-services-desc) {
268
- color: var(--rt-color-muted-foreground, #6e6e6e);
269
- font-size: 0.9375rem;
270
- margin: 0;
271
- }
272
-
273
- [data-roottale-tpl="services"][data-variant="photo-cards"]
274
- :where(.rt-tpl-services-photo-list) {
275
- display: grid;
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;
281
- }
282
-
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;
297
- border: 1px solid var(--rt-color-border, #dceef3);
298
- border-radius: var(--rt-radius-md, 0.5rem);
299
- background: var(--rt-color-background, #ffffff);
300
- transition:
301
- border-color 160ms ease,
302
- transform 160ms ease;
303
- }
304
-
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;
374
- font-weight: 700;
375
- letter-spacing: 0.04em;
376
- color: var(--rt-color-muted-foreground, #6e6e6e);
377
- }
378
-
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;
387
- }
388
-
389
- [data-roottale-tpl="services"][data-variant="index-rows"]
390
- :where(.rt-tpl-services-index-desc) {
391
- color: var(--rt-color-muted-foreground, #6e6e6e);
392
- font-size: 0.9375rem;
393
- margin: 0;
394
- }
395
-
396
- /* ── services: split-featured (C10 §1-2 — 비대칭 5/7, 균등 카드 금지) ───────── */
397
-
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) {
415
- display: flex;
416
- flex-direction: column;
417
- justify-content: center;
418
- gap: 1rem;
419
- padding: clamp(1.75rem, 5cqi, 2.75rem);
420
- border-radius: var(--rt-radius-md, 0.5rem);
421
- background: color-mix(
422
- in srgb,
423
- var(--rt-color-primary, #06162f) 6%,
424
- var(--rt-color-background, #ffffff)
425
- );
426
- border: 1px solid var(--rt-color-border, #dceef3);
427
- }
428
-
429
- [data-roottale-tpl="services"][data-variant="split-featured"]
430
- :where(.rt-tpl-services-split-featured-title) {
431
- font-family: var(--rt-font-display, var(--rt-font-body, system-ui, sans-serif));
432
- font-size: clamp(1.375rem, 4cqi, 1.75rem);
433
- font-weight: 800;
434
- margin: 0;
435
- }
436
-
437
- [data-roottale-tpl="services"][data-variant="split-featured"]
438
- :where(.rt-tpl-services-split-featured-desc) {
439
- color: var(--rt-color-muted-foreground, #6e6e6e);
440
- margin: 0;
441
- }
442
-
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;
453
- padding: 0;
454
- margin: 0;
455
- list-style: none;
456
- }
457
-
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;
462
- }
463
-
464
- [data-roottale-tpl="services"][data-variant="split-featured"]
465
- :where(.rt-tpl-services-split-item:first-child) {
466
- padding-block-start: 0;
467
- }
468
-
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;
474
- }
475
-
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;
482
- }
483
-
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;
489
- }
490
-
491
- /* ── faq ──────────────────────────────────────────────────────────────────── */
492
-
493
- [data-roottale-tpl] :where(.rt-tpl-faq-list) {
494
- display: grid;
495
- gap: 0;
496
- max-inline-size: 46rem;
497
- border-block-start: 1px solid var(--rt-color-border, #dceef3);
498
- }
499
-
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;
503
- }
504
-
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;
516
- }
517
-
518
- [data-roottale-tpl] :where(.rt-tpl-faq-q)::-webkit-details-marker {
519
- display: none;
520
- }
521
-
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;
530
- }
531
-
532
- [data-roottale-tpl] :where(.rt-tpl-faq-item[open] .rt-tpl-faq-q)::after {
533
- transform: rotate(45deg);
534
- }
535
-
536
- [data-roottale-tpl] :where(.rt-tpl-faq-item[open] .rt-tpl-faq-q) {
537
- color: var(--rt-color-primary, #06162f);
538
- }
539
-
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);
546
- }
547
-
548
- [data-roottale-tpl="faq"][data-variant="two-column"]
549
- :where(.rt-tpl-faq-two-column-list) {
550
- display: grid;
551
- gap: 1rem;
552
- }
553
-
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
- }
559
- }
560
-
561
- [data-roottale-tpl="faq"][data-variant="two-column"]
562
- :where(.rt-tpl-faq-groups) {
563
- display: grid;
564
- gap: clamp(2rem, 5cqi, 3rem);
565
- }
566
-
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);
575
- }
576
-
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;
581
- }
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 칼럼(균등 중앙 리듬 탈피). */
823
- @container (min-width: 56rem) {
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));
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
- /* ── testimonials: star-compact (W8-7 — 별점 중심 컴팩트 그리드) ──────────── */
1465
-
1466
- /* 별점 = CSS 타이포 글리프(U+2605) 이중 레이어 — 이모지·이미지 금지(AI-slop
1467
- * 10항 유지). 채움 폭은 데이터(rating/5)가 --rt-testimonials-star-fill 로
1468
- * 주입, 색은 전부 토큰(variant×토큰 직교). */
1469
- [data-roottale-tpl="testimonials"] :where(.rt-tpl-testimonials-stars) {
1470
- position: relative;
1471
- display: inline-block;
1472
- font-size: var(--rt-testimonials-star-size, 1rem);
1473
- line-height: 1;
1474
- letter-spacing: 0.1em;
1475
- white-space: nowrap;
1476
- }
1477
-
1478
- [data-roottale-tpl="testimonials"] :where(.rt-tpl-testimonials-stars-base) {
1479
- color: color-mix(in srgb, var(--foreground) 22%, transparent);
1480
- }
1481
-
1482
- [data-roottale-tpl="testimonials"] :where(.rt-tpl-testimonials-stars-fill) {
1483
- position: absolute;
1484
- inset-block-start: 0;
1485
- inset-inline-start: 0;
1486
- inline-size: var(--rt-testimonials-star-fill, 100%);
1487
- overflow: hidden;
1488
- color: var(--accent);
1489
- }
1490
-
1491
- [data-roottale-tpl="testimonials"][data-variant="star-compact"]
1492
- :where(.rt-tpl-testimonials-star-summary) {
1493
- display: flex;
1494
- flex-wrap: wrap;
1495
- align-items: baseline;
1496
- gap: var(--space-3);
1497
- margin-block-start: var(--space-6);
1498
- padding-block-end: var(--space-4);
1499
- }
1500
-
1501
- [data-roottale-tpl="testimonials"][data-variant="star-compact"]
1502
- :where(.rt-tpl-testimonials-star-summary .rt-tpl-testimonials-stars) {
1503
- font-size: var(--rt-testimonials-star-size-summary, 1.25rem);
1504
- }
1505
-
1506
- [data-roottale-tpl="testimonials"][data-variant="star-compact"]
1507
- :where(.rt-tpl-testimonials-star-average) {
1508
- font-family: var(--font-display);
1509
- font-size: clamp(2rem, 6cqi, 2.75rem);
1510
- font-weight: var(--font-weight-bold);
1511
- line-height: var(--font-leading-tight);
1512
- font-variant-numeric: tabular-nums;
1513
- color: var(--foreground);
1514
- }
1515
-
1516
- [data-roottale-tpl="testimonials"][data-variant="star-compact"]
1517
- :where(.rt-tpl-testimonials-star-count) {
1518
- font-size: var(--font-size-sm);
1519
- color: var(--muted-foreground);
1520
- }
1521
-
1522
- [data-roottale-tpl="testimonials"][data-variant="star-compact"]
1523
- :where(.rt-tpl-testimonials-star-list) {
1524
- display: grid;
1525
- gap: 0 var(--rt-testimonials-star-list-gap, var(--space-8));
1526
- padding: 0;
1527
- margin: 0;
1528
- list-style: none;
1529
- }
1530
-
1531
- @container (min-width: 44rem) {
1532
- [data-roottale-tpl="testimonials"][data-variant="star-compact"]
1533
- :where(.rt-tpl-testimonials-star-list) {
1534
- grid-template-columns: repeat(2, minmax(0, 1fr));
1535
- }
1536
- }
1537
-
1538
- @container (min-width: 72rem) {
1539
- [data-roottale-tpl="testimonials"][data-variant="star-compact"]
1540
- :where(.rt-tpl-testimonials-star-list) {
1541
- grid-template-columns: repeat(3, minmax(0, 1fr));
1542
- }
1543
- }
1544
-
1545
- /* 카드 아님 — hairline 상단 보더 행(균등 그림자 카드 금지, index-rows 계보). */
1546
- [data-roottale-tpl="testimonials"][data-variant="star-compact"]
1547
- :where(.rt-tpl-testimonials-star-item) {
1548
- border-block-start: 1px solid var(--border);
1549
- padding-block: var(--space-5);
1550
- }
1551
-
1552
- [data-roottale-tpl="testimonials"][data-variant="star-compact"]
1553
- :where(.rt-tpl-testimonials-star-quote) {
1554
- display: grid;
1555
- gap: var(--space-2);
1556
- margin: 0;
1557
- }
1558
-
1559
- [data-roottale-tpl="testimonials"][data-variant="star-compact"]
1560
- :where(.rt-tpl-testimonials-star-head) {
1561
- display: flex;
1562
- align-items: center;
1563
- gap: var(--space-2);
1564
- }
1565
-
1566
- [data-roottale-tpl="testimonials"][data-variant="star-compact"]
1567
- :where(.rt-tpl-testimonials-star-value) {
1568
- font-size: var(--font-size-sm);
1569
- font-weight: var(--font-weight-semibold);
1570
- font-variant-numeric: tabular-nums;
1571
- color: var(--foreground);
1572
- }
1573
-
1574
- [data-roottale-tpl="testimonials"][data-variant="star-compact"]
1575
- :where(.rt-tpl-testimonials-star-text) {
1576
- margin: 0;
1577
- font-size: var(--font-size-sm);
1578
- line-height: var(--font-leading-normal);
1579
- word-break: keep-all;
1580
- color: var(--foreground);
1581
- }
1582
-
1583
- [data-roottale-tpl="testimonials"][data-variant="star-compact"]
1584
- :where(.rt-tpl-testimonials-star-footer) {
1585
- display: flex;
1586
- flex-wrap: wrap;
1587
- align-items: baseline;
1588
- gap: var(--space-2);
1589
- }
1590
-
1591
- [data-roottale-tpl="testimonials"][data-variant="star-compact"]
1592
- :where(.rt-tpl-testimonials-star-author) {
1593
- font-style: normal;
1594
- font-weight: var(--font-weight-semibold);
1595
- font-size: var(--font-size-sm);
1596
- color: var(--foreground);
1597
- }
1598
-
1599
- [data-roottale-tpl="testimonials"][data-variant="star-compact"]
1600
- :where(.rt-tpl-testimonials-star-context) {
1601
- font-size: var(--font-size-xs);
1602
- color: var(--muted-foreground);
1603
- }
1604
-
1605
- [data-roottale-tpl="testimonials"][data-variant="star-compact"]
1606
- :where(.rt-tpl-testimonials-star-meta) {
1607
- display: inline-flex;
1608
- flex-wrap: wrap;
1609
- gap: var(--space-2);
1610
- font-size: var(--font-size-xs);
1611
- color: var(--muted-foreground);
1612
- }
1613
-
1614
- [data-roottale-tpl="team"] {
1615
- container-type: inline-size;
1616
- }
1617
-
1618
- [data-roottale-tpl="team"] :where(.rt-tpl-team-grid),
1619
- [data-roottale-tpl="team"] :where(.rt-tpl-team-spotlight-list) {
1620
- display: grid;
1621
- gap: 1.25rem;
1622
- padding: 0;
1623
- margin: 0;
1624
- list-style: none;
1625
- }
1626
-
1627
- [data-roottale-tpl="team"] :where(.rt-tpl-team-grid) {
1628
- grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
1629
- }
1630
-
1631
- [data-roottale-tpl="team"][data-variant="row"]
1632
- :where(.rt-tpl-team-row-list) {
1633
- display: grid;
1634
- gap: var(--space-4);
1635
- padding: 0;
1636
- margin: 0;
1637
- list-style: none;
1638
- }
1639
-
1640
- @container (min-width: 52rem) {
1641
- [data-roottale-tpl="team"][data-variant="row"]
1642
- :where(.rt-tpl-team-row-list) {
1643
- grid-template-columns: repeat(2, minmax(0, 1fr));
1644
- }
1645
- }
1646
-
1647
- [data-roottale-tpl="team"] :where(.rt-tpl-team-card) {
1648
- display: grid;
1649
- gap: 1.25rem;
1650
- align-content: start;
1651
- min-inline-size: 0;
1652
- overflow: hidden;
1653
- border: 1px solid var(--border);
1654
- border-radius: var(--rt-radius-md, 0.5rem);
1655
- background: var(--card);
1656
- }
1657
-
1658
- [data-roottale-tpl="team"][data-variant="row"]
1659
- :where(.rt-tpl-team-card--row) {
1660
- grid-template-columns: minmax(7.5rem, 0.82fr) minmax(0, 1.18fr);
1661
- gap: 0;
1662
- min-block-size: var(--rt-team-row-card-min-block, 12rem);
1663
- }
1664
-
1665
- @container (max-width: 36rem) {
1666
- [data-roottale-tpl="team"][data-variant="row"]
1667
- :where(.rt-tpl-team-card--row) {
1668
- grid-template-columns: 1fr;
1669
- }
1670
- }
1671
-
1672
- [data-roottale-tpl="team"] :where(.rt-tpl-team-photo),
1673
- [data-roottale-tpl="team"] :where(.rt-tpl-team-initials) {
1674
- inline-size: 100%;
1675
- aspect-ratio: 4 / 3;
1676
- }
1677
-
1678
- [data-roottale-tpl="team"] :where(.rt-tpl-team-photo) {
1679
- display: block;
1680
- object-fit: cover;
1681
- object-position: center top;
1682
- background: var(--muted);
1683
- }
1684
-
1685
- [data-roottale-tpl="team"] :where(.rt-tpl-team-initials) {
1686
- display: grid;
1687
- place-items: center;
1688
- color: var(--primary);
1689
- font-family: var(--rt-font-display, var(--rt-font-body, system-ui, sans-serif));
1690
- font-size: clamp(2.25rem, 9cqi, 4rem);
1691
- font-weight: 800;
1692
- background: var(--muted);
1693
- }
1694
-
1695
- [data-roottale-tpl="team"] :where(.rt-tpl-team-body) {
1696
- display: grid;
1697
- gap: 0.75rem;
1698
- padding: 0 1.25rem 1.25rem;
1699
- }
1700
-
1701
- [data-roottale-tpl="team"][data-variant="row"]
1702
- :where(.rt-tpl-team-card--row .rt-tpl-team-photo),
1703
- [data-roottale-tpl="team"][data-variant="row"]
1704
- :where(.rt-tpl-team-card--row .rt-tpl-team-initials) {
1705
- block-size: var(--rt-team-row-photo-block, var(--rt-team-row-card-min-block, 12rem));
1706
- min-block-size: var(--rt-team-row-card-min-block, 12rem);
1707
- aspect-ratio: auto;
1708
- }
1709
-
1710
- @container (max-width: 36rem) {
1711
- [data-roottale-tpl="team"][data-variant="row"]
1712
- :where(.rt-tpl-team-card--row .rt-tpl-team-photo),
1713
- [data-roottale-tpl="team"][data-variant="row"]
1714
- :where(.rt-tpl-team-card--row .rt-tpl-team-initials) {
1715
- block-size: auto;
1716
- min-block-size: 0;
1717
- aspect-ratio: var(--rt-team-row-mobile-photo-aspect-ratio, 16 / 10);
1718
- }
1719
- }
1720
-
1721
- [data-roottale-tpl="team"][data-variant="row"]
1722
- :where(.rt-tpl-team-card--row .rt-tpl-team-body) {
1723
- align-content: center;
1724
- gap: 0.6rem;
1725
- padding: clamp(1rem, 2.8cqi, 1.35rem);
1726
- }
1727
-
1728
- [data-roottale-tpl="team"][data-variant="row"]
1729
- :where(.rt-tpl-team-card--row .rt-tpl-team-bio) {
1730
- display: none;
1731
- }
1732
-
1733
- [data-roottale-tpl="team"][data-variant="row"]
1734
- :where(.rt-tpl-team-card--row .rt-tpl-team-credentials) {
1735
- gap: 0.35rem;
1736
- }
1737
-
1738
- [data-roottale-tpl="team"] :where(.rt-tpl-team-name) {
1739
- margin: 0;
1740
- font-family: var(--rt-font-display, var(--rt-font-body, system-ui, sans-serif));
1741
- font-size: clamp(1.25rem, 3.2cqi, 1.5rem);
1742
- font-weight: 800;
1743
- line-height: 1.3;
1744
- word-break: keep-all;
1745
- }
1746
-
1747
- [data-roottale-tpl="team"] :where(.rt-tpl-team-title) {
1748
- margin: -0.35rem 0 0;
1749
- color: var(--muted-foreground);
1750
- font-weight: 700;
1751
- }
1752
-
1753
- [data-roottale-tpl="team"] :where(.rt-tpl-team-specialties),
1754
- [data-roottale-tpl="team"] :where(.rt-tpl-team-credentials) {
1755
- display: flex;
1756
- flex-wrap: wrap;
1757
- gap: 0.5rem;
1758
- padding: 0;
1759
- margin: 0;
1760
- list-style: none;
1761
- }
1762
-
1763
- [data-roottale-tpl="team"] :where(.rt-tpl-team-specialties li) {
1764
- display: inline-flex;
1765
- align-items: center;
1766
- min-block-size: 1.75rem;
1767
- padding-inline: 0.75rem;
1768
- border-radius: 999px;
1769
- color: var(--primary);
1770
- font-size: 0.8125rem;
1771
- font-weight: 800;
1772
- background: var(--muted);
1773
- }
1774
-
1775
- [data-roottale-tpl="team"] :where(.rt-tpl-team-credentials) {
1776
- display: grid;
1777
- gap: 0.45rem;
1778
- }
1779
-
1780
- [data-roottale-tpl="team"] :where(.rt-tpl-team-credentials li),
1781
- [data-roottale-tpl="team"] :where(.rt-tpl-team-bio) {
1782
- color: var(--muted-foreground);
1783
- font-size: 0.9375rem;
1784
- line-height: 1.65;
1785
- word-break: keep-all;
1786
- }
1787
-
1788
- [data-roottale-tpl="team"] :where(.rt-tpl-team-credentials li)::before {
1789
- content: "";
1790
- display: inline-block;
1791
- inline-size: 0.375rem;
1792
- block-size: 0.375rem;
1793
- margin-inline-end: 0.5rem;
1794
- border-radius: 999px;
1795
- background: var(--primary);
1796
- vertical-align: 0.12em;
1797
- }
1798
-
1799
- [data-roottale-tpl="team"] :where(.rt-tpl-team-bio) {
1800
- margin: 0;
1801
- }
1802
-
1803
- [data-roottale-tpl="team"][data-variant="spotlight"]
1804
- :where(.rt-tpl-team-spotlight) {
1805
- display: grid;
1806
- gap: 1.25rem;
1807
- }
1808
-
1809
- @container (min-width: 54rem) {
1810
- [data-roottale-tpl="team"][data-variant="spotlight"]
1811
- :where(.rt-tpl-team-spotlight) {
1812
- grid-template-columns: minmax(0, 7fr) minmax(16rem, 5fr);
1813
- align-items: start;
1814
- }
1815
- }
1816
-
1817
- [data-roottale-tpl="team"][data-variant="spotlight"]
1818
- :where(.rt-tpl-team-card--featured) {
1819
- gap: 0;
1820
- }
1821
-
1822
- [data-roottale-tpl="team"][data-variant="spotlight"]
1823
- :where(.rt-tpl-team-card--featured .rt-tpl-team-body) {
1824
- padding: clamp(1.25rem, 4cqi, 2rem);
1825
- }
1826
-
1827
- [data-roottale-tpl="team"][data-variant="spotlight"]
1828
- :where(.rt-tpl-team-photo--featured, .rt-tpl-team-initials--featured) {
1829
- aspect-ratio: 16 / 10;
1830
- }
1831
-
1832
- [data-roottale-tpl="expertise"],
1833
- [data-roottale-tpl="spaces"],
1834
- [data-roottale-tpl="concerns"] {
1835
- container-type: inline-size;
1836
- }
1837
-
1838
- [data-roottale-tpl] :where(.rt-tpl-client-section-header) {
1839
- max-inline-size: 48rem;
1840
- }
1841
-
1842
- [data-roottale-tpl] :where(.rt-tpl-client-tags),
1843
- [data-roottale-tpl] :where(.rt-tpl-expertise-tags) {
1844
- display: flex;
1845
- flex-wrap: wrap;
1846
- gap: 0.5rem;
1847
- padding: 0;
1848
- margin: 0;
1849
- list-style: none;
1850
- }
1851
-
1852
- [data-roottale-tpl] :where(.rt-tpl-client-tags li),
1853
- [data-roottale-tpl] :where(.rt-tpl-expertise-tags li) {
1854
- display: inline-flex;
1855
- align-items: center;
1856
- min-block-size: 1.75rem;
1857
- padding-inline: 0.75rem;
1858
- border: 1px solid var(--rt-color-border);
1859
- border-radius: 999px;
1860
- color: var(--rt-color-primary);
1861
- font-size: 0.8125rem;
1862
- font-weight: 800;
1863
- background: color-mix(
1864
- in srgb,
1865
- var(--rt-color-primary) 5%,
1866
- var(--rt-color-background)
1867
- );
1868
- }
1869
-
1870
- [data-roottale-tpl] :where(.rt-tpl-client-disclaimer) {
1871
- margin-block: 1rem 0;
1872
- padding: 1rem;
1873
- border-inline-start: 3px solid var(--rt-color-border);
1874
- color: var(--rt-color-muted-foreground);
1875
- font-size: 0.875rem;
1876
- line-height: 1.65;
1877
- background: color-mix(
1878
- in srgb,
1879
- var(--rt-color-primary) 3%,
1880
- var(--rt-color-background)
1881
- );
1882
- }
1883
-
1884
- [data-roottale-tpl="expertise"] :where(.rt-tpl-expertise-stage) {
1885
- display: grid;
1886
- gap: clamp(1.5rem, 4cqi, 2.5rem);
1887
- }
1888
-
1889
- @container (min-width: 52rem) {
1890
- [data-roottale-tpl="expertise"] :where(.rt-tpl-expertise-stage) {
1891
- grid-template-columns: minmax(14rem, 4fr) minmax(0, 8fr);
1892
- align-items: stretch;
1893
- }
1894
- }
1895
-
1896
- [data-roottale-tpl="expertise"] :where(.rt-tpl-expertise-tabs) {
1897
- display: grid;
1898
- align-content: start;
1899
- border-block-start: 1px solid var(--rt-color-border);
1900
- }
1901
-
1902
- [data-roottale-tpl="expertise"] :where(.rt-tpl-expertise-tab) {
1903
- display: grid;
1904
- gap: 0.375rem;
1905
- inline-size: 100%;
1906
- padding: 1rem 0.25rem;
1907
- border: 0;
1908
- border-block-end: 1px solid var(--rt-color-border);
1909
- background: transparent;
1910
- color: inherit;
1911
- text-align: start;
1912
- cursor: pointer;
1913
- }
1914
-
1915
- [data-roottale-tpl="expertise"] :where(.rt-tpl-expertise-tab[data-active="true"]) {
1916
- color: var(--rt-color-primary);
1917
- }
1918
-
1919
- [data-roottale-tpl="expertise"] :where(.rt-tpl-expertise-tab:focus-visible),
1920
- [data-roottale-tpl="expertise"] :where(.rt-tpl-expertise-panel:focus-visible) {
1921
- outline: 2px solid var(--rt-color-ring, var(--rt-color-primary));
1922
- outline-offset: -2px;
1923
- }
1924
-
1925
- [data-roottale-tpl="expertise"] :where(.rt-tpl-expertise-tab-label),
1926
- [data-roottale-tpl="expertise"] :where(.rt-tpl-expertise-kicker) {
1927
- margin: 0;
1928
- color: var(--rt-color-muted-foreground);
1929
- font-size: 0.8125rem;
1930
- font-weight: 800;
1931
- }
1932
-
1933
- [data-roottale-tpl="expertise"] :where(.rt-tpl-expertise-tab-title) {
1934
- font-family: var(--rt-font-display, var(--rt-font-body, system-ui, sans-serif));
1935
- font-size: 1rem;
1936
- font-weight: 800;
1937
- line-height: 1.35;
1938
- word-break: keep-all;
1939
- }
1940
-
1941
- [data-roottale-tpl="expertise"] :where(.rt-tpl-expertise-panel),
1942
- [data-roottale-tpl="expertise"] :where(.rt-tpl-expertise-card) {
1943
- overflow: hidden;
1944
- border: 1px solid var(--rt-color-border);
1945
- border-radius: var(--rt-radius-md, 0.5rem);
1946
- background: var(--rt-color-background);
1947
- }
1948
-
1949
- [data-roottale-tpl="expertise"] :where(.rt-tpl-expertise-panel) {
1950
- display: grid;
1951
- }
1952
-
1953
- @container (min-width: 44rem) {
1954
- [data-roottale-tpl="expertise"] :where(.rt-tpl-expertise-panel) {
1955
- grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
1956
- }
1957
- }
1958
-
1959
- [data-roottale-tpl="expertise"] :where(.rt-tpl-expertise-panel-img),
1960
- [data-roottale-tpl="expertise"] :where(.rt-tpl-expertise-card-img) {
1961
- inline-size: 100%;
1962
- block-size: 100%;
1963
- min-block-size: 18rem;
1964
- object-fit: cover;
1965
- background: var(--rt-color-muted);
1966
- }
1967
-
1968
- [data-roottale-tpl="expertise"] :where(.rt-tpl-expertise-panel-body),
1969
- [data-roottale-tpl="expertise"] :where(.rt-tpl-expertise-card-body) {
1970
- display: grid;
1971
- align-content: center;
1972
- gap: 1rem;
1973
- padding: clamp(1.25rem, 4cqi, 2rem);
1974
- }
1975
-
1976
- [data-roottale-tpl="expertise"] :where(.rt-tpl-expertise-title) {
1977
- margin: 0;
1978
- font-family: var(--rt-font-display, var(--rt-font-body, system-ui, sans-serif));
1979
- font-size: clamp(1.375rem, 3.6cqi, 1.875rem);
1980
- font-weight: 800;
1981
- line-height: 1.3;
1982
- word-break: keep-all;
1983
- }
1984
-
1985
- [data-roottale-tpl="expertise"] :where(.rt-tpl-expertise-body) {
1986
- margin: 0;
1987
- color: var(--rt-color-muted-foreground);
1988
- line-height: 1.7;
1989
- word-break: keep-all;
1990
- }
1991
-
1992
- [data-roottale-tpl="expertise"] :where(.rt-tpl-expertise-cta),
1993
- [data-roottale-tpl="concerns"] :where(.rt-tpl-concerns-cta) {
1994
- justify-self: start;
1995
- color: var(--rt-color-primary);
1996
- font-size: 0.9375rem;
1997
- font-weight: 800;
1998
- text-decoration: none;
1999
- }
2000
-
2001
- [data-roottale-tpl="expertise"] :where(.rt-tpl-expertise-card-grid) {
2002
- display: grid;
2003
- grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
2004
- gap: 1.25rem;
2005
- padding: 0;
2006
- margin: 0;
2007
- list-style: none;
2008
- }
2009
-
2010
- [data-roottale-tpl="expertise"] :where(.rt-tpl-expertise-card) {
2011
- display: grid;
2012
- }
2013
-
2014
- [data-roottale-tpl="expertise"] :where(.rt-tpl-expertise-card-img) {
2015
- aspect-ratio: 16 / 10;
2016
- min-block-size: 0;
2017
- }
2018
-
2019
- [data-roottale-tpl="spaces"] :where(.rt-tpl-spaces-stage) {
2020
- display: grid;
2021
- gap: 1rem;
2022
- }
2023
-
2024
- [data-roottale-tpl="spaces"] :where(.rt-tpl-spaces-main) {
2025
- position: relative;
2026
- min-block-size: clamp(22rem, 58cqi, 34rem);
2027
- margin: 0;
2028
- overflow: hidden;
2029
- border-radius: var(--rt-radius-md, 0.5rem);
2030
- background: var(--rt-color-muted);
2031
- }
2032
-
2033
- [data-roottale-tpl="spaces"] :where(.rt-tpl-spaces-main-img) {
2034
- inline-size: 100%;
2035
- block-size: 100%;
2036
- object-fit: cover;
2037
- }
2038
-
2039
- [data-roottale-tpl="spaces"] :where(.rt-tpl-spaces-caption) {
2040
- position: absolute;
2041
- inset-inline: 0;
2042
- inset-block-end: 0;
2043
- display: grid;
2044
- gap: 0.375rem;
2045
- padding: clamp(1rem, 4cqi, 1.75rem);
2046
- background: linear-gradient(
2047
- to top,
2048
- color-mix(in srgb, var(--rt-color-foreground) 76%, transparent),
2049
- transparent
2050
- );
2051
- color: var(--rt-color-primary-foreground);
2052
- }
2053
-
2054
- [data-roottale-tpl="spaces"] :where(.rt-tpl-spaces-kicker) {
2055
- font-size: 0.75rem;
2056
- font-weight: 800;
2057
- }
2058
-
2059
- [data-roottale-tpl="spaces"] :where(.rt-tpl-spaces-title) {
2060
- font-family: var(--rt-font-display, var(--rt-font-body, system-ui, sans-serif));
2061
- font-size: clamp(1.25rem, 3.6cqi, 1.75rem);
2062
- font-weight: 800;
2063
- line-height: 1.25;
2064
- }
2065
-
2066
- [data-roottale-tpl="spaces"] :where(.rt-tpl-spaces-desc) {
2067
- max-inline-size: 42rem;
2068
- color: color-mix(in srgb, var(--rt-color-primary-foreground) 82%, transparent);
2069
- line-height: 1.6;
2070
- }
2071
-
2072
- [data-roottale-tpl="spaces"] :where(.rt-tpl-spaces-rail) {
2073
- display: flex;
2074
- gap: 0.75rem;
2075
- overflow-x: auto;
2076
- padding-block: 0.25rem;
2077
- scrollbar-width: none;
2078
- }
2079
-
2080
- [data-roottale-tpl="spaces"] :where(.rt-tpl-spaces-rail)::-webkit-scrollbar {
2081
- display: none;
2082
- }
2083
-
2084
- [data-roottale-tpl="spaces"] :where(.rt-tpl-spaces-thumb) {
2085
- flex: 0 0 min(13rem, 72cqi);
2086
- display: grid;
2087
- gap: 0.5rem;
2088
- padding: 0;
2089
- border: 1px solid var(--rt-color-border);
2090
- border-radius: var(--rt-radius-md, 0.5rem);
2091
- overflow: hidden;
2092
- color: inherit;
2093
- background: var(--rt-color-background);
2094
- cursor: pointer;
2095
- text-align: start;
2096
- }
2097
-
2098
- [data-roottale-tpl="spaces"] :where(.rt-tpl-spaces-thumb[data-active="true"]) {
2099
- border-color: var(--rt-color-primary);
2100
- }
2101
-
2102
- [data-roottale-tpl="spaces"] :where(.rt-tpl-spaces-thumb img) {
2103
- inline-size: 100%;
2104
- aspect-ratio: 16 / 10;
2105
- object-fit: cover;
2106
- }
2107
-
2108
- [data-roottale-tpl="spaces"] :where(.rt-tpl-spaces-thumb span) {
2109
- padding: 0 0.75rem 0.75rem;
2110
- font-size: 0.875rem;
2111
- font-weight: 800;
2112
- }
2113
-
2114
- [data-roottale-tpl="spaces"] :where(.rt-tpl-spaces-mosaic) {
2115
- display: grid;
2116
- gap: 1rem;
2117
- padding: 0;
2118
- margin: 0;
2119
- list-style: none;
2120
- }
2121
-
2122
- @container (min-width: 48rem) {
2123
- [data-roottale-tpl="spaces"] :where(.rt-tpl-spaces-mosaic) {
2124
- grid-template-columns: repeat(4, minmax(0, 1fr));
2125
- }
2126
-
2127
- [data-roottale-tpl="spaces"] :where(.rt-tpl-spaces-tile:first-child) {
2128
- grid-column: span 2;
2129
- grid-row: span 2;
2130
- }
2131
- }
2132
-
2133
- [data-roottale-tpl="spaces"] :where(.rt-tpl-spaces-tile) {
2134
- position: relative;
2135
- min-block-size: 15rem;
2136
- overflow: hidden;
2137
- border-radius: var(--rt-radius-md, 0.5rem);
2138
- background: var(--rt-color-muted);
2139
- }
2140
-
2141
- [data-roottale-tpl="spaces"] :where(.rt-tpl-spaces-tile img) {
2142
- inline-size: 100%;
2143
- block-size: 100%;
2144
- object-fit: cover;
2145
- }
2146
-
2147
- [data-roottale-tpl="spaces"] :where(.rt-tpl-spaces-tile-caption) {
2148
- position: absolute;
2149
- inset-inline: 0;
2150
- inset-block-end: 0;
2151
- display: grid;
2152
- gap: 0.375rem;
2153
- padding: 1rem;
2154
- background: linear-gradient(
2155
- to top,
2156
- color-mix(in srgb, var(--rt-color-foreground) 76%, transparent),
2157
- transparent
2158
- );
2159
- color: var(--rt-color-primary-foreground);
2160
- }
2161
-
2162
- [data-roottale-tpl="spaces"] :where(.rt-tpl-spaces-tile-caption h3),
2163
- [data-roottale-tpl="spaces"] :where(.rt-tpl-spaces-tile-caption p) {
2164
- margin: 0;
2165
- }
2166
-
2167
- [data-roottale-tpl="spaces"] :where(.rt-tpl-spaces-tile-caption h3) {
2168
- font-family: var(--rt-font-display, var(--rt-font-body, system-ui, sans-serif));
2169
- font-size: 1.125rem;
2170
- font-weight: 800;
2171
- }
2172
-
2173
- [data-roottale-tpl="spaces"] :where(.rt-tpl-spaces-tile-caption p) {
2174
- color: color-mix(in srgb, var(--rt-color-primary-foreground) 82%, transparent);
2175
- font-size: 0.875rem;
2176
- line-height: 1.55;
2177
- }
2178
-
2179
- [data-roottale-tpl="concerns"] :where(.rt-tpl-concerns-map-layout) {
2180
- display: grid;
2181
- gap: clamp(1.5rem, 5cqi, 2.5rem);
2182
- }
2183
-
2184
- @container (min-width: 52rem) {
2185
- [data-roottale-tpl="concerns"] :where(.rt-tpl-concerns-map-layout) {
2186
- grid-template-columns: minmax(0, 7fr) minmax(16rem, 5fr);
2187
- align-items: start;
2188
- }
2189
- }
2190
-
2191
- [data-roottale-tpl="concerns"] :where(.rt-tpl-concerns-figure-wrap) {
2192
- position: relative;
2193
- overflow: hidden;
2194
- border: 1px solid var(--rt-color-border);
2195
- border-radius: var(--rt-radius-md, 0.5rem);
2196
- background: var(--rt-color-background);
2197
- }
2198
-
2199
- [data-roottale-tpl="concerns"] :where(.rt-tpl-concerns-figure) {
2200
- display: block;
2201
- inline-size: 100%;
2202
- min-block-size: clamp(22rem, 56cqi, 34rem);
2203
- object-fit: cover;
2204
- }
2205
-
2206
- [data-roottale-tpl="concerns"] :where(.rt-tpl-concerns-hotspot) {
2207
- position: absolute;
2208
- transform: translate(-50%, -50%);
2209
- display: inline-flex;
2210
- align-items: center;
2211
- justify-content: center;
2212
- min-inline-size: 2rem;
2213
- min-block-size: 2rem;
2214
- padding: 0.375rem 0.75rem;
2215
- border: 1px solid var(--rt-color-primary);
2216
- border-radius: 999px;
2217
- background: color-mix(
2218
- in srgb,
2219
- var(--rt-color-background) 88%,
2220
- transparent
2221
- );
2222
- color: var(--rt-color-primary);
2223
- font-size: 0.8125rem;
2224
- font-weight: 800;
2225
- cursor: pointer;
2226
- backdrop-filter: blur(8px);
2227
- }
2228
-
2229
- [data-roottale-tpl="concerns"] :where(.rt-tpl-concerns-hotspot[data-active="true"]) {
2230
- background: var(--rt-color-primary);
2231
- color: var(--rt-color-primary-foreground);
2232
- }
2233
-
2234
- [data-roottale-tpl="concerns"] :where(.rt-tpl-concerns-side) {
2235
- display: grid;
2236
- gap: 1rem;
2237
- }
2238
-
2239
- [data-roottale-tpl="concerns"] :where(.rt-tpl-concerns-button-list) {
2240
- display: flex;
2241
- flex-wrap: wrap;
2242
- gap: 0.5rem;
2243
- }
2244
-
2245
- [data-roottale-tpl="concerns"] :where(.rt-tpl-concerns-list-button) {
2246
- min-block-size: 2rem;
2247
- padding-inline: 0.875rem;
2248
- border: 1px solid var(--rt-color-border);
2249
- border-radius: 999px;
2250
- background: var(--rt-color-background);
2251
- color: var(--rt-color-foreground);
2252
- font-size: 0.875rem;
2253
- font-weight: 800;
2254
- cursor: pointer;
2255
- }
2256
-
2257
- [data-roottale-tpl="concerns"] :where(.rt-tpl-concerns-list-button[data-active="true"]) {
2258
- border-color: var(--rt-color-primary);
2259
- color: var(--rt-color-primary);
2260
- }
2261
-
2262
- [data-roottale-tpl="concerns"] :where(.rt-tpl-concerns-panel),
2263
- [data-roottale-tpl="concerns"] :where(.rt-tpl-concerns-card) {
2264
- display: grid;
2265
- gap: 0.875rem;
2266
- padding: clamp(1.25rem, 4cqi, 1.75rem);
2267
- border: 1px solid var(--rt-color-border);
2268
- border-radius: var(--rt-radius-md, 0.5rem);
2269
- background: var(--rt-color-background);
2270
- }
2271
-
2272
- [data-roottale-tpl="concerns"] :where(.rt-tpl-concerns-label) {
2273
- margin: 0;
2274
- color: var(--rt-color-primary);
2275
- font-size: 0.8125rem;
2276
- font-weight: 800;
2277
- }
2278
-
2279
- [data-roottale-tpl="concerns"] :where(.rt-tpl-concerns-title) {
2280
- margin: 0;
2281
- font-family: var(--rt-font-display, var(--rt-font-body, system-ui, sans-serif));
2282
- font-size: clamp(1.25rem, 3.4cqi, 1.625rem);
2283
- font-weight: 800;
2284
- line-height: 1.3;
2285
- word-break: keep-all;
2286
- }
2287
-
2288
- [data-roottale-tpl="concerns"] :where(.rt-tpl-concerns-desc) {
2289
- margin: 0;
2290
- color: var(--rt-color-muted-foreground);
2291
- line-height: 1.7;
2292
- word-break: keep-all;
2293
- }
2294
-
2295
- [data-roottale-tpl="concerns"] :where(.rt-tpl-concerns-items) {
2296
- display: grid;
2297
- gap: 0.5rem;
2298
- padding-inline-start: 1.25rem;
2299
- margin: 0;
2300
- color: var(--rt-color-muted-foreground);
2301
- font-size: 0.9375rem;
2302
- }
2303
-
2304
- [data-roottale-tpl="concerns"] :where(.rt-tpl-concerns-list) {
2305
- display: grid;
2306
- grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
2307
- gap: 1rem;
2308
- padding: 0;
2309
- margin: 0;
2310
- list-style: none;
2311
- }
2312
-
2313
- /* ── placeholder (admin preview 의 customSections skeleton) ──────────────── */
2314
-
2315
- [data-roottale-tpl] :where(.rt-tpl-placeholder-box) {
2316
- border: 2px dashed var(--rt-color-border, #dceef3);
2317
- border-radius: var(--rt-radius-md, 0.5rem);
2318
- padding: 2.5rem;
2319
- text-align: center;
2320
- color: var(--rt-color-muted-foreground, #6e6e6e);
2321
- font-family: ui-monospace, monospace;
2322
- font-size: 0.875rem;
2323
- }
2324
-
2325
- /* ── hero: carousel (ADR-0073 K3 C1) ─────────────────────────────────────────
2326
- * 별도 섹션에 둔다 — 위 legacy 5종/trust/contact CSS 는 트러스트 회귀 테스트가
2327
- * "@media 금지 + hex 리터럴 금지"를 강제하는 영역이라(`trust-contact.test.tsx`),
2328
- * `prefers-reduced-motion` 미디어쿼리가 필요한 이 variant 는 그 계약 밖에
2329
- * 둬야 두 계약이 충돌하지 않는다. 풀스크린은 컨테이너 쿼리 대신 `svh` 사용
2330
- * (이 리포에 아직 block-axis(`cqb`/`container-type: size`) 컨벤션이 없음 —
2331
- * S2 의 inline-axis(`cqi`) 컨벤션과는 다른 축이라 그대로 확장할 수 없다.
2332
- * ds-rule-pack.md 에 명시된 편차). */
2333
-
2334
- [data-roottale-tpl="hero"][data-variant="carousel"] {
2335
- position: relative;
2336
- container-type: inline-size;
2337
- padding-block: 0;
2338
- overflow: hidden;
2339
- /* 고정 100svh — `min-block-size` 였다면 절대배치 아닌 자손(과거 컨트롤 바)이
2340
- * grid auto-row 를 밀어 첫 화면보다 커질 수 있다. 자손은 전부
2341
- * absolute/inset 로 이 고정 박스 안에서만 움직인다. */
2342
- block-size: 100svh;
2343
- block-size: var(--rt-hero-carousel-height, 100svh);
2344
- display: grid;
2345
- }
2346
-
2347
- [data-roottale-tpl="hero"][data-variant="carousel"] :where(.rt-tpl-hero-carousel),
2348
- [data-roottale-tpl="hero"][data-variant="carousel"] :where(.rt-tpl-hero-carousel-overlay) {
2349
- grid-area: 1 / 1;
2350
- }
2351
-
2352
- [data-roottale-tpl="hero"][data-variant="carousel"] :where(.rt-tpl-hero-carousel) {
2353
- position: relative;
2354
- inline-size: 100%;
2355
- block-size: 100%;
2356
- overflow: hidden;
2357
- }
2358
-
2359
- [data-roottale-tpl="hero"][data-variant="carousel"]
2360
- :where(.rt-tpl-hero-carousel-viewport) {
2361
- overflow: hidden;
2362
- inline-size: 100%;
2363
- block-size: 100%;
2364
- }
2365
-
2366
- [data-roottale-tpl="hero"][data-variant="carousel"]
2367
- :where(.rt-tpl-hero-carousel-track) {
2368
- display: flex;
2369
- inline-size: 100%;
2370
- block-size: 100%;
2371
- }
2372
-
2373
- [data-roottale-tpl="hero"][data-variant="carousel"]
2374
- :where(.rt-tpl-hero-carousel-slide) {
2375
- position: relative;
2376
- flex: 0 0 100%;
2377
- block-size: 100%;
2378
- overflow: hidden;
2379
- }
2380
-
2381
- [data-roottale-tpl="hero"][data-variant="carousel"]
2382
- :where(.rt-tpl-hero-carousel-img) {
2383
- position: absolute;
2384
- inset: 0;
2385
- inline-size: 100%;
2386
- block-size: 100%;
2387
- object-fit: cover;
2388
- transform: scale(1);
2389
- }
2390
-
2391
- /* Ken Burns — 활성 슬라이드만, reduced-motion 아닐 때만(M5). */
2392
- @media (prefers-reduced-motion: no-preference) {
2393
- [data-roottale-tpl="hero"][data-variant="carousel"]
2394
- :where(.rt-tpl-hero-carousel-img[data-active="true"]) {
2395
- animation: rt-hero-carousel-kenburns 8s ease-out forwards;
2396
- }
2397
- }
2398
-
2399
- @keyframes rt-hero-carousel-kenburns {
2400
- from {
2401
- transform: scale(1);
2402
- }
2403
- to {
2404
- transform: scale(1.05);
2405
- }
2406
- }
2407
-
2408
- /* ---- curtain transition (ADR-0086 P2 D3, chambarun 이식) ----
2409
- * 절대배치 스택 — 각 슬라이드가 clip-path 와이프로 스스로를 드러낸다(embla
2410
- * 가로 스크롤 없음). 타이밍·이징·클립 경로는 원본
2411
- * chambarun `assets/site.css` `@keyframes curtainReveal`/`.curtain-sheen` 값을
2412
- * 그대로 유지, 색만 하드코딩 헥스 대신 --rt-* 토큰으로 치환했다. */
2413
- [data-roottale-tpl="hero"][data-variant="carousel"]
2414
- :where(.rt-tpl-hero-carousel[data-transition="curtain"] .rt-tpl-hero-carousel-slide) {
2415
- position: absolute;
2416
- inset: 0;
2417
- flex: none;
2418
- opacity: 0;
2419
- z-index: 0;
2420
- pointer-events: none;
2421
- clip-path: inset(0 0 0 0);
2422
- }
2423
-
2424
- [data-roottale-tpl="hero"][data-variant="carousel"]
2425
- :where(.rt-tpl-hero-carousel[data-transition="curtain"] .rt-tpl-hero-carousel-slide[data-leaving="true"]) {
2426
- opacity: 1;
2427
- z-index: 1;
2428
- }
2429
-
2430
- [data-roottale-tpl="hero"][data-variant="carousel"]
2431
- :where(.rt-tpl-hero-carousel[data-transition="curtain"] .rt-tpl-hero-carousel-slide[data-active="true"]) {
2432
- opacity: 1;
2433
- z-index: 2;
2434
- pointer-events: auto;
2435
- }
2436
-
2437
- @media (prefers-reduced-motion: no-preference) {
2438
- [data-roottale-tpl="hero"][data-variant="carousel"]
2439
- :where(.rt-tpl-hero-carousel[data-transition="curtain"] .rt-tpl-hero-carousel-slide[data-active="true"]) {
2440
- animation: rt-hero-carousel-curtain-reveal 0.92s cubic-bezier(0.76, 0, 0.24, 1) both;
2441
- }
2442
- }
2443
-
2444
- @keyframes rt-hero-carousel-curtain-reveal {
2445
- from {
2446
- clip-path: inset(0 100% 0 0);
2447
- }
2448
- to {
2449
- clip-path: inset(0 0 0 0);
2450
- }
2451
- }
2452
-
2453
- /* 신 스윕 — 활성 슬라이드 위를 가로지르는 얇은 하이라이트 밴드. chambarun 은
2454
- * teal/green 2색 그라디언트였으나 고객사 테마마다 브랜드색이 달라 토큰
2455
- * 하나(primary-foreground)의 color-mix 농도 변화로 대체(대면적 채도 배색
2456
- * 하드코딩 금지 관행과 동일 이유). */
2457
- [data-roottale-tpl="hero"][data-variant="carousel"]
2458
- :where(.rt-tpl-hero-carousel[data-transition="curtain"] .rt-tpl-hero-carousel-sheen) {
2459
- position: absolute;
2460
- inset-block: 0;
2461
- inset-inline-start: 0;
2462
- z-index: 1;
2463
- inline-size: clamp(82px, 10cqi, 150px);
2464
- pointer-events: none;
2465
- opacity: 0;
2466
- transform: translate3d(-160px, 0, 0);
2467
- background: linear-gradient(
2468
- 90deg,
2469
- transparent 0%,
2470
- color-mix(in srgb, var(--rt-color-primary-foreground, #ffffff) 22%, transparent) 30%,
2471
- color-mix(in srgb, var(--rt-color-primary-foreground, #ffffff) 58%, transparent) 48%,
2472
- color-mix(in srgb, var(--rt-color-primary-foreground, #ffffff) 18%, transparent) 62%,
2473
- transparent 100%
2474
- );
2475
- mix-blend-mode: screen;
2476
- will-change: transform, opacity;
2477
- }
2478
-
2479
- @media (prefers-reduced-motion: no-preference) {
2480
- [data-roottale-tpl="hero"][data-variant="carousel"]
2481
- :where(.rt-tpl-hero-carousel[data-transition="curtain"] .rt-tpl-hero-carousel-slide[data-active="true"] .rt-tpl-hero-carousel-sheen) {
2482
- animation: rt-hero-carousel-curtain-sheen 0.9s cubic-bezier(0.76, 0, 0.24, 1) both;
2483
- }
2484
- }
2485
-
2486
- @keyframes rt-hero-carousel-curtain-sheen {
2487
- 0% {
2488
- opacity: 0;
2489
- transform: translate3d(-160px, 0, 0);
2490
- }
2491
- 14% {
2492
- opacity: 0.82;
2493
- }
2494
- 76% {
2495
- opacity: 0.68;
2496
- }
2497
- 100% {
2498
- opacity: 0;
2499
- transform: translate3d(100cqi, 0, 0);
2500
- }
2501
- }
2502
-
2503
- /* 오버레이 eyebrow — 스크림 위에서는 테마 primary(잉크/민트)가 아니라 밝은
2504
- * 전경색이어야 읽힌다(미감 라운드 2 — 민트 eyebrow 소실 실측). */
2505
- [data-roottale-tpl="hero"][data-variant="carousel"]
2506
- :where(.rt-tpl-hero-carousel-overlay .rt-tpl-hero-eyebrow) {
2507
- color: color-mix(in srgb, var(--rt-color-primary-foreground, #ffffff) 85%, transparent);
2508
- font-size: 0.875rem;
2509
- font-weight: 600;
2510
- letter-spacing: 0.12em;
2511
- }
2512
-
2513
- /* 카피 오버레이 — 슬라이드와 무관하게 고정. 배경 위 대비 확보용 스크림. */
2514
- [data-roottale-tpl="hero"][data-variant="carousel"]
2515
- :where(.rt-tpl-hero-carousel-overlay) {
2516
- position: relative;
2517
- z-index: 1;
2518
- align-self: end;
2519
- inline-size: 100%;
2520
- padding-block-end: clamp(3rem, 9cqi, 6.5rem);
2521
- padding-block-start: clamp(7rem, 22cqi, 11rem);
2522
- /* 스크림 = 중립 잉크(foreground) 기반 — background(흰) 기반이면 안개,
2523
- * primary(브랜드색 — 민트 테마면 청록) 기반이면 사진이 브랜드색으로 덮인다.
2524
- * 명암은 중립, 브랜드색은 액센트(CTA·eyebrow)에만(미감 라운드 1~3 실측). */
2525
- background: linear-gradient(
2526
- to top,
2527
- color-mix(in srgb, var(--rt-color-foreground, #06162f) 82%, transparent) 0%,
2528
- color-mix(in srgb, var(--rt-color-foreground, #06162f) 34%, transparent) 55%,
2529
- transparent 100%
2530
- );
2531
- color: var(--rt-color-primary-foreground, #ffffff);
2532
- }
2533
-
2534
- [data-roottale-tpl="hero"][data-variant="carousel"]
2535
- :where(.rt-tpl-hero-carousel-title) {
2536
- font-size: clamp(2.625rem, 8.5cqi, 5rem);
2537
- font-weight: 800;
2538
- letter-spacing: -0.035em;
2539
- line-height: 1.08;
2540
- word-break: keep-all;
2541
- text-wrap: balance;
2542
- max-inline-size: 22ch;
2543
- color: inherit;
2544
- }
2545
-
2546
- [data-roottale-tpl="hero"][data-variant="carousel"]
2547
- :where(.rt-tpl-hero-carousel-subtitle) {
2548
- font-size: 1.125rem;
2549
- line-height: 1.7;
2550
- word-break: keep-all;
2551
- color: color-mix(in srgb, var(--rt-color-primary-foreground, #ffffff) 88%, transparent);
2552
- max-inline-size: 40rem;
2553
- }
2554
-
2555
- /* 화살표 */
2556
- [data-roottale-tpl="hero"][data-variant="carousel"]
2557
- :where(.rt-tpl-hero-carousel-arrow) {
2558
- position: absolute;
2559
- z-index: 2;
2560
- inset-block-start: 50%;
2561
- transform: translateY(-50%);
2562
- inline-size: 2.75rem;
2563
- block-size: 2.75rem;
2564
- display: inline-flex;
2565
- align-items: center;
2566
- justify-content: center;
2567
- border-radius: 999px;
2568
- border: 1px solid color-mix(in srgb, var(--rt-color-primary-foreground, #ffffff) 28%, transparent);
2569
- background: color-mix(in srgb, var(--rt-color-foreground, #06162f) 24%, transparent);
2570
- backdrop-filter: blur(8px);
2571
- color: var(--rt-color-primary-foreground, #ffffff);
2572
- cursor: pointer;
2573
- transition: background 180ms ease, border-color 180ms ease;
2574
- }
2575
-
2576
- [data-roottale-tpl="hero"][data-variant="carousel"]
2577
- :where(.rt-tpl-hero-carousel-arrow:hover) {
2578
- background: color-mix(in srgb, var(--rt-color-foreground, #06162f) 48%, transparent);
2579
- border-color: color-mix(in srgb, var(--rt-color-primary-foreground, #ffffff) 45%, transparent);
2580
- }
2581
-
2582
- [data-roottale-tpl="hero"][data-variant="carousel"]
2583
- :where(.rt-tpl-hero-carousel-arrow svg) {
2584
- inline-size: 1.25rem;
2585
- block-size: 1.25rem;
2586
- }
2587
-
2588
- [data-roottale-tpl="hero"][data-variant="carousel"]
2589
- :where(.rt-tpl-hero-carousel-arrow--prev) {
2590
- inset-inline-start: clamp(1rem, 4cqi, 2.5rem);
2591
- }
2592
-
2593
- [data-roottale-tpl="hero"][data-variant="carousel"]
2594
- :where(.rt-tpl-hero-carousel-arrow--next) {
2595
- inset-inline-end: clamp(1rem, 4cqi, 2.5rem);
2596
- }
2597
-
2598
- /* 도트 + N/M 카운터 — absolute 로 뷰포트 바닥에 고정(일반 flow 에 두면 카피
2599
- * 오버레이 아래로 페이지 높이가 100svh 를 넘어버린다, VRT 로 실측). */
2600
- [data-roottale-tpl="hero"][data-variant="carousel"]
2601
- :where(.rt-tpl-hero-carousel-controls) {
2602
- position: absolute;
2603
- z-index: 2;
2604
- inset-inline: 0;
2605
- inset-block-end: clamp(1rem, 3cqi, 1.5rem);
2606
- display: flex;
2607
- align-items: center;
2608
- justify-content: space-between;
2609
- gap: 1rem;
2610
- max-inline-size: var(--rt-tpl-page-max, 72rem);
2611
- margin-inline: auto;
2612
- padding-inline: 1.25rem;
2613
- }
2614
-
2615
- [data-roottale-tpl="hero"][data-variant="carousel"]
2616
- :where(.rt-tpl-hero-carousel-dots) {
2617
- display: flex;
2618
- align-items: center;
2619
- gap: 0.5rem;
2620
- }
2621
-
2622
- [data-roottale-tpl="hero"][data-variant="carousel"]
2623
- :where(.rt-tpl-hero-carousel-dot) {
2624
- inline-size: 0.5rem;
2625
- block-size: 0.5rem;
2626
- border-radius: 999px;
2627
- border: 0;
2628
- padding: 0;
2629
- cursor: pointer;
2630
- background: color-mix(in srgb, var(--rt-color-primary-foreground, #ffffff) 40%, transparent);
2631
- transition: inline-size 240ms ease, background 240ms ease;
2632
- }
2633
-
2634
- [data-roottale-tpl="hero"][data-variant="carousel"]
2635
- :where(.rt-tpl-hero-carousel-dot[data-active="true"]) {
2636
- inline-size: 1.375rem;
2637
- }
2638
-
2639
- [data-roottale-tpl="hero"][data-variant="carousel"]
2640
- :where(.rt-tpl-hero-carousel-dot[data-active="true"]) {
2641
- background: var(--rt-color-primary-foreground, #ffffff);
2642
- }
2643
-
2644
- [data-roottale-tpl="hero"][data-variant="carousel"]
2645
- :where(.rt-tpl-hero-carousel-counter) {
2646
- margin: 0;
2647
- font-variant-numeric: tabular-nums;
2648
- color: color-mix(in srgb, var(--rt-color-primary-foreground, #ffffff) 92%, transparent);
2649
- font-size: 0.8125rem;
2650
- font-weight: 600;
2651
- letter-spacing: 0.06em;
2652
- }
2653
-
2654
- /* D4 — autoplay pause/재생 버튼: 도트·카운터와 같은 우측 클러스터에 절제된
2655
- * 크기로 둔다(화살표와 동일 언어이나 더 작게 — 보조 컨트롤이라는 위계). */
2656
- [data-roottale-tpl="hero"][data-variant="carousel"]
2657
- :where(.rt-tpl-hero-carousel-controls-right) {
2658
- display: flex;
2659
- align-items: center;
2660
- gap: 0.75rem;
2661
- }
2662
-
2663
- [data-roottale-tpl="hero"][data-variant="carousel"]
2664
- :where(.rt-tpl-hero-carousel-playpause) {
2665
- display: inline-flex;
2666
- align-items: center;
2667
- justify-content: center;
2668
- inline-size: 1.75rem;
2669
- block-size: 1.75rem;
2670
- border-radius: 999px;
2671
- border: 1px solid color-mix(in srgb, var(--rt-color-primary-foreground, #ffffff) 28%, transparent);
2672
- background: color-mix(in srgb, var(--rt-color-foreground, #06162f) 24%, transparent);
2673
- color: var(--rt-color-primary-foreground, #ffffff);
2674
- cursor: pointer;
2675
- transition: background 180ms ease, border-color 180ms ease;
2676
- }
2677
-
2678
- [data-roottale-tpl="hero"][data-variant="carousel"]
2679
- :where(.rt-tpl-hero-carousel-playpause:hover) {
2680
- background: color-mix(in srgb, var(--rt-color-foreground, #06162f) 48%, transparent);
2681
- border-color: color-mix(in srgb, var(--rt-color-primary-foreground, #ffffff) 45%, transparent);
2682
- }
2683
-
2684
- [data-roottale-tpl="hero"][data-variant="carousel"]
2685
- :where(.rt-tpl-hero-carousel-playpause svg) {
2686
- inline-size: 0.85rem;
2687
- block-size: 0.85rem;
2688
- }
2689
-
2690
- [data-roottale-tpl="hours"],
2691
- [data-roottale-tpl="pricing"],
2692
- [data-roottale-tpl="process"] {
2693
- container-type: inline-size;
2694
- }
2695
-
2696
- [data-roottale-tpl] :where(.rt-tpl-practice-header) {
2697
- max-inline-size: 48rem;
2698
- }
2699
-
2700
- [data-roottale-tpl] :where(.rt-tpl-practice-eyebrow) {
2701
- margin: 0 0 0.75rem;
2702
- color: var(--rt-color-primary, #06162f);
2703
- font-size: 0.8125rem;
2704
- font-weight: 800;
2705
- letter-spacing: 0.08em;
2706
- }
2707
-
2708
- [data-roottale-tpl] :where(.rt-tpl-practice-table-wrap) {
2709
- overflow-x: auto;
2710
- border: 1px solid var(--rt-color-border, #dceef3);
2711
- border-radius: var(--rt-radius-md, 0.5rem);
2712
- background: var(--rt-color-background, #ffffff);
2713
- }
2714
-
2715
- [data-roottale-tpl] :where(.rt-tpl-practice-table) {
2716
- inline-size: 100%;
2717
- min-inline-size: 44rem;
2718
- border-collapse: collapse;
2719
- font-size: 0.9375rem;
2720
- }
2721
-
2722
- [data-roottale-tpl] :where(.rt-tpl-practice-table th),
2723
- [data-roottale-tpl] :where(.rt-tpl-practice-table td) {
2724
- padding: 1rem;
2725
- border-block-end: 1px solid var(--rt-color-border, #dceef3);
2726
- text-align: start;
2727
- vertical-align: top;
2728
- }
2729
-
2730
- [data-roottale-tpl] :where(.rt-tpl-practice-table thead th) {
2731
- color: var(--rt-color-muted-foreground, #6e6e6e);
2732
- font-size: 0.75rem;
2733
- font-weight: 800;
2734
- letter-spacing: 0.04em;
2735
- }
2736
-
2737
- [data-roottale-tpl] :where(.rt-tpl-practice-primary) {
2738
- color: var(--rt-color-foreground, #06162f);
2739
- font-weight: 800;
2740
- }
2741
-
2742
- [data-roottale-tpl] :where(.rt-tpl-practice-muted) {
2743
- color: var(--rt-color-muted-foreground, #6e6e6e);
2744
- }
2745
-
2746
- [data-roottale-tpl] :where(.rt-tpl-practice-table-note td) {
2747
- color: var(--rt-color-muted-foreground, #6e6e6e);
2748
- background: color-mix(
2749
- in srgb,
2750
- var(--rt-color-primary, #06162f) 4%,
2751
- var(--rt-color-background, #ffffff)
2752
- );
2753
- }
2754
-
2755
- [data-roottale-tpl] :where(.rt-tpl-practice-badges) {
2756
- display: flex;
2757
- flex-wrap: wrap;
2758
- gap: 0.375rem;
2759
- }
2760
-
2761
- [data-roottale-tpl] :where(.rt-tpl-practice-badge) {
2762
- display: inline-flex;
2763
- align-items: center;
2764
- min-block-size: 1.5rem;
2765
- padding-inline: 0.625rem;
2766
- border: 1px solid var(--rt-color-border, #dceef3);
2767
- border-radius: 999px;
2768
- color: var(--rt-color-muted-foreground, #6e6e6e);
2769
- font-size: 0.75rem;
2770
- font-weight: 700;
2771
- background: var(--rt-color-background, #ffffff);
2772
- }
2773
-
2774
- [data-roottale-tpl] :where(.rt-tpl-practice-note),
2775
- [data-roottale-tpl] :where(.rt-tpl-practice-disclaimer) {
2776
- margin-block: 1rem 0;
2777
- color: var(--rt-color-muted-foreground, #6e6e6e);
2778
- font-size: 0.875rem;
2779
- line-height: 1.65;
2780
- }
2781
-
2782
- [data-roottale-tpl] :where(.rt-tpl-practice-disclaimer) {
2783
- padding: 1rem;
2784
- border-inline-start: 3px solid var(--rt-color-border, #dceef3);
2785
- background: color-mix(
2786
- in srgb,
2787
- var(--rt-color-primary, #06162f) 3%,
2788
- var(--rt-color-background, #ffffff)
2789
- );
2790
- }
2791
-
2792
- [data-roottale-tpl="hours"][data-variant="compact"]
2793
- :where(.rt-tpl-hours-compact-list) {
2794
- display: grid;
2795
- gap: 0;
2796
- margin: 0;
2797
- border-block-start: 1px solid var(--rt-color-border, #dceef3);
2798
- }
2799
-
2800
- [data-roottale-tpl="hours"][data-variant="compact"]
2801
- :where(.rt-tpl-hours-compact-row) {
2802
- display: grid;
2803
- gap: 0.75rem;
2804
- padding-block: 1rem;
2805
- border-block-end: 1px solid var(--rt-color-border, #dceef3);
2806
- }
2807
-
2808
- @container (min-width: 38rem) {
2809
- [data-roottale-tpl="hours"][data-variant="compact"]
2810
- :where(.rt-tpl-hours-compact-row) {
2811
- grid-template-columns: 10rem minmax(0, 1fr);
2812
- }
2813
- }
2814
-
2815
- [data-roottale-tpl="hours"][data-variant="compact"]
2816
- :where(.rt-tpl-hours-compact-day) {
2817
- font-weight: 800;
2818
- }
2819
-
2820
- [data-roottale-tpl="hours"][data-variant="compact"]
2821
- :where(.rt-tpl-hours-compact-body) {
2822
- display: flex;
2823
- flex-wrap: wrap;
2824
- gap: 0.5rem 1rem;
2825
- margin: 0;
2826
- }
2827
-
2828
- [data-roottale-tpl] :where(.rt-tpl-hours-time) {
2829
- font-weight: 700;
2830
- font-variant-numeric: tabular-nums;
2831
- }
2832
-
2833
- [data-roottale-tpl] :where(.rt-tpl-hours-muted) {
2834
- color: var(--rt-color-muted-foreground, #6e6e6e);
2835
- }
2836
-
2837
- [data-roottale-tpl="pricing"] :where(.rt-tpl-pricing-group-row td) {
2838
- color: var(--rt-color-primary, #06162f);
2839
- font-weight: 800;
2840
- background: color-mix(
2841
- in srgb,
2842
- var(--rt-color-primary, #06162f) 5%,
2843
- var(--rt-color-background, #ffffff)
2844
- );
2845
- }
2846
-
2847
- [data-roottale-tpl="pricing"] :where(.rt-tpl-pricing-price) {
2848
- color: var(--rt-color-foreground, #06162f);
2849
- font-weight: 800;
2850
- font-variant-numeric: tabular-nums;
2851
- }
2852
-
2853
- [data-roottale-tpl="pricing"][data-variant="cards"]
2854
- :where(.rt-tpl-pricing-card-groups) {
2855
- display: grid;
2856
- gap: clamp(1.5rem, 4cqi, 2rem);
2857
- }
2858
-
2859
- [data-roottale-tpl="pricing"][data-variant="cards"]
2860
- :where(.rt-tpl-pricing-group-title) {
2861
- margin: 0 0 0.75rem;
2862
- color: var(--rt-color-primary, #06162f);
2863
- font-family: var(--rt-font-display, var(--rt-font-body, system-ui, sans-serif));
2864
- font-size: 1rem;
2865
- font-weight: 800;
2866
- }
2867
-
2868
- [data-roottale-tpl="pricing"][data-variant="cards"]
2869
- :where(.rt-tpl-pricing-card-list) {
2870
- display: grid;
2871
- grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
2872
- gap: 1rem;
2873
- padding: 0;
2874
- margin: 0;
2875
- list-style: none;
2876
- }
2877
-
2878
- [data-roottale-tpl="pricing"][data-variant="cards"]
2879
- :where(.rt-tpl-pricing-card) {
2880
- display: grid;
2881
- gap: 1rem;
2882
- align-content: start;
2883
- padding: 1.25rem;
2884
- border: 1px solid var(--rt-color-border, #dceef3);
2885
- border-radius: var(--rt-radius-md, 0.5rem);
2886
- background: var(--rt-color-background, #ffffff);
2887
- }
2888
-
2889
- [data-roottale-tpl="pricing"] :where(.rt-tpl-pricing-name) {
2890
- margin: 0 0 0.375rem;
2891
- font-family: var(--rt-font-display, var(--rt-font-body, system-ui, sans-serif));
2892
- font-size: 1.0625rem;
2893
- font-weight: 800;
2894
- }
2895
-
2896
- [data-roottale-tpl="pricing"] :where(.rt-tpl-pricing-desc),
2897
- [data-roottale-tpl="pricing"] :where(.rt-tpl-pricing-condition) {
2898
- margin: 0;
2899
- color: var(--rt-color-muted-foreground, #6e6e6e);
2900
- line-height: 1.6;
2901
- }
2902
-
2903
- [data-roottale-tpl="process"] :where(.rt-tpl-process-list) {
2904
- display: grid;
2905
- gap: 1rem;
2906
- padding: 0;
2907
- margin: 0;
2908
- list-style: none;
2909
- }
2910
-
2911
- @container (min-width: 48rem) {
2912
- [data-roottale-tpl="process"][data-variant="horizontal"]
2913
- :where(.rt-tpl-process-list) {
2914
- grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
2915
- }
2916
- }
2917
-
2918
- [data-roottale-tpl="process"][data-variant="vertical"]
2919
- :where(.rt-tpl-process-list) {
2920
- max-inline-size: 48rem;
2921
- gap: 0;
2922
- border-block-start: 1px solid var(--rt-color-border, #dceef3);
2923
- }
2924
-
2925
- [data-roottale-tpl="process"] :where(.rt-tpl-process-item) {
2926
- position: relative;
2927
- }
2928
-
2929
- [data-roottale-tpl="process"] :where(.rt-tpl-process-content) {
2930
- display: grid;
2931
- gap: 0.625rem;
2932
- padding: 1.25rem;
2933
- border: 1px solid var(--rt-color-border, #dceef3);
2934
- border-radius: var(--rt-radius-md, 0.5rem);
2935
- background: var(--rt-color-background, #ffffff);
2936
- }
2937
-
2938
- [data-roottale-tpl="process"][data-variant="vertical"]
2939
- :where(.rt-tpl-process-content) {
2940
- border: 0;
2941
- border-block-end: 1px solid var(--rt-color-border, #dceef3);
2942
- border-radius: 0;
2943
- padding-inline: 0;
2944
- }
2945
-
2946
- [data-roottale-tpl="process"] :where(.rt-tpl-process-step) {
2947
- margin: 0;
2948
- color: var(--rt-color-muted-foreground, #6e6e6e);
2949
- font-size: 0.75rem;
2950
- font-weight: 800;
2951
- letter-spacing: 0.06em;
2952
- text-transform: uppercase;
2953
- }
2954
-
2955
- [data-roottale-tpl="process"] :where(.rt-tpl-process-title) {
2956
- margin: 0;
2957
- font-family: var(--rt-font-display, var(--rt-font-body, system-ui, sans-serif));
2958
- font-size: 1.125rem;
2959
- font-weight: 800;
2960
- line-height: 1.4;
2961
- }
2962
-
2963
- [data-roottale-tpl="process"] :where(.rt-tpl-process-desc),
2964
- [data-roottale-tpl="process"] :where(.rt-tpl-process-duration) {
2965
- margin: 0;
2966
- color: var(--rt-color-muted-foreground, #6e6e6e);
2967
- line-height: 1.65;
2968
- }
2969
-
2970
- [data-roottale-tpl="process"] :where(.rt-tpl-process-duration) {
2971
- font-size: 0.875rem;
2972
- font-variant-numeric: tabular-nums;
2973
- }
2974
-
2975
- [data-roottale-tpl="process"][data-variant="timeline-marked"]
2976
- :where(.rt-tpl-process-marked-list) {
2977
- display: grid;
2978
- gap: var(--space-4);
2979
- padding: 0;
2980
- margin: 0;
2981
- list-style: none;
2982
- }
2983
-
2984
- @container (min-width: 50rem) {
2985
- [data-roottale-tpl="process"][data-variant="timeline-marked"]
2986
- :where(.rt-tpl-process-marked-list) {
2987
- grid-template-columns: repeat(3, minmax(0, 1fr));
2988
- }
2989
- }
2990
-
2991
- [data-roottale-tpl="process"][data-variant="timeline-marked"]
2992
- :where(.rt-tpl-process-marked-item) {
2993
- position: relative;
2994
- min-inline-size: 0;
2995
- }
2996
-
2997
- @container (min-width: 50rem) {
2998
- [data-roottale-tpl="process"][data-variant="timeline-marked"]
2999
- :where(.rt-tpl-process-marked-item:not(:last-child))::after {
3000
- content: "";
3001
- position: absolute;
3002
- inset-block-start: calc(50% - 1px);
3003
- inset-inline-start: calc(100% + 0.1rem);
3004
- inline-size: calc(var(--space-4) - 0.2rem);
3005
- block-size: 2px;
3006
- background:
3007
- linear-gradient(90deg, var(--border) 50%, transparent 0) 0 / 0.5rem 2px
3008
- repeat-x;
3009
- }
3010
- }
3011
-
3012
- [data-roottale-tpl="process"][data-variant="timeline-marked"]
3013
- :where(.rt-tpl-process-marked-card) {
3014
- display: grid;
3015
- grid-template-columns: auto minmax(0, 1fr);
3016
- gap: var(--space-4);
3017
- min-block-size: 8.5rem;
3018
- padding: clamp(1rem, 3cqi, 1.35rem);
3019
- border: 1px solid var(--border);
3020
- border-radius: var(--rt-radius-md, 0.5rem);
3021
- background: var(--card);
3022
- box-shadow: 0 16px 36px rgb(17 24 39 / 0.045);
3023
- }
3024
-
3025
- [data-roottale-tpl="process"][data-variant="timeline-marked"]
3026
- :where(.rt-tpl-process-marked-icon) {
3027
- display: grid;
3028
- place-items: center;
3029
- inline-size: 3.5rem;
3030
- block-size: 3.5rem;
3031
- border-radius: 999px;
3032
- background: color-mix(in srgb, var(--primary) 9%, var(--muted));
3033
- }
3034
-
3035
- [data-roottale-tpl="process"][data-variant="timeline-marked"]
3036
- :where(.rt-tpl-process-marked-icon span) {
3037
- display: grid;
3038
- place-items: center;
3039
- inline-size: 1.35rem;
3040
- block-size: 1.35rem;
3041
- border-radius: 999px;
3042
- background: var(--primary);
3043
- }
3044
-
3045
- [data-roottale-tpl="process"][data-variant="timeline-marked"]
3046
- :where(.rt-tpl-process-marked-icon span[data-mark="check"])::before {
3047
- content: "";
3048
- inline-size: 0.55rem;
3049
- block-size: 0.32rem;
3050
- border-inline-start: 2px solid var(--primary-foreground);
3051
- border-block-end: 2px solid var(--primary-foreground);
3052
- transform: rotate(-45deg) translateY(-1px);
3053
- }
3054
-
3055
- [data-roottale-tpl="process"][data-variant="timeline-marked"]
3056
- :where(.rt-tpl-process-marked-icon span[data-mark="dot"])::before {
3057
- content: "";
3058
- inline-size: 0.38rem;
3059
- block-size: 0.38rem;
3060
- border-radius: 999px;
3061
- background: var(--primary-foreground);
3062
- }
3063
-
3064
- [data-roottale-tpl="process"][data-variant="timeline-marked"]
3065
- :where(.rt-tpl-process-marked-icon span[data-mark="none"]) {
3066
- background: transparent;
3067
- border: 1px solid var(--border);
3068
- }
3069
-
3070
- [data-roottale-tpl="process"][data-variant="timeline-marked"]
3071
- :where(.rt-tpl-process-marked-body) {
3072
- display: grid;
3073
- align-content: center;
3074
- gap: 0.45rem;
3075
- min-inline-size: 0;
3076
- }
3077
-
3078
- [data-roottale-tpl="process"][data-variant="timeline-marked"]
3079
- :where(.rt-tpl-process-marked-step) {
3080
- justify-self: start;
3081
- margin: 0;
3082
- padding: 0.25rem 0.55rem;
3083
- border-radius: 999px;
3084
- background: color-mix(in srgb, var(--primary) 12%, var(--background));
3085
- color: var(--primary);
3086
- font-size: var(--font-size-xs);
3087
- font-weight: var(--font-weight-bold);
3088
- line-height: 1.2;
3089
- }
3090
-
3091
- [data-roottale-tpl="before-after"] :where(.rt-tpl-before-after-slider),
3092
- [data-roottale-tpl="before-after"] :where(.rt-tpl-before-after-pair) {
3093
- margin-block-start: 1.5rem;
3094
- }
3095
-
3096
- [data-roottale-tpl="before-after"] :where(.rt-tpl-before-after-slider) {
3097
- overflow: hidden;
3098
- border: 1px solid var(--rt-color-border, #dceef3);
3099
- border-radius: var(--rt-radius-md, 0.5rem);
3100
- background: var(--rt-color-background, #ffffff);
3101
- touch-action: none;
3102
- user-select: none;
3103
- }
3104
-
3105
- [data-roottale-tpl="before-after"] :where(.rt-tpl-before-after-frame) {
3106
- position: relative;
3107
- aspect-ratio: 16 / 9;
3108
- background: color-mix(
3109
- in srgb,
3110
- var(--rt-color-muted, #eef7f9) 84%,
3111
- var(--rt-color-background, #ffffff)
3112
- );
3113
- }
3114
-
3115
- [data-roottale-tpl="before-after"] :where(.rt-tpl-before-after-img) {
3116
- display: block;
3117
- inline-size: 100%;
3118
- block-size: 100%;
3119
- object-fit: cover;
3120
- }
3121
-
3122
- [data-roottale-tpl="before-after"]
3123
- :where(.rt-tpl-before-after-slider .rt-tpl-before-after-img) {
3124
- position: absolute;
3125
- inset: 0;
3126
- }
3127
-
3128
- [data-roottale-tpl="before-after"] :where(.rt-tpl-before-after-img--before) {
3129
- overflow: hidden;
3130
- }
3131
-
3132
- [data-roottale-tpl="before-after"] :where(.rt-tpl-before-after-handle) {
3133
- position: absolute;
3134
- inset-block: 0;
3135
- display: grid;
3136
- inline-size: 2.75rem;
3137
- margin-inline-start: -1.375rem;
3138
- place-items: center;
3139
- color: var(--rt-color-primary-foreground, #ffffff);
3140
- cursor: ew-resize;
3141
- }
3142
-
3143
- [data-roottale-tpl="before-after"] :where(.rt-tpl-before-after-handle)::before {
3144
- position: absolute;
3145
- inset-block: 0;
3146
- inline-size: 1px;
3147
- background: var(--rt-color-primary, #06162f);
3148
- content: "";
3149
- }
3150
-
3151
- [data-roottale-tpl="before-after"] :where(.rt-tpl-before-after-thumb) {
3152
- position: relative;
3153
- z-index: 1;
3154
- display: block;
3155
- inline-size: 2.75rem;
3156
- block-size: 2.75rem;
3157
- border: 1px solid var(--rt-color-primary, #06162f);
3158
- border-radius: 999px;
3159
- background: var(--rt-color-primary, #06162f);
3160
- box-shadow: 0 10px 24px
3161
- color-mix(in srgb, var(--rt-color-foreground, #06162f) 20%, transparent);
3162
- }
3163
-
3164
- [data-roottale-tpl="before-after"] :where(.rt-tpl-before-after-thumb)::before,
3165
- [data-roottale-tpl="before-after"] :where(.rt-tpl-before-after-thumb)::after {
3166
- position: absolute;
3167
- inset-block-start: 50%;
3168
- inline-size: 0.45rem;
3169
- block-size: 0.45rem;
3170
- border-block-start: 1.5px solid currentColor;
3171
- border-inline-start: 1.5px solid currentColor;
3172
- content: "";
3173
- }
3174
-
3175
- [data-roottale-tpl="before-after"] :where(.rt-tpl-before-after-thumb)::before {
3176
- inset-inline-start: 0.8rem;
3177
- transform: translateY(-50%) rotate(-45deg);
3178
- }
3179
-
3180
- [data-roottale-tpl="before-after"] :where(.rt-tpl-before-after-thumb)::after {
3181
- inset-inline-end: 0.8rem;
3182
- transform: translateY(-50%) rotate(135deg);
3183
- }
3184
-
3185
- [data-roottale-tpl="before-after"]
3186
- :where(.rt-tpl-before-after-handle:focus-visible .rt-tpl-before-after-thumb) {
3187
- outline: 2px solid var(--rt-color-ring, var(--rt-color-primary, #06162f));
3188
- outline-offset: 3px;
3189
- }
3190
-
3191
- [data-roottale-tpl="before-after"] :where(.rt-tpl-before-after-labels) {
3192
- position: absolute;
3193
- inset: 1rem;
3194
- display: flex;
3195
- align-items: flex-start;
3196
- justify-content: space-between;
3197
- gap: 0.75rem;
3198
- pointer-events: none;
3199
- }
3200
-
3201
- [data-roottale-tpl="before-after"] :where(.rt-tpl-before-after-label),
3202
- [data-roottale-tpl="before-after"] :where(.rt-tpl-before-after-caption) {
3203
- border: 1px solid
3204
- color-mix(in srgb, var(--rt-color-background, #ffffff) 26%, transparent);
3205
- border-radius: var(--rt-radius-sm, 0.375rem);
3206
- background: color-mix(
3207
- in srgb,
3208
- var(--rt-color-foreground, #06162f) 68%,
3209
- transparent
3210
- );
3211
- color: var(--rt-color-primary-foreground, #ffffff);
3212
- font-size: 0.8125rem;
3213
- font-weight: 700;
3214
- line-height: 1.3;
3215
- word-break: keep-all;
3216
- }
3217
-
3218
- [data-roottale-tpl="before-after"] :where(.rt-tpl-before-after-label) {
3219
- max-inline-size: min(45%, 16rem);
3220
- padding: 0.5rem 0.75rem;
3221
- }
3222
-
3223
- [data-roottale-tpl="before-after"] :where(.rt-tpl-before-after-pair) {
3224
- display: grid;
3225
- grid-template-columns: repeat(2, minmax(0, 1fr));
3226
- gap: 1rem;
3227
- }
3228
-
3229
- [data-roottale-tpl="before-after"] :where(.rt-tpl-before-after-figure) {
3230
- position: relative;
3231
- overflow: hidden;
3232
- aspect-ratio: 16 / 9;
3233
- margin: 0;
3234
- border: 1px solid var(--rt-color-border, #dceef3);
3235
- border-radius: var(--rt-radius-md, 0.5rem);
3236
- background: var(--rt-color-background, #ffffff);
3237
- }
3238
-
3239
- [data-roottale-tpl="before-after"] :where(.rt-tpl-before-after-caption) {
3240
- position: absolute;
3241
- inset-block-start: 0.75rem;
3242
- inset-inline-start: 0.75rem;
3243
- padding: 0.45rem 0.65rem;
3244
- }
3245
-
3246
- @container (max-width: 42rem) {
3247
- [data-roottale-tpl="before-after"] :where(.rt-tpl-before-after-pair) {
3248
- grid-template-columns: 1fr;
3249
- }
3250
-
3251
- [data-roottale-tpl="before-after"] :where(.rt-tpl-before-after-labels) {
3252
- inset: 0.625rem;
3253
- }
3254
- }
3255
-
3256
- [data-roottale-tpl="hero"] :where(.rt-tpl-hero-proof) {
3257
- display: flex;
3258
- flex-wrap: wrap;
3259
- gap: 0.625rem;
3260
- margin-block-start: 1rem;
3261
- }
3262
-
3263
- [data-roottale-tpl="hero"] :where(.rt-tpl-hero-proof-item) {
3264
- display: grid;
3265
- grid-template-columns: auto 1fr;
3266
- gap: 0.125rem 0.5rem;
3267
- min-inline-size: 8rem;
3268
- padding: 0.7rem 0.85rem;
3269
- border: 1px solid var(--rt-color-border);
3270
- border-radius: var(--rt-radius-md);
3271
- background: color-mix(in srgb, var(--rt-color-background) 86%, transparent);
3272
- }
3273
-
3274
- [data-roottale-tpl="hero"] :where(.rt-tpl-hero-proof-icon) {
3275
- grid-row: span 3;
3276
- inline-size: 1.5rem;
3277
- block-size: 1.5rem;
3278
- object-fit: contain;
3279
- }
3280
-
3281
- [data-roottale-tpl="hero"] :where(.rt-tpl-hero-proof-value) {
3282
- font-variant-numeric: tabular-nums;
3283
- font-weight: 800;
3284
- }
3285
-
3286
- [data-roottale-tpl="hero"] :where(.rt-tpl-hero-proof-label),
3287
- [data-roottale-tpl="hero"] :where(.rt-tpl-hero-proof-source) {
3288
- color: var(--rt-color-muted-foreground);
3289
- font-size: 0.78rem;
3290
- line-height: 1.3;
3291
- }
3292
-
3293
- [data-roottale-tpl="hero"][data-variant="carousel"]
3294
- :where(.rt-tpl-hero-carousel-slide-panel) {
3295
- position: absolute;
3296
- z-index: 2;
3297
- inset-inline-end: clamp(1rem, 4cqi, 4rem);
3298
- inset-block-end: clamp(5.5rem, 9cqi, 8rem);
3299
- display: grid;
3300
- gap: 0.55rem;
3301
- max-inline-size: min(28rem, 88cqi);
3302
- padding: clamp(1rem, 2.5cqi, 1.5rem);
3303
- border: 1px solid color-mix(in srgb, var(--rt-color-background) 22%, transparent);
3304
- border-radius: var(--rt-radius-lg);
3305
- background: color-mix(in srgb, var(--rt-color-foreground) 58%, transparent);
3306
- color: var(--rt-color-primary-foreground);
3307
- }
3308
-
3309
- [data-roottale-tpl="hero"][data-variant="carousel"]
3310
- :where(.rt-tpl-hero-carousel-slide-title) {
3311
- margin: 0;
3312
- font-size: clamp(1.1rem, 3cqi, 1.7rem);
3313
- font-weight: 800;
3314
- line-height: 1.2;
3315
- }
3316
-
3317
- [data-roottale-tpl="hero"][data-variant="carousel"]
3318
- :where(.rt-tpl-hero-carousel-slide-eyebrow, .rt-tpl-hero-carousel-slide-subtitle, .rt-tpl-hero-carousel-slide-desc) {
3319
- margin: 0;
3320
- line-height: 1.45;
3321
- }
3322
-
3323
- [data-roottale-tpl="hero"][data-variant="carousel"]
3324
- :where(.rt-tpl-hero-carousel-slide-metrics) {
3325
- display: grid;
3326
- grid-template-columns: repeat(auto-fit, minmax(6rem, 1fr));
3327
- gap: 0.5rem;
3328
- margin: 0;
3329
- }
3330
-
3331
- [data-roottale-tpl="hero"][data-variant="carousel"]
3332
- :where(.rt-tpl-hero-carousel-slide-metrics div) {
3333
- padding: 0.55rem;
3334
- border: 1px solid color-mix(in srgb, currentColor 18%, transparent);
3335
- border-radius: var(--rt-radius-sm);
3336
- }
3337
-
3338
- [data-roottale-tpl="hero"][data-variant="carousel"]
3339
- :where(.rt-tpl-hero-carousel-slide-metrics dt) {
3340
- color: color-mix(in srgb, currentColor 72%, transparent);
3341
- font-size: 0.72rem;
3342
- }
3343
-
3344
- [data-roottale-tpl="hero"][data-variant="carousel"]
3345
- :where(.rt-tpl-hero-carousel-slide-metrics dd) {
3346
- margin: 0;
3347
- font-weight: 800;
3348
- }
3349
-
3350
- [data-roottale-tpl="hero"][data-variant="carousel"]
3351
- :where(.rt-tpl-hero-carousel-slide-actions) {
3352
- display: flex;
3353
- flex-wrap: wrap;
3354
- gap: 0.5rem;
3355
- }
3356
-
3357
- /* 카피 스태거(chambarun `.hero-copy>*` 순차 등장, 타이밍 원본 유지) — curtain
3358
- * 전환에서만, 슬라이드 전환마다 패널이 `key` 로 리마운트되어 매번 재생된다. */
3359
- @media (prefers-reduced-motion: no-preference) {
3360
- [data-roottale-tpl="hero"][data-variant="carousel"]
3361
- :where(.rt-tpl-hero-carousel[data-transition="curtain"] .rt-tpl-hero-carousel-slide-panel > *) {
3362
- animation:
3363
- rt-hero-carousel-copy-in-opacity 0.68s cubic-bezier(0.45, 0, 0.2, 1) both,
3364
- rt-hero-carousel-copy-in-transform 0.72s cubic-bezier(0.2, 0.75, 0.25, 1) both;
3365
- }
3366
-
3367
- [data-roottale-tpl="hero"][data-variant="carousel"]
3368
- :where(.rt-tpl-hero-carousel[data-transition="curtain"] .rt-tpl-hero-carousel-slide-panel > *:nth-child(1)) {
3369
- animation-delay: 0.34s;
3370
- }
3371
-
3372
- [data-roottale-tpl="hero"][data-variant="carousel"]
3373
- :where(.rt-tpl-hero-carousel[data-transition="curtain"] .rt-tpl-hero-carousel-slide-panel > *:nth-child(2)) {
3374
- animation-delay: 0.44s;
3375
- }
3376
-
3377
- [data-roottale-tpl="hero"][data-variant="carousel"]
3378
- :where(.rt-tpl-hero-carousel[data-transition="curtain"] .rt-tpl-hero-carousel-slide-panel > *:nth-child(3)) {
3379
- animation-delay: 0.54s;
3380
- }
3381
-
3382
- [data-roottale-tpl="hero"][data-variant="carousel"]
3383
- :where(.rt-tpl-hero-carousel[data-transition="curtain"] .rt-tpl-hero-carousel-slide-panel > *:nth-child(n + 4)) {
3384
- animation-delay: 0.64s;
3385
- }
3386
- }
3387
-
3388
- @keyframes rt-hero-carousel-copy-in-opacity {
3389
- from {
3390
- opacity: 0;
3391
- }
3392
- to {
3393
- opacity: 1;
3394
- }
3395
- }
3396
-
3397
- @keyframes rt-hero-carousel-copy-in-transform {
3398
- from {
3399
- transform: translateY(18px);
3400
- }
3401
- to {
3402
- transform: none;
3403
- }
3404
- }
3405
-
3406
- [data-roottale-tpl="hero"][data-variant="carousel"]
3407
- :where(.rt-tpl-hero-carousel-dots--tabs) {
3408
- gap: 0.4rem;
3409
- }
3410
-
3411
- [data-roottale-tpl="hero"][data-variant="carousel"]
3412
- :where(.rt-tpl-hero-carousel-dots--tabs .rt-tpl-hero-carousel-dot) {
3413
- inline-size: auto;
3414
- block-size: auto;
3415
- min-inline-size: 4rem;
3416
- padding: 0.45rem 0.6rem;
3417
- border-radius: var(--rt-radius-sm);
3418
- }
3419
-
3420
- [data-roottale-tpl="hero"][data-variant="carousel"]
3421
- :where(.rt-tpl-hero-carousel-dot span, .rt-tpl-hero-carousel-dot small) {
3422
- display: block;
3423
- line-height: 1.2;
3424
- }
3425
-
3426
- [data-roottale-tpl="services"] :where(.rt-tpl-services-icon) {
3427
- inline-size: 2rem;
3428
- block-size: 2rem;
3429
- object-fit: contain;
3430
- }
3431
-
3432
- [data-roottale-tpl="services"] :where(.rt-tpl-services-subtitle) {
3433
- margin: 0;
3434
- color: var(--rt-color-muted-foreground);
3435
- font-size: 0.88rem;
3436
- font-weight: 700;
3437
- }
3438
-
3439
- [data-roottale-tpl="services"] :where(.rt-tpl-services-chips),
3440
- [data-roottale-tpl="services"] :where(.rt-tpl-services-meta) {
3441
- display: flex;
3442
- flex-wrap: wrap;
3443
- gap: 0.35rem;
3444
- padding: 0;
3445
- margin: 0.65rem 0 0;
3446
- list-style: none;
3447
- }
3448
-
3449
- [data-roottale-tpl="services"] :where(.rt-tpl-services-chips li) {
3450
- padding: 0.2rem 0.45rem;
3451
- border: 1px solid var(--rt-color-border);
3452
- border-radius: 999px;
3453
- color: var(--rt-color-primary);
3454
- font-size: 0.75rem;
3455
- font-weight: 700;
3456
- }
3457
-
3458
- [data-roottale-tpl="services"] :where(.rt-tpl-services-meta li) {
3459
- color: var(--rt-color-muted-foreground);
3460
- font-size: 0.78rem;
3461
- }
3462
-
3463
- [data-roottale-tpl="services"] :where(.rt-tpl-services-action-label) {
3464
- display: inline-block;
3465
- margin-block-start: 0.65rem;
3466
- color: var(--rt-color-primary);
3467
- font-size: 0.82rem;
3468
- font-weight: 800;
3469
- }
3470
-
3471
- [data-roottale-tpl="services"] :where(.rt-tpl-services-action-rail) {
3472
- display: grid;
3473
- grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
3474
- gap: 0.75rem;
3475
- padding: 0;
3476
- margin: 1.25rem 0 0;
3477
- list-style: none;
3478
- }
3479
-
3480
- [data-roottale-tpl="services"] :where(.rt-tpl-services-action-card) {
3481
- display: grid;
3482
- gap: 0.65rem;
3483
- block-size: 100%;
3484
- padding: 1rem;
3485
- border: 1px solid var(--rt-color-border);
3486
- border-radius: var(--rt-radius-md);
3487
- background: var(--rt-color-background);
3488
- color: inherit;
3489
- text-decoration: none;
3490
- }
3491
-
3492
- [data-roottale-tpl="faq"] :where(.rt-tpl-faq-q small) {
3493
- display: block;
3494
- margin-block-start: 0.25rem;
3495
- color: var(--rt-color-muted-foreground);
3496
- font-size: 0.8rem;
3497
- font-weight: 600;
3498
- }
3499
-
3500
- [data-roottale-tpl="faq"] :where(.rt-tpl-faq-content-groups) {
3501
- display: grid;
3502
- gap: 1.25rem;
3503
- }
3504
-
3505
- [data-roottale-tpl="faq"] :where(.rt-tpl-faq-content-body) {
3506
- display: grid;
3507
- gap: 0.65rem;
3508
- }
3509
-
3510
- [data-roottale-tpl="faq"] :where(.rt-tpl-faq-content-body p) {
3511
- margin: 0;
3512
- }
3513
-
3514
- [data-roottale-tpl="faq"] :where(.rt-tpl-faq-content-signs) {
3515
- display: flex;
3516
- flex-wrap: wrap;
3517
- gap: 0.35rem;
3518
- padding: 0;
3519
- margin: 0;
3520
- list-style: none;
3521
- }
3522
-
3523
- [data-roottale-tpl="faq"] :where(.rt-tpl-faq-content-signs li) {
3524
- padding: 0.2rem 0.45rem;
3525
- border: 1px solid var(--rt-color-border);
3526
- border-radius: 999px;
3527
- color: var(--rt-color-muted-foreground);
3528
- font-size: 0.76rem;
3529
- }
3530
-
3531
- [data-roottale-tpl="faq"] :where(.rt-tpl-faq-content-link) {
3532
- color: var(--rt-color-primary);
3533
- font-weight: 800;
3534
- }
3535
-
3536
- [data-roottale-tpl="trust"] :where(.rt-tpl-trust-dashboard) {
3537
- display: grid;
3538
- grid-template-columns: minmax(0, 1.3fr) minmax(16rem, 0.7fr);
3539
- gap: 1rem;
3540
- align-items: stretch;
3541
- }
3542
-
3543
- [data-roottale-tpl="trust"] :where(.rt-tpl-trust-dashboard-chart),
3544
- [data-roottale-tpl="trust"] :where(.rt-tpl-trust-dashboard-metrics) {
3545
- padding: 1rem;
3546
- border: 1px solid var(--rt-color-border);
3547
- border-radius: var(--rt-radius-md);
3548
- background: var(--rt-color-background);
3549
- }
3550
-
3551
- [data-roottale-tpl="trust"] :where(.rt-tpl-trust-dashboard-title) {
3552
- margin: 0;
3553
- font-size: 1.1rem;
3554
- }
3555
-
3556
- [data-roottale-tpl="trust"] :where(.rt-tpl-trust-dashboard-desc) {
3557
- margin: 0.35rem 0 0;
3558
- color: var(--rt-color-muted-foreground);
3559
- }
3560
-
3561
- [data-roottale-tpl="trust"] :where(.rt-tpl-trust-dashboard-bars),
3562
- [data-roottale-tpl="trust"] :where(.rt-tpl-trust-dashboard-metrics) {
3563
- display: grid;
3564
- gap: 0.7rem;
3565
- padding: 0;
3566
- margin: 1rem 0 0;
3567
- list-style: none;
3568
- }
3569
-
3570
- [data-roottale-tpl="trust"] :where(.rt-tpl-trust-dashboard-bars li) {
3571
- display: grid;
3572
- grid-template-columns: minmax(3rem, 0.35fr) minmax(0, 1fr) auto;
3573
- gap: 0.65rem;
3574
- align-items: center;
3575
- font-size: 0.86rem;
3576
- }
3577
-
3578
- [data-roottale-tpl="trust"] :where(.rt-tpl-trust-dashboard-track) {
3579
- overflow: hidden;
3580
- block-size: 0.55rem;
3581
- border-radius: 999px;
3582
- background: var(--rt-color-muted);
3583
- }
3584
-
3585
- [data-roottale-tpl="trust"] :where(.rt-tpl-trust-dashboard-bar) {
3586
- display: block;
3587
- block-size: 100%;
3588
- border-radius: inherit;
3589
- background: var(--rt-color-primary);
3590
- }
3591
-
3592
- [data-roottale-tpl="trust"] :where(.rt-tpl-trust-dashboard-icon) {
3593
- inline-size: 2rem;
3594
- block-size: 2rem;
3595
- object-fit: contain;
3596
- }
3597
-
3598
- [data-roottale-tpl="contact"] :where(.rt-tpl-contact-channel-side) {
3599
- display: grid;
3600
- gap: 1rem;
3601
- }
3602
-
3603
- [data-roottale-tpl="contact"] :where(.rt-tpl-contact-channel-icon) {
3604
- inline-size: 1.35rem;
3605
- block-size: 1.35rem;
3606
- object-fit: contain;
3607
- }
3608
-
3609
- [data-roottale-tpl="contact"] :where(.rt-tpl-contact-map-block) {
3610
- display: grid;
3611
- gap: 0.75rem;
3612
- }
3613
-
3614
- [data-roottale-tpl="contact"] :where(.rt-tpl-contact-map-facade) {
3615
- overflow: hidden;
3616
- margin: 0;
3617
- border: 1px solid var(--rt-color-border);
3618
- border-radius: var(--rt-radius-md);
3619
- }
3620
-
3621
- [data-roottale-tpl="contact"] :where(.rt-tpl-contact-map-facade img) {
3622
- display: block;
3623
- inline-size: 100%;
3624
- aspect-ratio: 16 / 9;
3625
- object-fit: cover;
3626
- }
3627
-
3628
- [data-roottale-tpl="contact"] :where(.rt-tpl-contact-map-facade figcaption) {
3629
- padding: 0.55rem 0.75rem;
3630
- background: var(--rt-color-muted);
3631
- font-size: 0.82rem;
3632
- font-weight: 800;
3633
- }
3634
-
3635
- /*
3636
- * 지도 클릭-투-로드 프리뷰(ADR-0086 P2 D3, `map.mapLoad === "click"`) —
3637
- * `.rt-tpl-contact-map` 와 같은 박스(aspect-ratio/border/radius)를 그대로
3638
- * 쓰고, 여기서는 배경 이미지·버튼·바깥 링크 배치만 얹는다.
3639
- */
3640
- [data-roottale-tpl="contact"] :where(.rt-tpl-contact-map-click) {
3641
- position: relative;
3642
- display: grid;
3643
- place-items: center;
3644
- gap: 0.5rem;
3645
- background: var(--muted);
3646
- }
3647
-
3648
- [data-roottale-tpl="contact"] :where(.rt-tpl-contact-map-click-bg) {
3649
- position: absolute;
3650
- inset: 0;
3651
- inline-size: 100%;
3652
- block-size: 100%;
3653
- object-fit: cover;
3654
- }
3655
-
3656
- [data-roottale-tpl="contact"] :where(.rt-tpl-contact-map-click-btn) {
3657
- position: relative;
3658
- z-index: 1;
3659
- display: inline-flex;
3660
- align-items: center;
3661
- gap: 0.4rem;
3662
- padding: 0.55rem 1rem;
3663
- border: 1px solid var(--rt-color-border);
3664
- border-radius: var(--rt-radius-md);
3665
- background: var(--card);
3666
- color: var(--foreground);
3667
- font-size: var(--font-size-sm);
3668
- font-weight: var(--font-weight-semibold);
3669
- cursor: pointer;
3670
- }
3671
-
3672
- [data-roottale-tpl="contact"] :where(.rt-tpl-contact-map-click-btn:hover) {
3673
- background: color-mix(in srgb, var(--card) 85%, var(--rt-color-primary) 15%);
3674
- }
3675
-
3676
- [data-roottale-tpl="contact"] :where(.rt-tpl-contact-map-click-external) {
3677
- position: relative;
3678
- z-index: 1;
3679
- font-size: 0.78rem;
3680
- color: var(--accent-foreground);
3681
- text-decoration: underline;
3682
- text-underline-offset: var(--space-1);
3683
- }
3684
-
3685
- [data-roottale-tpl="contact"] :where(.rt-tpl-contact-actions) {
3686
- display: flex;
3687
- flex-wrap: wrap;
3688
- gap: 0.5rem;
3689
- padding: 0;
3690
- margin: 0;
3691
- list-style: none;
3692
- }
3693
-
3694
- [data-roottale-tpl="contact"] :where(.rt-tpl-contact-actions a) {
3695
- display: inline-flex;
3696
- min-block-size: 2.5rem;
3697
- align-items: center;
3698
- padding: 0.45rem 0.75rem;
3699
- border: 1px solid var(--rt-color-border);
3700
- border-radius: var(--rt-radius-sm);
3701
- color: var(--rt-color-primary);
3702
- font-weight: 800;
3703
- text-decoration: none;
3704
- }
3705
-
3706
- [data-roottale-tpl="testimonials"] :where(.rt-tpl-testimonials-meta) {
3707
- display: flex;
3708
- flex-wrap: wrap;
3709
- gap: 0.35rem;
3710
- color: var(--rt-color-muted-foreground);
3711
- font-size: 0.78rem;
3712
- font-style: normal;
3713
- }
3714
-
3715
- [data-roottale-tpl="testimonials"] :where(.rt-tpl-testimonials-meta span) {
3716
- padding: 0.15rem 0.4rem;
3717
- border: 1px solid var(--rt-color-border);
3718
- border-radius: 999px;
3719
- }
3720
-
3721
- [data-roottale-tpl="testimonials"] :where(.rt-tpl-testimonials-reply) {
3722
- margin: 0.85rem 0 0;
3723
- color: var(--rt-color-muted-foreground);
3724
- font-size: 0.86rem;
3725
- }
3726
-
3727
- [data-roottale-tpl="testimonials"]
3728
- :where(.rt-tpl-testimonials-rail--marquee) {
3729
- scroll-snap-type: none;
3730
- }
3731
-
3732
- [data-roottale-tpl="team"] :where(.rt-tpl-team-cta) {
3733
- color: var(--rt-color-primary);
3734
- font-size: 0.86rem;
3735
- font-weight: 800;
3736
- text-decoration: none;
3737
- }
3738
-
3739
- /* ============ team: expanding-stage — hover/focus/tap 확장 (D3, chambarun
3740
- * `.staff-stage`/`.staff-panel` 이식, mockup/assets/site.js·site.css 원본
3741
- * 참조). 접힌 패널은 이름 칩만, 활성 패널은 확장되며 자격정보 패널이 드러난다.
3742
- * 전환(transition) 선언은 전부 `prefers-reduced-motion: no-preference` 안에만
3743
- * 둔다 — reduce 시 애니메이션 없이 최종 상태로 즉시 전환(상태 자체는 그대로
3744
- * 바뀐다, ADR-0073 K3 C1 과 동일 관행). ============ */
3745
-
3746
- [data-roottale-tpl="team"] :where(.rt-tpl-team-expanding-stage) {
3747
- display: flex;
3748
- flex-direction: column;
3749
- gap: 0.625rem;
3750
- padding: 0;
3751
- margin: 1.25rem 0 0;
3752
- list-style: none;
3753
- }
3754
-
3755
- @container (min-width: 46rem) {
3756
- [data-roottale-tpl="team"] :where(.rt-tpl-team-expanding-stage) {
3757
- flex-direction: row;
3758
- block-size: clamp(24rem, 46cqi, 38rem);
3759
- }
3760
- }
3761
-
3762
- [data-roottale-tpl="team"] :where(.rt-tpl-team-expanding-item) {
3763
- position: relative;
3764
- flex: none;
3765
- block-size: 4.75rem;
3766
- min-inline-size: 0;
3767
- overflow: hidden;
3768
- border-radius: var(--rt-radius-lg, 1.5rem);
3769
- outline: none;
3770
- cursor: pointer;
3771
- background: var(--muted);
3772
- box-shadow: 0 0.75rem 1.75rem -1rem color-mix(in srgb, var(--foreground) 45%, transparent);
3773
- }
3774
-
3775
- [data-roottale-tpl="team"] :where(.rt-tpl-team-expanding-item[data-active="true"]) {
3776
- block-size: 26rem;
3777
- }
3778
-
3779
- @container (min-width: 46rem) {
3780
- [data-roottale-tpl="team"] :where(.rt-tpl-team-expanding-item) {
3781
- flex: 1 1 0;
3782
- block-size: auto;
3783
- }
3784
-
3785
- [data-roottale-tpl="team"] :where(.rt-tpl-team-expanding-item[data-active="true"]) {
3786
- flex-grow: 2.7;
3787
- block-size: auto;
3788
- }
3789
- }
3790
-
3791
- [data-roottale-tpl="team"] :where(.rt-tpl-team-expanding-item:focus-visible) {
3792
- outline: 2px solid var(--primary);
3793
- outline-offset: 3px;
3794
- }
3795
-
3796
- [data-roottale-tpl="team"] :where(.rt-tpl-team-expanding-photo) {
3797
- position: absolute;
3798
- inset: 0;
3799
- inline-size: 100%;
3800
- block-size: 100%;
3801
- object-fit: cover;
3802
- object-position: center top;
3803
- }
3804
-
3805
- [data-roottale-tpl="team"] :where(.rt-tpl-team-expanding-photo--initials) {
3806
- display: grid;
3807
- place-items: center;
3808
- color: var(--primary);
3809
- font-family: var(--rt-font-display, var(--rt-font-body, system-ui, sans-serif));
3810
- font-size: clamp(1.5rem, 8cqi, 2.5rem);
3811
- font-weight: 800;
3812
- }
3813
-
3814
- [data-roottale-tpl="team"]
3815
- :where(.rt-tpl-team-expanding-item[data-active="true"] .rt-tpl-team-expanding-photo) {
3816
- filter: saturate(1.04) brightness(1.01);
3817
- }
3818
-
3819
- [data-roottale-tpl="team"] :where(.rt-tpl-team-expanding-name) {
3820
- position: absolute;
3821
- inset-inline: 0;
3822
- inset-block-end: 0;
3823
- z-index: 2;
3824
- display: flex;
3825
- align-items: center;
3826
- gap: 0.625rem;
3827
- padding: 0.75rem 0.9rem;
3828
- background: linear-gradient(
3829
- 0deg,
3830
- color-mix(in srgb, var(--foreground) 78%, transparent),
3831
- transparent
3832
- );
3833
- }
3834
-
3835
- [data-roottale-tpl="team"] :where(.rt-tpl-team-expanding-name b) {
3836
- margin: 0;
3837
- color: var(--background);
3838
- font-family: var(--rt-font-display, var(--rt-font-body, system-ui, sans-serif));
3839
- font-size: 0.95rem;
3840
- font-weight: 800;
3841
- }
3842
-
3843
- [data-roottale-tpl="team"] :where(.rt-tpl-team-expanding-name span) {
3844
- color: color-mix(in srgb, var(--background) 78%, transparent);
3845
- font-size: 0.75rem;
3846
- font-weight: 700;
3847
- white-space: nowrap;
3848
- overflow: hidden;
3849
- text-overflow: ellipsis;
3850
- }
3851
-
3852
- [data-roottale-tpl="team"]
3853
- :where(.rt-tpl-team-expanding-item[data-active="true"] .rt-tpl-team-expanding-name) {
3854
- opacity: 0;
3855
- }
3856
-
3857
- [data-roottale-tpl="team"] :where(.rt-tpl-team-expanding-detail) {
3858
- position: absolute;
3859
- inset-inline: 0;
3860
- inset-block-end: 0;
3861
- z-index: 3;
3862
- display: grid;
3863
- gap: 0.5rem;
3864
- padding: 1.75rem 1.25rem 1.25rem;
3865
- background: linear-gradient(
3866
- 0deg,
3867
- color-mix(in srgb, var(--foreground) 92%, transparent) 0%,
3868
- color-mix(in srgb, var(--foreground) 55%, transparent) 55%,
3869
- transparent 100%
3870
- );
3871
- opacity: 0;
3872
- transform: translateY(1rem);
3873
- pointer-events: none;
3874
- }
3875
-
3876
- [data-roottale-tpl="team"]
3877
- :where(.rt-tpl-team-expanding-item[data-active="true"] .rt-tpl-team-expanding-detail) {
3878
- opacity: 1;
3879
- transform: none;
3880
- pointer-events: auto;
3881
- }
3882
-
3883
- [data-roottale-tpl="team"]
3884
- :where(.rt-tpl-team-expanding-detail .rt-tpl-team-expanding-role) {
3885
- margin: 0;
3886
- color: color-mix(in srgb, var(--background) 70%, transparent);
3887
- font-size: 0.75rem;
3888
- font-weight: 800;
3889
- letter-spacing: 0.08em;
3890
- text-transform: uppercase;
3891
- }
3892
-
3893
- [data-roottale-tpl="team"] :where(.rt-tpl-team-expanding-detail .rt-tpl-team-name) {
3894
- margin: 0;
3895
- color: var(--background);
3896
- }
3897
-
3898
- [data-roottale-tpl="team"]
3899
- :where(.rt-tpl-team-expanding-detail .rt-tpl-team-specialties li) {
3900
- color: var(--background);
3901
- background: color-mix(in srgb, var(--background) 18%, transparent);
3902
- }
3903
-
3904
- [data-roottale-tpl="team"] :where(.rt-tpl-team-expanding-detail .rt-tpl-team-credentials li),
3905
- [data-roottale-tpl="team"] :where(.rt-tpl-team-expanding-detail .rt-tpl-team-bio) {
3906
- color: color-mix(in srgb, var(--background) 85%, transparent);
3907
- }
3908
-
3909
- [data-roottale-tpl="team"]
3910
- :where(.rt-tpl-team-expanding-detail .rt-tpl-team-credentials li)::before {
3911
- background: var(--primary);
3912
- }
3913
-
3914
- [data-roottale-tpl="team"] :where(.rt-tpl-team-expanding-detail .rt-tpl-team-cta) {
3915
- justify-self: start;
3916
- margin-top: 0.25rem;
3917
- padding: 0.55rem 0.9rem;
3918
- border-radius: 999px;
3919
- background: var(--primary);
3920
- color: var(--primary-foreground, var(--background));
3921
- }
3922
-
3923
- [data-roottale-tpl="team"]
3924
- :where(.rt-tpl-team-expanding-detail .rt-tpl-team-cta:focus-visible) {
3925
- outline: 2px solid var(--background);
3926
- outline-offset: 2px;
3927
- }
3928
-
3929
- [data-roottale-tpl="team"] :where(.rt-tpl-team-expanding-index) {
3930
- position: absolute;
3931
- inset-block-start: 0.75rem;
3932
- inset-inline-start: 0.9rem;
3933
- z-index: 2;
3934
- color: color-mix(in srgb, var(--background) 85%, transparent);
3935
- font-variant-numeric: tabular-nums;
3936
- font-size: 0.75rem;
3937
- font-weight: 800;
3938
- }
3939
-
3940
- @media (prefers-reduced-motion: no-preference) {
3941
- [data-roottale-tpl="team"] :where(.rt-tpl-team-expanding-item) {
3942
- transition:
3943
- flex-grow 0.72s cubic-bezier(0.22, 0.9, 0.24, 1),
3944
- block-size 0.6s cubic-bezier(0.22, 0.9, 0.24, 1),
3945
- box-shadow 0.4s ease;
3946
- }
3947
-
3948
- [data-roottale-tpl="team"] :where(.rt-tpl-team-expanding-photo) {
3949
- transition: filter 0.55s ease;
3950
- }
3951
-
3952
- [data-roottale-tpl="team"] :where(.rt-tpl-team-expanding-name) {
3953
- transition: opacity 0.35s ease;
3954
- }
3955
-
3956
- [data-roottale-tpl="team"] :where(.rt-tpl-team-expanding-detail) {
3957
- /* 접힐 때는 빠르게 사라져 패널 축소와 텍스트 잔상이 겹치지 않게. */
3958
- transition:
3959
- opacity 0.16s ease,
3960
- transform 0.3s ease;
3961
- }
3962
-
3963
- [data-roottale-tpl="team"]
3964
- :where(.rt-tpl-team-expanding-item[data-active="true"] .rt-tpl-team-expanding-detail) {
3965
- transition:
3966
- opacity 0.45s ease 0.18s,
3967
- transform 0.5s cubic-bezier(0.16, 1, 0.3, 1) 0.18s;
3968
- }
3969
- }
3970
-
3971
- [data-roottale-tpl="footer"] {
3972
- background: color-mix(
3973
- in srgb,
3974
- var(--rt-color-foreground, #06162f) 96%,
3975
- var(--rt-color-background, #ffffff)
3976
- );
3977
- color: var(--rt-color-background, #ffffff);
3978
- }
3979
-
3980
- [data-roottale-tpl="footer"] :where(.rt-tpl-footer-columns) {
3981
- display: grid;
3982
- gap: clamp(2rem, 5cqi, 3rem);
3983
- }
3984
-
3985
- @container (min-width: 56rem) {
3986
- [data-roottale-tpl="footer"] :where(.rt-tpl-footer-columns) {
3987
- grid-template-columns: minmax(16rem, 1.2fr) minmax(0, 2fr) minmax(14rem, 0.8fr);
3988
- align-items: start;
3989
- }
3990
- }
3991
-
3992
- [data-roottale-tpl="footer"] :where(.rt-tpl-footer-brand) {
3993
- display: grid;
3994
- gap: 0.85rem;
3995
- align-content: start;
3996
- }
3997
-
3998
- [data-roottale-tpl="footer"] :where(.rt-tpl-footer-logo) {
3999
- max-inline-size: 9rem;
4000
- max-block-size: 3rem;
4001
- object-fit: contain;
4002
- }
4003
-
4004
- [data-roottale-tpl="footer"] :where(.rt-tpl-footer-name) {
4005
- margin: 0;
4006
- font-family: var(--rt-font-display, var(--rt-font-body, system-ui, sans-serif));
4007
- font-size: 1.15rem;
4008
- font-weight: 800;
4009
- line-height: 1.3;
4010
- }
4011
-
4012
- [data-roottale-tpl="footer"] :where(.rt-tpl-footer-description) {
4013
- max-inline-size: 24rem;
4014
- margin: 0;
4015
- color: color-mix(in srgb, currentColor 72%, transparent);
4016
- font-size: 0.92rem;
4017
- line-height: 1.7;
4018
- }
4019
-
4020
- [data-roottale-tpl="footer"] :where(.rt-tpl-footer-nav) {
4021
- display: grid;
4022
- gap: 1.5rem;
4023
- grid-template-columns: repeat(auto-fit, minmax(min(100%, 9rem), 1fr));
4024
- }
4025
-
4026
- [data-roottale-tpl="footer"] :where(.rt-tpl-footer-column-title) {
4027
- margin: 0 0 0.75rem;
4028
- color: color-mix(in srgb, currentColor 86%, transparent);
4029
- font-size: 0.82rem;
4030
- font-weight: 800;
4031
- }
4032
-
4033
- [data-roottale-tpl="footer"] :where(.rt-tpl-footer-column ul) {
4034
- display: grid;
4035
- gap: 0.55rem;
4036
- padding: 0;
4037
- margin: 0;
4038
- list-style: none;
4039
- }
4040
-
4041
- [data-roottale-tpl="footer"] :where(a) {
4042
- color: color-mix(in srgb, currentColor 76%, transparent);
4043
- text-decoration: none;
4044
- }
4045
-
4046
- [data-roottale-tpl="footer"] :where(a:hover) {
4047
- color: currentColor;
4048
- }
4049
-
4050
- [data-roottale-tpl="footer"] :where(.rt-tpl-footer-contact) {
4051
- display: grid;
4052
- gap: 0.45rem;
4053
- margin: 0;
4054
- color: color-mix(in srgb, currentColor 72%, transparent);
4055
- font-size: 0.9rem;
4056
- font-style: normal;
4057
- line-height: 1.7;
4058
- }
4059
-
4060
- [data-roottale-tpl="footer"] :where(.rt-tpl-footer-bottom) {
4061
- display: flex;
4062
- flex-wrap: wrap;
4063
- gap: 1rem 2rem;
4064
- justify-content: space-between;
4065
- margin-block-start: clamp(2rem, 5cqi, 3rem);
4066
- padding-block-start: 1.25rem;
4067
- border-block-start: 1px solid color-mix(in srgb, currentColor 18%, transparent);
4068
- color: color-mix(in srgb, currentColor 64%, transparent);
4069
- font-size: 0.78rem;
4070
- line-height: 1.65;
4071
- }
4072
-
4073
- [data-roottale-tpl="footer"] :where(.rt-tpl-footer-legal) {
4074
- display: grid;
4075
- gap: 0.25rem;
4076
- }
4077
-
4078
- [data-roottale-tpl="footer"] :where(.rt-tpl-footer-legal p) {
4079
- margin: 0;
4080
- }
4081
-
4082
- [data-roottale-tpl="footer"] :where(.rt-tpl-footer-policy) {
4083
- display: flex;
4084
- flex-wrap: wrap;
4085
- gap: 0.75rem 1rem;
4086
- }
4087
-
4088
- [data-roottale-tpl="footer"] :where(.rt-tpl-footer-minimal-row) {
4089
- display: flex;
4090
- flex-wrap: wrap;
4091
- gap: 1.25rem 2rem;
4092
- align-items: flex-start;
4093
- justify-content: space-between;
4094
- }
4095
-
4096
- [data-roottale-tpl="footer"] :where(.rt-tpl-footer-credit) {
4097
- margin: 0;
4098
- margin-inline-start: auto;
4099
- font-size: 0.75rem;
4100
- font-weight: 400;
4101
- color: var(--rt-color-muted-foreground, #6e6e6e);
4102
- }
4103
-
4104
- [data-roottale-tpl="footer"] :where(.rt-tpl-footer-credit a) {
4105
- color: inherit;
4106
- text-decoration: none;
4107
- transition: color 150ms ease;
4108
- }
4109
-
4110
- [data-roottale-tpl="footer"] :where(.rt-tpl-footer-credit a:hover),
4111
- [data-roottale-tpl="footer"] :where(.rt-tpl-footer-credit a:focus-visible) {
4112
- color: var(--rt-color-foreground, #06162f);
4113
- }
4114
-
4115
- [data-roottale-tpl="footer"][data-variant="minimal"]
4116
- :where(.rt-tpl-footer-brand) {
4117
- grid-template-columns: auto 1fr;
4118
- align-items: center;
4119
- }
4120
-
4121
- [data-roottale-tpl="process"] :where(.rt-tpl-process-image) {
4122
- inline-size: 100%;
4123
- aspect-ratio: 4 / 3;
4124
- margin-block-end: 0.85rem;
4125
- border-radius: var(--rt-radius-md);
4126
- object-fit: cover;
4127
- }
4128
-
4129
- [data-roottale-tpl="process"] :where(.rt-tpl-process-list[data-connector="rail"]) {
4130
- border-inline-start: 2px solid var(--rt-color-border);
4131
- padding-inline-start: 1rem;
4132
- }
4133
-
4134
- @container (max-width: 52rem) {
4135
- [data-roottale-tpl="trust"] :where(.rt-tpl-trust-dashboard) {
4136
- grid-template-columns: 1fr;
4137
- }
4138
-
4139
- [data-roottale-tpl="hero"][data-variant="carousel"]
4140
- :where(.rt-tpl-hero-carousel-slide-panel) {
4141
- position: relative;
4142
- inset: auto;
4143
- margin: 1rem;
4144
- }
4145
- }