/* DreamCode — CF Thực Đơn | scoped to widget roots. No global Elementor overrides. */
.dc-cftd {
  --dc-cftd-bg:#F2E5D4; --dc-cftd-fg:#2E1E0F; --dc-cftd-accent:#8B663D;
  --dc-cftd-max-width:1280px; --dc-cftd-edge:80px; --dc-cftd-pad-top:64px; --dc-cftd-pad-bottom:64px;
  --dc-cftd-heading-gap:24px; --dc-cftd-feature-gap:132px; --dc-cftd-feature-space:32px;
  --dc-cftd-cards-gap:24px; --dc-cftd-card-gap:24px; --dc-cftd-thumb-size:160px;
  --dc-cftd-main-ratio:150; --dc-cftd-media-fit:cover; --dc-cftd-media-position:center center;
  --dc-cftd-thumb-position:center center; --dc-cftd-image-radius:0px;
  --dc-cftd-button-bg:#2E1E0F; --dc-cftd-button-fg:#F2E5D4;
  --dc-cftd-button-hover-bg:#8B663D; --dc-cftd-button-hover-fg:#fff;
  --dc-cftd-secondary-fg:#2E1E0F; --dc-cftd-secondary-hover-fg:#8B663D;
  --dc-cftd-button-height:48px; --dc-cftd-button-inline:24px; --dc-cftd-button-gap:16px; --dc-cftd-button-radius:0px;
  --dc-cftd-icon-size:18px; --dc-cftd-icon-color:currentColor; --dc-cftd-icon-hover:currentColor; --dc-cftd-icon-active:currentColor;
  --dc-cftd-card-color:var(--dc-cftd-fg); --dc-cftd-card-hover:#B88B59;
  color:var(--dc-cftd-fg); background:var(--dc-cftd-bg); width:100%;
  min-width:0; max-width:100%; font-family:Arial,Helvetica,sans-serif; font-size:16px; line-height:1.75;
  box-sizing:border-box; overflow-wrap:break-word; -webkit-text-size-adjust:100%; scroll-margin-top:24px;
}
.dc-cftd *, .dc-cftd *::before, .dc-cftd *::after { box-sizing:border-box; }
.dc-cftd :is(h1,h2,h3,h4,h5,h6,p,figure) { padding:0; border:0; }
.dc-cftd :is(h1,h2,h3,h4,h5,h6) { color:inherit; }
.dc-cftd :is(p,h1,h2,h3,h4,h5,h6) { overflow-wrap:anywhere; word-break:normal; max-width:100%; }
.dc-cftd a { color:inherit; cursor:pointer; text-decoration:none; -webkit-tap-highlight-color:transparent; }
.dc-cftd a:focus-visible { outline:2px solid var(--dc-cftd-accent); outline-offset:4px; }
.dc-cftd .dc-cftd__container { width:min(var(--dc-cftd-max-width),calc(100% - 2 * var(--dc-cftd-edge))); max-width:100%; margin:0 auto; min-width:0; }
.dc-cftd__heading { font-family:Georgia,'Times New Roman',serif; font-size:44px; font-weight:400; line-height:1.26; letter-spacing:-.02em; text-transform:none; margin:0 0 var(--dc-cftd-heading-gap); max-width:100%; }
.dc-cftd__copy { max-width:100%; min-width:0; line-height:1.75; font-size:16px; }
.dc-cftd__copy p { margin:0 0 0.75em; }
.dc-cftd__copy p:last-child { margin-bottom:0; }
.dc-cftd__icon { display:inline-flex; width:var(--dc-cftd-icon-size); height:var(--dc-cftd-icon-size); align-items:center; justify-content:center; flex:none; color:var(--dc-cftd-icon-color); line-height:1; transition:color .23s ease; }
.dc-cftd__icon :is(svg,i) { width:100%; height:100%; font-size:inherit; flex-shrink:0; }
/* Safe opt-in recolor for monochrome SVGs; original multicolor remains intact when opt-in is switched off. */
.dc-cftd__icon--mono svg [fill]:not([fill="none"]):not([fill="transparent"]) { fill:currentColor; }
.dc-cftd__icon--mono svg [stroke]:not([stroke="none"]):not([stroke="transparent"]) { stroke:currentColor; }
.dc-cftd__icon--mono svg :is(path,circle,rect,polyline,line,polygon,ellipse):not([fill]):not([stroke]) { fill:currentColor; }
.dc-cftd :is(.dc-cftd__action:hover,.dc-cftd__action:focus-visible,.dc-cftd__card-link:hover,.dc-cftd__card-link:focus-visible) .dc-cftd__icon { color:var(--dc-cftd-icon-hover); }
.dc-cftd :is(.dc-cftd__action:active,.dc-cftd__card-link:active) .dc-cftd__icon { color:var(--dc-cftd-icon-active); }

/* Intro: the three choices are real anchors, NOT tabs or fake selected links. */
.dc-cftd--intro { --dc-cftd-nav-color:#2E1E0F; --dc-cftd-nav-hover:#8B663D; --dc-cftd-nav-active:#2E1E0F; --dc-cftd-nav-gap:24px; --dc-cftd-nav-space:38px;
  padding-block:var(--dc-cftd-pad-top) var(--dc-cftd-pad-bottom); }
.dc-cftd__breadcrumb { display:flex; align-items:center; flex-wrap:wrap; gap:28px; font-size:12px; line-height:1.5; margin:0 0 36px; }
.dc-cftd__breadcrumb a { text-decoration:underline; text-underline-offset:2px; }
.dc-cftd__crumb-unlinked { text-decoration:underline; text-underline-offset:2px; }
.dc-cftd--intro .dc-cftd__heading { font-size:64px; line-height:1.11; max-width:760px; margin-bottom:32px; }
.dc-cftd--intro .dc-cftd__copy { max-width:860px; }
.dc-cftd__nav { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--dc-cftd-nav-gap); margin-top:var(--dc-cftd-nav-space); min-width:0; }
.dc-cftd .dc-cftd__nav-item { display:flex; flex-direction:column; min-width:0; min-height:44px; align-items:center; justify-content:center; padding:4px 8px 15px;
  border:0; border-bottom:1px solid var(--dc-cftd-accent); background:transparent; color:var(--dc-cftd-nav-color); font-size:14px;
  text-align:center; line-height:1.4; font-weight:500; text-transform:uppercase; transition:color .24s ease,border-color .24s ease; }
.dc-cftd .dc-cftd__nav-item:not(.dc-cftd__nav-item--unlinked):hover,
.dc-cftd .dc-cftd__nav-item:not(.dc-cftd__nav-item--unlinked):focus-visible { color:var(--dc-cftd-nav-hover); border-bottom-color:var(--dc-cftd-nav-hover); }
.dc-cftd .dc-cftd__nav-item[aria-current="location"] { color:var(--dc-cftd-nav-active); text-decoration:underline; text-underline-offset:3px; }
.dc-cftd__nav-item--unlinked { cursor:default; }

/* Category widgets: exact 1280px desktop grid & independent image coverage. */
.dc-cftd--category { padding-block:var(--dc-cftd-pad-top) var(--dc-cftd-pad-bottom); }
.dc-cftd__feature { min-height:calc(448px - var(--dc-cftd-feature-space) + 32px); display:grid;
  grid-template-columns:minmax(0,628fr) minmax(0,520fr); column-gap:var(--dc-cftd-feature-gap); align-items:start;
  padding-bottom:var(--dc-cftd-feature-space); }
.dc-cftd__feature > * { min-width:0; max-width:100%; }
.dc-cftd--no-media .dc-cftd__feature { grid-template-columns:minmax(0,1fr); }
.dc-cftd__eyebrow { font-size:12px; line-height:1.5; letter-spacing:.07em; text-transform:uppercase; margin:0 0 20px; }
.dc-cftd--category .dc-cftd__heading { font-size:49px; line-height:1.15; margin-bottom:25px; }
.dc-cftd__feature-text .dc-cftd__copy { max-width:628px; }
.dc-cftd__feature-media { align-self:start; margin-top:35px; width:100%; aspect-ratio:var(--dc-cftd-main-ratio) / 100;
  min-width:0; background:transparent; border-radius:var(--dc-cftd-image-radius); overflow:hidden; }
.dc-cftd__main-image { display:block; width:100%; height:100%; max-width:100%; object-fit:var(--dc-cftd-media-fit); object-position:var(--dc-cftd-media-position); border-radius:inherit; }
.dc-cftd__actions { display:flex; flex-wrap:wrap; align-items:center; gap:var(--dc-cftd-button-gap); margin-top:24px; }
/* All button states are explicitly defined, preventing inherited Elementor global button backgrounds. */
.dc-cftd .dc-cftd__action,
.dc-cftd .dc-cftd__action:visited {
  display:inline-flex; vertical-align:middle; align-items:center; justify-content:center;
  gap:10px; min-width:0; max-width:100%; min-height:var(--dc-cftd-button-height);
  padding:8px var(--dc-cftd-button-inline); font-size:14px; font-weight:500; line-height:1.4;
  border:1px solid transparent; border-radius:var(--dc-cftd-button-radius);
  text-align:center; text-decoration:none; white-space:normal; overflow-wrap:anywhere;
  transition:background-color .24s ease,color .24s ease,border-color .24s ease,transform .24s ease;
}
.dc-cftd .dc-cftd__action--primary,
.dc-cftd .dc-cftd__action--primary:visited { background:var(--dc-cftd-button-bg); color:var(--dc-cftd-button-fg); border-color:var(--dc-cftd-button-bg); }
.dc-cftd .dc-cftd__action--primary:not(.dc-cftd__action--unlinked):hover,
.dc-cftd .dc-cftd__action--primary:not(.dc-cftd__action--unlinked):focus-visible,
.dc-cftd .dc-cftd__action--primary:not(.dc-cftd__action--unlinked):active { background:var(--dc-cftd-button-hover-bg); color:var(--dc-cftd-button-hover-fg); border-color:var(--dc-cftd-button-hover-bg); }
.dc-cftd .dc-cftd__action--secondary,
.dc-cftd .dc-cftd__action--secondary:visited { background:transparent; color:var(--dc-cftd-secondary-fg); border-color:var(--dc-cftd-accent); }
.dc-cftd .dc-cftd__action--secondary:not(.dc-cftd__action--unlinked):hover,
.dc-cftd .dc-cftd__action--secondary:not(.dc-cftd__action--unlinked):focus-visible,
.dc-cftd .dc-cftd__action--secondary:not(.dc-cftd__action--unlinked):active { background:transparent; color:var(--dc-cftd-secondary-hover-fg); border-color:var(--dc-cftd-secondary-hover-fg); }
.dc-cftd__action--unlinked { cursor:default; }
.dc-cftd__cards { border-top:1px solid var(--dc-cftd-accent); display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--dc-cftd-cards-gap); padding-top:16px; }
.dc-cftd__card { display:grid; grid-template-columns:minmax(0,var(--dc-cftd-thumb-size)) minmax(0,1fr); gap:var(--dc-cftd-card-gap); min-width:0; max-width:100%; align-items:start; }
.dc-cftd__card--no-media { grid-template-columns:minmax(0,1fr) !important; }
.dc-cftd__thumb { width:100%; max-width:100%; min-width:0; aspect-ratio:1; overflow:hidden; border-radius:var(--dc-cftd-image-radius); }
.dc-cftd__thumb-custom { width:100%; height:100%; }
.dc-cftd__thumb-image { display:block; width:100%; height:100%; max-width:100%; object-fit:var(--dc-cftd-media-fit); object-position:var(--dc-cftd-thumb-position); border-radius:inherit; }
.dc-cftd__card-content { min-width:0; max-width:100%; display:flex; flex-direction:column; align-items:stretch; }
.dc-cftd__card-title { max-width:100%; min-width:0; overflow-wrap:anywhere; color:var(--dc-cftd-card-color); font:500 24px/1.35 Arial,Helvetica,sans-serif; margin:0 0 12px; }
.dc-cftd__card-copy { max-width:100%; min-width:0; overflow-wrap:anywhere; font:400 16px/1.75 Arial,Helvetica,sans-serif; margin:0 0 20px; }
.dc-cftd__card-copy p { margin:0 0 .5em; } .dc-cftd__card-copy p:last-child { margin-bottom:0; }
.dc-cftd .dc-cftd__card-link { font-size:14px; line-height:1.5; text-decoration:underline; text-underline-offset:3px;
  display:inline-flex; align-items:center; gap:8px; max-width:100%; min-width:0; overflow-wrap:anywhere; color:var(--dc-cftd-card-color); transition:color .2s ease; }
.dc-cftd .dc-cftd__card-link:not(.dc-cftd__card-link--unlinked):hover,
.dc-cftd .dc-cftd__card-link:not(.dc-cftd__card-link--unlinked):focus-visible,
.dc-cftd .dc-cftd__card-link:not(.dc-cftd__card-link--unlinked):active { color:var(--dc-cftd-card-hover); }
.dc-cftd .dc-cftd__card-link--unlinked { cursor:default; }
.dc-cftd--food { --dc-cftd-bg:#2E1E0F; --dc-cftd-fg:#F2E5D4; --dc-cftd-feature-gap:24px;
  --dc-cftd-main-ratio:177.8; --dc-cftd-button-bg:#E9DCCB; --dc-cftd-button-fg:#2E1E0F;
  --dc-cftd-secondary-fg:#F2E5D4; --dc-cftd-secondary-hover-fg:#B88B59; }
.dc-cftd--food .dc-cftd__feature { grid-template-columns:repeat(2,minmax(0,1fr)); }
.dc-cftd--food .dc-cftd__feature-media { margin-top:31px; }
.dc-cftd--food .dc-cftd__action--secondary,
.dc-cftd--food .dc-cftd__action--secondary:visited { padding-inline:0; min-height:40px; border-color:transparent; text-decoration:underline; text-underline-offset:3px; }
.dc-cftd--food .dc-cftd__action--secondary:hover { border-color:transparent; }

/* Closing CTA */
.dc-cftd--guide { --dc-cftd-bg:#2E1E0F; --dc-cftd-fg:#F2E5D4;
  --dc-cftd-pad-top:96px; --dc-cftd-pad-bottom:96px; --dc-cftd-guide-gap:100px;
  --dc-cftd-guide-actions-width:410px; --dc-cftd-button-bg:#E9DCCB; --dc-cftd-button-fg:#2E1E0F;
  --dc-cftd-secondary-fg:#F2E5D4; --dc-cftd-secondary-hover-fg:#B88B59;
  padding-block:var(--dc-cftd-pad-top) var(--dc-cftd-pad-bottom); }
.dc-cftd__guide-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,var(--dc-cftd-guide-actions-width)); gap:var(--dc-cftd-guide-gap); align-items:start; }
.dc-cftd--guide .dc-cftd__heading { font-size:49px; line-height:1.10; white-space:normal; margin-bottom:26px; }
.dc-cftd--guide .dc-cftd__copy { max-width:760px; }
.dc-cftd--guide .dc-cftd__actions { margin-top:0; display:flex; flex-direction:column; align-items:flex-start; gap:26px; }
.dc-cftd--guide .dc-cftd__action--secondary,
.dc-cftd--guide .dc-cftd__action--secondary:visited { padding:0; min-height:20px; border-color:transparent; text-decoration:underline; text-underline-offset:3px; }
.dc-cftd--guide .dc-cftd__action--secondary:hover { border-color:transparent; }

/* Elementor Kit/global element selectors must never change section typography or image coverage. */
.dc-cftd .dc-cftd__heading { color:var(--dc-cftd-fg); font-family:Georgia,'Times New Roman',serif; }
.dc-cftd .dc-cftd__card-title { color:var(--dc-cftd-card-color); }
.dc-cftd .dc-cftd__copy, .dc-cftd .dc-cftd__card-copy { color:var(--dc-cftd-fg); }
.dc-cftd img.dc-cftd__main-image { display:block; width:100%; max-width:100%; height:100%; object-fit:var(--dc-cftd-media-fit); object-position:var(--dc-cftd-media-position); }
.dc-cftd img.dc-cftd__thumb-image { display:block; width:100%; max-width:100%; height:100%; object-fit:var(--dc-cftd-media-fit); object-position:var(--dc-cftd-thumb-position); }

/* Accessible motion: first-paint styling, no invisible content barriers or JS requirement. */
@media (prefers-reduced-motion:no-preference) {
  .dc-cftd[data-dc-cftd-motion="on"] .dc-cftd__reveal { animation:dc-cftd-enter .56s ease-out both; }
  .dc-cftd[data-dc-cftd-motion="on"] .dc-cftd__card:nth-child(2) { animation-delay:.08s; }
}
@keyframes dc-cftd-enter { from {opacity:.78;transform:translateY(9px)} to {opacity:1;transform:none} }
@media (prefers-reduced-motion:reduce) {
  .dc-cftd *, .dc-cftd *::before, .dc-cftd *::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; }
}

/* Laptop — adapt geometry without shrinking the whole desktop section. */
@media (max-width:1365px) {
  .dc-cftd { --dc-cftd-edge:60px; }
  .dc-cftd--drinks { --dc-cftd-feature-gap:65px; }
  .dc-cftd--category .dc-cftd__heading { font-size:clamp(36px,3.7vw,49px); }
}
@media (max-width:1100px) {
  .dc-cftd { --dc-cftd-edge:42px; --dc-cftd-thumb-size:132px; --dc-cftd-card-gap:18px; }
  .dc-cftd--drinks { --dc-cftd-feature-gap:36px; }
  .dc-cftd__feature { min-height:0; }
  .dc-cftd--intro .dc-cftd__heading { font-size:clamp(44px,5.3vw,64px); }
  .dc-cftd__card-title { font-size:21px; }
  .dc-cftd__guide-grid { gap:52px; grid-template-columns:minmax(0,1fr) minmax(0,240px); }
}
/* Tablet — change structure rather than retaining desktop grids. */
@media (max-width:900px) {
  .dc-cftd { --dc-cftd-edge:32px; --dc-cftd-pad-top:60px; --dc-cftd-pad-bottom:60px; }
  .dc-cftd__feature, .dc-cftd--food .dc-cftd__feature { display:flex; flex-direction:column; gap:28px; padding-bottom:36px; }
  .dc-cftd--drinks .dc-cftd__feature-media, .dc-cftd--food .dc-cftd__feature-media { margin-top:0; width:100%; }
  .dc-cftd__feature-media { order:2; }
  .dc-cftd__feature-text { order:1; }
  .dc-cftd--food .dc-cftd__feature-media { order:1; }
  .dc-cftd--food .dc-cftd__feature-text { order:2; }
  .dc-cftd__cards { grid-template-columns:minmax(0,1fr); row-gap:30px; }
  .dc-cftd__card { grid-template-columns:minmax(0,160px) minmax(0,1fr); }
  .dc-cftd__guide-grid { grid-template-columns:1fr; gap:30px; }
  .dc-cftd--guide .dc-cftd__actions { flex-direction:row; align-items:center; }
}
@media (max-width:600px) {
  .dc-cftd { --dc-cftd-edge:22px; --dc-cftd-pad-top:48px; --dc-cftd-pad-bottom:48px;
    --dc-cftd-heading-gap:22px; --dc-cftd-button-gap:12px; --dc-cftd-nav-gap:9px; --dc-cftd-nav-space:36px; }
  .dc-cftd__breadcrumb { gap:18px; margin-bottom:30px; }
  .dc-cftd--intro .dc-cftd__heading { font-size:clamp(34px,8.4vw,48px); line-height:1.2; margin-bottom:25px; }
  .dc-cftd__heading br { display:none; }
  .dc-cftd--category .dc-cftd__heading, .dc-cftd--guide .dc-cftd__heading { font-size:clamp(30px,7.1vw,39px); line-height:1.23; }
  .dc-cftd__eyebrow { margin-bottom:20px; }
  .dc-cftd__copy { font-size:15px; }
  .dc-cftd .dc-cftd__nav-item { min-height:48px; font-size:12px; padding:4px 2px 14px; }
  .dc-cftd__card { grid-template-columns:minmax(0,120px) minmax(0,1fr); gap:15px; }
  .dc-cftd__card-title { font-size:19px; margin-bottom:9px; }
  .dc-cftd__card-copy { font-size:14px; line-height:1.55; margin-bottom:14px; }
  .dc-cftd__cards { row-gap:23px; }
  .dc-cftd__feature-media { aspect-ratio:var(--dc-cftd-main-ratio) / 100; }
  .dc-cftd__action { min-height:48px; }
  .dc-cftd--guide { --dc-cftd-pad-top:64px; --dc-cftd-pad-bottom:64px; }
}
@media (max-width:390px) {
  .dc-cftd { --dc-cftd-edge:18px; }
  .dc-cftd__card { grid-template-columns:minmax(0,96px) minmax(0,1fr); gap:12px; }
  .dc-cftd__card-title { font-size:18px; }
  .dc-cftd__action--primary { padding-inline:16px; }
  .dc-cftd--category .dc-cftd__actions { gap:10px; }
}
@media (max-width:340px) {
  .dc-cftd { --dc-cftd-edge:14px; }
  .dc-cftd__feature-text .dc-cftd__actions { display:flex; align-items:stretch; flex-direction:column; }
  .dc-cftd__feature-text .dc-cftd__actions .dc-cftd__action { width:100%; }
  .dc-cftd__card { grid-template-columns:minmax(0,85px) minmax(0,1fr); }
}
