/* A quieter catalog, a clear choice, and a shorter path to dates. */
.site-header,.site-header.overlay{position:sticky;top:0;height:82px}
html{scroll-padding-top:105px}
.gh-hero{height:clamp(560px,74svh,740px);min-height:560px}
.gh-hero-copy{padding-top:30px;padding-bottom:30px}
.gh-hero h1{font-size:clamp(74px,7.1vw,106px);margin:24px 0}
.gh-hero-copy .gh-location{animation:soft-entry .7s var(--ease) both}
.gh-hero h1{animation:soft-entry .85s var(--ease) .08s both}
.gh-hero-bottom{animation:soft-entry .85s var(--ease) .16s both}
.gh-photo-window{animation:photo-entry 1.15s var(--ease) both}
@keyframes soft-entry{from{opacity:.25;transform:translateY(15px)}to{opacity:1;transform:none}}
@keyframes photo-entry{from{opacity:.4;transform:translateX(22px)}to{opacity:1;transform:none}}
.gh-booking-heading{font-size:17px;margin-bottom:15px}
.gh-booking-heading em{font-size:24px}
.gh-cabins{padding-top:80px}
.section-head>p{font-size:14px;line-height:1.8}
.gh-cabins .section-head h2{max-width:900px}
.filters{gap:32px;margin-bottom:42px}
.filter{padding:13px 0 16px;min-height:44px;font-size:13px}
.cabin-grid{column-gap:6%;row-gap:64px}
.cabin-card:nth-child(2n),.cabin-card:nth-child(2n+1){margin-top:0;margin-bottom:0}

.cabin-card .photo-link{aspect-ratio:1.22}
.cabin-card:nth-child(2n) .photo-link{aspect-ratio:1.22}
.cabin-description{color:var(--muted)}
.card-description{font-size:13px;line-height:1.7;margin:0 0 16px}
.card-features{font-size:11px;column-gap:18px;row-gap:8px}
.card-heading{margin-bottom:13px}
.card-price{font-size:21px}
.card-bottom{display:flex;gap:18px;align-items:center;padding-top:19px}
.card-bottom .text-link{min-height:44px;align-items:center;white-space:nowrap}
.card-reserve{font-size:12px;padding:12px 18px;min-height:47px;gap:18px}
.card-reserve:hover{box-shadow:0 5px 15px #636b2f1a}
.cabin-card-copy{min-width:0}
.cabin-new{grid-column:1/-1;display:grid;grid-template-columns:1.25fr 1fr;gap:0;background:#e5e7d8;border:1px solid #d7d9c5}
.cabin-new .cabin-image-composition{margin:0;padding:0;height:100%;min-height:345px}
.cabin-new .photo-link,.cabin-new:nth-child(2n) .photo-link{height:100%;aspect-ratio:auto;clip-path:none}
.cabin-new .photo-link img{object-position:50% 50%;filter:saturate(.93)}
.cabin-new .cabin-index{left:24px;top:22px;bottom:auto;background:var(--paper);padding:6px 12px;font-size:9px}
.cabin-new .cabin-detail-crop{display:none}
.cabin-new .cabin-card-copy{padding:30px 34px 32px;align-self:center}
.cabin-new .card-heading{margin-top:0}
.cabin-new .card-heading h3{font-size:48px;letter-spacing:-2px}
.cabin-new .card-description{max-width:310px;font-size:14px}
.meadow-rates{display:flex;gap:25px;border-top:1px solid #cbd0b6;margin-top:23px;padding-top:18px;font-size:10px;color:var(--muted)}
.meadow-rates strong{display:block;color:var(--ink);font-weight:500;font-size:14px;margin-top:3px}
.cabin-new .card-bottom{margin-top:19px;border-color:#cbd0b6}
.image-reference{display:block;font-size:10px;line-height:1.5;color:var(--muted);margin-top:11px;letter-spacing:.2px}
.cabin-new .image-reference{font-size:9px;margin-top:13px}
.meadow-presentation{background:var(--brand);color:var(--paper);padding:55px;display:flex;flex-direction:column;justify-content:space-between;min-height:350px;overflow:hidden}
.meadow-presentation .eyebrow{font-size:9px;color:#e4e7cf}
.meadow-type{font-size:clamp(70px,9vw,125px);letter-spacing:-.07em;line-height:1}
.meadow-type>span{display:block;font-family:var(--serif);font-size:30px;letter-spacing:-.6px;margin-top:22px}
.meadow-note{font-size:10px;color:#e4e7cf;letter-spacing:.5px;margin-top:45px}
.meadow-presentation.compact{padding:35px;min-height:320px}
.meadow-presentation.compact .meadow-type{font-size:70px}
.meadow-presentation.compact .meadow-type>span{font-size:26px}
.detail-heading{align-items:center}
.detail-heading p{font-size:13px}
.detail-index{white-space:nowrap;flex-shrink:0}
.quick-dates .form-row,#reservation-dates .form-row{gap:14px}
.quick-dates>.field{margin-top:14px}
.detail-gallery.two-images{grid-template-columns:1fr 1fr;height:auto;min-height:0;position:relative}
.detail-gallery.two-images button:not(.all-photos){aspect-ratio:1.8;height:auto;grid-row:1;grid-column:auto}
.detail-gallery.two-images button:first-child{clip-path:none}
.detail-gallery.two-images .all-photos{position:absolute;right:20px;bottom:20px}
.detail-gallery.two-images img{height:100%;object-fit:cover}
.detail-copy>p{font-size:14px}
.detail-copy .detail-section>.text-link{margin-top:20px}
.amenity-grid{margin-top:33px}
.booking-panel{top:110px;background:var(--paper);box-shadow:none;border:1px solid #b0b68f}
.booking-panel>.btn{margin-top:18px;width:100%}
.booking-panel .field{margin-top:16px}
.booking-panel .form-row .field{min-width:0}
.live-estimate:empty{display:none}
.live-estimate{display:flex;flex-wrap:wrap;align-items:center;gap:8px;justify-content:space-between;padding:16px 0 2px;font-size:11px;color:var(--muted)}
.live-estimate strong{font-size:23px;color:var(--brand);font-weight:500;letter-spacing:-.6px}
.live-estimate small{font-size:10px;letter-spacing:0}
.quick-modal{max-width:520px}
.quick-modal .modal-head{padding:25px 30px}
.quick-modal .modal-body{padding:25px 30px 30px}
.quick-cabin{border-bottom:1px solid var(--line);padding-bottom:23px;margin-bottom:24px}
.quick-cabin .eyebrow{font-size:8px;margin-bottom:9px}
.quick-cabin h3{font-family:var(--sans);font-size:42px;letter-spacing:-1.8px;margin-bottom:10px}
.quick-cabin p{font-size:12px}
.quick-dates>.btn{width:100%;margin-top:20px}
.quick-modal .price-list{margin-top:25px}
.quick-modal .micro{font-size:10px;line-height:1.7;margin-top:17px}
.quick-dates input,.quick-dates select{min-height:45px}
.reservation-modal{max-width:940px}
.reservation-steps{display:flex;gap:30px;margin:26px 0 28px;font-size:11px;color:var(--muted);border-bottom:1px solid var(--line)}
.reservation-steps span{padding-bottom:12px}
.reservation-steps .active{border-bottom:2px solid var(--brand);color:var(--brand)}
.reservation-layout{grid-template-columns:1fr 280px;gap:32px}
.reservation-aside{padding:23px;align-self:start}
.reservation-aside .reservation-total,.reservation-aside .estimate-note,.reservation-aside>.btn{grid-column:1/-1}
.reservation-aside>.btn{width:100%;margin-top:21px;font-size:12px}
.reservation-aside .estimate-note{font-size:10px;line-height:1.7;margin-top:14px}
.reservation-monogram{background:var(--brand);color:var(--paper);font-family:var(--serif);font-size:80px;line-height:1;padding:20px;text-align:center}
.reservation-monogram>span{display:block;font-family:var(--sans);font-size:12px;letter-spacing:2px;margin-top:5px}
.optional-extras{margin-top:32px;border-bottom:1px solid var(--line)}
.reservation-date-summary{padding:5px 0 21px}
.reservation-date-summary .eyebrow{font-size:9px;margin-bottom:13px}
.reservation-date-summary strong{font-size:18px;letter-spacing:-.4px;font-weight:500}
.reservation-date-summary p{font-size:12px;margin-top:8px}
.edit-dates summary{font-size:12px;padding:17px 0}
.edit-dates form{padding:8px 0 22px}
.edit-dates+.optional-extras{margin-top:0}
.optional-extras summary{font-size:14px;gap:12px}
.optional-extras summary>span{font-size:10px;color:var(--muted);margin-left:auto}
.optional-extras .extra-option{padding:15px 0}
.optional-extras .extra-option small{font-size:11px}
.optional-extras .extra-option input{width:20px;height:20px}
.compare-modal{max-width:1120px}
.compare-table th[scope="row"]{font-size:11px;font-weight:400;background:var(--cream);text-align:left;min-width:130px}
.compare-table .btn{white-space:nowrap;padding:11px 15px;font-size:11px;min-height:43px}
.compare-table td{min-width:140px}
.table-hint{font-size:10px;margin-top:10px}
.gallery-pending{grid-column:1/-1}
.gallery-pending>.text-link{margin-top:20px}
.gallery-page button{transition:transform .65s var(--ease)}
.gallery-page button:hover{transform:translateY(-5px)}
.text-link{transition:color .3s var(--ease),border-color .3s var(--ease)}
.text-link:hover{color:var(--brand);border-color:var(--brand)}
.gh-celebration h3{line-height:1.12}
.gh-stay-heading h2{max-width:480px}
.gh-stay-copy>p{font-size:15px}
.gh-arrival-copy h2{font-size:clamp(38px,4vw,60px)}
@media(max-width:1100px){.cabin-new .cabin-card-copy{padding:28px}.cabin-new .card-heading h3{font-size:42px}.cabin-new .card-price{font-size:18px}.cabin-new .card-features{gap:12px}.cabin-new .cabin-image-composition{min-height:375px}.cabin-new{grid-template-columns:1.1fr 1fr}.card-reserve{padding:12px 14px;font-size:11px;gap:12px}.card-bottom .text-link{font-size:11px}.meadow-rates{gap:20px}.nav{gap:23px}.card-features{gap:11px}}
@media(max-width:850px){.cabin-new{grid-template-columns:1fr}.cabin-new .cabin-image-composition{min-height:0}.cabin-new .photo-link,.cabin-new:nth-child(2n) .photo-link{aspect-ratio:2.15;height:auto}.cabin-new .cabin-card-copy{padding:27px 30px}.cabin-new .card-heading h3{font-size:45px}.cabin-new .card-description{max-width:none}.cabin-new .card-bottom{margin-top:18px}.cabin-new .card-reserve{padding:13px 25px}.cabin-new .meadow-rates{gap:40px}.card-price{font-size:18px}.card-bottom{gap:10px;flex-wrap:wrap}.card-bottom>.text-link{margin-top:0}.card-bottom>.card-reserve{font-size:11px}.reservation-layout{grid-template-columns:1fr}.reservation-aside{order:0;display:grid;grid-template-columns:80px 1fr;gap:0 16px}.reservation-aside>img,.reservation-monogram{grid-row:1/3;height:80px;object-fit:cover}.reservation-monogram{font-size:38px;padding:10px;line-height:1}.reservation-monogram>span{font-size:8px}.reservation-aside h3{margin:0 0 8px}.reservation-aside>.price-list{grid-column:1/-1}.reservation-aside>.btn{margin-top:17px}.reservation-steps{margin:20px 0}.optional-extras{margin-top:24px}.card-features{font-size:10px}.gh-stay-copy>p{font-size:13px}}
@media(min-width:701px) and (max-width:850px){.gh-hero{height:560px;min-height:560px;max-height:560px}.gh-hero h1{font-size:71px}}
@media(max-width:800px){.site-header,.site-header.overlay{height:73px}.nav{top:72px}html{scroll-padding-top:90px}.gh-cabins{padding-top:62px}.filter{font-size:12px}.filters{gap:25px}.detail-heading p{font-size:12px}.mobile-reserve .btn{padding:11px 22px}.detail-gallery.two-images{gap:8px}.detail-gallery.two-images .all-photos{font-size:10px;right:12px;bottom:12px}.detail-copy>p{font-size:13px}.gh-booking-heading{font-size:16px}}
@media(max-width:700px){.gh-hero{height:auto;min-height:0;max-height:none}.gh-hero h1{font-size:clamp(67px,12vw,85px);margin:25px 0 22px}.gh-hero-copy{padding:25px 24px 30px}.gh-hero-bottom p{max-width:235px;font-size:12px}.gh-hero-bottom .btn{font-size:12px;gap:22px;min-width:160px}.section-head>p{font-size:13px}.card-price{font-size:18px}.card-description{font-size:12px}.card-features{flex-direction:row;flex-wrap:wrap;font-size:10px;gap:8px}.cabin-grid{row-gap:45px}.card-reserve{font-size:10px;gap:10px}.cabin-card .card-bottom .text-link{font-size:11px}.detail-gallery.two-images{grid-template-columns:1fr;grid-template-rows:auto auto}.detail-gallery.two-images button:not(.all-photos){grid-row:auto;aspect-ratio:2.05}.meadow-presentation{padding:30px;min-height:320px}.meadow-type{font-size:90px}.closing h2{font-size:65px}.gh-stay-heading h2{font-size:47px}.gh-stay-photo{margin-top:40px}.gh-stay-detail{margin-top:25px}.gh-arrival-copy h2{font-size:38px}}
@media(max-width:480px){.gh-hero h1{font-size:59px}.gh-hero h1 em{margin-left:6px}.gh-hero-copy{padding:23px 22px 27px}.gh-hero-bottom{gap:12px}.gh-hero-bottom p{font-size:11px;max-width:165px}.gh-hero-bottom .btn{font-size:11px;min-width:135px;max-width:155px;gap:13px;padding:13px 12px}.gh-photo-window{height:325px;min-height:325px}.gh-booking-heading{font-size:16px}.gh-cabins{padding-top:52px}.section-head h2{font-size:43px}.filters{gap:20px;margin:24px 0 30px}.filter{font-size:11px;min-height:44px;padding-bottom:13px}.cabin-grid{grid-template-columns:1fr;row-gap:40px}.cabin-new .cabin-card-copy{padding:22px}.cabin-new .card-heading h3{font-size:39px}.cabin-new .card-price{font-size:19px}.cabin-new .card-description{font-size:12px;line-height:1.75}.cabin-new .card-features{font-size:10px;gap:14px}.cabin-new .meadow-rates{justify-content:space-between;gap:12px;font-size:9px;margin-top:19px;padding-top:14px}.meadow-rates strong{font-size:13px}.cabin-new .cabin-index{top:13px;left:13px;padding:5px 9px;font-size:8px}.cabin-new .card-bottom{gap:12px;flex-wrap:nowrap}.cabin-new .card-reserve{padding:12px 13px;font-size:10px;gap:10px}.cabin-card .card-heading{display:flex}.card-price{font-size:20px}.card-price small{font-size:9px}.card-description{font-size:13px}.card-features{font-size:11px;gap:14px}.card-bottom{flex-wrap:nowrap;padding-top:16px}.card-bottom .card-reserve{padding:12px 18px;font-size:11px;min-height:46px}.cabin-card .card-bottom .text-link{font-size:11px}.cabin-image-composition{padding-bottom:22px}.cabin-card .photo-link,.cabin-card:nth-child(2n) .photo-link{aspect-ratio:1.25}.cabin-new .photo-link,.cabin-new:nth-child(2n) .photo-link{aspect-ratio:1.8}.cabin-new .cabin-image-composition{padding-bottom:0}.cabin-index{font-size:8px;letter-spacing:1.2px}.gh-stay-heading h2{font-size:37px}.gh-stay-photo{margin-top:60px}.gh-stay-detail{margin-top:25px}.gh-stay-copy>p{font-size:13px}.gh-arrival-copy h2{font-size:44px}.closing h2{font-size:62px}.detail-heading .btn{font-size:12px;margin-top:24px;padding:13px 19px}.detail-heading p{font-size:11px}.detail-copy>p{font-size:13px}.detail-gallery.two-images button:not(.all-photos){aspect-ratio:1.85}.quick-modal .modal-head{padding:20px}.quick-modal .modal-body{padding:20px}.quick-cabin h3{font-size:38px}.quick-cabin p{font-size:11px}.quick-modal .form-row{gap:12px}.quick-modal .field input,.quick-modal .field select{font-size:14px;min-width:0}.reservation-modal .modal-head h2{font-size:29px}.reservation-layout{gap:22px}.reservation-aside{padding:18px}.optional-extras summary{font-size:13px}.meadow-presentation{min-height:280px}.meadow-type{font-size:74px}.meadow-presentation.compact{min-height:230px;padding:27px}.meadow-presentation.compact .meadow-type{font-size:64px}.meadow-type>span{font-size:25px}}
@media(max-width:360px){.gh-hero h1{font-size:54px}.gh-hero-bottom p{font-size:10px;max-width:135px}.gh-hero-bottom .btn{font-size:10px;min-width:123px;padding:11px 10px;gap:9px}.filters{gap:16px}.filter{font-size:10px}.cabin-new .cabin-card-copy{padding:19px}.cabin-new .card-heading{gap:10px}.cabin-new .card-heading h3{font-size:33px}.cabin-new .card-price{font-size:17px}.cabin-new .card-bottom .text-link{font-size:10px}.cabin-new .card-reserve{padding:11px 10px;gap:7px;font-size:9px}.card-features{gap:10px;font-size:10px}.card-bottom .card-reserve{padding:12px 13px;font-size:10px}.card-price small{font-size:8px}.closing h2{font-size:54px}.gh-stay-heading h2{font-size:33px}}
@media(max-width:480px){.meadow-detail .detail-heading h1{font-size:76px;gap:16px}}
@media(max-width:360px){.meadow-detail .detail-heading h1{font-size:64px;gap:12px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.gallery-page button:hover{transform:none}.gh-photo-window{transform:none}}

/* Meadow opening announcement, aligned with the Grasshopper olive identity. */
.opening-note{display:flex;align-items:center;gap:8px;color:var(--brand);font-size:12px;line-height:1.6;margin:14px 0 18px}
.opening-note svg{width:17px;height:17px;flex-shrink:0}
.detail-heading .opening-note{font-size:12px;margin:14px 0 0}
.booking-panel .opening-note,.quick-cabin .opening-note{font-size:12px;color:var(--brand);margin:16px 0}
.cabin-new .opening-note{font-size:11px;margin:12px 0 16px}

/* Two experiences, with the celebration photograph balancing the fire scene. */
.gh-celebration{display:block;margin-top:75px}
.gh-celebration .experience-image{aspect-ratio:.88}
.footer-wordmark{font-size:clamp(28px,10.25vw,154px);letter-spacing:-.055em}
.footer-links a{overflow-wrap:anywhere}
@media(min-width:851px){.footer-main{grid-template-columns:1.4fr 1fr 1.5fr 1.1fr}}
@media(max-width:850px){.gh-celebration{margin-top:45px}}
@media(max-width:480px){.gh-celebration{margin-top:32px}.gh-celebration .experience-image{aspect-ratio:1.35}.gh-celebration .eyebrow{font-size:8px;margin-top:22px}.gh-celebration h3{font-size:28px}.gh-celebration .text-link{font-size:11px}}

@media(max-width:700px){.gh-location span:last-child{font-size:7px;letter-spacing:.7px;line-height:1.6;max-width:175px;text-align:right}}

/* Current availability, without changing the aligned catalog. */
.card-status-price{font-size:13px;line-height:1.5;max-width:47%}
.booking-calendar-link{font-size:11px;line-height:1.6;white-space:normal;text-align:left;min-height:44px;margin-top:16px}
.booking-return{min-height:55vh}

.cabin-loading{grid-column:1/-1;min-height:220px;display:flex;align-items:center;justify-content:center;padding:40px 24px;text-align:center;color:var(--muted,#717567);font-size:14px}

.opening-note .coming-soon,.ghb-opening .coming-soon{display:block;font-size:20px;line-height:1.3;font-weight:600;letter-spacing:.02em;margin-bottom:4px}.opening-note .opening-date,.ghb-opening .opening-date{display:block;font-size:13px;line-height:1.5;font-weight:400}
@media(max-width:600px){.opening-note .coming-soon,.ghb-opening .coming-soon{font-size:18px}}

/* Meadow announcement requested after launch. */
.opening-note:has(.coming-soon){padding:14px 18px;background:#ecefdc;border-left:4px solid #636b2f;border-radius:0 8px 8px 0;align-items:flex-start}
.opening-note:has(.coming-soon)>svg{width:23px;height:23px;margin-top:3px}
.opening-note .coming-soon,.ghb-opening .coming-soon{font-size:28px;font-weight:700;line-height:1.2;letter-spacing:.025em;margin-bottom:7px}
.opening-note .opening-date{font-size:14px}
@media(max-width:600px){.opening-note .coming-soon,.ghb-opening .coming-soon{font-size:24px}.opening-note:has(.coming-soon){padding:13px 14px}}
