/* Cherry Decor Party: shared brand shell and customer-facing collection. */
:root { --primary:#f5dce0; --primary-dark:#812c43; --secondary:#886574; --text-main:#35272a; --text-muted:#74666a; --bg-main:#fcfaf7; --cherry-wine:#812c43; --cherry-line:#e8ddda; --shadow:0 10px 35px rgba(66,34,44,.045); }
html { scroll-behavior:smooth; scroll-padding-top:140px; }
body { padding-top:0; background:var(--bg-main); }
button, input, select, textarea { font:inherit; }
button, a, input, select, textarea { -webkit-tap-highlight-color:transparent; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline:3px solid #b14767; outline-offset:4px; }
.skip-link { position:fixed; left:15px; top:-70px; padding:10px 18px; background:#fff; color:#812c43; z-index:3000; }.skip-link:focus { top:10px; }
.cherry-header.c-header { position:sticky; top:0; background:#fcfaf7; box-shadow:none; border-bottom:1px solid var(--cherry-line); }
.cherry-topline { min-height:32px; background:#812c43; color:#fff1f2; padding:5px max(5vw,24px); display:flex; justify-content:space-between; gap:20px; font-size:11px; letter-spacing:.7px; }
.cherry-topline a { white-space:nowrap; }
.cherry-header__main { max-width:1440px; margin:auto; padding:20px 5vw; min-height:96px; display:flex; align-items:center; justify-content:space-between; gap:35px; }
.cherry-wordmark { display:inline-flex; flex-direction:column; color:#812c43; line-height:1; flex-shrink:0; }
.cherry-wordmark__name { font-size:31px; font-weight:800; letter-spacing:2px; position:relative; }.cherry-wordmark__dot { font-size:9px; vertical-align:top; position:relative; top:1px; margin-left:4px; }
.cherry-wordmark__sub { font-size:11px; font-weight:600; letter-spacing:5.1px; margin-top:7px; }
.cherry-nav { display:flex; gap:34px; align-items:center; font-size:14px; font-weight:600; }.cherry-nav a { padding:6px 0; border-bottom:1px solid transparent; white-space:nowrap; }.cherry-nav a:hover,.cherry-nav a[aria-current="page"] { color:#812c43; border-bottom-color:#812c43; }
.cherry-header__cta { border:1px solid #812c43; border-radius:30px; padding:10px 20px; font-size:13px; font-weight:650; color:#812c43; white-space:nowrap; }.cherry-header__cta span { margin-left:10px; }
.cherry-header .c-hamburger { display:none; }
.c-mobile-menu { background:#fcfaf7; }.c-mobile-menu__title { font-size:13px; letter-spacing:1px; }
.eyebrow { color:#812c43; font-size:10px; font-weight:750; letter-spacing:2.1px; line-height:1.7; }
.cherry-hero { max-width:1600px; margin:auto; display:grid; grid-template-columns:46% 54%; min-height:590px; }
.cherry-hero__copy { padding:70px 50px 46px max(5vw,35px); display:flex; flex-direction:column; justify-content:center; }
.cherry-hero h1, .cherry-section h2, .cherry-page-intro h1, .cherry-invitation h2 { font-family:Georgia,'Times New Roman',serif; font-weight:400; letter-spacing:-1.7px; }
.cherry-hero h1 { margin:25px 0 23px; font-size:clamp(38px,3.8vw,60px); line-height:1.15; }
.cherry-hero em, .cherry-section h2 em, .cherry-page-intro em, .cherry-invitation em { font-weight:400; color:#812c43; }
.cherry-hero__copy > p:not(.eyebrow) { max-width:470px; color:#74666a; font-size:15px; line-height:1.85; }
.cherry-actions { display:flex; flex-wrap:wrap; align-items:center; gap:25px; margin-top:28px; }
.cherry-btn { display:inline-flex; align-items:center; justify-content:center; gap:24px; background:#812c43; color:#fff; border:1px solid #812c43; border-radius:30px; padding:13px 25px; font-size:13px; font-weight:650; cursor:pointer; min-height:48px; line-height:1.4; transition:background .2s,transform .2s; }.cherry-btn:hover { background:#672037; transform:translateY(-1px); }.cherry-btn--outline { background:transparent; color:#812c43; }.cherry-btn--outline:hover { background:#f5e5e8; }
.cherry-text-link { display:inline-flex; align-items:center; gap:12px; font-size:13px; color:#812c43; font-weight:650; border-bottom:1px solid #ceb0b8; padding-bottom:3px; }
.cherry-hero__note { margin-top:50px; padding-top:22px; display:flex; align-items:center; gap:16px; border-top:1px solid var(--cherry-line); max-width:420px; font-size:11px; color:#827278; line-height:1.8; }.cherry-hero__note strong { font-weight:500; color:#453237; }.cherry-flower { font-size:36px; color:#bb7a8b; line-height:1; }
.cherry-hero__visual { position:relative; min-width:0; display:block; overflow:hidden; background:#ecd9d7; }.cherry-hero__visual > img { width:100%; height:100%; max-height:710px; min-height:590px; object-fit:cover; object-position:center; }.cherry-hero__caption { position:absolute; bottom:24px; left:25px; right:25px; display:flex; align-items:center; justify-content:space-between; gap:15px; padding:16px 19px; background:rgba(252,250,247,.93); color:#35272a; backdrop-filter:blur(8px); }.cherry-hero__caption small { display:block; font-size:9px; letter-spacing:1.8px; color:#85616c; margin-bottom:5px; }.cherry-hero__caption strong { font-size:14px; font-weight:650; }.cherry-round-arrow { width:38px; height:38px; display:grid; place-items:center; border:1px solid #b8959f; border-radius:50%; font-size:20px; color:#812c43; flex-shrink:0; }
.cherry-hero__empty { background:#f5dce0; display:grid; align-content:center; justify-items:center; padding:50px; text-align:center; font-family:Georgia,serif; font-size:40px; color:#812c43; }.cherry-hero__empty > span { font-size:85px; }
.cherry-ribbon { background:#f1e7e3; display:flex; justify-content:center; align-items:center; gap:48px; padding:19px 25px; font-size:10px; letter-spacing:1.6px; font-weight:650; color:#775962; }.cherry-ribbon i { font-size:20px; font-style:normal; color:#b46e81; }
.cherry-section { max-width:1350px; margin:0 auto; padding:78px 5vw; }.cherry-section-heading { display:flex; align-items:end; justify-content:space-between; gap:35px; margin-bottom:33px; }.cherry-section h2 { font-size:clamp(30px,3vw,45px); line-height:1.2; margin:12px 0 0; }.cherry-section-heading > div:last-child:not(:first-child) { max-width:350px; }.cherry-section-heading > div > p:not(.eyebrow) { color:#74666a; font-size:14px; line-height:1.8; margin-bottom:17px; }
.decor-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:35px 26px; }.decor-card { min-width:0; }.decor-card__image { display:block; overflow:hidden; position:relative; background:#eee4e0; aspect-ratio:1/1; border-radius:3px; }.decor-card__image img { width:100%; height:100%; object-fit:cover; transition:transform .45s; }.decor-card__image:hover img { transform:scale(1.04); }.decor-card__view { position:absolute; right:12px; bottom:12px; background:rgba(252,250,247,.95); border-radius:20px; font-size:11px; color:#812c43; padding:7px 13px; display:flex; gap:10px; }
.decor-card__body { padding:17px 0 0; }.decor-card__category { color:#966a76; text-transform:uppercase; font-size:9px; font-weight:650; letter-spacing:1.5px; margin-bottom:5px; }.decor-card h3 { font-size:19px; font-family:Georgia,'Times New Roman',serif; font-weight:400; line-height:1.4; overflow-wrap:anywhere; }.decor-card__summary { margin:9px 0; color:#7a6c70; font-size:12px; line-height:1.7; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }.decor-card__bottom { border-top:1px solid var(--cherry-line); padding-top:13px; margin-top:16px; display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:10px; }.decor-card__bottom strong { font-size:13px; font-weight:700; color:#812c43; }.decor-card__bottom a { font-size:11px; color:#78656d; }
.cherry-story { border-top:1px solid var(--cherry-line); display:grid; grid-template-columns:1fr 1fr; gap:85px; }.cherry-story > div > p:not(.eyebrow) { font-size:14px; line-height:1.9; color:#74666a; margin:24px 0; }.cherry-steps { list-style:none; padding:0; display:grid; gap:0; }.cherry-steps li { display:flex; gap:22px; padding:22px 0; border-bottom:1px solid var(--cherry-line); }.cherry-steps li:first-child { padding-top:0; }.cherry-steps li > span { color:#b58090; font-family:Georgia,serif; font-size:27px; }.cherry-steps h3 { font-size:17px; font-weight:550; margin:0 0 6px; }.cherry-steps p { color:#74666a; font-size:13px; line-height:1.8; }
.cherry-invitation { background:#f2e5e5; text-align:center; padding:70px 25px; }.cherry-invitation h2 { font-size:clamp(33px,4vw,52px); line-height:1.2; margin:17px 0; }.cherry-invitation > p:not(.eyebrow) { font-size:14px; color:#78636a; }.cherry-invitation .cherry-actions { justify-content:center; }
.cherry-footer { background:#fcfaf7; padding:50px max(5vw,24px) 20px; }.cherry-footer__main { max-width:1215px; margin:auto; display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:50px; padding-bottom:40px; }.cherry-footer__main > div > p { color:#89767c; font-size:12px; line-height:1.9; margin-top:17px; }.cherry-footer__main h2 { font-size:13px; font-weight:650; margin-bottom:18px; }.cherry-footer__main > div > a:not(.cherry-wordmark) { display:block; color:#89767c; font-size:12px; margin:9px 0; }.cherry-footer__main > div > a.cherry-footer__phone { font-family:Georgia,serif; font-size:25px; color:#812c43; }.cherry-footer__bottom { border-top:1px solid var(--cherry-line); max-width:1215px; margin:auto; padding-top:18px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:14px; font-size:10px; color:#89767c; }
.cherry-page-intro { max-width:950px; margin:auto; padding:65px 25px 38px; text-align:center; }.cherry-page-intro h1 { font-size:clamp(38px,4.3vw,60px); line-height:1.13; margin:20px 0; }.cherry-page-intro > p:not(.eyebrow) { color:#74666a; font-size:14px; max-width:620px; margin:auto; line-height:1.9; }.cherry-collection { padding-top:20px; }.decor-filters { display:grid; grid-template-columns:1fr minmax(160px,230px) auto; gap:16px; align-items:end; padding:23px; border:1px solid var(--cherry-line); background:#fff; border-radius:6px; }.decor-filters label { display:grid; gap:7px; font-size:11px; color:#655057; }.decor-filters input,.decor-filters select { width:100%; min-width:0; border:1px solid #e4dad6; border-radius:5px; padding:12px; font-size:13px; background:#fcfaf7; color:#35272a; min-height:46px; }.decor-filters .cherry-btn { border-radius:5px; }.decor-results { display:flex; align-items:center; gap:15px; margin:23px 0 25px; font-size:11px; color:#7e6a72; }.decor-results > span { margin-left:auto; }.decor-results strong { color:#35272a; }.decor-results a { color:#812c43; text-decoration:underline; }
.cherry-empty { padding:55px 20px; text-align:center; border:1px dashed #dcbec8; border-radius:6px; }.cherry-empty h3 { font-size:20px; font-weight:500; }.cherry-empty p { margin:12px 0 22px; font-size:13px; color:#74666a; }
.cherry-mini-cta { max-width:1215px; margin:0 auto 70px; padding:35px; background:#f2e5e5; display:flex; align-items:center; justify-content:space-between; gap:35px; }.cherry-mini-cta h2 { font-family:Georgia,serif; font-size:28px; font-weight:400; margin-bottom:10px; }.cherry-mini-cta p { color:#74666a; font-size:13px; max-width:670px; }.cherry-mini-cta .cherry-btn { flex-shrink:0; }.cherry-mini-cta .cherry-text-link { margin-top:18px; }
.cherry-breadcrumb { max-width:1350px; margin:auto; padding:28px 5vw 0; display:flex; flex-wrap:wrap; gap:10px; font-size:11px; color:#89767c; }.cherry-breadcrumb a { color:#812c43; }.decor-detail { display:grid; grid-template-columns:1.15fr 1fr; gap:52px; padding-top:28px; }.decor-album { min-width:0; }.decor-album__main { display:block; position:relative; background:#f0e6e2; }.decor-album__main img { width:100%; max-height:750px; object-fit:contain; }.decor-album__main > span { position:absolute; bottom:12px; left:12px; background:rgba(252,250,247,.94); padding:6px 11px; border-radius:3px; font-size:10px; color:#812c43; }.decor-album__thumbs { display:flex; gap:10px; flex-wrap:wrap; margin-top:12px; }.decor-album__thumbs button { width:77px; height:77px; padding:3px; border:1px solid transparent; cursor:pointer; background:transparent; border-radius:4px; }.decor-album__thumbs button[aria-pressed="true"] { border-color:#812c43; }.decor-album__thumbs img { width:100%; height:100%; object-fit:cover; }
.decor-detail__copy { align-self:start; padding-top:7px; }.decor-detail__copy h1 { font-family:Georgia,serif; font-size:clamp(30px,3vw,43px); font-weight:400; line-height:1.2; margin:16px 0 20px; overflow-wrap:anywhere; }.decor-detail__summary { font-size:14px; line-height:1.9; color:#74666a; }.decor-detail__price { background:#f3e8e5; padding:20px; margin:25px 0; }.decor-detail__price > span { font-size:11px; color:#8b6c76; }.decor-detail__price strong { display:block; color:#812c43; font-size:26px; font-weight:600; margin:4px 0 9px; }.decor-detail__price p { font-size:11px; line-height:1.8; color:#89767c; }.decor-detail__description h2 { font-family:inherit; font-size:15px; font-weight:600; letter-spacing:0; margin-bottom:12px; }.decor-detail__description p { white-space:pre-wrap; overflow-wrap:anywhere; font-size:13px; line-height:1.9; color:#74666a; }.decor-detail__copy .cherry-actions { gap:10px; }.decor-detail__help { margin-top:24px; padding-top:20px; border-top:1px solid var(--cherry-line); font-size:11px; color:#89767c; }.decor-detail__help a { font-weight:650; color:#812c43; }
.decor-lightbox { border:0; padding:35px 16px 15px; background:#fcfaf7; margin:auto; max-width:96vw; max-height:96vh; overflow:auto; }.decor-lightbox::backdrop { background:rgba(24,13,18,.88); }.decor-lightbox > img { max-height:80vh; max-width:90vw; margin:auto; object-fit:contain; }.decor-lightbox > a { display:block; font-size:12px; color:#812c43; text-align:center; margin-top:10px; }.decor-lightbox__close { position:absolute; right:7px; top:0; border:0; background:none; color:#812c43; font-size:30px; cursor:pointer; min-width:35px; }
.page-hero { margin-top:42px; }.cta { color:#812c43; }.cta--zalo { color:#fff; }.cta--submit { background:#812c43; color:#fff; }.booking-form input,.booking-form select,.booking-form textarea { font-size:14px; }.contact-aside { border-top-color:#812c43; }.booking-form label { font-size:13px; }.login-shell { min-height:66vh; }
@media (min-width:1600px) { .cherry-hero__copy { padding-left:85px; } }
@media (max-width:1100px) { .cherry-header__main { gap:20px; padding:18px 4vw; }.cherry-nav { gap:21px; font-size:12px; }.cherry-header__cta { font-size:12px; padding:9px 15px; }.cherry-hero__copy { padding:42px 28px 35px 4vw; }.cherry-hero { min-height:525px; }.cherry-hero__visual > img { min-height:525px; }.cherry-hero h1 { font-size:42px; }.cherry-hero__copy > p:not(.eyebrow) { font-size:13px; }.cherry-hero__note { margin-top:35px; }.cherry-actions { gap:18px; }.cherry-btn { padding:12px 19px; font-size:12px; }.cherry-ribbon { gap:25px; }.cherry-story { gap:45px; }.cherry-mini-cta { margin-left:5vw; margin-right:5vw; }.decor-detail { gap:32px; } }
@media (max-width:860px) { .cherry-header__main { min-height:81px; padding:14px 24px; }.cherry-header .c-hamburger { display:flex; margin-left:3px; }.cherry-nav { display:none; }.cherry-header__cta { margin-left:auto; }.cherry-wordmark__name { font-size:26px; }.cherry-wordmark__sub { font-size:9px; letter-spacing:4.6px; }.cherry-hero h1 { font-size:36px; }.cherry-hero { grid-template-columns:47% 53%; }.cherry-hero__copy { padding:35px 25px; }.cherry-hero__copy .cherry-actions { align-items:start; flex-direction:column; gap:15px; }.cherry-hero__note { margin-top:24px; }.cherry-hero__visual > img { min-height:545px; }.cherry-hero__caption { left:14px; right:14px; bottom:14px; padding:13px; }.cherry-hero__caption strong { font-size:12px; }.cherry-ribbon { gap:18px; font-size:8px; letter-spacing:1px; }.cherry-section { padding-top:55px; padding-bottom:55px; }.decor-grid { gap:25px 18px; }.decor-card h3 { font-size:17px; }.decor-card__summary { font-size:11px; }.decor-card__bottom { gap:6px; }.decor-card__bottom strong { font-size:12px; }.cherry-footer__main { gap:25px; }.decor-detail { padding-top:25px; }.decor-detail__copy h1 { font-size:30px; }.decor-filters { grid-template-columns:1fr 180px auto; padding:18px; gap:10px; } }
@media (max-width:640px) { html { scroll-padding-top:110px; }.cherry-topline { padding:5px 17px; font-size:9px; gap:8px; letter-spacing:.15px; min-height:27px; }.cherry-header__main { padding:13px 18px; min-height:75px; gap:15px; }.cherry-header__cta { font-size:10px; padding:8px 12px; }.cherry-header__cta span { margin-left:3px; }.cherry-header .c-hamburger { padding:6px 0 6px 3px; }.cherry-header .c-hamburger span { width:21px; height:2px; }.cherry-wordmark__name { font-size:24px; }.cherry-wordmark__sub { font-size:8px; letter-spacing:4.5px; }.cherry-hero { grid-template-columns:1fr; }.cherry-hero__copy { padding:37px 24px 31px; }.cherry-hero .eyebrow { font-size:9px; letter-spacing:1.7px; }.cherry-hero h1 { font-size:43px; margin:19px 0; letter-spacing:-1.5px; }.cherry-hero__copy > p:not(.eyebrow) { font-size:13px; max-width:100%; }.cherry-hero__copy .cherry-actions { flex-direction:row; align-items:center; gap:19px; margin-top:24px; }.cherry-hero__note { display:none; }.cherry-hero__visual > img { min-height:0; height:auto; max-height:490px; aspect-ratio:1.1/1; object-fit:cover; }.cherry-hero__caption { bottom:15px; left:19px; right:19px; }.cherry-hero__caption small { font-size:8px; }.cherry-hero__caption strong { font-size:13px; }.cherry-ribbon { padding:15px 18px; justify-content:space-around; gap:15px; font-size:8px; letter-spacing:.4px; }.cherry-ribbon span:last-child,.cherry-ribbon i:last-of-type { display:none; }.cherry-ribbon i { font-size:17px; }.cherry-section { padding:43px 20px; }.cherry-section-heading { align-items:start; flex-direction:column; gap:17px; margin-bottom:26px; }.cherry-section h2 { font-size:33px; letter-spacing:-.8px; }.cherry-section-heading > div > p:not(.eyebrow) { font-size:12px; margin-bottom:12px; }.decor-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:25px 14px; }.decor-card__body { padding-top:12px; }.decor-card__category { font-size:8px; letter-spacing:.7px; }.decor-card h3 { font-size:17px; line-height:1.25; }.decor-card__summary { margin:8px 0; font-size:11px; }.decor-card__bottom { margin-top:11px; padding-top:11px; display:grid; gap:6px; }.decor-card__bottom strong { font-size:11px; }.decor-card__bottom a { font-size:10px; }.decor-card__view { right:7px; bottom:7px; padding:5px 8px; font-size:9px; }.cherry-story { grid-template-columns:1fr; gap:30px; }.cherry-story > div > p:not(.eyebrow) { font-size:13px; margin:20px 0; }.cherry-steps li { padding:18px 0; }.cherry-invitation { padding:48px 20px; }.cherry-invitation h2 { font-size:38px; letter-spacing:-1.1px; }.cherry-invitation > p:not(.eyebrow) { font-size:12px; }.cherry-footer { padding:37px 22px 20px; }.cherry-footer__main { grid-template-columns:1fr 1fr; gap:30px 25px; }.cherry-footer__main > div:first-child { grid-column:1/-1; display:flex; gap:25px; align-items:center; }.cherry-footer__main > div:first-child p { margin:0; font-size:11px; }.cherry-footer__main h2 { font-size:11px; }.cherry-footer__main > div > a:not(.cherry-wordmark) { font-size:11px; }.cherry-footer__main > div > a.cherry-footer__phone { font-size:21px; }.cherry-page-intro { padding:43px 23px 27px; }.cherry-page-intro h1 { font-size:41px; letter-spacing:-1.2px; }.cherry-page-intro > p:not(.eyebrow) { font-size:12px; }.cherry-collection { padding-top:8px; }.decor-filters { grid-template-columns:1fr auto; padding:15px; gap:12px; }.decor-search { grid-column:1/-1; }.decor-filters select,.decor-filters input { font-size:12px; }.decor-filters .cherry-btn { padding-left:17px; padding-right:17px; }.decor-results { font-size:10px; flex-wrap:wrap; margin:20px 0; }.decor-results > span { display:none; }.cherry-mini-cta { padding:26px; margin:0 20px 40px; display:grid; gap:22px; }.cherry-mini-cta h2 { font-size:25px; }.cherry-mini-cta p { font-size:12px; }.cherry-mini-cta .cherry-btn { justify-self:start; }.cherry-breadcrumb { padding:20px 20px 0; font-size:10px; }.decor-detail { grid-template-columns:1fr; padding-top:20px; gap:25px; }.decor-detail__copy { padding:0; }.decor-detail__copy h1 { font-size:33px; }.decor-detail__summary { font-size:13px; }.decor-detail__copy .cherry-actions { gap:10px; }.decor-album__thumbs button { width:62px; height:62px; }.decor-album__main img { max-height:520px; }.cherry-empty { padding:40px 20px; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition:none !important; animation:none !important; } }
