/* CMS extensions intentionally reuse the original Chilrish palette and rhythm. */
html, body { overflow-x: hidden; }
.cms-richtext { font-size: 1rem; line-height: 1.9; }
.cms-richtext img { border-radius: var(--radius); margin: 1.5rem auto; }
.cms-richtext table { width: 100%; border-collapse: collapse; margin: 1.5rem 0; background: #fff; }
.cms-section-image { width: min(100%, 44rem); max-height: 34rem; object-fit: cover; border-radius: var(--radius); margin: 1rem 0; box-shadow: var(--shadow-soft); }
.cms-richtext th, .cms-richtext td { padding: .75rem; border: 1px solid var(--line); text-align: left; }
.design-credit { margin: .4rem 0 0; font-size: .72rem; color: var(--ink-muted); text-align: center; letter-spacing: .02em; }
.design-credit a { color: inherit; text-decoration: none; border-bottom: 1px dotted currentColor; }
.whatsapp-float { position: fixed; right: 1.15rem; bottom: 1.15rem; z-index: 90; display: grid; place-items: center; min-width: 3.5rem; height: 3.5rem; padding: 0 .85rem; border-radius: 999px; background: #25d366; color: #fff; text-decoration: none; font-size: .78rem; font-weight: 700; box-shadow: 0 12px 30px rgba(21, 142, 73, .3); }
.whatsapp-float:hover { color: #fff; transform: translateY(-2px); }
.cms-banner { position: relative; max-width: var(--max); margin: 3.5rem auto; border-radius: 1.5rem; overflow: hidden; min-height: 22rem; box-shadow: var(--shadow); background: var(--blush); }
.cms-banner-slide { display: none; position: relative; min-height: 22rem; }
.cms-banner-slide.is-active { display: block; animation: fadeSoft .5s var(--ease); }
.cms-banner-slide picture, .cms-banner-slide img { width: 100%; height: 100%; min-height: 22rem; object-fit: cover; }
.cms-banner-slide::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(42,36,38,.74), rgba(42,36,38,.05)); }
.cms-banner-copy { position: absolute; z-index: 2; left: clamp(1.5rem, 6vw, 5rem); top: 50%; transform: translateY(-50%); max-width: 30rem; color: #fff; }
.cms-banner-copy h2 { font-size: clamp(1.8rem, 4vw, 3.3rem); margin: 0 0 .5rem; }
.carousel-prev,.carousel-next { position: absolute; z-index: 3; top: 50%; transform: translateY(-50%); border: 0; width: 2.7rem; height: 2.7rem; border-radius: 50%; background: rgba(255,255,255,.88); color: var(--ink); font-size: 1.6rem; cursor: pointer; }
.carousel-prev { left: .8rem; }.carousel-next { right: .8rem; }
.carousel-dots { position: absolute; z-index: 3; left: 50%; bottom: 1rem; transform: translateX(-50%); display: flex; gap: .45rem; }
.carousel-dots button { width: .65rem; height: .65rem; padding: 0; border: 0; border-radius: 50%; background: rgba(255,255,255,.5); cursor: pointer; }
.carousel-dots button.is-active { background: #fff; transform: scale(1.25); }
.form-shell { max-width: 58rem; margin-inline: auto; background: rgba(255,255,255,.82); padding: clamp(1.5rem, 4vw, 3rem); border-radius: 1.5rem; box-shadow: var(--shadow-soft); }
.cms-form { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem 1.25rem; margin-top: 1.5rem; }
.cms-form label { display: grid; gap: .4rem; font-weight: 600; }
.cms-form input,.cms-form select,.cms-form textarea { width: 100%; padding: .8rem .9rem; border: 1px solid rgba(109,97,100,.25); border-radius: .75rem; background: #fff; color: var(--ink); font: inherit; }
.cms-form input:focus,.cms-form select:focus,.cms-form textarea:focus { outline: 3px solid rgba(142,197,216,.32); border-color: var(--sky-deep); }
.cms-form .form-full { grid-column: 1 / -1; }
.cms-form .consent { display: flex; grid-template-columns: auto 1fr; align-items: center; font-weight: 400; }
.cms-form .consent input { width: auto; }
.hp-field { position: absolute !important; left: -9999px !important; }
.alert { padding: .9rem 1rem; margin: 1rem 0; border-radius: .75rem; font-weight: 600; }
.alert-success { color: #246039; background: var(--leaf-soft); }.alert-error { color: #8b3429; background: var(--blush-mid); }
.blog-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1.4rem; }
.blog-card { background: #fff; border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow-soft); }
.blog-card img { width: 100%; aspect-ratio: 12/7; object-fit: cover; }
.blog-card-body { padding: 1.25rem; }.blog-card h2 { font-size: 1.3rem; margin: .25rem 0 .7rem; }.blog-card h2 a { color: var(--ink); text-decoration: none; }
.article-shell { max-width: 52rem; margin: 0 auto; }.article-shell h1 { font-size: clamp(2rem,5vw,3.5rem); line-height: 1.2; }.article-cover { border-radius: 1.5rem; margin: 1.5rem 0 2rem; }
.pagination { display: flex; justify-content: center; flex-wrap: wrap; gap: .5rem; margin-top: 2rem; }.pagination a { display: grid; place-items: center; min-width: 2.5rem; height: 2.5rem; border-radius: 50%; background: #fff; color: var(--ink); text-decoration: none; }.pagination a.is-current { background: var(--pink-deep); color: #fff; }
.empty-state,.error-page { text-align: center; max-width: 46rem; margin: 4rem auto; padding: 3rem 1.5rem; background: rgba(255,255,255,.75); border-radius: 1.5rem; }.error-page { min-height: 55vh; display: flex; flex-direction: column; align-items: center; justify-content: center; }
@media (max-width: 850px) { .blog-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 650px) { .cms-form,.blog-grid { grid-template-columns: 1fr; }.cms-form .form-full { grid-column: auto; }.cms-banner { margin-inline: 1rem; min-height: 20rem; }.cms-banner-slide,.cms-banner-slide picture,.cms-banner-slide img { min-height: 20rem; }.cms-banner-copy { left: 1.5rem; right: 1.5rem; }.carousel-prev,.carousel-next { display: none; } }
