/* Campanha vigente: a oferta entra na experiência sem mudar a identidade. */
.opening-offer-strip{background:#123f37;color:#fff;border-bottom:1px solid #ffffff1a}
.opening-offer-strip>.wrap{min-height:43px;display:flex;align-items:center;justify-content:center;gap:23px;padding-top:8px;padding-bottom:8px;font-size:12px;line-height:1.5}
.opening-offer-strip strong{font-size:14px;color:#d0ead3}
.opening-offer-strip button{color:#fff;font-size:12px;padding:2px 0 2px 23px;border-left:1px solid #ffffff40;display:flex;gap:12px;align-items:center;min-height:28px}
.opening-offer-strip button>span{font-size:19px;line-height:1}
.opening-offer-strip button:hover{text-decoration:underline;text-underline-offset:4px}
body.promotion-open{overflow:hidden}
.promotion-dialog{border:0;padding:0;background:#f6f5ef;color:var(--ink);width:min(940px,calc(100vw - 40px));max-width:none;max-height:calc(100svh - 40px);overflow:auto;box-shadow:0 30px 100px #00170f66;margin:auto}
.promotion-dialog::backdrop{background:#071c16c7;backdrop-filter:blur(5px)}
.promotion-dialog[open]{animation:promotion-arrive .3s ease-out}
.promotion-layout{display:grid;grid-template-columns:.85fr 1fr;min-height:590px}
.promotion-photo{position:relative;isolation:isolate;overflow:hidden;background:#d4d9c9;min-height:100%}
.promotion-photo>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:43% center;z-index:-2}
.promotion-photo::after{content:"";position:absolute;inset:45% 0 0;background:linear-gradient(transparent,#0c241cba);z-index:-1}
.promotion-logo{position:absolute;top:27px;left:27px;background:transparent;padding:0}
.promotion-logo img{width:112px;height:auto;object-fit:contain}
.promotion-photo>p{position:absolute;left:30px;right:22px;bottom:32px;font:47px/1 var(--serif);color:#fff;letter-spacing:-.02em}
.promotion-content{padding:38px 43px 28px;min-width:0}
.promotion-content>.promotion-label{font-size:11px;font-weight:700;color:var(--green);margin-bottom:16px;padding-right:26px;display:flex;gap:9px;align-items:center}
.promotion-label::before{content:"";width:19px;height:2px;background:var(--green);flex:none}
.promotion-content h2{font-size:48px;line-height:1;white-space:pre-line;letter-spacing:-.035em}
.promotion-benefit{display:flex;align-items:flex-end;gap:17px;color:var(--green);margin:19px 0 17px}
.promotion-benefit strong{display:flex;align-items:flex-start;font:700 108px/.83 var(--sans);letter-spacing:-.07em}
.promotion-benefit strong small{font:400 48px/1 var(--serif);margin-top:3px;margin-left:6px;letter-spacing:-.03em}
.promotion-benefit>span{font-size:13px;line-height:1.4;max-width:70px;margin-bottom:7px}
.promotion-content>#promotion-description{font-size:14px;line-height:1.7;color:#57665b;max-width:360px;margin-bottom:22px}
.promotion-content .button-convert{width:100%;font-size:14px;min-height:62px;padding-left:20px;gap:15px}
.promotion-contact{font-size:10px;line-height:1.6;color:#58705f;margin-top:10px}
.promotion-content>#promotion-terms{font-size:11px;line-height:1.65;color:#6b746b;margin-top:17px;padding-top:15px;border-top:1px solid #d8dfd2}
.promotion-dismiss{font-size:11px;line-height:1.5;color:#58645b;text-decoration:underline;text-underline-offset:4px;padding:10px 0;margin-top:5px;min-height:36px}
.promotion-dismiss:hover{color:var(--green)}
.promotion-close{position:absolute;z-index:2;top:11px;right:11px;display:grid;place-items:center;width:39px;height:39px;background:#fff;border:1px solid #d8dfd3;color:#234e3d;font:28px/1 var(--sans)}
.promotion-close:hover{background:#e8efe2}
.promotion-close:focus-visible{outline-offset:2px}
@keyframes promotion-arrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

/* O mesmo benefício também aparece como primeiro banner do carrossel. */
.campaign.has-discount{background:#123f37;min-height:550px}
.campaign.has-discount>img{left:51%;width:49%;object-position:center}
.campaign.has-discount .campaign-shade{background:linear-gradient(90deg,#123f37 0%,#123f37 43%,#123f3780 62%,#123f3710 100%)}
.campaign.has-discount .campaign-copy{max-width:none;padding-right:48%;padding-top:48px}
.campaign.has-discount .campaign-copy h3{font-size:60px}
.campaign-discount{position:absolute;right:43px;top:40px;display:flex;flex-direction:column;align-items:flex-start;gap:11px;padding:25px 29px;background:#f3f5e9;color:var(--green);border-top:3px solid #b3d5b9;box-shadow:0 10px 25px #052f2424}
.campaign-discount>strong{display:flex;align-items:flex-start;font:700 88px/.9 var(--sans);letter-spacing:-.07em}
.campaign-discount>strong small{font:400 38px/1 var(--serif);margin:2px 0 0 4px;color:var(--green)}
.campaign-discount>span{font-size:13px;line-height:1.3}
.campaign.has-discount .campaign-copy>small{max-width:430px}

/* Propostas de composição: cada ocasião tem um pedido de reserva específico. */
.package-process{display:flex;flex-direction:column;gap:11px;border-top:1px solid var(--line);margin-top:28px;padding-top:20px;counter-reset:package-step}
.package-process>span{display:flex;align-items:center;gap:12px;font-size:12px;color:#58665a}
.package-process>span::before{counter-increment:package-step;content:"0" counter(package-step);font:18px/1 var(--serif);color:var(--green)}
.package-panel>p.package-audience{margin:0 0 13px;font-size:11px;line-height:1.5;color:var(--green);font-weight:700;padding-right:56px}
.package-panel>span{top:22px}
.package-composition{border-top:1px solid #d5ddce;margin-top:22px;padding-top:19px}
.package-composition h4{font-size:12px;color:#314d3b;line-height:1.5;font-weight:700}
.package-composition ul{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:10px}
.package-composition li{font-size:13px;line-height:1.55;color:#566451;padding-left:15px;position:relative}
.package-composition li::before{content:"";position:absolute;left:0;top:8px;width:4px;height:4px;background:var(--green)}
.package-panel>p.package-quote{font-size:11px;line-height:1.65;margin:19px 0 23px;color:#697461;max-width:420px}

@media(max-width:980px){
  .promotion-dialog{width:min(840px,calc(100vw - 36px))}
  .promotion-layout{grid-template-columns:.8fr 1fr}
  .promotion-content{padding:38px 31px 24px}
  .promotion-content h2{font-size:44px}
  .promotion-photo>p{font-size:41px;left:25px}
  .promotion-logo{left:23px;top:24px;padding:0}
  .promotion-logo img{width:100px}
  .campaign.has-discount .campaign-copy{padding-left:34px;padding-right:42%;padding-top:44px}
  .campaign.has-discount .campaign-copy h3{font-size:49px}
  .campaign-discount{right:26px;top:40px;padding:22px}
  .campaign-discount>strong{font-size:72px}
  .campaign-discount>strong small{font-size:32px}
  .campaign-discount>span{font-size:12px}
}
@media(max-width:680px){
  .opening-offer-strip>.wrap{display:grid;grid-template-columns:1fr auto;gap:0 14px;min-height:57px;padding:8px 20px}
  .opening-offer-strip #opening-offer-label{font-size:10px;grid-column:1;line-height:1.4}
  .opening-offer-strip strong{grid-column:1;font-size:13px}
  .opening-offer-strip button{grid-column:2;grid-row:1/3;font-size:11px;min-height:36px;padding-left:15px;gap:9px}
  .promotion-dialog{width:calc(100vw - 24px);max-width:430px;max-height:calc(100svh - 24px)}
  .promotion-layout{display:block;min-height:0}
  .promotion-photo{height:140px;min-height:0}
  .promotion-photo>img{object-position:center 52%}
  .promotion-photo::after{inset:0;background:linear-gradient(90deg,#0a231d18,#0a231d8c)}
  .promotion-logo{top:20px;left:20px;padding:0}
  .promotion-logo img{width:94px}
  .promotion-photo>p{left:auto;right:22px;bottom:19px;font-size:29px;text-align:right}
  .promotion-content{padding:24px 25px 19px}
  .promotion-content>.promotion-label{font-size:10px;margin-bottom:12px;padding-right:0}
  .promotion-content h2{font-size:38px;white-space:normal;max-width:310px}
  .promotion-benefit{margin:18px 0 15px;gap:18px}
  .promotion-benefit strong{font-size:91px}
  .promotion-benefit strong small{font-size:42px}
  .promotion-benefit>span{font-size:13px;max-width:none;margin-bottom:5px}
  .promotion-content>#promotion-description{font-size:13px;line-height:1.6;margin-bottom:18px;max-width:none}
  .promotion-content .button-convert{font-size:13px;min-height:58px;padding-left:18px;gap:13px}
  .promotion-content .button-convert .cta-arrow{width:32px;height:32px;flex-basis:32px;font-size:23px}
  .promotion-contact{font-size:10px;margin-top:9px}
  .promotion-content>#promotion-terms{font-size:10px;line-height:1.6;margin-top:13px;padding-top:12px}
  .promotion-dismiss{font-size:11px;margin-top:3px;min-height:37px}
  .promotion-close{top:8px;right:8px;width:36px;height:36px;font-size:26px}
  .campaign.has-discount{min-height:0}
  .campaign.has-discount>img{left:0;width:100%;object-position:62% center}
  .campaign.has-discount .campaign-shade{background:linear-gradient(90deg,#0b342be8,#0b342b9c),linear-gradient(0deg,#0b342bdd,transparent 65%)}
  .campaign.has-discount .campaign-copy{padding:34px 25px 98px}
  .campaign.has-discount .campaign-copy h3{font-size:45px;max-width:340px}
  .campaign.has-discount .campaign-copy>p:first-child{margin-bottom:20px}
  .campaign-discount{position:static;display:flex;flex-direction:row;align-items:flex-end;gap:15px;background:none;color:#d0ead3;padding:0;border:0;box-shadow:none;margin:0 0 24px}
  .campaign-discount>strong{font-size:91px}
  .campaign-discount>strong small{color:#d0ead3;font-size:39px;margin-top:3px}
  .campaign-discount>span{font-size:13px;margin-bottom:5px}
  .campaign.has-discount .campaign-copy>p:not(:first-child){font-size:14px;margin:21px 0 24px}
  .campaign.has-discount .campaign-copy>small{font-size:11px;max-width:320px}
  .package-process{gap:9px;margin-top:23px;padding-top:17px}
  .package-process>span{font-size:12px}
  .package-composition li{font-size:12px}
}
@media(max-width:360px){
  .promotion-photo{height:118px}
  .promotion-content{padding:22px 20px 16px}
  .promotion-content h2{font-size:34px}
  .promotion-photo>p{font-size:25px;right:18px;bottom:16px}
  .promotion-logo{left:17px;top:18px;padding:0}.promotion-logo img{width:82px}
  .promotion-benefit strong{font-size:83px}
  .promotion-benefit>span{font-size:12px}
  .promotion-content .button-convert{font-size:12px;padding-left:15px}
  .opening-offer-strip>.wrap{padding-left:16px;padding-right:16px;column-gap:10px}
  .opening-offer-strip button{padding-left:12px;font-size:10px}
}
@media(prefers-reduced-motion:reduce){.promotion-dialog[open]{animation:none}}
