/* Homepage only: the catalog and checkout retain their existing presentation. */
.fc-page:has(.fc-home) { --fc-canvas:#fffcfd; --fc-soft:#f7eaf0; --fc-care-surface:#fbf3f6; --fc-floral-gradient:linear-gradient(110deg, #f7eaf0 0%, #fffcfd 100%); --fc-ink:#302832; --fc-muted:#665b63; --fc-primary:#9B3157; --fc-primary-hover:#7B2343; --fc-display:'Lora',Georgia,serif; --fc-border:#ded2d9; --fc-control-border:#9a8590; background:var(--fc-canvas); }
.fc-home { color:var(--fc-ink); }
.fc-home :is(h1,h2,h3) { font-family:var(--fc-display); font-weight:400; letter-spacing:-.025em; text-wrap:balance; }
.fc-home p { color:var(--fc-muted); font-size:16px; line-height:1.7; }
.fc-home .fc-kicker { text-transform:none; letter-spacing:.02em; font-size:14px; color:var(--fc-muted); }
.fc-home .fc-hero { background:var(--fc-floral-gradient); min-height:510px; }
.fc-home .fc-hero-image { min-height:510px; }
.fc-home .fc-hero-copy { padding-top:56px; padding-bottom:56px; }
.fc-home .fc-hero h1 { font-size:clamp(40px,4.5vw,64px); line-height:1.16; }
.fc-home .fc-actions { gap:12px; flex-wrap:wrap; }
.fc-home .fc-button { min-height:48px; font-size:15px; padding:12px 22px; background:var(--fc-primary); color:#fff; border:1px solid var(--fc-primary); }
.fc-home .fc-button:hover { background:var(--fc-primary-hover); }
.fc-home .fc-button-outline { background:transparent; color:var(--fc-primary); }
.fc-home .fc-button-outline:hover { background:#fff; color:var(--fc-primary-hover); }
.fc-home .fc-link { display:inline-flex; align-items:center; min-height:44px; color:var(--fc-primary); font-size:15px; }
.fc-trust-strip { background:var(--fc-canvas); border-top:1px solid var(--fc-border); border-bottom:1px solid var(--fc-border); }
.fc-trust-strip .fc-container { display:flex; justify-content:space-between; gap:20px; align-items:center; min-height:70px; font-size:14px; }
.fc-trust-strip a { display:inline-flex; align-items:center; min-height:44px; color:var(--fc-primary); }
.fc-home-occasions { background:var(--fc-soft); }
.fc-home-search { display:flex; gap:16px; padding-top:36px; align-items:center; }
.fc-home-search .fc-search { flex:1; max-width:650px; height:50px; margin:0; background:#fff; border:1px solid var(--fc-control-border); }
.fc-home-search input { font-size:16px; color:var(--fc-ink); }
.fc-home-search input::placeholder { color:var(--fc-muted); }
.fc-home .fc-section { padding:56px 0; }
.fc-home .fc-section-heading { margin-bottom:28px; }
.fc-home .fc-section-heading h2 { font-size:clamp(28px,3vw,38px); }
.fc-home .fc-section-heading p { margin-bottom:0; }
.fc-home .fc-occasions { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:18px; align-items:start; }
.fc-home .fc-occasions>a:nth-child(n) { display:block; grid-column:auto; padding:0; color:var(--fc-ink); text-decoration:none; }
.fc-home .fc-occasions>a img { width:100%; aspect-ratio:4/5; height:auto; object-fit:cover; border-radius:3px; transition:filter 180ms ease; }
.fc-home .fc-occasions a:hover img { filter:brightness(1.06); }
.fc-home .fc-occasions h3 { font-size:22px; margin:14px 0 4px; }
.fc-home .fc-occasions span { font-size:14px; color:var(--fc-muted); }
.fc-home-products { background:var(--fc-canvas); }
.fc-home .fc-product-grid { gap:24px; }
.fc-page .fc-home .fc-product-image { border-radius:3px; background:transparent; }
.fc-home .fc-image-placeholder { aspect-ratio:4/5; background:var(--fc-soft); color:var(--fc-ink); font:400 28px var(--fc-display); display:flex; flex-direction:column; justify-content:center; align-items:center; padding:20px; text-align:center; }
.fc-home .fc-image-placeholder small { font:400 14px/1.6 var(--fc-body); color:var(--fc-muted); max-width:180px; margin-top:12px; }
.fc-home .fc-card-caption { padding-top:14px; }
.fc-home .fc-card-caption h3 { font:500 16px/1.5 var(--fc-body); letter-spacing:0; margin-bottom:6px; }
.fc-home .fc-card-caption h3 a { display:inline-flex; align-items:center; min-height:44px; text-decoration:none; }
.fc-home .fc-card-caption p { font-size:21px; font-weight:500; color:var(--fc-ink); margin-bottom:0; }
.fc-home .fc-section-end { margin-top:20px; }
.fc-home-care { background:var(--fc-care-surface); color:var(--fc-ink); }
.fc-home .fc-brand-note { padding:56px 0; gap:56px; }
.fc-home-care p { color:var(--fc-muted); }
.fc-home-care .fc-link { color:var(--fc-primary); }
.fc-home .fc-service-notes { display:grid; gap:24px; }
.fc-home .fc-service-notes article { padding:0 0 0 44px; position:relative; border:0; }
.fc-home .fc-service-notes h3 { font:500 18px/1.5 var(--fc-body); letter-spacing:0; margin-bottom:6px; }
.fc-home .fc-service-notes p { margin:0; font-size:15px; }
.fc-care-icon { position:absolute; left:0; top:4px; width:24px; height:24px; filter:none; }
.fc-home-reviews { background:var(--fc-canvas); padding:56px 0; }
.fc-review-layout { display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; }
.fc-review-layout h2 { margin:0; }
.fc-review-placeholder { border-left:2px solid var(--fc-border); padding-left:28px; }
.fc-review-placeholder>span { font-size:15px; font-weight:500; }
.fc-review-placeholder p { margin:12px 0; }
.fc-review-placeholder small { font-size:14px; color:var(--fc-muted); }
.fc-home .fc-collection { background:var(--fc-soft); min-height:0; grid-template-columns:1fr 1.3fr; }
.fc-home .fc-collection-image { height:320px; }
.fc-home .fc-collection-copy { padding:40px 48px; max-width:660px; }
.fc-home .fc-collection h2 { font-size:32px; margin-bottom:12px; }
.fc-home .fc-collection p { margin-bottom:12px; }
.fc-home .fc-concierge { display:block; width:100%; background:var(--fc-primary-hover); color:#fff; border:0; padding:48px 0; }
.fc-concierge-inner { display:flex; justify-content:space-between; align-items:center; gap:28px; flex-wrap:wrap; }
.fc-home .fc-concierge h2 { font-size:32px; margin-bottom:12px; }
.fc-home .fc-concierge p { color:#f7eaf0; margin:0; }
.fc-home .fc-concierge .fc-button { background:#fff; color:var(--fc-primary-hover)!important; border:1px solid #fff; }
.fc-home .fc-concierge .fc-button:hover { background:var(--fc-soft); }
.fc-home .fc-concierge :is(.fc-notice,.fc-error) { flex-basis:100%; color:var(--fc-ink); }
.fc-page:has(.fc-home) .fc-footer { background:var(--fc-canvas); }
.fc-page:has(.fc-home) .fc-footer a:not(.fc-brand) { min-height:44px; display:flex; align-items:center; font-size:14px; }
.fc-page:has(.fc-home) .fc-brand small { color:var(--fc-ink); }
.fc-page:has(.fc-home) :focus-visible { outline:3px solid #9B3157; outline-offset:4px; }
.fc-home-care :focus-visible { outline-color:var(--fc-primary); }
.fc-home .fc-concierge :focus-visible { outline-color:#fff; }
@media(max-width:1023px) { .fc-home .fc-occasions { grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; } .fc-home .fc-hero-copy { padding:36px 32px; } }
@media(max-width:599px) {
 .fc-home .fc-hero { flex-direction:column-reverse; }
 .fc-home .fc-hero-image { min-height:0; height:265px; }
 .fc-home .fc-hero-copy { padding:28px 20px 32px; }
 .fc-home .fc-hero h1 { font-size:40px; margin-bottom:18px; }
 .fc-home .fc-hero p { font-size:16px; }
 .fc-home .fc-actions { gap:12px; }
 .fc-home .fc-button { padding:12px 16px; font-size:14px; }
 .fc-trust-strip .fc-container { display:grid; gap:4px; padding:16px 0; font-size:14px; }
 .fc-trust-strip span { line-height:1.7; }
 .fc-home-search { flex-wrap:wrap; gap:12px; padding-top:24px; }
 .fc-home-search .fc-search { flex-basis:100%; }
 .fc-home .fc-section { padding:36px 0; }
 .fc-home .fc-occasions { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 16px; }
 .fc-home .fc-occasions h3 { font-size:22px; }
 .fc-home .fc-occasions span { font-size:14px; }
 .fc-home .fc-product-grid { gap:24px 16px; }
 .fc-home .fc-card-caption h3 { font-size:15px; }
 .fc-home .fc-card-caption p { font-size:19px; }
 .fc-home .fc-image-placeholder { padding:12px; font-size:25px; }
 .fc-home .fc-image-placeholder small { font-size:13px; }
 .fc-home .fc-brand-note { padding:36px 0; gap:28px; }
 .fc-home-reviews { padding:36px 0; }
 .fc-review-layout { grid-template-columns:1fr; gap:24px; }
 .fc-review-placeholder { padding-left:20px; }
 .fc-home .fc-collection-image { height:220px; }
 .fc-home .fc-collection-copy { padding:28px 20px 32px; }
 .fc-home .fc-collection h2 { font-size:28px; }
 .fc-home .fc-concierge { padding:36px 0; }
 .fc-home .fc-concierge h2 { font-size:28px; }
}
@media(prefers-reduced-motion:reduce) { .fc-home * { transition:none!important; } }
/* Resolve legacy button and hover rules without changing shared components. */
.fc-home .fc-button-outline { color:var(--fc-primary)!important; }
.fc-home .fc-button-outline:hover { color:var(--fc-primary-hover)!important; }
.fc-home .fc-product-image { aspect-ratio:auto; }
.fc-home .fc-product-image>a { display:block; width:100%; aspect-ratio:4/5; text-decoration:none; }
.fc-home .fc-image-placeholder { width:100%; min-width:0; height:100%; }
.fc-page:has(.fc-home) .fc-brand { min-height:44px; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; }
.fc-page:has(.fc-home) .fc-footer summary { min-height:44px; display:flex; align-items:center; }

/* Reuse the /ket-noi contact dock with the homepage's floral palette. */
.fc-page:has(.fc-home) .cvn-smart-contact-dock__action,
.fc-page:has(.fc-home) .cvn-smart-contact-dock__icon { color:var(--fc-primary); }
.fc-page:has(.fc-home) .cvn-smart-contact-dock__action:hover { color:var(--fc-primary-hover); background:var(--fc-soft); }
.fc-page:has(.fc-home) .cvn-smart-contact-dock__action:focus-visible { outline-color:var(--fc-primary); }
.fc-page:has(.fc-home) .cvn-smart-contact-dock__zalo { color:#fff; background:var(--fc-primary); }
.fc-page:has(.fc-home) .cvn-smart-contact-dock__action.is-consult { color:#fff; background:linear-gradient(145deg,var(--fc-primary),var(--fc-primary-hover)); box-shadow:0 8px 16px rgb(48 40 50 / 22%); }
.fc-page:has(.fc-home) .is-consult .cvn-smart-contact-dock__icon { color:#fff; }
.fc-page:has(.fc-home) .cvn-smart-contact-dock__action.is-consult:hover { color:#fff; background:var(--fc-primary-hover); }
.fc-page:has(.fc-home) .cvn-smart-contact-dock__action.is-consult i { background:var(--fc-soft); box-shadow:none; }
@media(max-width:700px) {
 .fc-page:has(.fc-home) .cvn-smart-contact-dock__action:is(.is-call,.is-zalo,.is-location) { background:var(--fc-canvas); }
 .fc-page.has-smart-contact-dock:has(.fc-home) .fc-toast { bottom:96px; }
}
