/* Pousada Cavalo Marinho public design system — reference 7.1.3 */
:root{--background:#f7f4ed;--background-soft:#f3efe7;--surface:#fff;--forest:#19362a;--forest-deep:#0d2118;--text:#20342c;--text-muted:#536058;--sand:#e8dfd1;--accent:#a67b53;--border:#dedbd2;--type-display:Georgia,'Times New Roman',serif;--type-ui:Arial,Helvetica,sans-serif}
body{background:var(--background);color:var(--text);font-family:var(--type-ui)}
body h1,body h2,body h3,body h4{font-family:var(--type-display);font-weight:400;letter-spacing:-.035em}
body .container{width:min(1420px,calc(100% - 112px))}
body .eyebrow{color:var(--accent);font-family:var(--type-ui);font-size:12px;font-weight:600;letter-spacing:.23em;text-transform:uppercase}
body .button,body .availability-submit{border-radius:3px;background:var(--forest);color:#fff;font-family:var(--type-ui);font-weight:500;box-shadow:none}
body .button:hover,body .availability-submit:hover{background:var(--forest-deep);box-shadow:none}
body .button-cream{background:var(--background);color:var(--text)}
body .site-header{position:relative;height:80px;background:var(--background);box-shadow:none;color:var(--text)}
body .site-header .brand{padding:0;background:transparent}
body .site-header .brand img{width:160px;height:auto}
body .desktop-nav a,body .header-contact{color:var(--text);font-size:13px;font-weight:500}
body .site-header .header-book{border-radius:3px;background:var(--forest);color:#fff;text-transform:none}
body .site-header.is-scrolled{position:fixed;inset:0 0 auto;background:#f7f4edf4;box-shadow:0 1px 14px #10281b12;backdrop-filter:blur(12px)}
body .site-footer{background:var(--forest-deep);color:#dae4d8}
body .site-footer h4{color:#fff}
body .page-banner,body .reservation-banner,body .room-detail-heading{background:var(--background)}
body .page-banner h1,body .room-title-row h1{color:var(--text)}
body .form-section,body .detail-content,body .gallery-section{background:var(--background)}
body .reservation-form,body .reserve-card,body .form-aside{background:var(--surface);border-radius:2px}
body .field input,body .field select,body .field textarea{background:#fbfaf7;border-color:var(--border);color:var(--text)}
body :is(a,button,input,select,textarea):focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.public-availability-bar{display:grid;grid-template-columns:1fr 1fr .85fr auto;align-items:center;gap:0;min-height:64px;padding:7px 9px;background:var(--surface);border-radius:3px;box-shadow:0 10px 28px #0b1e1129;color:var(--text)}
.availability-field{display:flex;align-items:center;gap:11px;min-width:0;padding:4px 20px;border-right:1px solid #b6b7b0}
.availability-field>span:last-child{display:flex;flex-direction:column;min-width:0;gap:3px}
.availability-field strong{font-size:11px;font-weight:600}
.availability-icon{font-size:23px;line-height:1}
.availability-field input,.availability-field select{width:100%;min-width:0;max-width:165px;padding:0;border:0;background:transparent;color:#535b54;font:11px var(--type-ui)}
.availability-submit{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:47px;margin-left:12px;padding:0 19px;border:0;white-space:nowrap;font-size:12px;cursor:pointer}
.availability-submit span{font-size:19px}
body.public-home .home-search-section{width:min(920px,calc(100% - 112px))}
body.public-home .public-availability-bar{min-height:76px}
body.public-home .about-section{height:auto;min-height:430px}
body.public-home .about-photo{height:auto;min-height:430px}
body.public-home .rooms-section{padding:86px 0 95px}
body.public-home .home-room-photo{height:245px}
body.public-home .home-room-info{min-height:87px}
body.public-home .experiences-section{padding:85px 0}
body.public-home .experience-photos a{height:290px}
body.public-home .gallery-section{padding:85px 0 110px}
.accommodation-listing{padding:70px 0 105px;background:var(--background)}
.listing-heading{display:grid;grid-template-columns:1fr 1fr auto;align-items:end;gap:55px;margin:0 0 27px;padding:0 45px}
.listing-heading h1{margin:10px 0 0;font-size:clamp(44px,4.4vw,67px);line-height:.99;color:var(--text)}
.listing-heading>p{max-width:355px;margin:0 0 12px;font-size:16px;line-height:1.4;color:var(--text)}
.building-tabs{display:flex;align-items:center;gap:25px;align-self:end;padding-bottom:24px;white-space:nowrap}
.building-tabs a{padding:0 5px 13px;border-bottom:1px solid var(--border);font-size:15px;color:#8b918c}
.building-tabs a.is-active,.building-tabs a:hover{border-color:var(--forest);color:var(--text)}
.building-group{scroll-margin-top:95px;margin-bottom:64px}
.building-intro{margin:38px 0 17px}
.building-intro .eyebrow{font-size:11px}
.building-intro p{max-width:650px;margin:8px 0 0;color:var(--text-muted);font-size:13px}
.building-group:first-of-type .building-intro{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.accommodation-listing .rooms-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
.editorial-room-card{min-width:0;overflow:hidden;border-radius:2px;background:var(--surface);box-shadow:none;transition:none}
.editorial-room-card:hover{transform:none;box-shadow:none}
.editorial-room-card .room-card-image{height:250px}
.editorial-room-card .room-card-body{display:flex;flex-direction:row;justify-content:space-between;align-items:center;gap:12px;min-height:78px;padding:12px 22px}
.editorial-room-card h3{margin:0 0 8px;font-size:23px;line-height:1.05;color:var(--text)}
.room-card-facts{display:flex;flex-wrap:wrap;gap:9px 19px;color:#303b34;font-size:11px}
.editorial-room-card .room-arrow{display:grid;place-items:center;flex:none;width:39px;height:39px;border:1px solid var(--accent);border-radius:50%;color:var(--text);font-size:20px;font-weight:400;text-decoration:none}
.accommodation-listing .search-summary{background:var(--background-soft);border-radius:2px}
.accommodation-listing .search-summary a{color:var(--forest)}
.accommodation-listing .listing-note{margin:0;color:var(--text-muted)}
.room-story{position:relative;min-height:calc(100vh - 80px);background:var(--forest-deep);color:#fff;overflow:hidden}
.room-story-photo{position:absolute;inset:0 34% 0 0;background-image:var(--room-photo);background-position:center;background-size:cover}
.room-story-shade{position:absolute;inset:0;background:linear-gradient(90deg,#07180b05 0%,#07180b0d 43%,#0a1d10d9 63%,#0c2017 100%)}
.room-story-inner{position:relative;display:grid;grid-template-columns:64% 36%;min-height:calc(100vh - 80px);padding-bottom:78px}
.room-story-gallery{position:relative;display:flex;flex-direction:column;justify-content:space-between;min-width:0;padding:28px 30px 0 max(60px,calc((100vw - 1420px)/2))}
.back-to-rooms{width:max-content;font-size:13px;color:#fff;text-shadow:0 1px 6px #000}
.room-story-gallery-bottom{display:flex;align-items:flex-end;justify-content:space-between;gap:22px}
.room-gallery-count{padding-bottom:12px;font-size:13px;white-space:nowrap}
.room-gallery-thumbs{display:flex;align-items:end;gap:10px;overflow:hidden}
.room-gallery-thumbs button:not([hidden]){display:block;flex:none;width:100px;height:76px;padding:0;border:1px solid #ffffff8a;border-radius:3px;background:transparent;color:#fff;overflow:hidden}
.room-gallery-thumbs button:first-child{border:2px solid #fff}
.room-gallery-thumbs button img{width:100%;height:100%;object-fit:cover}
.room-gallery-thumbs .all-room-photos{width:auto!important;min-width:164px;height:44px!important;padding:0 13px!important;border-radius:24px!important;background:#06180dbb!important;font-size:12px;white-space:nowrap}
.room-story-copy{padding:35px max(55px,calc((100vw - 1420px)/2)) 35px 32px;background:#0b2017a0}
.room-story-copy .eyebrow{color:#c7ad84;font-size:11px}
.room-story-copy h1{margin:9px 0;font-size:clamp(42px,3.6vw,58px);line-height:1}
.room-tagline{margin:0 0 17px;font-size:17px;line-height:1.4}
.story-facts{display:flex;flex-wrap:wrap;gap:13px 22px;padding-bottom:15px;font-size:13px}
.story-description{margin:0;padding:5px 0 18px;border-bottom:1px solid #ffffff57;font-size:13px;line-height:1.5}
.story-amenities{display:grid;grid-template-columns:1fr 1fr;gap:12px 15px;padding:18px 0;color:#f5f5f1;font-size:13px}
.room-story-copy .image-category-note{margin:12px 0 0;color:#d6dfd4;font-size:11px;line-height:1.5}
.room-story-booking{position:absolute;z-index:2;right:max(55px,calc((100vw - 1420px)/2));bottom:28px;width:min(650px,calc(100% - 112px))}
.room-story-booking .public-availability-bar{grid-template-columns:1fr 1fr .8fr auto}
.room-story-booking .availability-field{padding-inline:12px}
.room-story-booking .availability-submit{padding-inline:13px}
@media(max-width:1150px){.listing-heading{grid-template-columns:1fr 1fr;gap:24px;padding:0}.building-tabs{grid-column:1/-1;padding-bottom:0}.room-card-facts{gap:7px}.room-story-inner{grid-template-columns:58% 42%}.room-story-photo{right:42%}.room-story-copy{padding-right:30px}.room-story-booking{right:30px}.room-gallery-thumbs button:not([hidden]){width:76px;height:60px}.room-gallery-thumbs .all-room-photos{min-width:140px}}
@media(max-width:800px){body .container{width:calc(100% - 40px)}body .site-header .brand img{width:125px}body .site-header .header-actions>.header-book{display:inline-flex!important;min-height:38px;padding:8px 11px;font-size:11px}body .site-header .menu-toggle{display:grid;place-items:center;width:39px;height:39px;border:1px solid var(--accent);border-radius:50%;color:var(--forest)}body .mobile-menu{background:var(--forest);color:#fff}body .mobile-menu a{color:#fff;border-bottom-color:#ffffff38}body.public-home .site-header .header-book{display:inline-flex!important}body.public-home .home-search-section{width:calc(100% - 40px)}.accommodation-listing{padding:45px 0 80px}.listing-heading{grid-template-columns:1fr 1fr}.listing-heading>p{font-size:14px}.accommodation-listing .rooms-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.editorial-room-card .room-card-image{height:230px}.room-story{min-height:0}.room-story-photo{inset:0 0 auto;height:560px}.room-story-shade{background:linear-gradient(0deg,var(--forest-deep) 15%,#0a1d104d 70%)}.room-story-inner{display:block;min-height:0;padding-bottom:0}.room-story-gallery{height:450px;padding:20px}.room-story-copy{padding:35px 30px 20px;background:var(--forest-deep)}.room-story-booking{position:relative;right:auto;bottom:auto;width:calc(100% - 40px);margin:0 auto 30px}.room-gallery-thumbs button:nth-child(n+4):not(.all-room-photos){display:none}}
@media(max-width:560px){body .container{width:calc(100% - 32px)}body .site-header{height:68px}body .site-header .brand img{width:105px}body .header-actions{gap:8px}body.public-home .site-header .header-book{padding:7px 9px;font-size:10px}body.public-home .home-search-section{width:calc(100% - 24px)}.public-availability-bar,.room-story-booking .public-availability-bar{grid-template-columns:1fr 1fr;padding:9px}.availability-field{min-height:58px;padding:5px 8px;gap:5px}.availability-field:nth-child(2){border-right:0}.availability-field:nth-child(3){grid-column:1/-1;border-top:1px solid var(--border);border-right:0}.availability-submit{grid-column:1/-1;min-height:44px;margin:5px 0 0}.availability-icon{font-size:20px}.availability-field strong{font-size:10px}.availability-field input,.availability-field select{font-size:11px}body.public-home .rooms-section,body.public-home .experiences-section,body.public-home .gallery-section{padding:55px 0}.listing-heading{display:block;margin-bottom:25px}.listing-heading h1{font-size:48px}.listing-heading>p{margin:20px 0}.building-tabs{gap:20px;overflow-x:auto}.building-tabs a{font-size:13px}.accommodation-listing .rooms-grid{grid-template-columns:1fr}.editorial-room-card .room-card-image{height:270px}.building-group{margin-bottom:45px}.room-story-photo{height:470px}.room-story-gallery{height:400px;padding:18px}.room-story-gallery-bottom{display:block}.room-gallery-thumbs{margin-top:12px}.room-gallery-thumbs button:not([hidden]){width:68px;height:54px}.room-gallery-thumbs .all-room-photos{min-width:120px;font-size:10px}.room-story-copy{padding:30px 18px 22px}.room-story-copy h1{font-size:46px}.room-tagline{font-size:15px}.story-amenities{font-size:12px}.room-story-booking{width:calc(100% - 24px)}.room-story-booking .availability-field{padding-inline:8px}}
@media(prefers-reduced-motion:reduce){.editorial-room-card img,.public-availability-bar *{transition:none!important}}
/* Home accommodation choice and its two in-place room views. */
body.public-home .home-accommodation-section{padding:85px 0 95px;background:var(--forest-deep);color:#fff;transition:background-color .22s ease}
body.public-home .home-accommodation-section.is-showing-rooms{background:var(--background);color:var(--text)}
.home-accommodation-section [hidden]{display:none!important}
.building-choice-intro{margin:0 0 37px;text-align:center}
body.public-home .building-choice-intro .eyebrow{color:#c9aa80}
body.public-home .building-choice-intro h2{margin:12px 0 0;color:#fff;font-size:clamp(42px,4vw,62px);line-height:1.04}
.building-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid #ffffff32;border-bottom:1px solid #ffffff32}
.building-choice-option{display:flex;align-items:flex-start;flex-direction:column;min-height:315px;padding:37px clamp(30px,5vw,85px);border:0;background:transparent;color:#fff;text-align:left;cursor:pointer;transition:background-color .2s ease}
.building-choice-option + .building-choice-option{border-left:1px solid #ffffff42}
.building-choice-option:hover,.building-choice-option:focus-visible{background:#ffffff0d}
.building-choice-main{display:flex;align-items:flex-start;flex-direction:column;width:100%;padding:0;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}
.building-choice-icon{display:block;width:52px;height:52px;margin-bottom:23px;background:#d9bf99;mask:url('/static/images/icons/lucide/house.svg') center/contain no-repeat;-webkit-mask:url('/static/images/icons/lucide/house.svg') center/contain no-repeat}
.building-choice-icon.is-annex{mask-image:url('/static/images/icons/lucide/building-2.svg');-webkit-mask-image:url('/static/images/icons/lucide/building-2.svg')}
.building-choice-title{display:block;font:400 clamp(32px,3vw,46px)/1.08 var(--type-display);letter-spacing:-.035em}
.building-choice-description{display:block;max-width:290px;margin:14px 0 22px;color:#dbe3d8;font-size:14px;line-height:1.5}
.building-category-links{display:flex;align-items:center;flex-wrap:wrap;gap:5px 20px;max-width:100%;margin:0 0 24px}
.building-category-links a{display:inline-flex;align-items:center;gap:7px;min-height:36px;color:#f7f4ed;font-size:11px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;transition:color .18s ease}
.building-category-links a:hover{color:#d9bf99}
.building-category-icon{display:inline-block;flex:none;width:18px;height:18px;background:#d9bf99;mask:url('/static/images/icons/lucide/bed-double.svg') center/contain no-repeat;-webkit-mask:url('/static/images/icons/lucide/bed-double.svg') center/contain no-repeat}
.building-choice-link{display:inline-flex;align-items:center;gap:18px;margin-top:auto;padding:0 0 5px;border:0;border-bottom:1px solid #d4bd9a;background:transparent;color:#fff;font-size:13px;cursor:pointer}
.building-choice-link span{font-size:19px;line-height:1}
body.public-home .building-results-heading{align-items:end;margin-bottom:20px}
body.public-home .building-results-heading h2{color:var(--text);font-size:clamp(42px,4vw,62px)}
body.public-home .building-results-heading>p{max-width:310px;margin:0 0 5px;color:var(--text-muted);font-size:14px;line-height:1.45}
.building-results-toolbar{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:24px}
.building-back{padding:7px 0;border:0;background:none;color:var(--text-muted);font-size:12px;cursor:pointer}
.building-back:hover{color:var(--text)}
.building-switch{display:flex;gap:22px}
.building-switch button{padding:10px 4px 13px;border:0;border-bottom:1px solid var(--border);background:transparent;color:#888e87;font-size:14px;cursor:pointer}
.building-switch button[aria-pressed="true"]{border-bottom-color:var(--forest);color:var(--text)}
body.public-home .building-room-panel .rooms-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
body.public-home .building-room-panel .room-card-image{height:250px}
body.public-home .building-room-panel .room-card-body{padding:13px 19px}
body.public-home .building-room-panel .room-card h3{font-size:24px}
.home-building-room-card .room-card-facts span{display:inline-flex;align-items:center;gap:5px}
.home-building-room-card .room-card-facts img{display:inline-block;flex:none;width:14px;height:14px}
.building-results.is-changing{opacity:0;transform:translateY(7px);transition:opacity .14s ease,transform .14s ease}
.building-results.is-entering{animation:buildingRoomsEnter .22s ease both}
@keyframes buildingRoomsEnter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.building-noscript{color:#fff}
.building-noscript a{border-bottom:1px solid currentColor}
@media(max-width:800px){body.public-home .home-accommodation-section{padding:65px 0}.building-choice-option{min-height:300px;padding:31px 25px}.building-choice-description{font-size:13px}body.public-home .building-room-panel .rooms-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){body.public-home .home-accommodation-section{padding:52px 0 60px}.building-choice-intro{margin-bottom:28px;text-align:left}body.public-home .building-choice-intro h2{font-size:43px}.building-choice-grid{grid-template-columns:1fr}.building-choice-option{min-height:0;padding:29px 6px 32px}.building-choice-option + .building-choice-option{border-top:1px solid #ffffff42;border-left:0}.building-choice-icon{width:40px;height:40px;margin-bottom:14px}.building-choice-title{font-size:36px}.building-choice-description{margin:10px 0 17px}.building-choice-link{margin-top:0}.building-results-heading{display:block}body.public-home .building-results-heading h2{font-size:43px}body.public-home .building-results-heading>p{margin-top:13px}.building-results-toolbar{display:block}.building-switch{margin-top:12px;overflow-x:auto}.building-switch button{white-space:nowrap}body.public-home .building-room-panel .rooms-grid{grid-template-columns:1fr}body.public-home .building-room-panel .room-card-image{height:270px}}
@media(prefers-reduced-motion:reduce){body.public-home .home-accommodation-section,.building-choice-option,.building-results.is-changing{transition:none!important}.building-results.is-entering{animation:none!important}}
