/* A Casa do Emanuel, prototype styles. Palette: river blue, mist, roof-tile accent. */
:root {
  --ce-ink: #13262d;
  --ce-river: #0f3542;
  --ce-river-2: #164656;
  --ce-mist: #e6eef0;
  --ce-mist-2: #d5e2e5;
  --ce-tile: #c9562f;
  --ce-tile-dark: #8f3818;
  --ce-tile-btn: #b84a26; /* 5.19:1 with white (tile #c9562f is 4.32:1, fails AA for button text) */
  --ce-paper: #fbfcfc;
  --ce-muted: #4d6168;
  --ce-r: 10px;
  --ce-head: 'Bricolage Grotesque', system-ui, sans-serif;
  --ce-body: 'Manrope', system-ui, sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-tap-highlight-color: rgba(201, 86, 47, .2); }
[id] { scroll-margin-top: 84px; }
a, button, input, select, label, summary { touch-action: manipulation; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } * { transition: none !important; } }
body { margin: 0; font: 400 1rem/1.6 var(--ce-body); color: var(--ce-ink); background: var(--ce-mist); }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }
h1, h2, h3 { font-family: var(--ce-head); font-weight: 600; line-height: 1.15; letter-spacing: -0.01em; margin: 0 0 .6em; text-wrap: balance; }
h1 { font-size: clamp(2rem, 4.2vw, 3.2rem); }
h2 { font-size: clamp(1.5rem, 2.6vw, 2.1rem); }
h3 { font-size: 1.2rem; }
p { margin: 0 0 1em; }
.ce-wrap { width: min(1180px, 100% - 2.5rem); margin-inline: auto; }
.ce-skip { position: absolute; left: -999px; top: 0; background: #fff; padding: .6rem 1rem; z-index: 30; }
.ce-skip:focus { left: 1rem; }
:focus-visible { outline: 3px solid var(--ce-tile); outline-offset: 2px; }

/* buttons & links */
.ce-btn { display: inline-flex; align-items: center; justify-content: center; gap: .4rem; min-height: 46px; padding: .7rem 1.3rem; border: 0; border-radius: var(--ce-r); background: var(--ce-tile-btn); color: #fff; font: 600 1rem/1 var(--ce-body); text-decoration: none; white-space: nowrap; cursor: pointer; transition: background-color .2s, transform .1s; }
.ce-btn:hover { background: var(--ce-tile-dark); }
.ce-btn:active { transform: translateY(1px); }
.ce-btn--sm { min-height: 44px; padding: .55rem 1rem; font-size: .95rem; }
.ce-link { font-weight: 600; color: var(--ce-river); text-underline-offset: 3px; }
.ce-room__links .ce-link, .ce-actions .ce-link { display: inline-flex; align-items: center; min-height: 44px; white-space: nowrap; }
.ce-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1.2rem; }
.ce-confirm .ce-actions .ce-btn { margin: 0; }
.ce-link--light { color: #fff; }
.ce-tag { display: inline-block; vertical-align: middle; margin-left: .35rem; padding: .15rem .5rem; border-radius: 6px; background: #f6dfd5; color: #7a2e12; font: 600 .72rem/1.4 var(--ce-body); white-space: nowrap; }
.ce-fine { font-size: .875rem; color: var(--ce-muted); }

/* header */
.ce-header { position: sticky; top: 0; z-index: 20; background: var(--ce-river); color: #fff; }
.ce-header__row { display: flex; align-items: center; justify-content: space-between; min-height: 68px; gap: 1rem; }
.ce-logo { display: inline-flex; align-items: center; min-height: 44px; gap: .6rem; font: 600 1.15rem/1 var(--ce-head); text-decoration: none; }
.ce-logo__mark { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 8px; background: var(--ce-tile); font-size: 1.05rem; }
.ce-nav { display: flex; align-items: center; gap: 1.4rem; }
.ce-nav a:not(.ce-btn) { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; min-width: 44px; text-decoration: none; font-weight: 500; opacity: .88; padding: 0; border-bottom: 2px solid transparent; }
.ce-nav a:not(.ce-btn):hover, .ce-nav a[aria-current] { opacity: 1; border-color: var(--ce-tile); }
.ce-menu { display: none; position: relative; }
.ce-menu summary { list-style: none; cursor: pointer; padding: .55rem .9rem; border: 1px solid rgba(255,255,255,.4); border-radius: var(--ce-r); font-weight: 600; }
.ce-menu summary::-webkit-details-marker { display: none; }
.ce-menu__panel { position: absolute; right: 0; top: calc(100% + .5rem); width: min(80vw, 280px); display: grid; gap: .2rem; padding: .8rem; border-radius: var(--ce-r); background: var(--ce-river-2); box-shadow: 0 16px 40px rgba(6, 30, 38, .35); }
.ce-menu__panel a:not(.ce-btn) { padding: .7rem .6rem; text-decoration: none; border-radius: 6px; }
.ce-menu__panel a:not(.ce-btn):hover { background: rgba(255,255,255,.08); }
.ce-menu__panel .ce-btn { margin-top: .4rem; }
.ce-header__mobile { display: none; align-items: center; gap: .6rem; }
.ce-lang { display: inline-grid; place-items: center; min-width: 44px; min-height: 44px; padding: 0 .6rem; border: 1px solid rgba(255,255,255,.4); border-radius: var(--ce-r); font-weight: 600; font-size: .9rem; text-decoration: none; letter-spacing: .02em; }
.ce-nav a.ce-lang { opacity: 1; border-bottom: 1px solid rgba(255,255,255,.4); padding: 0 .6rem; }
.ce-lang:hover, .ce-nav a.ce-lang:hover { background: rgba(255,255,255,.1); border-color: #fff; }
.ce-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
@media (max-width: 900px) { .ce-nav { display: none; } .ce-menu { display: block; } .ce-header__mobile { display: flex; } }

/* hero */
.ce-hero { position: relative; color: #fff; background: var(--ce-river); overflow: hidden; }
.ce-hero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 78%; }
.ce-hero::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(10, 40, 50, .9) 0%, rgba(10, 40, 50, .72) 42%, rgba(10, 40, 50, .25) 75%); }
.ce-hero__inner { position: relative; z-index: 1; display: grid; gap: 2rem; padding-block: clamp(3.5rem, 9vh, 6rem) clamp(2.5rem, 6vh, 4rem); min-height: min(640px, calc(100dvh - 68px)); align-content: end; }
.ce-hero__copy { max-width: 36rem; }
.ce-hero__copy p { font-size: 1.15rem; max-width: 32rem; opacity: .95; }
.ce-search { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) auto; gap: .8rem; align-items: end; max-width: 860px; padding: 1rem; border-radius: var(--ce-r); background: rgba(9, 34, 42, .82); border: 1px solid rgba(255,255,255,.18); backdrop-filter: blur(6px); }
.ce-search label { color: #fff; }
@media (max-width: 760px) { .ce-search { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } .ce-search .ce-field:nth-child(3) { grid-column: 1 / -1; } .ce-search .ce-btn { grid-column: 1 / -1; } }

/* fields */
.ce-field { display: grid; gap: .35rem; min-width: 0; }
.ce-field label { font-weight: 600; font-size: .9rem; }
.ce-field input, .ce-field select, .ce-field textarea { color-scheme: light; width: 100%; min-height: 46px; padding: .6rem .75rem; border: 1px solid #9fb2b8; border-radius: var(--ce-r); background: #fff; color: var(--ce-ink); font: 400 1rem var(--ce-body); }
.ce-field small { font-weight: 400; color: var(--ce-muted); }

/* placeholder note */
.ce-note { background: #f6dfd5; color: #5c230e; }
.ce-note p { margin: 0; padding: .9rem 0; font-size: .95rem; }

/* band (dark river) */
.ce-band { background: var(--ce-river); color: #fff; padding: clamp(2.5rem, 6vw, 4rem) 0 1.5rem; }
.ce-band__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 2rem; align-items: start; }
.ce-band__fine { font-size: .85rem; opacity: .75; }
.ce-near { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.2rem 1.6rem; }
.ce-near li { display: grid; gap: .1rem; padding-top: .7rem; border-top: 1px solid rgba(255,255,255,.22); }
.ce-near__km { font: 600 1.45rem/1.2 var(--ce-head); color: #f3a587; font-variant-numeric: tabular-nums; }
@media (max-width: 860px) { .ce-band__grid { grid-template-columns: 1fr; } .ce-near { grid-template-columns: 1fr 1fr; } }

/* soft sections */
.ce-soft { background: var(--ce-mist); padding: clamp(2.5rem, 6vw, 4.5rem) 0; }
.ce-soft--tight { padding-top: 2rem; }
.ce-lead { font-size: 1.1rem; color: var(--ce-muted); max-width: 46rem; }
.ce-rooms { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; margin-top: 1.5rem; }
.ce-room { display: grid; grid-template-rows: auto 1fr; border-radius: var(--ce-r); overflow: hidden; background: var(--ce-paper); box-shadow: 0 10px 30px rgba(15, 53, 66, .08); }
.ce-room__body { padding: 1.3rem 1.4rem 1.5rem; display: flex; flex-direction: column; }
.ce-room__body p { color: var(--ce-muted); margin-bottom: .5rem; }
.ce-room__links { margin-top: auto !important; display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; }
.ce-price { font-weight: 600; color: var(--ce-river) !important; }
.ce-roomph { display: grid; place-content: center; text-align: center; gap: .2rem; aspect-ratio: 16 / 9; background: repeating-linear-gradient(135deg, var(--ce-river-2) 0 14px, var(--ce-river) 14px 28px); color: #fff; }
.ce-roomph span { font: 600 1.15rem var(--ce-head); }
.ce-roomph small { opacity: .8; }
.ce-roomph--big { aspect-ratio: 4 / 3; border-radius: var(--ce-r); }
@media (max-width: 760px) { .ce-rooms { grid-template-columns: 1fr; } }

/* split with photo */
.ce-split { display: grid; grid-template-columns: 1fr 1fr; background: var(--ce-river-2); color: #fff; }
.ce-split img { width: 100%; height: 100%; object-fit: cover; min-height: 340px; }
.ce-split__text { padding: clamp(2rem, 5vw, 4rem); align-self: center; max-width: 36rem; }
.ce-split .ce-tag { background: rgba(255,255,255,.16); color: #fff; }
@media (max-width: 760px) { .ce-split { grid-template-columns: 1fr; } .ce-split img { min-height: 240px; aspect-ratio: 4 / 3; } }

/* dark band */
.ce-dark { background: #0b2830; color: #fff; padding: clamp(2.5rem, 6vw, 4rem) 0; }
.ce-dark__grid { display: grid; grid-template-columns: 1.3fr 1.3fr auto; gap: 2rem; align-items: center; }
.ce-dark a:not(.ce-btn) { color: #f3a587; }
.ce-dark .ce-tag { background: rgba(255,255,255,.16); color: #fff; }
.ce-checks { list-style: none; margin: 0; padding: 0; display: grid; gap: .6rem; }
.ce-checks li { padding-left: 1.4rem; position: relative; }
.ce-checks li::before { content: ''; position: absolute; left: 0; top: .55em; width: .6rem; height: .6rem; border-radius: 2px; background: var(--ce-tile); }
@media (max-width: 860px) { .ce-dark__grid { grid-template-columns: 1fr; } }

/* page head */
.ce-pagehead { background: var(--ce-river); color: #fff; padding: clamp(2.2rem, 5vw, 3.5rem) 0 clamp(1.8rem, 4vw, 2.6rem); }
.ce-pagehead p { font-size: 1.1rem; opacity: .9; margin: 0; }

/* quartos page */
.ce-stack { display: grid; gap: 2.5rem; }
.ce-roomrow { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 2rem; align-items: start; padding: 1.4rem; border-radius: var(--ce-r); background: var(--ce-paper); }
.ce-meta { font-weight: 600; color: var(--ce-river); }
.ce-pills { list-style: none; padding: 0; margin: 0 0 1rem; display: flex; flex-wrap: wrap; gap: .5rem; }
.ce-pills li { padding: .35rem .8rem; border-radius: 999px; background: var(--ce-mist); font-size: .92rem; }
.ce-pills--dark li { background: rgba(255,255,255,.1); }
@media (max-width: 760px) { .ce-roomrow { grid-template-columns: minmax(0, 1fr); } }

/* booking */
.ce-book { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 2rem; align-items: start; }
.ce-book__cal, .ce-form { padding: 1.4rem; border-radius: var(--ce-r); background: var(--ce-paper); }
.ce-roompick { display: flex; flex-wrap: wrap; gap: .6rem; margin-bottom: 1rem; }
.ce-roompick label { display: inline-flex; align-items: center; gap: .45rem; padding: .55rem .9rem; border: 1px solid #9fb2b8; border-radius: var(--ce-r); cursor: pointer; font-weight: 600; }
.ce-roompick label:has(input:checked) { border-color: var(--ce-river); background: var(--ce-mist); }
.ce-roompick small { font-weight: 400; color: var(--ce-muted); }
.ce-cal { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1.4rem; min-height: 300px; }
.ce-cal__head { display: flex; justify-content: space-between; align-items: center; grid-column: 1 / -1; }
.ce-cal__head button { min-width: 44px; min-height: 44px; border: 1px solid #9fb2b8; border-radius: var(--ce-r); background: #fff; font-size: 1.1rem; cursor: pointer; }
.ce-cal__head button:disabled { opacity: .35; cursor: default; }
.ce-month__t { font-size: 1rem; font-weight: 600; margin-bottom: .5rem; }
.ce-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 3px; }
.ce-grid .ce-dow { font-size: .75rem; color: var(--ce-muted); text-align: center; padding-bottom: .2rem; }
.ce-day { aspect-ratio: 1; min-height: 44px; min-width: 0; padding: 0; border: 0; border-radius: 6px; background: var(--ce-mist); color: var(--ce-ink); font: 500 .9rem var(--ce-body); font-variant-numeric: tabular-nums; cursor: pointer; }
.ce-day:hover:not(:disabled) { background: var(--ce-mist-2); }
.ce-day:disabled { background: transparent; color: #9aa9ad; cursor: default; text-decoration: line-through; }
.ce-day.is-busy { background: #e9d0c6; text-decoration: line-through; }
.ce-day.is-range { background: #f3c3b0; }
.ce-day.is-edge { background: var(--ce-tile-btn); color: #fff; }
.ce-cal__legend > span { white-space: nowrap; }
.ce-cal__legend { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem 1rem; font-size: .85rem; color: var(--ce-muted); margin-top: 1rem; }
.ce-key { display: inline-block; width: 14px; height: 14px; border-radius: 4px; vertical-align: -2px; margin-right: .25rem; }
.ce-key--free { background: var(--ce-mist); border: 1px solid var(--ce-mist-2); }
.ce-key--busy { background: #e9d0c6; }
.ce-key--sel { background: var(--ce-tile-btn); }
.ce-form { display: grid; gap: .9rem; }
.ce-form h2 { margin: 0; font-size: 1.5rem; }
.ce-form__row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: .8rem; }
.ce-consent { display: flex; gap: .7rem; align-items: flex-start; min-height: 44px; padding: .3rem 0; font-size: .92rem; cursor: pointer; }
.ce-consent input { margin: .15rem 0 0; width: 22px; height: 22px; flex: none; accent-color: var(--ce-river); }
.ce-form__room { margin: -.4rem 0 0; font-weight: 600; color: var(--ce-river); }
.ce-err { margin: 0; color: #a3271a; font-size: .875rem; font-weight: 500; }
.ce-field [aria-invalid="true"] { border-color: #a3271a; box-shadow: 0 0 0 1px #a3271a; }
.ce-consent:has([aria-invalid="true"]) { color: #a3271a; }
.ce-form button:disabled { opacity: .6; cursor: progress; }
.ce-summary { margin: 0; padding: .7rem .9rem; border-radius: var(--ce-r); background: var(--ce-mist); font-weight: 500; }
@media (max-width: 960px) { .ce-book { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 440px) { .ce-form__row { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 560px) { .ce-cal { grid-template-columns: minmax(0, 1fr); } .ce-book__cal, .ce-form { padding: 1rem; } .ce-book__cal { padding-inline: .5rem; } .ce-day { aspect-ratio: auto; } .ce-grid { gap: 2px; } .ce-cal .ce-month + .ce-month { display: none; } }

/* location */
.ce-loc { display: grid; grid-template-columns: 1.4fr 1fr; gap: 2rem; align-items: start; }
.ce-map { border-radius: var(--ce-r); overflow: hidden; background: var(--ce-river); aspect-ratio: 4 / 3; }
.ce-map iframe { display: block; width: 100%; height: 100%; border: 0; }
.ce-loc h2 { font-size: 1.3rem; }
.ce-ways { display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: 1.2rem; }
.ce-ways figure { margin: 0; border-radius: var(--ce-r); overflow: hidden; background: var(--ce-river); color: #fff; }
.ce-ways img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; }
.ce-ways figcaption { padding: 1rem 1.1rem 1.2rem; font-size: .95rem; }
.ce-ways strong { display: block; font: 600 1.1rem var(--ce-head); margin-bottom: .2rem; }
@media (max-width: 860px) { .ce-loc, .ce-ways { grid-template-columns: 1fr; } }

/* rules, prose, confirm */
.ce-rules { display: grid; grid-template-columns: 1fr 1.6fr; gap: 2.5rem; }
.ce-rules__times { display: grid; gap: 1rem; align-content: start; padding: 1.6rem; border-radius: var(--ce-r); background: var(--ce-river); color: #fff; }
.ce-rules__times h2 { font-size: 1rem; margin: 0; opacity: .8; }
.ce-rules__times .ce-tag { margin: 0; background: rgba(255,255,255,.16); color: #fff; }
.ce-big { font: 600 2rem/1.1 var(--ce-head); margin: .2rem 0 0; font-variant-numeric: tabular-nums; }
.ce-list { padding-left: 1.2rem; margin: 0 0 1.6rem; }
.ce-list li { margin-bottom: .4rem; }
.ce-prose { max-width: 46rem; }
.ce-prose a { color: var(--ce-river); font-weight: 600; }
.ce-confirm { max-width: 40rem; font-size: 1.1rem; }
.ce-confirm .ce-btn { margin-right: 1rem; margin-bottom: .6rem; }
.ce-conf { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: .35rem 1.2rem; margin: 0 0 1.4rem; padding: 1rem 1.2rem; border-radius: var(--ce-r); background: var(--ce-paper); font-size: 1rem; }
.ce-conf dt { font-weight: 600; }
.ce-conf dd { margin: 0; overflow-wrap: anywhere; }
@media (max-width: 760px) { .ce-rules { grid-template-columns: 1fr; } }

/* footer */
.ce-footer { background: #081e25; color: #d6e3e6; padding: 3rem 0 2.5rem; font-size: .95rem; }
.ce-footer__grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr; gap: 2rem; }
.ce-footer p { margin: 0 0 .45rem; }
.ce-footer a { color: #fff; text-underline-offset: 3px; }
.ce-footer__name { font: 600 1.2rem var(--ce-head); color: #fff; }
.ce-footer__h { font-weight: 600; color: #fff; }
@media (max-width: 760px) { .ce-footer__grid { grid-template-columns: 1fr; } }
[hidden] { display: none !important; }
.ce-field input[type="date"] { min-width: 0; max-width: 100%; }
