/*
Theme Name: Pub Store
Theme URI: https://gracethemes.com/themes/free-bar-wordpress-theme/
Author: Grace Themes
Author URI: https://gracethemes.com/
Description: The Pub Store is a clean, elegant, simple and responsive free bar WordPress theme. This responsive WordPress theme will be a perfect match for websites related to pub, bar, brewery, cafe, food and restaurants businesses. The theme is well suited for selling wine-related products on the web. This multipurpose theme can also be used for corporate, business, hotel, resort, lodge, catering, personal blog, fashion, lifestyle, medical, fitness, yoga, education, gym, cake and sweet shop, charity, furniture, interior design and many more. It has unlimited color options and Google fonts, full-width page template, custom widgets for sidebar and footer, built-in image slider, full-width or boxed layout option. This 100% responsive ready theme is developed to looks great on all screen sizes and display devices. It is multilingual and fully translation ready to build your site in multiple languages. Demo Link: https://www.gracethemes.com/demo/pubstore/

Version: 2.2
License: GNU General Public License version 2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: pub-store
Requires PHP:  5.6
Tested up to: 6.6
Tags:blog,food-and-drink,two-columns,right-sidebar,full-width-template,custom-colors,custom-menu,custom-header,custom-logo,featured-images,editor-style,custom-background,threaded-comments,theme-options, translation-ready

Pub Store WordPress Theme has been created by Grace Themes(gracethemes.com), 2019.
Pub Store WordPress Theme is released under the terms of GNU GPL
*/
:root {
  --primary-color: #cec1ac;
  --secondary-color: #dd3333;
  --text-color: #363636;
  --heading-color: #101010;
  --background-color: #cec1ac;
  --heading-color: #5b3816;
  --button-color: #5b3816;
}

body {
  background-color: var(--primary-color);
  margin: 0;
  padding: 0;
  line-height: 30px;
  font-size: 16px;
  color: #363636;
  font-family: "Assistant", sans-serif;
  -ms-word-wrap: break-word;
  word-wrap: break-word;
}
* {
  margin: 0;
  padding: 0;
  outline: none;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
}
img {
  border: none;
  margin: 0;
  padding: 0;
  height: auto;
  max-width: 100%;
}
.wp-caption,
.wp-caption-text,
.sticky,
.gallery-caption,
.aligncenter {
  margin: 0;
  padding: 0;
  max-width: 100% !important;
}
p {
  margin: 0;
  padding: 0;
  font-family: "Cormorant Garamond", serif;
}
a {
  text-decoration: none;
  color: #efc62c;
}
a:hover {
  color: #cacaca;
}
ol,
ul {
  margin: 0;
  padding: 0;
}
ul li ul,
ul li ul li ul,
ol li ol,
ol li ol li ol {
  margin-left: 10px;
}
h1,
h2,
h3,
h4,
h5,
h6 {
  color: var(--heading-color) !important;
  font-family: "Spectral SC", serif;
  font-style: normal;
  margin: 0 0 20px;
  padding: 0;
  line-height: 1.1;
  font-weight: 600;
}
h1.entry-title {
  font-weight: bold;
  margin-bottom: 35px;
  color: #555;
}
h1 {
  font-size: 32px;
}
h2 {
  font-size: clamp(30px, 5.5vw, 34px);
}
h3 {
  font-size: 24px;
}
h4 {
  font-size: 20px;
}
h5 {
  font-size: 18px;
}
h6 {
  font-size: 14px;
}
.clear {
  clear: both;
}
.left {
  float: left;
}
.right {
  float: right;
}
figcaption,
figure {
  display: block;
}
figure {
  margin: 1em 0;
}
blockquote {
  background-color: #c4a7935c;
  border-left: 5px solid #ccc;
  padding: 15px;
  color: #999;
  font-size: 15px;
  line-height: 1.5;
  margin-bottom: 30px;
  box-shadow: rgba(60, 64, 67, 0.3) 0px 1px 2px 0px,
    rgba(60, 64, 67, 0.15) 0px 2px 6px 2px;
}
blockquote p {
  margin-bottom: 0 !important;
}
input::placeholder,
textarea::placeholder {
  font-family: "Cormorant Garamond", serif;
  color: #000;
  opacity: 0.85 !important;
}
input,
textarea {
  font-family: "Cormorant Garamond", serif !important;
}
hr {
  -webkit-box-sizing: content-box;
  -moz-box-sizing: content-box;
  box-sizing: content-box;
  height: 0;
  overflow: visible;
}
.textwidget select {
  width: 100%;
}
table {
  width: 100%;
}
.alignnone {
  width: 100%;
}
img.alignleft,
.alignleft {
  float: left;
  margin: 0 15px 0 0;
  padding: 5px;
  border: 1px solid #cccccc;
}
img.alignright,
.alignright {
  float: right;
  margin: 0 0 0 15px;
  padding: 5px;
  border: 1px solid #cccccc;
}
.aligncenter,
img.aligncenter {
  clear: both;
  display: block;
  margin-left: auto;
  margin-right: auto;
  margin-top: 0;
  height: auto;
}

/*
Lists style CSS
--------------------------------------------------------------*/

ul,
ol {
  margin: 0;
  padding: 0;
}
ul {
  list-style: inside none disc;
}
ol {
  list-style: decimal;
}

ul li,
ol li {
  margin-bottom: 0;
  margin-left: 0.5em;
}
dt {
  font-weight: 700;
}
dd {
  margin: 0 1.5em 1.5em;
}
audio:not([controls]) {
  display: none;
  height: 0;
}
img {
  border-style: none;
}
svg:not(:root) {
  overflow: hidden;
}

/* Buttons */
.button {
  border: 1px solid #404040;
  color: #404040;
  padding: 8px 20px;
  display: inline-block;
  border-radius: 25px;
  -moz-border-radius: 25px;
  -webkit-border-radius: 25px;
  -o-border-radius: 25px;
  -ms-border-radius: 25px;
}
.button:hover {
  border: 1px solid #dd3333;
  color: #dd3333;
}

a.ReadMore {
  background-color: #333339;
  color: #fff;
  padding: 5px 15px;
  display: inline-block;
}
a.ReadMore:hover {
  background-color: #ffae00;
  color: #fff;
}

.learnmore {
  background-color: #dd3333;
  color: #fff;
  display: inline-block;
  padding: 8px 25px;
  text-transform: uppercase;
}
.learnmore:hover {
  background-color: #333;
  color: #fff;
}

a {
  background-color: transparent;
  -webkit-text-decoration-skip: objects;
}
.postmeta {
  padding: 0 0 5px;
  color: #888;
  margin-bottom: 15px;
  display: inline-block;
}
.postmeta a {
  color: #999;
}
.postmeta a:hover {
  color: #e74c3c;
}
.breadcrumbs {
  padding: 10px 0;
  margin-bottom: 0;
}
a:active,
a:hover {
  outline-width: 0;
}
b,
strong {
  font-weight: inherit;
  font-weight: blod;
}
pre {
  background: #eee;
  font-size: 14px;
  font-size: 0.9375rem;
  line-height: 1.4;
  margin-bottom: 1.6em;
  max-width: 100%;
  overflow: auto;
  padding: 20px;
}
iframe {
  max-width: 100%;
}
#comment-nav-above .nav-previous,
#comment-nav-below .nav-previous {
  float: none !important;
  margin: 10px 0;
}
nav.pagination .page-numbers {
  background-color: #ccc;
  padding: 10px 15px;
  font-size: 15px;
  font-weight: 600;
  color: #444;
}
nav.pagination {
  clear: both;
}
nav.pagination .page-numbers.current {
  background-color: #efc62c;
}
ol.comment-list li {
  list-style: none;
  margin-bottom: 5px;
}

/* = layout style
-------------------------------------------------------------- */
#sitelayout_type {
  margin: 0 auto;
}
.container {
  width: 1170px;
  margin: 0 auto;
  position: relative;
}
.site-header {
  width: 100%;
  z-index: 9999;
  box-sizing: border-box;
  position: absolute;
  /* background-color: rgba(0, 0, 0, 0.6) !important; */
  /* border-bottom: 1px solid #465361; */
}
.site-header.siteinner {
  background-color: var(--primary-color);
  position: relative;
}
/* .logo {
  float: left;
  padding: 17px 0;
  width: 28%;
  position: relative;
  text-align: left;
} */
.logo h1 {
  margin: 0;
  font-size: 40px;
  font-weight: 600;
  font-family: "Great Vibes", cursive;
}
.logo a,
.logo p {
  color: #999;
}
.tagline {
  font-size: 13px;
  color: #828181;
  display: block;
  letter-spacing: 1px;
}
.psright_wrap {
  float: right;
  text-align: right;
}
.header-title {
  display: none;
}

/* = Social icons css
-------------------------------------------------------------- */
.social-icons {
  text-align: center;
}
.social-icons a {
  width: 30px;
  height: 40px;
  line-height: 40px;
  margin: 0;
  padding: 0;
  color: #fff;
  border-radius: 50%;
  -moz-border-radius: 50%;
  -webkt-border-radius: 50%;
  display: inline-block;
}
.social-icons a:hover {
  color: #dd3333;
}
.social-icons br {
  display: none;
}

/*header menu css*/
.toggle {
  display: none;
}
.toggle a {
  width: 100%;
  color: #ffffff;
  background: url(images/mobile-nav.png) no-repeat right center #3e3e3e;
  padding: 8px 10px;
  margin-top: 5px;
  font-size: 16px;
  display: none;
  text-align: left;
}
.toggle a:hover {
  color: #ffffff !important;
}
/*main menu*/
.mainmenu {
  padding: 0;
  z-index: 9999;
}
.mainmenu ul {
  margin: 0;
  padding: 0;
  font-family: "Assistant", sans-serif;
  font-size: 16px;
  font-weight: 500;
}
.mainmenu ul li {
  display: inline-block;
  position: relative;
  margin: 0;
}
.mainmenu ul li:last-child {
  border-right: none;
}
.mainmenu ul li a {
  padding: 40px 15px;
  display: block;
  text-align: center;
  color: #5d5d5d;
  text-transform: uppercase;
}
.mainmenu ul li ul li {
  display: block;
  position: relative;
  float: none;
  top: 1px;
  border-bottom: 1px solid #666;
}
.mainmenu ul li ul li a {
  display: block;
  padding-top: 7px;
  padding-bottom: 7px;
  position: relative;
  top: 1px;
  text-align: left;
}
.mainmenu ul li ul {
  display: none;
  z-index: 9999999;
  position: relative;
  background-color: rgba(0, 0, 0, 0.6) !important;
}
.mainmenu ul li:hover > ul {
  display: block;
  width: 200px;
  position: absolute;
  left: 0;
  text-align: left;
}
.mainmenu ul li:hover ul li ul {
  display: none;
  position: relative;
}
.mainmenu ul li:hover ul li:hover > ul {
  display: block;
  position: absolute;
  left: 200px;
  top: 0;
}
.mainmenu ul li a:hover,
.mainmenu ul li.current-menu-item a,
.mainmenu ul li.current-menu-parent a.parent,
.mainmenu ul li.current-menu-item ul.sub-menu li a:hover {
  color: #583a0ba1 !important;
}
.mainmenu ul li.current-menu-item ul.sub-menu li a {
  color: #fff;
}
.slider_section {
  position: relative;
}
h2.sectiontitle {
  font-weight: 600;
  font-size: 40px;
  margin-bottom: 50px;
  position: relative;
  text-align: center;
}
.last_column {
  clear: right;
  margin-right: 0 !important;
}

/* = Four pagebox section
-------------------------------------------------------------- */
#ps_3col_wrapper {
  padding: 60px 0 20px;
  position: relative;
}
.ps_3colbx {
  width: 31%;
  float: left;
  margin: 0 3% 0 0;
  padding: 20px 20px 35px;
  position: relative;
  min-height: 330px;
  box-sizing: border-box;
  background-color: #fff;
}
.ps_3colbx p {
  margin-bottom: 20px;
}
.ps_3colbx h3 {
  font-size: 16px;
  font-weight: 600;
  color: #404040;
  margin: 0 0 25px;
  text-transform: uppercase;
}
.ps_3colbx h3 a {
  color: #404040;
}

.ps_3colbx:hover h3 {
  color: #ef2e2e;
}
.ps_3colbx .ps_thumbbx {
  height: 200px;
  border: 4px solid #ccc;
  overflow: hidden;
}
.ps_3colbx .ps_thumbbx img {
  height: auto;
  min-height: 200px;
  width: 100%;
}
.ps_3colbx:hover .ps_thumbbx {
  border-color: #dd3333;
}
.ps_contentbx {
  padding: 20px 0;
  position: relative;
}

.learnmore {
  background-color: #404040;
  color: #fff;
  display: inline-block;
  text-transform: uppercase;
  border-radius: 5px;
  font-size: 14px;
}
.ps_3colbx:hover .learnmore {
  background-color: #dd3333;
  color: #fff;
}

/* = About Me Section
-------------------------------------- */
#ps_welcome_section {
  background-color: #f7f5f5;
  padding: 70px 0;
}
.ps_welcome_imgbx {
  float: right;
  width: 45%;
  margin: 0 0 0 0;
  overflow: hidden;
}
.ps_welcome_imgbx img {
  width: 100%;
  display: block;
  transition: 0.5s ease;
}
.ps_welcontent_bx {
  width: 50%;
  float: left;
  margin: 0;
}
.ps_welcontent_bx p {
  margin-bottom: 35px;
}
.ps_welcontent_bx h3 {
  font-family: "Great Vibes", cursive;
  font-size: 42px;
  margin: 0 0 25px;
  color: #555;
  font-weight: 600;
}
.ps_welcontent_bx h5 {
  font-size: 20px;
  margin-bottom: 40px;
}

/* = Page layout css
-------------------------------------------------------------- */
.page_content_layout {
  width: 67%;
  margin: 0;
  float: left;
  padding: 0 0 30px;
  box-sizing: border-box;
}
.page_content_layout ul,
.page_content_layout ol {
  margin: 0 0 20px 20px;
}
.page_content_layout ul li,
.page_content_layout ol li {
  margin: 0;
}
.page_content_layout ul ul,
.page_content_layout ol ol {
  margin: 0 0 0 30px;
}

.fullwidth {
  width: 100% !important;
  float: none !important;
}
.fullwidth p {
  margin-bottom: 15px;
}

.boxlayout {
  width: 1210px;
  margin: 0 auto;
  background-color: #fff;
  position: relative;
  box-shadow: 0 -8px 8px #111;
}
.fulllayout {
  width: 100% !important;
}
#ps_page_wrapper {
  padding: 50px 0;
}
#ps_page_wrapper p {
  margin-bottom: 30px;
  font-size: clamp(18px, 2vw, 20px);
  color: var(--ink);
}

.postlist_style {
  margin: 0 10px 20px 10px;
  padding: 25px;
}
.postlist_style .thumbnail_box {
  width: 35%;
  height: 225px;
  overflow: hidden;
  float: left;
  margin: 0 5% 0 0;
}
.postlist_style .thumbnail_box img {
  height: auto;
  min-height: 225px;
}
.postlist_style h3,
h3.single-title {
  margin-bottom: 5px;
  font-size: 20px;
}
.postlist_style h3 a {
  color: #484f5e;
}
.postlist_style h3 a:hover {
  color: #efc62c;
}
.postlist_style p {
  margin-bottom: 20px;
}
.blog-meta {
  font-style: italic;
  margin-bottom: 8px;
}
.post-date,
.post-comment,
.post-categories,
.edit-link {
  color: #333;
  font-weight: 600;
  text-transform: uppercase;
  display: inline;
  letter-spacing: 2px;
  font-size: 13px;
  margin: 0 10px 0 0;
}
.single_title {
  margin-bottom: 5px;
}
body.single-post .postlist_style .thumbnail_box {
  margin-bottom: 20px;
}

/*frontpage  post 2 column*/
.blog2column {
  float: none;
  width: 100%;
}
.blog2column .postlist_style {
  width: 48.2%;
  float: left;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.12);
  border: 1px solid rgba(0, 0, 0, 0.04);
}
.blog2column .thumbnail_box {
  background-color: #39adff;
  height: 200px;
  overflow: hidden;
  margin-bottom: 20px;
}
.blog2column .thumbnail_box img {
  width: 100%;
  height: auto;
  min-height: 200px;
}
.blog2column .postlist_style:hover .thumbnail_box img {
  opacity: 0.5;
}

/* = sidebar
-------------------------------------------------------------- */
#sidebar {
  float: right;
  width: 28%;
  padding: 25px;
  box-shadow: 0 0 5px #ddd;
}
aside.widget {
  padding: 0;
  margin-bottom: 30px;
}
aside.widget ul {
  list-style: disc;
}
h3.widget-title {
  padding: 0 0 10px;
  margin: 0 0 10px;
  color: #444;
  font-size: 20px;
  position: relative;
  font-weight: 600;
}

#sidebar ul li {
  background: url(images/arrow.png) no-repeat center left;
  list-style: none;
  padding: 7px 0 5px 20px;
  list-style-position: inside;
  margin: 0;
  border-bottom: 1px solid #eee;
}
#sidebar ul li:hover {
  background-color: #f9f9f9;
}
#sidebar ul li a {
  padding: 0;
  color: #3b3b3b;
  display: inline-block;
}
#sidebar ul li a:hover {
  color: #34c6f6;
}
#sidebar ul li:last-child {
  border: none;
}

#sidebar .search-form {
  margin-bottom: 20px;
}
#sidebar .search-form input.search-field {
  background-color: #fff;
  width: 80%;
  padding: 12px 15px 12px 15px;
  box-sizing: border-box;
  border: 1px solid #ddd;
}
#sidebar .search-form input.search-submit {
  background: url(images/search-icon.png) no-repeat center center #efc62c;
  padding: 12px 0 12px 0;
  font-size: 0;
  width: 20%;
  height: 43px;
  float: right;
  border: 0;
}

/* = Footer css
-------------------------------------------------------------- */
.sitefooter {
  background-color: var(--primary-color);
  padding: 0;
  position: relative;
  color: #999;
}
.copyright-txt span {
  color: #efc62c;
}
.copyleft {
  float: left;
}
.design-by {
  float: right;
}
.design-by a:hover {
  color: #999;
}

.ftr-col-1 {
  width: 23%;
  float: left;
  margin: 0 3% 0 0;
  box-sizing: border-box;
}
.ftr-col-2 {
  width: 23%;
  float: left;
  margin: 0 3% 0 0;
  box-sizing: border-box;
}
.ftr-col-3 {
  width: 22%;
  float: left;
  margin: 0 3% 0 0;
  box-sizing: border-box;
}
.ftr-col-4 {
  width: 22%;
  float: left;
  margin: 0 0 0 0;
  box-sizing: border-box;
}

.sitefooter h5 {
  font-weight: 600;
  font-size: 22px;
  color: #ccc;
  margin-bottom: 40px;
}
.sitefooter ul {
  margin: 0;
  padding: 0;
  list-style: inside disc;
}
.sitefooter ul li {
  padding: 0 0 5px 0;
  margin: 0;
  color: #ccc;
}
.sitefooter ul li a {
  color: #ccc;
}
.sitefooter ul li a:hover,
.sitefooter ul li.current_page_item a {
  color: #ff8a01;
}
.sitefooter .widget {
  margin-bottom: 20px;
  padding: 40px 0;
}
.footer-copyright {
  /* background-color: #101010; */
  color: #fff;
  padding: 25px 0;
}
.footer-copyright a:hover {
  color: #fff;
}

/* = Contact Form 7 css
-------------------------------------------------------------- */
.wpcf7 {
  margin: 30px 0 0;
  padding: 0;
}
.wpcf7 input[type="text"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="email"] {
  width: 40%;
  border: 1px solid #cccccc;
  box-shadow: inset 1px 1px 2px #ccc;
  height: 35px;
  padding: 0 15px;
  color: #797979;
  margin-bottom: 0;
}
.wpcf7 textarea {
  width: 60%;
  border: 1px solid #cccccc;
  box-shadow: inset 1px 1px 2px #ccc;
  height: 150px;
  color: #797979;
  margin-bottom: 25px;
  font: 12px arial;
  padding: 10px;
  padding-right: 0;
}
.wpcf7 input[type="submit"] {
  background-color: #efc62c;
  width: auto;
  border: none;
  cursor: pointer;
  font: 18px "Assistant", san-serif;
  color: #ffffff;
  padding: 10px 40px;
  border-radius: 3px;
}

/* = Comment Form css
-------------------------------------------------------------- */
h1.screen-reader-text {
  font: 22px "Assistant", san-serif;
}
.site-nav-previous,
.nav-previous {
  float: left;
}
.site-nav-next,
.nav-next {
  float: right;
}
h3#reply-title {
  font-size: 20px;
}
#comments {
  margin: 30px 0 0;
  padding: 0;
}
nav#nav-below {
  margin-top: 15px;
}

/* Comment styles */
ol.commentlist {
  list-style: none;
}
#commentform p {
  margin: 5px 0;
}
#commentform label {
  display: block;
}
#commentform input#email,
#commentform input#url,
#commentform input#author,
#commentform textarea,
#commentform input#eazycfc_captcha {
  max-width: 96%;
  border: 1px #ccc solid;
  padding: 5px 2%;
}
#commentform input#submit {
  background-color: #32373a;
  border: none;
  padding: 8px 15px;
  color: #fff;
  display: inline-block;
  cursor: pointer;
}
#commentform input#submit:hover {
  background: #34c6f6;
  border-bottom-color: #ccc;
  color: #fff;
}
.form-allowed-tags {
  display: none;
}
.entry-content table,
.comment-body table {
  border-collapse: collapse;
  margin: 10px 0;
}
.entry-content table td,
.entry-content table th,
.comment-body table td,
.comment-body table th {
  padding: 10px 5px;
  text-align: left;
}
.entry-content table th,
.comment-body table th {
  color: #676767;
  font: normal 18px Oswald;
  border-bottom: 1px #888 solid;
}
.entry-content table td,
.comment-body table td {
  border-bottom: 1px #ccc solid;
}
.fvch-codeblock:hover .comment-form-url {
  display: block !important;
}
.commentlist,
ol.commentlist {
  list-style: none;
  box-shadow: 0 0 5px #666;
  -moz-box-shadow: 0 0 5px #666;
  -webkit-box-shadow: 0 0 5px #666;
  -khtml-box-shadow: 0 0 5px #666;
  margin: 10px 0;
  background-color: #fff;
  padding: 10px 0;
}
.commentlist li,
ol.commentlist li {
  list-style: none;
  background-image: none !important;
  padding: 0px 15px;
}
.commentlist li ol li.depth-2,
.commentlist li ol li.depth-3,
.commentlist li ol li.depth-4,
ol.commentlist li ol li.depth-2,
ol.commentlist li ol li.depth-3,
ol.commentlist li ol li.depth-4 {
  border-bottom: none;
}
.commentlist li.bypostauthor article,
ol.commentlist li.bypostauthor article {
  background: #f9ffe1;
}
.commentlist article,
.commentlist li.bypostauthor li article,
ol.commentlist li.bypostauthor li article {
  border: none !important;
  padding: 10px;
  position: relative;
  background-color: #fff;
}
.commentlist li .fn {
  font-weight: normal;
  font-size: 15px;
  font-style: normal;
}
.commentlist li.bypostauthor .fn,
ol.commentlist li.bypostauthor .fn {
  color: #000;
}
img.avatar {
  vertical-align: middle;
  position: static;
  display: inline-block;
}
.commentlist article a time {
  display: block;
  clear: both;
  padding: 5px 0 10px;
  font-size: 11px;
  font-style: italic;
}
.commentlist,
ol.commentlist p {
  font-size: 14px;
}
.commentlist .reply span,
ol.commentlist .reply span {
  display: none;
}
.commentlist .reply a,
ol.commentlist .reply a {
  display: block;
  padding: 10px;
  text-align: center;
  background: #f6f6f6;
  margin: 5px 0;
  border: 1px #ddd solid;
}
.comment-author.vcard {
  display: inline-block;
  margin-right: 15px;
}
.comment-list ul.children li.comment {
  background-image: none;
  padding-left: 5px;
}

/* Accessibility */
/* Text meant only for screen readers. */
.screen-reader-text {
  border: 0;
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute !important;
  width: 1px;
  word-wrap: normal !important;
  /* Many screen reader and browser combinations announce broken words as they would appear visually. */
}
.screen-reader-text:focus {
  background-color: #f1f1f1;
  border-radius: 3px;
  box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
  clip: auto !important;
  clip-path: none;
  color: #21759b;
  display: block;
  font-size: 14px;
  font-size: 0.875rem;
  font-weight: bold;
  height: auto;
  left: 5px;
  line-height: normal;
  padding: 15px 23px 14px;
  text-decoration: none;
  top: 5px;
  width: auto;
  z-index: 100000;
  /* Above WP toolbar. */
}
/* Do not show the outline on the skip link target. */
#ps_page_wrapper[tabindex="-1"]:focus {
  outline: 0;
}

/* = Navigation Focus CSS
-------------------------------------------- */
#sitelayout_type a:focus,
button:focus,
input[type="button"]:focus,
input[type="url"]:focus,
input[type="password"]:focus,
input[type="search"]:focus,
input[type="reset"]:focus,
input[type="submit"]:focus,
input[type="text"]:focus,
input[type="email"]:focus,
input[type="number"]:focus,
input[type="tel"]:focus,
input[type="range"]:focus,
input[type="week"]:focus,
input[type="time"]:focus,
input[type="date"]:focus,
input[type="month"]:focus,
input[type="datetime"]:focus,
input[type="datetime-local"]:focus,
input[type="color"]:focus,
textarea:focus {
  outline: none !important;
}

.page_content_layout a {
  text-decoration: underline;
  font-weight: bold;
}

/* WooCommerce plugin css code */
a.added_to_cart {
  background: #e1472f;
  padding: 5px;
  display: inline-block;
  color: #fff;
  line-height: 1;
}
a.added_to_cart:hover {
  background: #000000;
}
a.button.added:before {
  content: "" !important;
}
#bbpress-forums ul li {
  padding: 0;
}
#subscription-toggle a.subscription-toggle {
  padding: 5px 10px;
  display: inline-block;
  color: #e1472f;
  margin-top: 4px;
}
textarea.wp-editor-area {
  border: 1px #ccc solid;
}
.woocommerce input[type="text"],
.woocommerce textarea {
  border: 1px #ccc solid;
  padding: 4px;
}
form.woocommerce-ordering select {
  padding: 5px;
  color: #777777;
}
.woocommerce table.shop_table th,
.woocommerce-page table.shop_table th {
  color: #ff8a00;
}
.woocommerce ul.products li.product .price,
.woocommerce-page ul.products li.product .price {
  color: inherit !important;
}
h1.product_title,
p.price {
  margin-bottom: 10px;
}

.woocommerce table.shop_table th,
.woocommerce-page table.shop_table th {
  color: #ff6d84;
}
.woocommerce ul.products li,
#payment ul.payment_methods li {
  list-style: none !important;
}
.woocommerce ul.products li.product .price,
.woocommerce-page ul.products li.product .price {
  color: inherit !important;
}
.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
  border-bottom: 0px !important;
}

.woocommerce .quantity .qty {
  padding: 7px;
  border: 1px solid #ccc;
}
.woocommerce-Price-amount.amount {
  font-size: 14px !important;
}
.woocommerce div.product .product_title {
  padding-bottom: 20px !important;
}
.woocommerce div.product form.cart {
  margin-top: 15px !important;
}

/* Container */
.hotel-policy-accordion {
  --accent: #b85c38; /* accent color */
  --border: #e6e6e6;
  --text: #222;
  --muted: #666;
  max-width: 900px;
  margin: 0 auto;
  padding: 24px 16px 40px;
  font-family: "Cormorant Garamond", serif;
  font-optical-sizing: auto;
  font-weight: 500;
  font-style: normal;
  color: var(--text);
  line-height: 1.65;
}

/* Title */
.hotel-policy-accordion h1 {
  text-align: center;
  font-size: 2.1rem;
  margin: 0 0 8px;
}

/* Expand/Collapse controls */
.hotel-policy-accordion .accordion-controls {
  display: flex;
  gap: 10px;
  justify-content: center;
  margin: 8px 0 20px;
}
.hotel-policy-accordion .accordion-controls button {
  border: 1px solid var(--border);
  background: #ffffff38;
  padding: 8px 12px;
  border-radius: 10px;
  cursor: pointer;
  font: inherit;
}
.hotel-policy-accordion .accordion-controls button:hover {
  border-color: var(--accent);
}

/* Details/summary styling */
.hotel-policy-accordion details {
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 0;
  margin: 10px 0;
  background: #ffffff38;
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.02);
}

.hotel-policy-accordion summary {
  list-style: none;
  cursor: pointer;
  padding: 14px 16px;
  font-weight: 700;
  font-size: 1.5rem;
  color: #6d4227;
  display: flex;
  align-items: center;
  gap: 10px;
}

/* Remove default arrow and add custom chevron */
.hotel-policy-accordion summary::-webkit-details-marker {
  display: none;
}
.hotel-policy-accordion summary::after {
  content: "▾";
  margin-left: auto;
  transition: transform 0.2s ease;
  color: var(--muted);
}
.hotel-policy-accordion details[open] summary::after {
  transform: rotate(-180deg);
}

/* Panel content */
.hotel-policy-accordion details > *:not(summary) {
  padding: 0 16px 14px 16px;
  font-size: 1.2rem;
}
.hotel-policy-accordion p {
  margin: 8px 0 0;
}
.hotel-policy-accordion ul {
  margin: 8px 0 0 20px;
}
.hotel-policy-accordion li {
  margin: 6px 0;
}

/* Compact on mobile */
@media (max-width: 600px) {
  .hotel-policy-accordion {
    padding: 16px 12px 28px;
  }
  .hotel-policy-accordion summary {
    padding: 12px 14px;
  }
}
/* index.css (editor styles) */
/* Allow full-width blocks to truly break out of centered containers */
:where(.entry-content, .block-editor-block-list__layout) > .alignfull {
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  width: 100vw !important;
  max-width: 100vw !important;
}

/* Full-viewport height hero, safe across mobile browsers */
.hero-fullbleed {
  min-height: 100svh; /* modern mobile view height */
  min-height: 100vh; /* fallback */
  display: flex;
  align-items: center;
}

/* Optional: tidy inner content width & spacing */
.hero-fullbleed .wp-block-group {
  padding: clamp(24px, 6vh, 80px) 16px;
}

/* Fix potential horizontal scrollbar on some themes */
html,
body {
  overflow-x: clip;
}
.sticky {
  position: fixed !important;
  top: 0;
}

/* /* ===== 4-box photo grid with overlay & centered text ===== */
.ghh-grid4 {
  --gap: 18px;
  display: grid;
  gap: var(--gap);
  grid-template-columns: repeat(4, 1fr);
  max-width: 1200px;
  margin: 0 auto;
  padding: 10px 16px;
  width: 100%;
}

/* 2 cols on tablets, 1 col on phones */
@media (max-width: 1024px) {
  .ghh-grid4 {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 600px) {
  .ghh-grid4 {
    grid-template-columns: 1fr;
  }
}

.ghh-card {
  position: relative;
  display: grid; /* centers content easily */
  place-items: center; /* center text horizontally & vertically */
  aspect-ratio: 4 / 3; /* tile shape; change to 1/1 for squares */
  border-radius: 16px;
  overflow: hidden;
  text-decoration: none; /* if using <a> */
  isolation: isolate; /* keep pseudo-elements under label */
  z-index: 0;
  cursor: pointer;
  text-decoration: none !important;
  container-type: inline-size;
}

/* background image layer */
.ghh-card::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: var(--bg);
  background-size: cover;
  background-position: center;
  transform: scale(1);
  transition: transform 0.45s ease;
  z-index: 0;
  pointer-events: none;
}

/* translucent overlay */
.ghh-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background: var(
    --overlay,
    rgba(58, 58, 58, 0.65)
  ); /* tweak per-card if needed */
  transition: background 0.25s ease;
  z-index: 0;
  pointer-events: none;
}

/* centered text */
.ghh-label {
  color: #fff;
  font-weight: 200;
  font-family: "Cormorant Garamond", serif;
  /* font-size: clamp(1.1rem, 2.6vw, 1.8rem); */
  line-height: 1.2;
  text-align: left;
  padding: 10px 14px; /* breathing room for long words */
  text-transform: uppercase; /* optional: match your theme style */
  letter-spacing: 0.03em;
  position: relative;
  z-index: 1;
  pointer-events: none;
  text-decoration: none !important;
  display: block;
  box-sizing: border-box;
  width: 100%;
  padding-inline: 6%;
  white-space: nowrap;

  /* was: clamp(1.1rem, 2.6vw, 1.8rem); */
  font-size: clamp(18px, 9cqi, 52px); /* scales with the card width */
}

/* hover / focus states */
.ghh-card:hover::before {
  transform: scale(1.05);
}
.ghh-card:hover::after {
  background: rgba(117, 117, 117, 0.48);
}
.ghh-card:focus-visible {
  outline: 3px solid #efc62c; /* matches your theme accent */
  outline-offset: 3px;
}

/* (Optional) square tiles instead of 4:3
.ghh-card { aspect-ratio: 1 / 1; }
*/

/* ===== Ginger Hall Footer ===== */
.ghh-footer {
  --bg: #e5ddd1; /* beige background */
  --ink: #5a6773; /* grey-blue text */
  --ink-hover: #2f3b48; /* darker on hover */
  --accent: #efc62c; /* matches your theme accent */
  background: var(--bg);
  color: var(--ink);
  font-size: 14px;
  line-height: 1;
}

.ghh-footer .ghh-wrap {
  max-width: 1200px;
  margin: 0 auto;
  padding: 12px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.ghh-left {
  display: flex;
  align-items: center;
  gap: 18px; /* spacing between items */
  flex-wrap: wrap; /* allows wrap on smaller widths */
}

/* Social icons */
.ghh-social {
  display: inline-grid;
  place-items: center;
  width: 22px;
  height: 22px;
  color: var(--ink);
  text-decoration: none;
}
.ghh-social svg {
  width: 100%;
  height: 100%;
  fill: currentColor;
}
.ghh-social:hover {
  color: var(--ink-hover);
}

/* Text links left */
.ghh-link {
  color: var(--ink);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.ghh-link:hover {
  color: var(--ink-hover);
}

/* Right-side credit */
.ghh-right {
  display: flex;
  align-items: center;
  gap: 10px;
}
.ghh-credit {
  color: var(--ink);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 600;
  text-decoration: none;
}
.ghh-credit:hover {
  color: var(--ink-hover);
}

/* Focus styles for accessibility */
.ghh-footer a:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
  border-radius: 4px;
}

/* Mobile stack */
@media (max-width: 640px) {
  .ghh-footer .ghh-wrap {
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 10px;
  }
  .ghh-left {
    justify-content: center;
    gap: 14px;
  }
}

/* ===== Restaurant page ===== */
.resto-wrap {
  max-width: 1200px;
  margin: 0 auto;
  padding: 40px 16px;
}

/* Hero */
.resto-hero h1 {
  text-align: center;
  /* font-size: clamp(32px, 6vw, 64px); */
  font-size: clamp(44px, 6vw, 84px);
  line-height: 1.05;
  letter-spacing: 0.01em;
}
.resto-intro {
  max-width: 820px;
  margin: 14px auto 0;
  text-align: center;
  font-size: clamp(16px, 2.4vw, 20px);
  color: #4a4a4a;
}

/* ===== Gallery mosaic ===== */
.resto-grid {
  --gap: 16px;
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: var(--gap);
}

/* Tiles */
.resto-tile {
  position: relative;
  border-radius: 16px;
  overflow: hidden;
  background: #ddd;
  isolation: isolate;
  transform: translateZ(0); /* smooth transforms */
}
.resto-tile::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: var(--bg);
  background-size: cover;
  background-position: center;
  transition: transform 0.5s ease, filter 0.5s ease;
  z-index: -1;
}
.resto-tile::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.28), rgba(0, 0, 0, 0.08));
  pointer-events: none;
}
.resto-tile:hover::before {
  transform: scale(1.04);
  filter: saturate(1.05);
}

/* Spans (desktop) */
.resto-tile.span-12 {
  grid-column: span 12;
}
.resto-tile.span-6 {
  grid-column: span 6;
}
.resto-tile.span-4 {
  grid-column: span 4;
}
.resto-tile.span-3 {
  grid-column: span 3;
}

/* Aspect ratios */
.resto-tile.ratio-21-9 {
  aspect-ratio: 21/9;
}
.resto-tile.ratio-4-5 {
  aspect-ratio: 4/5;
}
.resto-tile.ratio-3-2 {
  aspect-ratio: 3/2;
}
.resto-tile.ratio-1-1 {
  aspect-ratio: 1/1;
}
.resto-tile.ratio-3-4 {
  aspect-ratio: 3/4;
}

/* Responsive mosaic */
@media (max-width: 980px) {
  .resto-grid {
    grid-template-columns: repeat(8, 1fr);
  }
  .resto-tile.span-12 {
    grid-column: span 8;
  }
  .resto-tile.span-6 {
    grid-column: span 4;
  }
  .resto-tile.span-4 {
    grid-column: span 4;
  }
  .resto-tile.span-3 {
    grid-column: span 4;
  }
}
@media (max-width: 640px) {
  .resto-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }
  .resto-tile {
    grid-column: span 2;
  }
}

/* ===== Chef section ===== */
.resto-chef .resto-wrap {
  padding-top: 24px;
}
.resto-chef-grid {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 32px;
  align-items: center;
}
.chef-media img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 16px;
  object-fit: cover;
}
.chef-copy h2 {
  font-size: clamp(24px, 3.2vw, 36px);
  margin: 0 0 10px;
}
.chef-copy p {
  margin: 10px 0;
  color: #444;
  font-size: 18px;
  line-height: 1.6;
}
@media (max-width: 860px) {
  .resto-chef-grid {
    grid-template-columns: 1fr;
  }
  .chef-media {
    order: -1;
  }
}

/* ===== Menus rail (horizontal scroll / swipe) ===== */
.resto-menus h2 {
  text-align: center;
  font-size: clamp(24px, 3.2vw, 36px);
  margin-bottom: 8px;
}
.resto-menus-note {
  text-align: center;
  color: #666;
  margin-bottom: 18px;
}

.menu-rail {
  --gap: 16px;
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: clamp(220px, 28vw, 320px);
  gap: var(--gap);
  overflow-x: auto;
  padding: 6px 4px 18px;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
}
.menu-rail::-webkit-scrollbar {
  height: 8px;
}
.menu-rail::-webkit-scrollbar-thumb {
  background: #c8c8c8;
  border-radius: 4px;
}

/* Menu cards */
.menu-card {
  position: relative;
  display: grid;
  place-items: center;
  aspect-ratio: 4/5;
  border-radius: 16px;
  overflow: hidden;
  text-decoration: none !important;
  color: #fff;
  scroll-snap-align: start;
  isolation: isolate;
  cursor: pointer;
}
.menu-card::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: var(--bg);
  background-size: cover;
  background-position: center;
  transition: transform 0.45s ease;
  z-index: 0;
  pointer-events: none;
}
.menu-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.38);
  transition: background 0.25s ease;
  z-index: 0;
  pointer-events: none;
}
.menu-card:hover::before {
  transform: scale(1.05);
}
.menu-card:hover::after {
  background: rgba(0, 0, 0, 0.5);
}

/* Centered label that doesn't block clicks */
.menu-label {
  position: relative;
  z-index: 1;
  pointer-events: none;
  font-weight: 200;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  box-sizing: border-box;
  width: 100%;
  padding-inline: 6%;
  text-align: left;
  white-space: nowrap;
  font-size: clamp(16px, 7cqi, 28px); /* scales with the card width */
  font-family: "Spectral SC", serif;
}

/* Mobile: turn the rail into a vertical list if preferred */
@media (max-width: 560px) {
  .menu-rail {
    grid-auto-flow: row;
    grid-auto-rows: 220px;
    grid-template-columns: 1fr;
    overflow-x: visible;
    overflow-y: visible;
  }
}

/* =========================
   FIX 1 — Gallery on mobile
   ========================= */
/* Make the gallery a single column on small screens and force every tile to span full width */
@media (max-width: 640px) {
  .resto-grid {
    grid-template-columns: 1fr !important;
    gap: 12px;
  }
  .resto-grid > .resto-tile {
    grid-column: 1 / -1 !important; /* ignore span-3/span-4/etc */
    width: 100%;
    min-width: 0; /* avoid min-content shrink in grid */
    justify-self: stretch;
    align-self: stretch;
    display: block; /* be safe with AOS transforms */
  }
}

/* =========================
   FIX 2 — Menu rail vertical
   ========================= */
/* When stacking vertically, drop the horizontal grid settings entirely */
@media (max-width: 560px) {
  .menu-rail {
    /* kill horizontal-rail grid settings */
    grid-auto-flow: unset !important;
    grid-auto-columns: unset !important;
    grid-auto-rows: unset !important;
    grid-template-columns: none !important;
    scroll-snap-type: none;

    /* switch to a simple vertical list */
    display: flex;
    flex-direction: column;
    gap: var(--gap);
    overflow: visible;
  }

  .menu-card {
    width: 100%;
    min-width: 0; /* prevent weird shrink */
    /* keep your aspect ratio-driven height */
    /* aspect-ratio: 4 / 5;  (already set in your base styles) */
  }
}

/* Optional hardening: ensure grid/flex children can shrink */
.resto-tile,
.menu-card {
  min-width: 0;
}

/* ===== Split two-column pattern (left title, right content) ===== */
.resto-split {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: clamp(20px, 4vw, 40px);
  align-items: start;
}
.resto-split__left h2 {
  font-size: clamp(30px, 3.2vw, 36px);
  margin: 0 0 6px;
}
.resto-muted {
  color: #666;
}
.resto-note {
  color: #555;
  margin-top: 10px;
}

@media (max-width: 820px) {
  .resto-split {
    grid-template-columns: 1fr;
  }
}

/* ===== Opening Hours ===== */
.hours-list {
  --line: #e6e0d6;
  margin: 6px 0 14px;
  padding: 0;
  list-style: none;
  border: 1px solid var(--line);
  border-radius: 12px;
  overflow: hidden;
  margin: 0 !important;
}
.hours-list li {
  display: grid;
  grid-template-columns: 90px 1fr;
  gap: 10px;
  padding: 10px 12px;
  align-items: center;
  border-bottom: 1px solid var(--line);
  background: #ffffff52;
}
.hours-list li:nth-child(odd) {
  background: #cec1ac;
}
.hours-list li:last-child {
  border-bottom: 0;
}
.hours-list .day {
  font-weight: 700;
  color: #3e4a55;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.hours-list .time {
  color: #333;
}

.ghh-cta.inline {
  display: inline-block;
  margin-top: 6px;
  position: relative !important;
}

/* ===== Events section ===== */
.resto-events .btn-secondary {
  display: inline-block;
  margin-top: 12px;
  padding: 10px 16px;
  border-radius: 999px;
  border: 1px solid #3e4a55;
  color: #3e4a55;
  text-decoration: none;
  font-weight: 700;
  letter-spacing: 0.05em;
}
.resto-events .btn-secondary:hover {
  background: #3e4a55;
  color: #fff;
}

/* ===== Floating Book Now button (always visible) ===== */
.resto-book-fab {
  position: fixed;
  right: calc(16px + env(safe-area-inset-right, 0));
  bottom: calc(16px + env(safe-area-inset-bottom, 0));
  z-index: 2000;
  display: inline-block;
  padding: 12px 18px;
  border-radius: 999px;
  background: #a38471; /* your accent */
  border: 1px solid #2f3b48;
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.12);
  color: white !important;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-decoration: none !important;
  transition: filter 0.2s ease, transform 0.08s ease;
}
.resto-book-fab:hover {
  filter: brightness(0.95);
  transform: translateY(-5px);
}

/* Make sure it’s not hidden by other fixed bars */
body {
  padding-bottom: 0;
} /* adjust if you have a sticky footer */
@media (max-width: 560px) {
  .resto-book-fab {
    padding: 12px 16px;
    font-size: 14px;
  }
}

/* ===== Restaurant: split hero text block ===== */
.resto-feature {
  --bg: #efe6d9; /* warm paper-beige */
  --ink: #3e4a55; /* slate heading */
  --muted: #6a7785;
  background: none;
}

.resto-feature .resto-wrap {
  padding: clamp(36px, 6vw, 72px) 16px;
}

.resto-feature-grid {
  display: grid;
  grid-template-columns: 1.2fr 1fr; /* left bigger, right copy */
  gap: clamp(24px, 5vw, 56px);
  align-items: start;
}

.eyebrow {
  font-family: "Assistant", sans-serif;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-weight: 700;
  font-size: clamp(13px, 1.6vw, 16px);
  margin: 0 0 10px 0;
}

/* Big display headline using your theme’s serif (Spectral SC in your CSS) */
.display-lines {
  color: var(--heading-color);
  font-family: "Spectral SC", serif;
  font-weight: 600;
  line-height: 0.95;
  letter-spacing: 0.02em;
  font-size: clamp(32px, 8vw, 96px); /* scales nicely from mobile to desktop */
  margin: 0;
  max-width: 20ch; /* keeps lines elegant */
}
.display-lines span {
  display: block;
} /* one word per row as in the screenshot */

.feature-right .lead {
  font-size: clamp(16px, 2.2vw, 20px);
  color: #333;
  line-height: 1.7;
  margin: 0 0 10px;
}
.feature-right .lead strong {
  font-weight: 800;
}
.feature-right p {
  font-size: clamp(18px, 2vw, 20px);
  color: #444;
  line-height: 1.7;
  margin: 10px 0 0;
}

/* Responsive: stack on small screens */
@media (max-width: 900px) {
  .resto-feature-grid {
    grid-template-columns: 1fr;
  }
  .feature-left {
    text-align: center;
  }
  .display-lines {
    margin-left: auto;
    margin-right: auto;
  }
}
/* === Option C: editorial split with divider + drop cap === */
.resto-feature.style-editorial .resto-feature-grid {
  position: relative;
}
.resto-feature.style-editorial .resto-feature-grid::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 1px;
  background: rgba(62, 74, 85, 0.18);
  transform: translateX(-12px); /* slight offset from right column */
}
@media (max-width: 900px) {
  .resto-feature.style-editorial .resto-feature-grid::before {
    display: none;
  }
}

/* Vertical eyebrow at the far left */
.resto-feature.style-editorial .eyebrow {
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  letter-spacing: 0.18em;
  opacity: 0.8;
  margin: 0 0 14px;
}

@media all and (max-width: 900px) {
  .resto-feature.style-editorial .eyebrow {
    writing-mode: horizontal-tb;
    transform: none;
  }
}

/* Display tweaks */
.resto-feature.style-editorial .display-lines {
  font-weight: 700;
  letter-spacing: 0.015em;
}

/* Drop cap in the first paragraph on the right */
.resto-feature.style-editorial .feature-right .lead:first-letter {
  float: left;
  font-family: "Spectral SC", serif;
  font-size: clamp(44px, 7vw, 70px);
  line-height: 0.8;
  padding: 0.12em 0.14em 0 0;
  color: var(--heading-color);
}

/* ========== Ginger Hall Header (warm pub feel) ========== */
.ghh-header {
  --bg: #e8ddcc; /* warm beige */
  --ink: #2f3b48; /* slate text */
  --muted: #5e6a75; /* muted slate */
  --line: #cbb99f; /* subtle border */
  --accent: #efc62c; /* your gold */
  position: sticky;
  top: 0;
  z-index: 1000;
  background: var(--bg);
  border-bottom: 1px solid var(--line);
  overflow: clip;
}

/* subtle linen/tape at the top for a heritage vibe */
.ghh-header::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 6px;
  background: linear-gradient(to right, rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0)) 0
      0/100% 1px no-repeat,
    repeating-linear-gradient(
      90deg,
      rgba(0, 0, 0, 0.05) 0 6px,
      transparent 6px 12px
    );
  opacity: 0.5;
  pointer-events: none;
}

.ghh-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 14px 16px 12px;
  display: grid;
  grid-template-columns: 1fr;
  justify-items: center;
  gap: 8px;
}

/* Brand */
.ghh-brand {
  position: relative;
  text-align: center;
}
.ghh-brand::before {
  /* subtle crest watermark behind the logo */
  content: "";
  position: absolute;
  inset: auto;
  left: 50%;
  top: 52%;
  width: clamp(180px, 36vw, 360px);
  aspect-ratio: 1/1;
  transform: translate(-50%, -50%);
  background: url("/wp-content/uploads/2025/09/main-logo.png") center/contain
    no-repeat;
  opacity: 0.06;
  pointer-events: none;
}
.ghh-logo img {
  display: block;
  width: clamp(110px, 18vw, 160px);
  height: auto;
  margin: 0 auto;
}
.ghh-tagline {
  margin-top: 6px;
  font: 600 13px/1.2 "Assistant", system-ui, sans-serif;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
}

/* Nav row (centered under brand) */
.ghh-nav {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
}
.ghh-nav.open {
  display: block !important;
}
.ghh-nav .menu {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  gap: clamp(12px, 3vw, 28px);
  align-items: center;
  justify-content: center;
}
.ghh-nav .menu li {
  position: relative;
}
.ghh-nav .menu a {
  color: var(--ink);
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 700;
  padding: 8px 2px;
}
.ghh-nav .menu a:hover,
.ghh-nav .menu .current_page_item > a {
  text-decoration: underline;
  text-underline-offset: 4px;
}

/* CTA pill */
.ghh-cta {
  display: inline-block;
  padding: 10px 16px;
  border-radius: 999px;
  background: var(--button-color) !important;
  color: #fff !important;
  text-decoration: none;
  font-weight: 800;
  letter-spacing: 0.06em;
}
.ghh-cta:hover {
  filter: brightness(0.92);
}

/* Burger (mobile only) */
.ghh-burger {
  position: absolute;
  left: 14px;
  top: 14px;
  width: 42px;
  height: 42px;
  border-radius: 10px;
  border: 1px solid var(--line);
  background: transparent;
  display: none; /* hidden on desktop */
}
.ghh-burger .bar {
  display: block;
  width: 22px;
  height: 2px;
  background: var(--ink);
  margin: 6px auto;
}

/* Desktop: keep nav visible */
@media (min-width: 901px) {
  .ghh-container {
    grid-auto-rows: auto;
  }
}

/* Mobile drawer */
@media (max-width: 900px) {
  .ghh-burger {
    display: grid;
  }
  .ghh-container {
    padding-top: 58px;
  } /* space for burger */

  .ghh-nav {
    position: fixed;
    inset: 64px 12px auto 12px;
    background: var(--bg);
    border: 1px solid var(--line);
    border-radius: 16px;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.12);
    padding: 14px;
    display: none; /* hidden by default */
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
    text-align: left;
  }
  .ghh-nav.is-open {
    display: flex;
  } /* toggled by JS above */

  .ghh-nav .menu {
    display: block;
  }
  .ghh-nav .menu li {
    list-style: none;
  }
  .ghh-nav .menu a {
    display: block;
    padding: 12px 6px;
  }

  .ghh-cta {
    width: 52%;
    text-align: center;
    /* position: fixed;
    bottom: 20px;
    z-index: 100; */
  }
}

/* Accessibility */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.ghh-header a:focus-visible,
.ghh-burger:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
  border-radius: 8px;
}

/* ===== Unique, simple footer with centered badge ===== */
.ghh-footer-badge {
  --bg: #e5ddd1; /* warm pub beige */
  --ink: #505e6b; /* slate text */
  --ink-2: #2f3b48; /* darker hover */
  --line: #cfc5b5; /* subtle rule */
  --accent: #efc62c; /* site accent */
  position: relative;
  background: var(--bg);
  color: var(--ink);
  overflow: clip;
}

/* thin decorative tape on top */
.ghh-footer-badge::before {
  content: "";
  position: absolute;
  inset: 0 auto auto 0;
  width: 100%;
  height: 6px;
  background: linear-gradient(to right, rgba(0, 0, 0, 0.04), rgba(0, 0, 0, 0)) 0
      0/100% 1px no-repeat,
    repeating-linear-gradient(
      90deg,
      rgba(0, 0, 0, 0.04) 0 6px,
      transparent 6px 12px
    );
  opacity: 0.6;
}

.ghh-fwrap {
  max-width: 1200px;
  margin: 0 auto;
  padding: 18px 16px 22px;
  text-align: center;
  display: grid;
  gap: 14px;
}

/* brand */
.ghh-brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  color: var(--ink);
}
.ghh-brand img {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  display: block;
  box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.06) inset;
}
.ghh-brand-text {
  font-family: "Spectral SC", serif;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: 15px;
}

/* link chips + socials */
.ghh-fnav {
  display: grid;
  gap: 12px;
  justify-items: center;
}
.ghh-links {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 18px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.ghh-links a {
  display: inline-block;
  padding: 6px 10px;
  border: 1px solid var(--line);
  border-radius: 999px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 700;
  font-size: 12px;
  font-family: "Cormorant Garamond", serif;
  color: var(--ink);
  text-decoration: none;
  background: linear-gradient(currentColor, currentColor) left bottom / 0% 2px
    no-repeat;
  transition: background-size 0.25s ease, color 0.2s ease,
    border-color 0.2s ease;
}
.ghh-links a:hover {
  color: var(--ink-2);
  border-color: var(--ink-2);
  background-size: 100% 2px;
}

.ghh-socials {
  display: flex;
  gap: 12px;
  align-items: center;
  justify-content: center;
}
.ghh-sicon {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: var(--ink);
  text-decoration: none;
  border: 1px solid var(--line);
  transition: border-color 0.2s ease, color 0.2s ease, transform 0.15s ease;
}
.ghh-sicon svg {
  width: 16px;
  height: 16px;
  fill: currentColor;
}
.ghh-sicon:hover {
  color: var(--ink-2);
  border-color: var(--ink-2);
  transform: translateY(-1px);
}

/* credits */
.ghh-creditrow {
  border-top: 1px solid var(--line);
  padding-top: 10px;
  display: flex;
  gap: 8px;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  font-size: 12px;
}
.ghh-credit {
  color: var(--ink);
  text-decoration: none;
}
.ghh-credit:hover {
  color: var(--ink-2);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.ghh-creditrow .dot {
  opacity: 0.5;
}

/* watermark crest (subtle) — swap to your logo if you prefer */
.ghh-crest {
  position: absolute;
  inset: auto 0 0 50%;
  transform: translateX(-50%) translateY(35%);
  width: 520px;
  aspect-ratio: 1;
  opacity: 0.06;
  pointer-events: none;
  background: url('data:image/svg+xml;utf8,<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200"><g fill="%233e4a55"><circle cx="100" cy="100" r="96" fill="none" stroke="%233e4a55" stroke-width="6" opacity=".25"/><path d="M100 48c22 0 40 18 40 40s-18 40-40 40-40-18-40-40 18-40 40-40z" fill="none" stroke="%233e4a55" stroke-width="6" opacity=".18"/><path d="M66 124l68-48" stroke="%233e4a55" stroke-width="6" opacity=".18"/></g></svg>')
    center / contain no-repeat;
}

/* mobile tweaks */
@media (max-width: 640px) {
  .ghh-fwrap {
    padding: 16px 12px 20px;
    gap: 12px;
  }
  .ghh-brand-text {
    font-size: 14px;
    text-align: center;
    margin: 0 auto;
  }
  .ghh-links {
    gap: 10px 12px;
  }
  .ghh-crest {
    width: 380px;
    transform: translateX(-50%) translateY(45%);
  }
}

/* focus styles for a11y */
.ghh-footer-badge a:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
  border-radius: 8px;
}

/* ===== Classic centered testimonials (mobile-first) ===== */
.t4-testimonials {
  --ink: #2f3b48; /* main text */
  --muted: #6a7580; /* muted grey */
  --accent: #c75656; /* thin underline accent (burgundy) */
  --rule: #e8e8ea; /* faint shapes */
  color: var(--ink);
}

.t4-wrap {
  max-width: 860px;
  margin: 0 auto;
  padding: clamp(24px, 6vw, 64px) 16px;
  text-align: center;
}

/* Title + subhead (sizes mirror the reference) */
.t4-head h2 {
  font: 800 clamp(28px, 6.2vw, 36px) / 1.1 "Assistant", system-ui, sans-serif;
  letter-spacing: 0.02em;
  margin: 0 0 6px;
}
.t4-head h2::after {
  content: "";
  display: block;
  width: 120px;
  height: 3px;
  margin: 10px auto 0;
  background: var(--accent);
  border-radius: 3px;
}
.t4-sub {
  font: italic 500 clamp(16px, 4.8vw, 20px) / 1.4 "Spectral SC", serif;
  color: var(--muted);
  margin: 10px 0 18px;
}

/* Quotes */
.t4-body {
  position: relative;
  margin-top: clamp(8px, 2vw, 12px);
}
.t4-quote {
  display: none;
  margin: 0;
  animation: t4Fade 0.35s ease both;
  position: relative;
  padding: 22px 0 0;
}
.t4-quote.is-active {
  display: block;
}

/* background quotation marks, very soft */
.t4-quote::before,
.t4-quote::after {
  content: "";
  position: absolute;
  width: 84px;
  height: 84px;
  border-radius: 50%;
  background: radial-gradient(
    circle,
    rgba(0, 0, 0, 0.06),
    rgba(0, 0, 0, 0) 65%
  );
  top: 0;
  transform: translateY(-20%);
  z-index: -1;
}
.t4-quote::before {
  left: 12%;
}
.t4-quote::after {
  right: 12%;
}

.t4-quote blockquote {
  margin: 0 auto;
  max-width: 70ch; /* great reading width for long quotes */
  font: 600 clamp(17px, 4.8vw, 20px) / 1.7 "Assistant", serif;
  color: var(--ink);
}
.t4-quote figcaption {
  margin-top: clamp(12px, 3.2vw, 18px);
}
.t4-name {
  font: 800 12px/1 "Assistant", system-ui, sans-serif;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
.t4-role {
  margin-left: 0.6ch;
  color: var(--accent);
  font: italic 600 14px/1.2 "Spectral SC", serif;
}

/* Avatar tabs (scrollable on small screens) */
.t4-avatars {
  margin-top: clamp(18px, 5vw, 28px);
  display: flex;
  gap: 14px;
  justify-content: center;
  overflow-x: auto;
  padding-bottom: 4px;
  scrollbar-width: none; /* Firefox */
}
.t4-avatars::-webkit-scrollbar {
  display: none;
}

.t4-tab {
  background: none;
  border: 0;
  padding: 0;
  cursor: pointer;
  border-radius: 50%;
  box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.06) inset;
  transition: transform 0.15s ease, box-shadow 0.2s ease, filter 0.2s ease;
}
.t4-tab img {
  display: block;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  filter: grayscale(100%) contrast(1.05);
}
.t4-tab.is-active {
  box-shadow: 0 0 0 2px var(--accent) inset, 0 0 0 6px rgba(199, 86, 86, 0.12);
}
.t4-tab.is-active img {
  filter: none;
}
.t4-tab:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
  border-radius: 999px;
}

/* Simple fade animation */
@keyframes t4Fade {
  from {
    opacity: 0;
    transform: translateY(6px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

/* Tablet/Desktop refinements */
@media (min-width: 900px) {
  .t4-quote::before {
    left: 20%;
  }
  .t4-quote::after {
    right: 20%;
  }
}

/* ===== Hotel Rooms Grid (mobile-first, country-pub vibe) ===== */
.ghh-rooms {
  --bg: #efe6d9; /* parchment */
  --ink: #2f3b48; /* slate */
  --muted: #6a7580; /* muted slate */
  --line: #cbb99f; /* brass/linen line */
  --gold: #efc62c; /* house gold */
  color: var(--ink);
}
.ghh-rooms__wrap {
  max-width: 1200px;
  margin: 0 auto;
  padding: clamp(18px, 5vw, 40px) 16px;
}
.ghh-rooms__title {
  font: 800 clamp(22px, 6vw, 32px) / 1.1 "Spectral SC", serif;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  text-align: center;
  margin: 0 0 clamp(14px, 3vw, 24px);
}
.ghh-rooms__title::after {
  content: "";
  display: block;
  width: 120px;
  height: 3px;
  margin: 10px auto 0;
  background: var(--gold);
  border-radius: 3px;
}

/* grid */
.ghh-rooms__grid {
  display: grid;
  gap: clamp(12px, 3.5vw, 24px);
  grid-template-columns: 1fr; /* mobile: 1 per row */
  list-style: none;
  margin: 0 !important;
  padding: 0;
}
.ghh-rooms__grid > li {
  transition: all 0.3s ease;
  border-radius: 16px;
}
.ghh-rooms__grid > li:hover {
  transform: translateY(-12px);
  box-shadow: rgba(255, 255, 255, 0.1) 0px 1px 1px 0px inset,
    rgba(50, 50, 93, 0.25) 0px 50px 100px -20px,
    rgba(0, 0, 0, 0.3) 0px 30px 60px -30px;
}
@media (min-width: 520px) {
  .ghh-rooms__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 900px) {
  .ghh-rooms__grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (min-width: 1200px) {
  .ghh-rooms__grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

/* card */
.room-card {
  --radius: 16px;
  position: relative;
  display: block;
  isolation: isolate;
  border-radius: var(--radius);
  aspect-ratio: 4 / 3; /* consistent tiles on mobile */
  overflow: hidden;
  text-decoration: none;
  box-shadow: 0 10px 18px rgba(0, 0, 0, 0.08);
  background: #ddd; /* fallback while image loads */
}

/* background image */
.room-card::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
      to top,
      rgba(0, 0, 0, 0.4),
      rgba(0, 0, 0, 0.15) 40%,
      rgba(0, 0, 0, 0.05) 65%,
      transparent
    ),
    var(--bg) center/cover no-repeat;
  transition: transform 0.5s ease, filter 0.4s ease;
  z-index: 0;
}

/* subtle paper texture overlay for pub vibe */
.room-card::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: radial-gradient(
        150% 50% at 50% 100%,
        rgba(0, 0, 0, 0.35),
        transparent 60%
      )
      bottom / 100% 120% no-repeat,
    url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="6" height="6"><circle cx="1" cy="1" r=".5" fill="rgba(0,0,0,0.05)"/></svg>');
  mix-blend-mode: multiply;
  opacity: 0.35;
}

/* content */
.room-card__inner {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 2;
  padding: clamp(10px, 3.2vw, 16px);
  color: #fff;
  text-align: left;
}
.room-card__title {
  display: block;
  font: 700 clamp(16px, 5vw, 20px) / 1.1 "Spectral SC", serif;
  letter-spacing: 0.02em;
}
.room-card__type {
  display: block;
  font: 500 clamp(11px, 3.6vw, 12px) / 1.2 "Cormorant Garamond", system-ui,
    sans-serif;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  opacity: 0.9;
}

/* hover/focus: lift, sharpen image, gold underline reveal */
.room-card:hover::before {
  transform: scale(1.04);
  filter: brightness(1.04) contrast(1.06);
}
.room-card:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 3px;
}
.room-card__title {
  background: linear-gradient(currentColor, currentColor) left bottom / 0% 2px
    no-repeat;
  transition: background-size 0.35s ease;
}
.room-card:hover .room-card__title {
  background-size: 80% 2px;
}

/* make top-left “stitched” corner (heritage detail) */
.room-card {
  background-clip: padding-box;
}
.room-card {
  border: 1px solid rgba(203, 185, 159, 0.65);
}
.room-card {
  clip-path: polygon(0 10px, 10px 0, 100% 0, 100% 100%, 0 100%);
}
.room-card::after {
  border-radius: var(--radius);
}

/* ensure nice tall feel on desktop grids where width grows */
@media (min-width: 900px) {
  .room-card {
    aspect-ratio: 5 / 4;
  }
}

/* ===========================
   Ginger Hall • WPForms (ID 125)
   Country–pub skin, mobile-first
   =========================== */

#wpforms-125,
#wpforms-476 {
  /* palette */
  --ghh-bg: #f3ecdf; /* warm paper */
  --ghh-ink: #2f3b48; /* slate text */
  --ghh-muted: #6a7580; /* muted slate */
  --ghh-line: #cbb99f; /* linen/brass */
  --ghh-gold: #efc62c; /* house gold */
  --ghh-err: #b1453b; /* error */
  --ghh-ok: #2e7d32;

  --radius: 16px;
}

/* Card container */
#wpforms-125.wpforms-container,
#wpforms-476.wpforms-container {
  max-width: 980px;
  margin: 0 auto;
  padding: clamp(18px, 4.5vw, 34px) clamp(14px, 3.2vw, 28px);
  background: var(--ghh-bg);
  border: 1px solid var(--ghh-line);
  border-radius: var(--radius);
  box-shadow: 0 10px 26px rgba(0, 0, 0, 0.08);
  position: relative;
}

/* subtle “tape” flourish on top */
#wpforms-125.wpforms-container::before,
#wpforms-476.wpforms-container::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 6px;
  background: linear-gradient(to right, rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0)) 0
      0/100% 1px no-repeat,
    repeating-linear-gradient(
      90deg,
      rgba(0, 0, 0, 0.05) 0 6px,
      transparent 6px 12px
    );
  opacity: 0.55;
  pointer-events: none;
  border-radius: var(--radius) var(--radius) 0 0;
}

/* Typography */
#wpforms-125 .wpforms-field-label,
#wpforms-476 .wpforms-field-label {
  font: 300 clamp(15px, 2.8vw, 17px) / 1.3 "Spectral SC", serif;
  color: var(--heading-color);
  margin: 0 0 6px;
}
#wpforms-125 .wpforms-required-label,
#wpforms-476 .wpforms-required-label {
  color: #c75656;
}
#wpforms-125 .wpforms-field-sublabel,
#wpforms-476 .wpforms-field-sublabel {
  font: 600 12px/1.2 "Assistant", system-ui, sans-serif;
  color: var(--ghh-muted);
  margin-top: 6px;
}

/* Layout for the name “first/last” row */
#wpforms-125 .wpforms-field-row,
#wpforms-476 .wpforms-field-row {
  display: grid;
  gap: 12px;
}
@media (min-width: 600px) {
  #wpforms-125 .wpforms-field-row,
  #wpforms-476 .wpforms-field-row {
    grid-template-columns: 1fr 1fr;
  }
}

/* Inputs + textarea */
#wpforms-125 input[type="text"],
#wpforms-125 input[type="email"],
#wpforms-125 input[type="tel"],
#wpforms-125 textarea,
#wpforms-125 select,
#wpforms-476 input[type="text"],
#wpforms-476 input[type="email"],
#wpforms-476 input[type="tel"],
#wpforms-476 textarea,
#wpforms-476 select {
  width: 100%;
  background: #b7915414;
  border: 1px solid var(--ghh-line);
  border-radius: 12px;
  padding: 12px 14px;
  font: 400 16px/1.45 "Assistant", system-ui, sans-serif;
  color: var(--ghh-ink);
  box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.04);
  transition: border-color 0.15s ease, box-shadow 0.15s ease,
    transform 0.08s ease;
}
#wpforms-125 textarea,
#wpforms-476 textarea {
  min-height: 160px;
  resize: vertical;
}

/* Focus ring – gold, accessible */
#wpforms-125 input:focus,
#wpforms-125 textarea:focus,
#wpforms-125 select:focus,
#wpforms-476 input:focus,
#wpforms-476 textarea:focus,
#wpforms-476 select:focus {
  outline: none;
  border-color: #926b1f24;
  box-shadow: 0 0 0 3px rgba(213, 191, 163, 0.19);
}

/* Labels sit closer to fields */
#wpforms-125 .wpforms-field,
#wpforms-476 .wpforms-field {
  margin-bottom: clamp(14px, 3.2vw, 20px);
}

/* Submit button (pill) */
#wpforms-125 .wpforms-submit-container,
#wpforms-476 .wpforms-submit-container {
  margin-top: clamp(8px, 2vw, 12px);
}
#wpforms-125 .wpforms-submit,
#wpforms-476 .wpforms-submit {
  appearance: none;
  border: 0;
  background: var(--heading-color);
  color: #fff;
  font: 800 14px/1 "Assistant", system-ui, sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: 13px 22px;
  border-radius: 999px;
  box-shadow: 0 10px 18px rgba(0, 0, 0, 0.12);
  cursor: pointer;
  transition: filter 0.15s ease, transform 0.08s ease, box-shadow 0.2s ease;
}
#wpforms-125 .wpforms-submit:hover,
#wpforms-476 .wpforms-submit:hover {
  filter: brightness(0.94);
}
#wpforms-125 .wpforms-submit:active,
#wpforms-476 .wpforms-submit:active {
  transform: translateY(1px);
}
#wpforms-125 .wpforms-submit:focus-visible,
#wpforms-476 .wpforms-submit:focus-visible {
  outline: 2px solid var(--heading-color);
  outline-offset: 3px;
}

/* Error + validation */
#wpforms-125 .wpforms-error,
#wpforms-476 .wpforms-error {
  margin-top: 6px;
  color: var(--ghh-err);
  font: 700 13px/1.2 "Assistant", system-ui, sans-serif;
}
#wpforms-125 input.wpforms-error,
#wpforms-125 textarea.wpforms-error,
#wpforms-476 input.wpforms-error,
#wpforms-476 textarea.wpforms-error {
  border-color: var(--ghh-err);
  box-shadow: 0 0 0 3px rgba(177, 69, 59, 0.18);
}

/* Success confirmation styling */
#wpforms-125 [id^="wpforms-confirmation"],
#wpforms-476 [id^="wpforms-confirmation"] {
  background: none;
  border: none !important;
  border-radius: 12px;
  /* padding: 14px 16px; */
  margin: 0 !important;
  color: var(--ghh-ok);
  /* box-shadow: 0 8px 18px rgba(0, 0, 0, 0.06); */
  font-family: "Spectral SC";
}

#wpforms-confirmation-125 p,
#wpforms-confirmation-476 p {
  margin-bottom: 0 !important;
}

/* Hide WPForms honeypots/antispam fields gracefully (keep for bots) */
/* #wpforms-125 #wpforms-125-field_4-container {
  display: none !important;
} */
#wpforms-125 #wpforms-125-field_5-container {
  display: none !important;
}

/* Optional: small helper for a heading placed above the form via block editor */
#wpforms-125 .wpforms-title,
#wpforms-476 .wpforms-title {
  font: 800 clamp(20px, 6vw, 28px) / 1.1 "Assistant", system-ui, sans-serif;
  text-align: center;
  margin: 0 0 10px;
  color: var(--ghh-ink);
}
#wpforms-125 .wpforms-description,
#wpforms-476 .wpforms-description {
  text-align: center;
  color: var(--ghh-muted);
  font: italic 600 clamp(14px, 4.6vw, 16px) / 1.4 "Spectral SC", serif;
  margin: 2px 0 16px;
}
/* ===== WPForms (ID 125) name row fix ===== */

/* 1) Remove legacy float/width so grid can take over */
#wpforms-125 .wpforms-field-name .wpforms-field-row,
#wpforms-476 .wpforms-field-name .wpforms-field-row {
  display: grid;
  gap: 12px;
  grid-template-columns: 1fr; /* mobile: stack */
}
@media (min-width: 600px) {
  #wpforms-125 .wpforms-field-name .wpforms-field-row,
  #wpforms-476 .wpforms-field-name .wpforms-field-row {
    grid-template-columns: 1fr 1fr; /* tablet+ two columns */
  }
}

/* 2) Kill widths/floats WPForms adds to the blocks */
#wpforms-125 .wpforms-field-name .wpforms-field-row-block,
#wpforms-476 .wpforms-field-name .wpforms-field-row-block {
  width: auto !important;
  float: none !important;
  min-width: 0; /* prevent overflow in grid */
}

/* 3) Ensure First is left and Last is right on larger screens */
@media (min-width: 600px) {
  #wpforms-125 .wpforms-field-name .wpforms-field-row-block.wpforms-first,
  #wpforms-476 .wpforms-field-name .wpforms-field-row-block.wpforms-first {
    order: 1;
  }
  #wpforms-125 .wpforms-field-name .wpforms-field-row-block:not(.wpforms-first),
  #wpforms-476
    .wpforms-field-name
    .wpforms-field-row-block:not(.wpforms-first) {
    order: 2;
  }
}

/* 4) Inputs expand to fill their cell */
#wpforms-125 .wpforms-field-name input[type="text"],
#wpforms-476 .wpforms-field-name input[type="text"] {
  width: 100%;
}

/* 5) Tidy the fieldset spacing so the headline/row align nicely */
#wpforms-125 .wpforms-field-name fieldset,
#wpforms-476 .wpforms-field-name fieldset {
  border: 0;
  margin: 0;
  padding: 0;
}
#wpforms-125 .wpforms-field-name legend.wpforms-field-label,
#wpforms-476 .wpforms-field-name legend.wpforms-field-label {
  margin-bottom: 8px;
}

@media (max-width: 640px) {
  .wpforms-container
    .wpforms-field
    .wpforms-field-row
    .wpforms-field-row-block {
    padding: 0;
  }
}

/* ========= Structure & spacing (no section backgrounds) ========= */
:root {
  --ink: #2f3b48;
  --muted: #5e6a75;
  --line: #cbb99f;
  --gold: #efc62c;
}
.ghh-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 16px;
}
.ghh-sec {
  padding-block: clamp(36px, 8vw, 96px);
}
.ghh-sec + .ghh-sec {
  border-top: 1px solid var(--line);
} /* hairline between sections */
.center {
  text-align: center;
}
.mt-s {
  margin-top: 0.75rem;
}

/* Buttons */
.btn {
  display: inline-block;
  padding: 12px 18px;
  border-radius: 999px;
  border: 1px solid var(--line);
  text-decoration: none;
  font: 800 13px/1 "Assistant", system-ui, sans-serif;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink);
  transition: filter 0.2s ease, transform 0.08s ease;
}
.btn:hover {
  filter: brightness(0.96);
}
.btn:active {
  transform: translateY(1px);
}
.btn--brand {
  background: var(--ink);
  color: #fff;
  border-color: var(--ink);
}

/* HERO (image only; no colour bg) */
.ghh-hero {
  position: relative;
}
.ghh-hero__bg {
  min-height: 60svh;
  position: relative;
}
.ghh-hero__bg::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
      to top,
      rgba(0, 0, 0, 0.45),
      rgba(0, 0, 0, 0.1) 55%,
      transparent
    ),
    var(--img) center/cover no-repeat;
}
.ghh-hero__inner {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  text-align: center;
  padding: 0 16px;
}
.ghh-hero__title {
  color: #fff;
  font: 800 clamp(28px, 7vw, 48px) / 1.05 "Spectral SC", serif;
  letter-spacing: 0.02em;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.35);
}
.ghh-hero__lede {
  color: #f2f2f2;
  margin: 0.4rem 0 1rem;
  font-weight: 600;
}

/* Tiles */
.ghh-tiles {
  display: grid;
  gap: clamp(12px, 3vw, 18px);
  grid-template-columns: repeat(2, 1fr);
  list-style: none;
  margin: 0;
  padding: 0;
}
@media (min-width: 900px) {
  .ghh-tiles {
    grid-template-columns: repeat(4, 1fr);
  }
}
.tile {
  position: relative;
  display: block;
  aspect-ratio: 4/3;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid var(--line);
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.08);
}
.tile::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.55), rgba(0, 0, 0, 0.15)),
    var(--img) center/cover no-repeat;
  transition: transform 0.5s ease;
}
.tile:hover::before {
  transform: scale(1.05);
}
.tile span {
  position: absolute;
  left: 12px;
  bottom: 12px;
  color: #fff;
  font: 800 13px/1 "Assistant", sans-serif;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 0.45rem 0.7rem;
  border: 1px solid rgba(255, 255, 255, 0.65);
  border-radius: 999px;
}

/* Split sections */
.ghh-split {
  display: grid;
  gap: clamp(16px, 4vw, 28px);
  align-items: center;
}
@media (min-width: 900px) {
  .ghh-split {
    grid-template-columns: 1.05fr 1fr;
  }
  .ghh-split--flip {
    grid-template-columns: 1fr 1.05fr;
  }
  .ghh-split--flip .split__media {
    order: 2;
  }
}
.split__media {
  aspect-ratio: 4/3;
  border-radius: 16px;
  overflow: hidden;
  position: relative;
  border: 1px solid var(--line);
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.08);
  width: 100%;
}
.split__media::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--img) center/cover no-repeat;
}
.eyebrow {
  text-transform: uppercase;
  letter-spacing: 0.14em;
  font-weight: 800;
  color: var(--muted);
}
.split__content h2 {
  font: 800 clamp(30px, 5.5vw, 34px) / 1.1 "Spectral SC", serif;
  margin: 0.2rem 0 0.6rem;
}
.split__content p {
  margin: 0.4rem 0;
}

/* Rooms preview */
.section-title {
  text-align: center;
  font: 800 clamp(22px, 6vw, 32px) / 1.1 "Assistant", sans-serif;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.section-title::after {
  content: "";
  display: block;
  width: 100%;
  max-width: 180px;
  height: 3px;
  background: #8b887d;
  margin: 10px auto 0;
  border-radius: 3px;
}
.rooms-grid {
  display: grid;
  gap: clamp(12px, 3vw, 20px);
  grid-template-columns: 1fr 1fr;
  list-style: none;
  padding: 0;
  margin: 0;
  width: 100%;
}
@media (min-width: 900px) {
  .rooms-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}
.room-card {
  position: relative;
  display: block;
  aspect-ratio: 4/3;
  border-radius: 16px;
  overflow: hidden;
  color: #fff;
  border: 1px solid var(--line);
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.08);
  text-decoration: none;
}
.room-card::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
      to top,
      rgba(0, 0, 0, 0.48),
      rgba(0, 0, 0, 0.12) 50%,
      rgba(0, 0, 0, 0.06)
    ),
    var(--bg) center/cover no-repeat;
  transition: transform 0.5s ease, filter 0.35s ease;
}
.room-card:hover::before {
  transform: scale(1.04);
  filter: contrast(1.05);
}
.room-card > span {
  position: absolute;
  left: 12px;
  bottom: 12px;
  right: 12px;
  font: 700 clamp(16px, 4.2vw, 20px) / 1.1 "Spectral SC", serif;
}
.room-card em {
  display: block;
  font: 800 11px/1.2 "Assistant", sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  font-style: normal;
}

/* Events */
.event-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 12px;
}
.event {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 12px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 12px;
  background: #fff;
}
.event__date {
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 6px 10px;
  font-weight: 800;
  text-align: center;
  min-width: 58px;
}
.event__date span {
  display: block;
  font-size: 18px;
}
.event__info h3 {
  margin: 0;
  font-weight: 800;
}
.event__info p {
  margin: 0.2rem 0 0;
  color: var(--muted);
}
.event__cta {
  text-decoration: none;
  font-weight: 800;
  color: var(--ink);
  border: 1px solid var(--line);
  padding: 8px 12px;
  border-radius: 999px;
}

/* Testimonials (avatar tabs) */
.t4-head h2 {
  font: 800 clamp(24px, 6vw, 32px) / 1.1 "Assistant", sans-serif;
  margin: 0 0 6px;
}
.t4-head h2::after {
  content: "";
  display: block;
  width: 120px;
  height: 3px;
  background: var(--gold);
  margin: 10px auto 0;
  border-radius: 3px;
}
.t4-sub {
  font: italic 600 clamp(14px, 4.8vw, 18px) / 1.4 "Spectral SC", serif;
  color: var(--muted);
  margin: 8px 0 16px;
  text-align: center;
}
.t4-body {
  position: relative;
}
.t4-quote {
  display: none;
  animation: t4fade 0.35s ease both;
}
.t4-quote.is-active {
  display: block;
}
.t4-quote blockquote {
  margin: 0 auto;
  max-width: 70ch;
  font: 300 clamp(17px, 4.6vw, 20px) / 1.7 "Cormorant Garamond", serif;
  text-align: center;
}
.t4-name {
  font: 800 12px/1 "Assistant", sans-serif;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
.t4-role {
  margin-left: 0.5ch;
  color: #c75656;
  font: italic 600 14px/1.2 "Spectral SC", serif;
}
.t4-avatars {
  margin-top: 14px;
  display: flex;
  gap: 12px;
  justify-content: center;
  overflow: auto;
  scrollbar-width: none;
}
.t4-avatars::-webkit-scrollbar {
  display: none;
}
.t4-tab {
  background: none;
  border: 0;
  padding: 0;
  cursor: pointer;
  border-radius: 50%;
  box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.08) inset;
}
.t4-tab img {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  filter: grayscale(100%);
}
.t4-tab.is-active {
  box-shadow: 0 0 0 2px var(--gold) inset, 0 0 0 6px rgba(239, 198, 44, 0.16);
}
.t4-tab.is-active img {
  filter: none;
}
@keyframes t4fade {
  from {
    opacity: 0;
    transform: translateY(6px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

/* Gallery */
.gallery-rail {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: 65%;
  gap: 12px;
  overflow: auto;
  scroll-snap-type: x mandatory;
  padding-bottom: 8px;
  list-style: none;
  margin: 0;
}
.gallery-rail li {
  scroll-snap-align: center;
}
.gallery-rail img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 16px;
  border: 1px solid var(--line);
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.08);
}
@media (min-width: 900px) {
  .gallery-rail {
    grid-auto-columns: 32%;
  }
}

/* Hours */
.hours-grid {
  display: grid;
  gap: 16px;
  align-items: center;
}
@media (min-width: 900px) {
  .hours-grid {
    grid-template-columns: 1fr 1fr auto;
  }
}
.hours {
  font-weight: 700;
  color: var(--ink);
}

/* Logo scales down on small screens, capped at 150px on desktop */
.ghh-header .custom-logo {
  width: clamp(
    126px,
    24vw,
    150px
  ) !important; /* <= mobile…tablet…desktop max */
  height: auto !important; /* preserve aspect ratio even if HTML had height= */
  max-width: 100%;
  display: block;
}

/* If any theme rule forces a max-height, neutralise it */
.ghh-header .custom-logo {
  max-height: none !important;
}

/* Optional: keep header compact on phones */
.ghh-header .logo {
  padding: clamp(6px, 1.2vw, 14px) 0;
}

@media screen and (max-width: 980px) {
  .site-header {
    position: relative;
    background-color: none;
  }
}

/* ---------- Burger: bar → X ---------- */
.ghh-burger {
  position: absolute;
  z-index: 1100;
  width: 42px;
  height: 20px;
  background: transparent;
  display: none;
  place-items: center;
  cursor: pointer;
  right: 16px;
  top: 16px;
  border: none !important;
}
.ghh-burger .bar {
  width: 28px;
  height: 2px;
  background: #8d7b68;
  display: block;
  transition: transform 0.25s ease, opacity 0.2s ease;
}
.ghh-burger .bar + .bar {
  margin-top: 0;
}

@media (max-width: 900px) {
  .ghh-burger {
    display: grid;
  }
}

.menu-open .ghh-burger .bar:nth-child(1) {
  transform: translateY(8px) rotate(45deg);
}
.menu-open .ghh-burger .bar:nth-child(2) {
  opacity: 0;
}
.menu-open .ghh-burger .bar:nth-child(3) {
  transform: translateY(-8px) rotate(-45deg);
}

/* ---------- Overlay ---------- */
.ghh-mobile {
  position: fixed;
  inset: 0;
  z-index: 1000;
  background: rgba(169, 152, 131, 1); /* deep slate */
  /* optional bottom illustration: set your image and uncomment */
  /* background:
     linear-gradient(rgba(63,74,90,.96), rgba(63,74,90,.96)),
     url('/wp-content/uploads/overlay-lineart.png') center bottom / 1200px auto no-repeat; */
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.25s ease, visibility 0.25s step-end;
}
.menu-open .ghh-mobile {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition: opacity 0.25s ease, visibility 0s step-start;
}

.ghh-mobile__inner {
  height: 100%;
  display: grid;
  grid-template-rows: auto 1fr auto;
  align-items: start;
  justify-items: center;
  padding: clamp(16px, 5vw, 28px);
}

.ghh-mobile__brand img {
  height: 126px;
  width: auto;
  filter: invert(1);
  margin-top: 0;
}

/* Menu list */
.ghh-mobile__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: clamp(12px, 3.6vh, 18px);
  place-items: center;
  /* margin-top: clamp(20px, 6vh, 48px); */
  margin-top: 20px;
}
.ghh-mobile__list a {
  text-decoration: none;
  color: #f6f6f6;
  font: 800 clamp(18px, 2.8vh, 22px) / 1 "Cormorant Garamond", system-ui,
    sans-serif;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

/* ===== Fullscreen mobile menu: fade + slide up on open (CSS-only) ===== */
:root {
  --mm-dur: 360ms; /* duration of each item */
  --mm-gap: 160ms; /* stagger between items */
  --mm-dist: 28px; /* slide distance */
}

/* Start state – hidden & slightly below */
#ghh-mobile .ghh-mobile__list li {
  opacity: 0;
  transform: translate3d(0, var(--mm-dist), 0);
  will-change: opacity, transform;
}

/* Keyframes: fade in + rise */
@keyframes ghhFadeUp {
  from {
    opacity: 0;
    transform: translate3d(0, var(--mm-dist), 0) scale(0.985);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
  }
}

/* When the menu is open, play with stagger */
.menu-open #ghh-mobile .ghh-mobile__list li {
  animation: ghhFadeUp var(--mm-dur) ease-out both;
}

/* Stagger (extend if you have more items) */
.menu-open #ghh-mobile .ghh-mobile__list li:nth-child(1) {
  animation-delay: calc(0 * var(--mm-gap));
}
.menu-open #ghh-mobile .ghh-mobile__list li:nth-child(2) {
  animation-delay: calc(1 * var(--mm-gap));
}
.menu-open #ghh-mobile .ghh-mobile__list li:nth-child(3) {
  animation-delay: calc(2 * var(--mm-gap));
}
.menu-open #ghh-mobile .ghh-mobile__list li:nth-child(4) {
  animation-delay: calc(3 * var(--mm-gap));
}
.menu-open #ghh-mobile .ghh-mobile__list li:nth-child(5) {
  animation-delay: calc(4 * var(--mm-gap));
}
.menu-open #ghh-mobile .ghh-mobile__list li:nth-child(6) {
  animation-delay: calc(5 * var(--mm-gap));
}
.menu-open #ghh-mobile .ghh-mobile__list li:nth-child(7) {
  animation-delay: calc(6 * var(--mm-gap));
}
.menu-open #ghh-mobile .ghh-mobile__list li:nth-child(8) {
  animation-delay: calc(7 * var(--mm-gap));
}
.menu-open #ghh-mobile .ghh-mobile__list li:nth-child(9) {
  animation-delay: calc(8 * var(--mm-gap));
}
.menu-open #ghh-mobile .ghh-mobile__list li:nth-child(10) {
  animation-delay: calc(9 * var(--mm-gap));
}

/* Accessibility: respect reduced motion */
@media (prefers-reduced-motion: reduce) {
  #ghh-mobile .ghh-mobile__list li {
    opacity: 1;
    transform: none;
    animation: none !important;
  }
}

/* Social row */
.ghh-mobile__social {
  display: flex;
  gap: 16px;
  align-items: center;
  margin-top: clamp(16px, 4vh, 28px);
}
.ghh-mobile__social a {
  color: #f0f0f0;
  text-decoration: none;
  border: 1px solid rgba(255, 255, 255, 0.5);
  padding: 8px 12px;
  border-radius: 999px;
  font-weight: 800;
  letter-spacing: 0.08em;
}
.ghh-mobile__list li {
  margin-left: 0;
}

/* Burger base */
.ghh-burger {
  color: #797265; /* default bar color */
  border-color: #cbb99f;
  transition: color 0.2s ease, border-color 0.2s ease;
}
.ghh-burger .bar {
  background: currentColor; /* bars follow the button color */
  transition: transform 0.25s ease, opacity 0.2s ease,
    background-color 0.2s ease;
}

/* When the mobile menu is open */
.menu-open .ghh-burger {
  color: #fff; /* bars become white */
  border-color: rgba(255, 255, 255, 0.6);
}

/* (optional) subtle hover while open */
.menu-open .ghh-burger:hover {
  color: #f7f7f7;
  border-color: #fff;
}

/* Mobile menu social icons (SVG) */
.ghh-mobile__social {
  display: flex;
  gap: 16px;
  align-items: center;
  /* margin-top: clamp(16px, 4vh, 28px); */
  margin-top: -63px !important;
}

.ghh-ico {
  --ico: 26px; /* icon size */
  color: #f6f6f6; /* default: white on dark overlay */
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: calc(var(--ico) + 16px);
  height: calc(var(--ico) + 16px);
  border: 1px solid rgba(255, 255, 255, 0.5);
  border-radius: 999px;
  text-decoration: none;
  transition: filter 0.2s ease, transform 0.08s ease, border-color 0.2s ease,
    color 0.2s ease;
}
.ghh-ico .ico {
  width: var(--ico);
  height: var(--ico);
  display: block;
}
.ghh-ico:hover {
  filter: brightness(1.1);
  transform: translateY(-1px);
  border-color: #fff;
}
.ghh-ico:active {
  transform: translateY(0);
}
.ghh-ico:focus-visible {
  outline: 2px solid #efc62c;
  outline-offset: 3px;
}

/* When menu is open, ensure they’re white even if theme sets different color */
.menu-open .ghh-mobile__social .ghh-ico {
  color: #fff;
  border-color: rgba(255, 255, 255, 0.6);
}

/* Optional brand hover tints */
.ghh-ico:hover .ico--fb {
  color: #1877f2;
} /* Facebook blue */
.ghh-ico:hover .ico--ig {
  color: #e1306c;
} /* Instagram magenta */

/* Screen-reader text utility (if you don’t already have one) */
.sr-only {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Prevent page scrolling when menu is open */
body.menu-open,
html.menu-open {
  overflow: hidden;
}

/* ====== Room Detail ====== */
:root {
  --ink: #2f3b48;
  --muted: #5e6a75;
  --line: #cbb99f;
  --gold: #efc62c;
}

.room-wrap .ghh-container {
  max-width: 1100px;
  margin: 0 auto;
  padding: clamp(24px, 6vw, 48px) 16px;
}

/* Title */
.room-title {
  text-align: center;
  font-size: clamp(32px, 6vw, 64px);
  font-weight: 600;
  line-height: 1.05;
  letter-spacing: 0.02em;
  color: var(--heading-color);
  text-align: center;
  margin: 0 0 clamp(16px, 3.5vw, 24px);
}

/* Hero image with soft “framed” drop shadow */
.room-hero {
  margin: 0 0 clamp(16px, 4vw, 28px);
}
.room-hero__img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 18px;
  border: 1px solid var(--line);
  box-shadow: 0 14px 40px rgba(0, 0, 0, 0.16), 0 4px 14px rgba(0, 0, 0, 0.08);
}

.h-divider {
  margin: auto;
  margin-top: 80px;
  width: 80%;
  position: relative;
}

.h-divider .shadow {
  overflow: hidden;
  height: 20px;
}

.h-divider .shadow:after {
  content: "";
  display: block;
  margin: -25px auto 0;
  width: 100%;
  height: 25px;
  border-radius: 125px/12px;
  box-shadow: 0 0 8px black;
}

/* ===== Fancy divider (robust, responsive) ===== */
.ghh-divider {
  /* theme knobs */
  --color: #2f3b48; /* line & glyph color */
  --accent: #efc62c; /* small badge ring */
  --thick: 1.5px; /* line thickness */
  --gap: 14px; /* space around icon */
  --size: clamp(20px, 4.2vw, 28px); /* icon size */
  --width: clamp(140px, 36vw, 360px); /* overall width */

  width: var(--width);
  margin: 12px auto 0;
  display: flex;
  align-items: center;
  gap: var(--gap);
  color: var(--color);
}

/* left/right lines with gentle centre emphasis */
.ghh-divider__line {
  flex: 1 1 auto;
  height: var(--thick);
  background: linear-gradient(
    to right,
    transparent 0%,
    currentColor 18%,
    currentColor 82%,
    transparent 100%
  );
  opacity: 0.6;
  border-radius: 2px;
}

/* centre icon */
.ghh-divider__icon {
  width: var(--size);
  height: var(--size);
  display: block;
  flex: 0 0 auto;
}

/* icon styling */
.ghh-divider__icon .ring {
  fill: none;
  stroke: var(--accent);
  stroke-width: 2;
}
.ghh-divider__icon .glyph {
  stroke: currentColor;
  stroke-width: 2;
}

/* Optional: subtle appear animation when in view */
@keyframes dividerPop {
  from {
    transform: scale(0.98);
    opacity: 0;
  }
  to {
    transform: none;
    opacity: 1;
  }
}
.ghh-divider {
  animation: dividerPop 0.35s ease both;
}

/* Dark backgrounds? Flip colours per-section:
   .section-on-dark .ghh-divider{ --color:#fff; --accent:#efc62c; } */

/* Fancy line spacer (diamond) */
.ghh-spacer {
  --color: var(--ink);
  --width: clamp(120px, 28vw, 220px);
  --thick: 1px;
  --icon: 12px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 12px;
  width: var(--width);
  margin: 10px auto clamp(18px, 4vw, 28px);
}
.ghh-spacer::before,
.ghh-spacer::after {
  content: "";
  height: var(--thick);
  background: currentColor;
  opacity: 0.55;
  border-radius: 3px;
}
.ghh-spacer--diamond {
  background: conic-gradient(
      from 45deg at 50% 50%,
      currentColor 0 25%,
      transparent 0 100%
    )
    center/var(--icon) var(--icon) no-repeat;
}

/* Split section */
.room-split {
  display: grid;
  gap: clamp(16px, 4vw, 28px);
  align-items: start;
  margin-bottom: clamp(22px, 5vw, 36px);
}
@media (min-width: 900px) {
  .room-split {
    grid-template-columns: 1.2fr 0.8fr;
  }
}
.room-desc p {
  margin: 0 0 12px;
  color: var(--ink);
  line-height: 1.7;
  font-size: clamp(18px, 2vw, 20px);
}
.room-desc p + p {
  margin-top: 6px;
}

/* Features */
.room-features__title {
  font: 800 14px/1 "Assistant", system-ui, sans-serif;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--muted);
  margin: 6px 0 12px;
  text-align: left;
}
.room-features__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 10px;
}
@media (min-width: 640px) {
  .room-features__list {
    grid-template-columns: 1fr;
  }
}
@media (min-width: 1100px) {
  .room-features__list {
    grid-template-columns: 1fr;
  } /* keep single column for elegance */
}
.feature {
  display: grid;
  grid-template-columns: 28px 1fr;
  align-items: center;
  gap: 10px;
  background: #ffffff5e;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 10px 12px;
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.06);
  margin-left: 0 !important;
}
.feature__text {
  color: var(--ink);
  font-weight: 600;
}
.feature__icon {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  display: inline-block;
  position: relative;
  color: var(--ink);
  background: radial-gradient(circle at 50% 50%, #ffffff 0 55%, transparent 56%)
    center/100% 100% no-repeat;
  border: 1px solid var(--line);
}
/* Tick glyph inside the circle (SVG via mask) */
.feature__icon::before {
  content: "";
  position: absolute;
  inset: 0;
  margin: 4px;
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M20 6 9 17l-5-5' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/></svg>")
    center/contain no-repeat;
  mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M20 6 9 17l-5-5' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/></svg>")
    center/contain no-repeat;
  background: currentColor;
}

/* CTA */
.room-cta {
  text-align: center;
}
.btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 22px;
  border-radius: 999px;
  text-decoration: none !important;
  border: 1px solid var(--ink);
  color: #fff;
  /* background: #a38471; */
  background: var(--button-color) !important;
  font: 800 14px/1 "Cormorant Garamond", all-petite-caps system-ui, sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.12);
  transition: filter 0.2s ease, transform 0.08s ease;
}
.btn:hover {
  filter: brightness(0.94);
  transform: translateY(-5px);
}
.btn:active {
  transform: translateY(1px);
}
.btn--xl {
  font-size: 16px;
  padding: 16px 26px;
}
.btn-ico {
  width: 18px;
  height: 18px;
  display: block;
}

/* Keep images crisp and responsive */
.room-wrap img {
  height: auto;
  max-width: 100%;
}

/* ===== Header: left menu — logo — right menu ===== */
.ghh-header .ghh-bar {
  display: grid;
  grid-template-columns: 1fr auto 1fr; /* left | logo | right */
  align-items: center; /* vertical center to logo middle */
  gap: clamp(8px, 2vw, 24px);
  position: relative;
}

/* Center column: logo sizing responsive */
.ghh-header .custom-logo {
  height: clamp(44px, 9vw, 96px);
  width: auto;
  display: block;
}
.ghh-header .logo {
  text-align: center;
}
@media (max-width: 560px) {
  .ghh-header .tagline {
    display: none;
  }
}

/* Desktop navs */
.ghh-nav {
  min-width: 0;
} /* allow flex to shrink nicely */
.ghh-menu {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(10px, 1.6vw, 18px);
  list-style: none;
  margin: 0;
  padding: 0;
}
.ghh-nav--left .ghh-menu {
  justify-content: flex-start;
}
.ghh-nav--right {
  display: flex;
  align-items: center;
  justify-content: flex-end; /* push menu + CTA to the right edge */
  gap: clamp(10px, 1.6vw, 16px);
}
.ghh-nav--right .ghh-menu {
  justify-content: flex-end;
}

.ghh-menu > li > a {
  text-decoration: none;
  color: #2f3b48; /* set to #fff if your header is dark */
  font: 800 12px/1 "Assistant", system-ui, sans-serif;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 10px 0;
}
.ghh-menu > li > a:hover {
  color: #c75656;
}

/* CTA on the right */
.ghh-cta {
  display: inline-block;
  padding: 10px 16px;
  position: fixed;
  bottom: 20px;
  right: 20px;
  z-index: 100;
  border-radius: 999px;
  background: var(--button-color) !important;
  color: #fff;
  text-decoration: none !important;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border: 1px solid #2f3b48;
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.12);
  transition: filter 0.2s ease, transform 0.08s ease;
}
.ghh-cta:hover {
  filter: brightness(0.94);
  transform: translateY(-5px);
}

/* Burger placement (hidden on desktop) */
.ghh-burger {
  grid-column: 3; /* align to right edge */
  justify-self: end;
  display: none; /* desktop hidden */
}

/* Mobile: hide desktop navs, show burger */
@media (max-width: 900px) {
  .ghh-nav {
    display: none;
  }
  .ghh-burger {
    display: grid;
  }
  .ghh-header .custom-logo {
    height: clamp(40px, 8vw, 64px);
  }
}

/* Optional: keep header tidy if menus are short/long */
.ghh-menu > li {
  white-space: nowrap;
}

/* Center the logo at ≤900px and float the burger on the right */
@media (max-width: 900px) {
  /* Make the header bar a single centered column */
  .ghh-header .ghh-bar {
    grid-template-columns: 1fr; /* collapse to one column */
    justify-items: center; /* center everything horizontally */
    min-height: 64px; /* comfortable tap area */
    position: relative; /* anchor for the burger */
  }

  /* Hide desktop navs on mobile (kept for safety) */
  .ghh-header .ghh-nav {
    display: none !important;
  }

  /* Keep logo perfectly centered */
  .ghh-header .logo {
    text-align: center;
  }
  .ghh-header .custom-logo {
    height: clamp(40px, 8vw, 64px);
    width: auto;
  }
}

/* headline block */
.lead {
  text-align: center;
  max-width: 108ch;
  margin: 0 auto;
}
.lead__title {
  font: 300 clamp(48px, 6.5vw, 84px) / 1.08 "Cormorant Garamond", serif;
  letter-spacing: 0.02em;
  color: var(--heading-color, #2f3b48);
  margin: 0 0 0.5rem;
  text-transform: uppercase;
}
.lead__sub {
  color: var(--muted, #5e6a75);
  font-size: clamp(16px, 2.8vw, 20px);
  line-height: 1.7;
  margin: 0;
}

/* alignment modifiers (optional) */
.lead--left {
  text-align: left;
  margin-left: 0;
  margin-right: auto;
}
.lead--center {
  text-align: center;
}

/* spacing helper (bottom-only, as requested) */
.ghh-sec {
  padding-bottom: clamp(28px, 6vw, 64px);
}

/* Home: image with ornaments — sizing rules */
.hp-photo .ghh-container {
  /* keep your site container if you need it; constrain the photo itself instead */
}

.photo-card {
  /* visual style (keep yours if already set) */
  margin: 0 auto;
  border-radius: 18px;
  overflow: hidden;
  border: 1px solid var(--line, #cbb99f);
  box-shadow: 0 14px 40px rgba(0, 0, 0, 0.16), 0 4px 14px rgba(0, 0, 0, 0.08);

  /* width cap */
  max-width: 1170px;
}

/* Key bit: responsive, capped height with no distortion */
.photo-card img {
  display: block;
  width: 100%;
  height: clamp(
    220px,
    40vw,
    480px
  ); /* grows with viewport, never above 480px */
  object-fit: cover; /* fills the box, never distorts (crops if needed) */
  object-position: center; /* adjust focal point if needed */
}

/* If you sometimes want NO cropping (show entire image), add class .photo-card--contain */
.photo-card--contain img {
  object-fit: contain;
  background: #0000; /* transparent; set a color if you want a backdrop */
  height: auto; /* show intrinsic height, then cap: */
  max-height: 480px; /* won’t distort because width: auto comes from contain */
  width: 100%;
}

/* Spacing below the section (keep if you already use .ghh-sec) */
.ghh-sec {
  padding-bottom: clamp(28px, 6vw, 64px);
}

.ghh-sec.hp-lead {
  padding-top: 12px;
}

/* Ornaments (from your earlier setup) stay behind and adapt automatically */
.pub-ornament {
  position: relative;
}
.pub-ornament .ornament {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: clamp(120px, 24vw, 280px);
  height: auto;
  color: var(--ornament, #cbb99f);
  opacity: 0.55;
  pointer-events: none;
  filter: drop-shadow(0 6px 12px rgba(0, 0, 0, 0.08))
    drop-shadow(0 1px 2px rgba(0, 0, 0, 0.06));
  z-index: 0;
}
.pub-ornament .ornament--left {
  left: -6%;
  rotate: -8deg;
}
.pub-ornament .ornament--right {
  right: -6%;
  rotate: 8deg;
}

@media (max-width: 500px) {
  .pub-ornament .ornament {
    width: clamp(96px, 30vw, 200px);
    opacity: 0.45;
  }
  .pub-ornament .ornament--left {
    left: -10%;
  }
  .pub-ornament .ornament--right {
    right: -10%;
  }
}

:root {
  --ink: #2f3b48;
  --muted: #5e6a75;
  --line: #cbb99f;
  --gold: #efc62c;
}

/* Generic section rhythm (bottom spacing only as per your style) */
.ghh-sec {
  padding-bottom: clamp(28px, 6vw, 64px);
}

/* ===== Page Hero (matches your other big headers) ===== */
.page-hero {
  position: relative;
}
.page-hero__bg {
  min-height: clamp(220px, 36vh, 420px);
  position: relative;
}
.page-hero__bg::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
      to top,
      rgba(0, 0, 0, 0.45),
      rgba(0, 0, 0, 0.12) 55%,
      transparent
    ),
    var(--img) center/cover no-repeat;
}
.page-hero__inner {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  text-align: center;
  padding: 0 16px;
}
.page-hero__title {
  color: #fff;
  font: 800 clamp(28px, 7vw, 48px) / 1.05 "Spectral SC", serif;
  letter-spacing: 0.02em;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.35);
  margin: 0 0 0.2rem;
}
.page-hero__lede {
  color: #f1f1f1;
  font-weight: 600;
  margin: 0;
}

/* ===== Split: description + image ===== */
.history-grid {
  display: grid;
  gap: clamp(16px, 4vw, 28px);
  align-items: start;
}
@media (min-width: 900px) {
  .history-grid {
    grid-template-columns: 1.2fr 0.8fr;
  }
}
.history-text h2 {
  font: 800 clamp(22px, 5.5vw, 34px) / 1.1 "Spectral SC", serif;
  margin: 0 0 0.5rem;
  color: var(--heading-color);
}
.history-text p {
  margin: 0 0 12px;
  color: var(--ink);
  line-height: 1.75;
}
.history-text p + p {
  margin-top: 6px;
}

/* Archive photo styling (radius + shadow + caption) */
.history-photo {
  margin: 0;
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid var(--line);
  box-shadow: 0 14px 40px rgba(0, 0, 0, 0.16), 0 4px 14px rgba(0, 0, 0, 0.08);
  background: #fff;
}
.history-photo img {
  display: block;
  width: 100%;
  height: auto;
}
.history-photo figcaption {
  font: italic 600 14px/1.4 "Spectral SC", serif;
  color: var(--muted);
  padding: 10px 12px;
  border-top: 1px solid var(--line);
}

/* ===== Masonry gallery (CSS columns) ===== */
.masonry {
  column-width: 300px; /* target column width; browser chooses count */
  column-gap: 16px;
  list-style: none;
  margin: 16px 0 0;
  padding: 0;
}
@media (max-width: 640px) {
  .masonry {
    column-width: 220px;
    column-gap: 12px;
  }
}
.masonry > li {
  break-inside: avoid;
  margin: 0 0 16px;
}

.masonry-card {
  display: block;
  overflow: hidden;
  border-radius: 14px;
  border: 1px solid var(--line);
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.1), 0 3px 10px rgba(0, 0, 0, 0.06);
  background: #fff;
}
.masonry-card img {
  display: block;
  width: 100%;
  height: auto; /* never distort */
}
.masonry-card figcaption {
  padding: 10px 12px;
  color: var(--muted);
  font: italic 600 13px/1.4 "Spectral SC", serif;
  border-top: 1px solid var(--line);
}

/* Optional: soft hover lift for cards (desktop) */
@media (hover: hover) {
  .masonry-card {
    transition: transform 0.18s ease, box-shadow 0.18s ease;
  }
  .masonry-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 16px 36px rgba(0, 0, 0, 0.14), 0 6px 16px rgba(0, 0, 0, 0.08);
  }
}

:root {
  --ink: #2f3b48;
  --muted: #5e6a75;
  --line: #cbb99f;
  --gold: #efc62c;
}
.ghh-sec {
  padding-bottom: clamp(28px, 6vw, 64px);
}
.section-title {
  font: 800 clamp(30px, 5.5vw, 34px) / 1.1 "Spectral SC", serif;
  color: var(--ink);
  text-align: center;
  margin: 0 0 0.6rem;
}

/* 1) HERO */
.events-hero {
  position: relative;
}
.events-hero.alignfull {
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  width: 100vw !important;
  max-width: 100vw !important;
}
.events-hero__bg {
  min-height: clamp(240px, 40vh, 460px);
  position: relative;
}
.events-hero__bg::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
      to top,
      rgba(0, 0, 0, 0.45),
      rgba(0, 0, 0, 0.15) 55%,
      transparent
    ),
    var(--img) center/cover no-repeat;
}
.events-hero__inner {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  text-align: center;
  padding: 0 16px;
}
.events-hero__title {
  color: #fff;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.35);
  font: 800 clamp(28px, 7vw, 48px) / 1.05 "Spectral SC", serif;
  margin: 0 0 0.2rem;
}
.events-hero__lede {
  color: #f1f1f1;
  font-weight: 600;
  margin: 0;
}

/* 2) HIGHLIGHTS */
.quick-stats {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  list-style: none;
  padding: 0;
  margin: 4px 0 0;
}
@media (min-width: 860px) {
  .quick-stats {
    grid-template-columns: repeat(5, 1fr);
  }
}
.quick-stats li {
  text-align: center;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 10px 12px;
  background: #fff;
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.06);
}
.quick-stats strong {
  display: block;
  color: var(--ink);
  font-weight: 800;
}
.quick-stats span {
  color: var(--muted);
  font-size: 14px;
}

/* 3) MARQUEE SPLIT */
.marquee-grid {
  display: grid;
  gap: clamp(16px, 4vw, 28px);
  align-items: start;
}
@media (min-width: 900px) {
  .marquee-grid {
    grid-template-columns: 1.2fr 0.8fr;
  }
}
.marquee-copy h2 {
  font: 800 clamp(30px, 5.5vw, 34px) / 1.1 "Spectral SC", serif;
  margin: 0 0 0.5rem;
  color: var(--heading-color);
}
.marquee-copy p {
  margin: 0 0 12px;
  color: var(--ink);
  line-height: 1.75;
}
.ticklist {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 10px;
}
.ticklist li {
  display: grid;
  grid-template-columns: 28px 1fr;
  align-items: center;
  gap: 10px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 10px 12px;
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.06);
}
.ticklist li::before {
  content: "";
  width: 20px;
  height: 20px;
  border-radius: 50%;
  border: 1px solid var(--line);
  background: radial-gradient(circle at 50% 50%, #fff 0 55%, transparent 56%)
    center/100% 100% no-repeat;
  display: inline-block;
  position: relative;
}
.ticklist li::after {
  content: "";
  width: 0;
  height: 0;
  position: relative;
  left: -24px;
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M20 6 9 17l-5-5' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/></svg>")
    center/16px 16px no-repeat;
  mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M20 6 9 17l-5-5' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/></svg>")
    center/16px 16px no-repeat;
  background: var(--ink);
}

/* 4) EVENT TYPES */
.cards {
  display: grid;
  gap: 14px;
}
@media (min-width: 800px) {
  .cards {
    grid-template-columns: repeat(4, 1fr);
  }
}
.card {
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 14px 16px;
  background: #ffffff5e;
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.08);
}
.card h3 {
  margin: 0 0 6px;
  font: 800 20px/1.1 "Cormorant Garamond", serif;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ink);
}
.card p {
  margin: 0;
  color: var(--muted);
}

/* 5) PACKAGES */
.price-grid {
  display: grid;
  gap: 14px;
}
@media (min-width: 900px) {
  .price-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
.price-card {
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 16px;
  background: #fff;
  text-align: center;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.1);
}
.price-card--featured {
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.14);
  border-color: var(--gold);
}
.price-card h3 {
  margin: 0 0 6px;
  font: 800 20px/1.1 "Cormorant Garamond", serif;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink);
}
.price-card .price {
  margin: 0.2rem 0 0.6rem;
  color: var(--ink);
  font-weight: 800;
  font-size: clamp(18px, 3.8vw, 22px);
}
.price-card ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 8px;
  color: var(--muted);
}

/* 6) MENUS (scrollable downloads) */
.menu-rail {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(200px, 1fr);
  gap: 12px;
  overflow-x: auto;
  padding-bottom: 6px;
  scroll-snap-type: x mandatory;
}
.menu-tile {
  position: relative;
  display: grid;
  place-items: center;
  height: 120px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fff;
  text-decoration: none;
  scroll-snap-align: start;
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.08);
}
.menu-tile__label {
  color: var(--ink);
  font: 800 14px/1 "Assistant", system-ui, sans-serif;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.menu-tile:hover {
  filter: brightness(0.98);
}

/* 7) GALLERY (masonry) */
.masonry {
  column-width: 300px;
  column-gap: 16px;
  list-style: none;
  margin: 12px 0 0;
  padding: 0;
}
@media (max-width: 640px) {
  .masonry {
    column-width: 220px;
    column-gap: 12px;
  }
}
.masonry > li {
  break-inside: avoid;
  margin: 0 0 16px;
}
.masonry-card {
  display: block;
  overflow: hidden;
  border-radius: 14px;
  border: 1px solid var(--line);
  background: #fff;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.1), 0 3px 10px rgba(0, 0, 0, 0.06);
}
.masonry-card img {
  display: block;
  width: 100%;
  height: auto;
}

/* 8) FAQ (details/summary) */
.faq {
  width: 100%;
  max-width: 900px;
}
.faq details {
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #f3ecdf;
  margin: 10px 0;
  overflow: hidden;
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.06);
}
.faq summary {
  cursor: pointer;
  padding: 14px 16px;
  color: var(--ink);
  font-weight: 500;
  font-size: clamp(16px, 2.8vw, 18px);
  font-family: "Spectral SC", serif;
  text-align: center;
}
.faq details > *:not(summary) {
  padding: 0 16px 14px;
  color: var(--muted);
}

/* 9) CTA */
.cta-bar {
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 16px;
  display: grid;
  gap: 12px;
  align-items: center;
  background: #fff;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.1);
}
@media (min-width: 860px) {
  .cta-bar {
    grid-template-columns: 1fr auto;
  }
}
.cta-copy h2 {
  margin: 0 0 6px;
  font: 800 clamp(20px, 5vw, 28px) / 1.1 "Spectral SC", serif;
  color: var(--ink);
}
.cta-copy p {
  margin: 0;
  color: var(--muted);
}

/* Buttons (reuse across site) */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 22px;
  border-radius: 999px;
  text-decoration: none;
  border: 1px solid var(--ink);
  color: #fff;
  background: var(--ink);
  font: 800 14px/1 "Assistant", system-ui, sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.12);
  transition: filter 0.2s ease, transform 0.08s ease;
}
.btn:hover {
  filter: brightness(0.94);
}
.btn:active {
  transform: translateY(1px);
}
.btn--xl {
  font-size: 16px;
  padding: 16px 26px;
}

/* Full-bleed helper (already in your theme, safe to duplicate) */
.alignfull {
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  width: 100vw !important;
  max-width: 100vw !important;
}

:root {
  --ink: #2f3b48;
  --muted: #5e6a75;
  --line: #cbb99f;
}

/* rhythm */
.ghh-sec {
  padding-bottom: clamp(28px, 6vw, 64px);
}

/* ===== Hero (reuse from your other pages) ===== */
.page-hero {
  position: relative;
}
.page-hero.alignfull {
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  width: 100vw !important;
  max-width: 100vw !important;
}
.page-hero__bg {
  min-height: clamp(240px, 40vh, 460px);
  position: relative;
}
.page-hero__bg::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
      to top,
      rgba(0, 0, 0, 0.45),
      rgba(0, 0, 0, 0.15) 55%,
      transparent
    ),
    var(--img) center/cover no-repeat;
}
.page-hero__inner {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  text-align: center;
  padding: 0 16px;
}
.page-hero__title {
  color: #fff;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.35);
  font: 800 clamp(28px, 7vw, 48px) / 1.05 "Spectral SC", serif;
  margin: 0 0 0.2rem;
}
.page-hero__lede {
  color: #f1f1f1;
  font-weight: 600;
  margin: 0;
}

/* ===== Pub layout ===== */
.pub-container {
  position: relative;
}
.pub-lead {
  text-align: center;
  max-width: 70ch;
  margin: 0 auto clamp(18px, 4vw, 28px);
}
.pub-title {
  font: 800 clamp(24px, 6vw, 40px) / 1.08 "Spectral SC", serif;
  color: var(--ink);
  margin: 0 0 0.4rem;
}
.pub-sub {
  color: var(--muted);
  font-size: clamp(16px, 2.8vw, 19px);
  line-height: 1.75;
  margin: 0;
}

/* ===== Parallax beer rail ===== */
.parallax-rail {
  position: sticky;
  top: 10vh;
  height: 80vh;
  width: clamp(120px, 14vw, 180px);
  transform: translateX(
    calc(-100% - clamp(12px, 2vw, 28px))
  ); /* sit just outside the container’s left edge */
  pointer-events: none;
  z-index: 0;
}
.parallax-rail .beer {
  position: absolute;
  left: 0;
  top: var(--top, 0%);
  width: 100%;
  height: auto;
  filter: drop-shadow(0 6px 12px rgba(0, 0, 0, 0.12));
  transform: translateY(var(--py, 0px)) rotate(var(--rot, 0deg))
    scale(var(--scale, 1));
  transform-origin: 50% 100%;
  will-change: transform;
  opacity: 0.92;
}
@media (max-width: 900px) {
  .parallax-rail {
    display: none;
  }
}

/* ===== Splits ===== */
.split {
  display: grid;
  gap: clamp(16px, 4vw, 28px);
  align-items: center;
  margin-top: clamp(18px, 4vw, 28px);
}
@media (min-width: 900px) {
  .split {
    grid-template-columns: 1.1fr 0.9fr;
  }
  .split--b {
    grid-template-columns: 0.9fr 1.1fr;
  } /* flip emphasis */
}
.split__text h3 {
  font: 800 clamp(20px, 5.4vw, 30px) / 1.1 "Spectral SC", serif;
  color: var(--ink);
  margin: 0 0 0.5rem;
}
.split__text p {
  color: var(--ink);
  line-height: 1.75;
  margin: 0 0 10px;
}
.badges {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 10px;
  padding: 0;
  margin: 8px 0 0;
}
.badges li {
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 6px 10px;
  font-weight: 700;
  color: var(--ink);
  font-size: 13px;
}

/* Image frames */
.frame {
  margin: 0;
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid var(--line);
  box-shadow: 0 14px 40px rgba(0, 0, 0, 0.16), 0 4px 14px rgba(0, 0, 0, 0.08);
  background: #fff;
}
.frame img {
  display: block;
  width: 100%;
  height: auto;
}

/* Ticklist reused */
.ticklist {
  list-style: none;
  margin: 10px 0 0 !important;
  padding: 0;
  display: grid;
  gap: 10px;
}
.ticklist li {
  display: flex;
  grid-template-columns: 28px 1fr;
  align-items: center;
  gap: 10px;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 8px 12px;
  background: #ffffff38;
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.06);
  font-family: "Cormorant Garamond";
  /* display: grid;
  grid-template-columns: 28px 1fr;
  align-items: center;
  gap: 10px;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 10px 12px;
  background: #fff;
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.06); */
}

.ticklist li::before {
  content: "";
  width: 20px;
  height: 20px;
  border-radius: 50%;
  border: 1px solid var(--line);
  background: radial-gradient(circle at 50% 50%, #fff 0 55%, transparent 56%)
    center/100% 100% no-repeat;
  display: inline-block;
}
.ticklist li::after {
  content: "";
  width: 0;
  height: 0;
  position: relative;
  left: -24px;
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M20 6 9 17l-5-5' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/></svg>")
    center/16px 16px no-repeat;
  mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M20 6 9 17l-5-5' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/></svg>")
    center/16px 16px no-repeat;
  background: var(--ink);
}

/* Visit row */
.pub-cta .visit {
  display: grid;
  gap: 12px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 16px;
  background: #fff;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.1);
}
@media (min-width: 800px) {
  .pub-cta .visit {
    grid-template-columns: 1fr auto;
  }
}
.visit__col h4 {
  margin: 0 0 6px;
  font: 800 14px/1 "Assistant", system-ui, sans-serif;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink);
}
.visit__col p {
  margin: 0;
  color: var(--muted);
}

/* Buttons (reuse site) */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 12px 20px;
  border-radius: 999px;
  text-decoration: none;
  border: 1px solid var(--ink);
  color: #fff;
  background: var(--ink);
  font: 800 14px/1 "Assistant", system-ui, sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.12);
  transition: filter 0.2s ease, transform 0.08s ease;
}
.btn:hover {
  filter: brightness(0.94);
}
.btn:active {
  transform: translateY(1px);
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce) {
  .parallax-rail .beer {
    transform: rotate(var(--rot, 0deg)) scale(var(--scale, 1));
  }
}

.t4-body {
  position: relative;
}
.t4-quote[hidden] {
  display: none !important;
}

.t4-quote {
  opacity: 0;
  transform: translateY(6px);
  transition: opacity 0.35s ease, transform 0.35s ease;
}
.t4-quote.is-active {
  opacity: 1;
  transform: translateY(0);
}

:root {
  --ink: #2f3b48;
  --muted: #5e6a75;
  --line: #cbb99f;
}

.history-chapters .story-title {
  font: 800 clamp(24px, 6vw, 42px) / 1.08 "Spectral SC", serif;
  color: var(--ink);
  margin: 0 0 0.5rem;
}
.history-chapters .story-intro {
  max-width: 75ch;
  margin: 0 auto clamp(18px, 3.5vw, 28px);
  color: var(--muted);
  font-size: clamp(16px, 2.6vw, 18.5px);
  line-height: 1.8;
  text-align: center;
}

/* Timeline layout */
.timeline {
  list-style: none;
  margin: 0;
  padding: 4px 0 0;
  position: relative;
}
.timeline__item {
  display: grid;
  gap: 12px;
  align-items: start;
  grid-template-columns: 1fr;
  padding: clamp(12px, 2.8vw, 18px) 0;
  position: relative;
}
.timeline__item + .timeline__item {
  border-top: 1px solid var(--line);
}

/* label + content split on wide screens */
@media (min-width: 900px) {
  .timeline__item {
    grid-template-columns: 220px 1fr;
    gap: 18px;
  }
}

/* Label “pill” */
.pill {
  display: inline-block;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 6px 10px;
  font-weight: 700;
  color: var(--ink);
  font-size: 13px;
  letter-spacing: 0.04em;
  white-space: nowrap;
}
.timeline__label {
  padding-top: 6px;
}

/* Content */
.timeline__content h3 {
  margin: 0 0 0.35rem;
  color: var(--heading-color);
  font: 800 clamp(19px, 5vw, 28px) / 1.12 "Spectral SC", serif;
}
.timeline__content p {
  margin: 0;
  color: var(--ink);
  line-height: 1.8;
  max-width: 75ch;
}
.timeline__content p + p {
  margin-top: 0.6rem;
}

/* Pull-quote styling (optional) */
.pull {
  margin: 0.8rem 0 0;
  padding-left: 16px;
  border-left: 3px solid var(--line);
  color: var(--muted);
  font-style: italic;
}

/* Subtle entrance (pairs nicely with AOS or stands alone) */
.timeline__item .timeline__content {
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 0.35s ease, transform 0.35s ease;
}
.timeline__item[data-aos].aos-animate .timeline__content,
.timeline__item.revealed .timeline__content {
  opacity: 1;
  transform: none;
}

.history-chapters.ghh-sec {
  padding-top: 0;
}

:root {
  --ink: #2f3b48;
  --muted: #5e6a75;
  --line: #cbb99f;
}

/* Generic section rhythm */
.ghh-sec {
  padding-bottom: clamp(28px, 6vw, 64px);
}

/* Split layout */
.about-grid {
  display: grid;
  gap: clamp(16px, 4vw, 28px);
  align-items: start;
}
@media (min-width: 900px) {
  .about-grid {
    grid-template-columns: 1fr 1.1fr;
  }
}

/* Photo frame (matches your site style) */
.frame {
  margin: 0;
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid var(--line);
  box-shadow: 0 14px 40px rgba(0, 0, 0, 0.16), 0 4px 14px rgba(0, 0, 0, 0.08);
  background: #fff;
  height: 100%;
}
.frame img {
  display: block;
  width: 100%;
  height: 100%;
}
.frame figcaption {
  border-top: 1px solid var(--line);
  padding: 10px 12px;
  color: var(--muted);
  font: italic 600 13px/1.4 "Spectral SC", serif;
}

/* Text */
.about-title {
  font: 800 clamp(22px, 5.6vw, 34px) / 1.1 "Spectral SC", serif;
  color: var(--ink);
  margin: 0 0 0.6rem;
}
.about-text p {
  color: var(--ink);
  line-height: 1.78;
  margin: 0 0 12px;
  max-width: 75ch;
}

/* Drop cap on first paragraph */
.dropcap::first-letter {
  float: left;
  font: 800 clamp(36px, 8vw, 56px) / 0.9 "Spectral SC", serif;
  color: var(--ink);
  margin: 4px 10px 0 0;
  padding: 0 6px 2px 0;
}

/* Small “chips” row */
.about-chips {
  list-style: none;
  padding: 0;
  margin: 10px 0 0;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 10px;
}
.about-chips li {
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 6px 10px;
  color: var(--ink);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.02em;
}

/* (Optional) hero styles – only if you used the commented hero HTML */
.page-hero.alignfull {
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  width: 100vw !important;
  max-width: 100vw !important;
}
.page-hero__bg {
  min-height: clamp(240px, 40vh, 460px);
  position: relative;
}
.page-hero__bg::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
      to top,
      rgba(0, 0, 0, 0.45),
      rgba(0, 0, 0, 0.15) 55%,
      transparent
    ),
    var(--bg) center/cover no-repeat;
}
.page-hero__inner {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  text-align: center;
  padding: 0 16px;
}
.page-hero__title {
  color: #fff;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.35);
  font: 800 clamp(28px, 7vw, 48px) / 1.05 "Spectral SC", serif;
  margin: 0 0 0.2rem;
}
.page-hero__lede {
  color: #f1f1f1;
  font-weight: 600;
  margin: 0;
}

:root {
  --ink: #2f3b48;
  --muted: #5e6a75;
  --line: #cbb99f;
}

/* Section rhythm (bottom-only) */
.ghh-sec {
  padding-bottom: clamp(28px, 6vw, 64px);
}

/* Header */
.contact-head {
  text-align: center;
  max-width: 70ch;
  margin: 0 auto clamp(16px, 3vw, 24px);
}
.contact-head h2 {
  margin: 0 0 0.35rem;
  color: var(--ink);
  font: 800 clamp(22px, 5.8vw, 34px) / 1.1 "Spectral SC", serif;
}
.contact-head .contact-sub {
  margin: 0;
  color: var(--muted);
}

/* Grid: address + map */
.contact-grid {
  display: grid;
  gap: clamp(12px, 3vw, 18px);
  grid-template-columns: 1fr;
  align-items: stretch;
  font-family: "Cormorant Garamond", serif;
}
@media (min-width: 900px) {
  .contact-grid {
    grid-template-columns: 0.9fr 1.1fr;
  }
}

/* Cards */
.contact-card {
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #f3ecdf;
  padding: clamp(12px, 2.6vw, 16px);
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.1), 0 3px 10px rgba(0, 0, 0, 0.06);
  font-family: "Cormorant Garamond", serif;
}
.contact-card .card-head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 8px;
}
.contact-card .card-head h3 {
  margin: 0;
  color: var(--ink);
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-size: 13px;
}
.contact-card .card-head svg {
  width: 18px;
  height: 18px;
  color: var(--ink);
}

/* Address block */
.addr {
  font-style: normal;
  color: var(--ink);
  font-size: 20px;
  line-height: 1.7;
}
.addr-name {
  font-weight: 800;
}
.addr-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 10px;
}
.btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  border-radius: 999px;
  text-decoration: none;
  font: 800 12px/1 "Assistant", system-ui, sans-serif;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  transition: filter 0.2s ease, transform 0.06s ease;
}
.btn--ghost {
  color: var(--ink);
  border: 1px solid var(--ink);
  background: #fff;
}
.btn:hover {
  filter: brightness(0.96);
}
.btn:active {
  transform: translateY(1px);
}

/* Map */
.map-clip {
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid var(--line);
}
.map-clip iframe {
  display: block;
  width: 100%;
  height: clamp(260px, 44vw, 380px);
}

/* Contact tiles grid */
.contact-block .contact-tiles {
  list-style: none;
  padding: 0;
  margin: clamp(12px, 3vw, 18px) 0 0;
  display: grid;
  gap: 10px;
  grid-template-columns: 1fr 1fr;
  width: 100%;
}
@media (min-width: 800px) {
  .contact-block .contact-tiles {
    grid-template-columns: repeat(4, 1fr);
  }
}

/* Each tile */
.contact-block .c-tile {
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #f3ecdf;
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.08);
  transition: all 0.2s ease;
}
.contact-block .c-tile:hover {
  transform: translateY(-5px);
}

/* Tile link */
.contact-block .c-tile__link {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px;
  height: 100%;
  text-decoration: none;
  color: var(--ink);
  font-family: "Cormorant Garamond", serif;
}

/* Icon + text */
.contact-block .c-tile__ico {
  display: inline-grid;
  place-items: center;
  width: 28px;
  height: 28px;
  color: var(--ink);
}
.contact-block .c-tile__ico svg {
  width: 20px;
  height: 20px;
}
.contact-block .c-tile__text {
  color: var(--ink);
  font-weight: 700;
}

/* HARD OVERRIDES: neutralise any global .tile span rules */
.contact-block .c-tile span {
  position: static !important;
  bottom: auto !important;
  left: auto !important;
  right: auto !important;
  top: auto !important;
  border: none !important;
  background: none !important;
  border-radius: 0 !important;
  letter-spacing: inherit !important;
  text-transform: none !important;
  padding: 0 !important;
  font: inherit !important;
  color: inherit !important;
}

/* Respect reduced motion (just in case you add transitions later) */
@media (prefers-reduced-motion: reduce) {
  .btn {
    transition: none;
  }
}

/* Mobile: stack all four tiles */
.contact-block .contact-tiles {
  list-style: none;
  padding: 0;
  margin: clamp(12px, 3vw, 18px) 0 0;
  display: grid;
  gap: 10px;
  grid-template-columns: 1fr; /* <-- one per row on mobile */
}

/* ≥ 560px: two across */
@media (min-width: 560px) {
  .contact-block .contact-tiles {
    grid-template-columns: 1fr 1fr;
  }
}

/* ≥ 900px: four across */
@media (min-width: 900px) {
  .contact-block .contact-tiles {
    grid-template-columns: repeat(4, 1fr);
  }
}

:root {
  --ink: #2f3b48;
  --muted: #5e6a75;
  --line: #cbb99f;
}

.events-wrap {
  padding-bottom: clamp(24px, 6vw, 60px);
}
.events-grid {
  display: grid;
  gap: clamp(12px, 2.8vw, 20px);
  grid-template-columns: 1fr; /* mobile: stack */
}
@media (min-width: 680px) {
  .events-grid.cols-2 {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 900px) {
  .events-grid.cols-3 {
    grid-template-columns: repeat(3, 1fr);
  }
  .events-grid.cols-4 {
    grid-template-columns: repeat(4, 1fr);
  }
}

.event-card {
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #ffffff52;
  overflow: hidden;
  box-shadow: 0 12px 26px rgba(0, 0, 0, 0.1), 0 3px 12px rgba(0, 0, 0, 0.06);
  display: flex;
  flex-direction: column;
}
.event-card__media {
  display: block;
  aspect-ratio: 16 / 9;
  overflow: hidden;
}
.event-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.event-card__placeholder {
  width: 100%;
  height: 100%;
  background: #eee;
}

.event-card__body {
  padding: 14px;
  color: var(--ink);
}
.event-card__title {
  margin: 0 0 4px;
  font: 800 clamp(18px, 4.6vw, 22px) / 1.15 "Spectral SC", serif;
}
.event-card__when,
.event-card__loc {
  margin: 0.15rem 0;
  color: var(--muted);
  font-weight: 600;
}
.event-card__when span {
  opacity: 0.45;
  margin: 0 0.35em;
}
.event-card__excerpt {
  margin: 0.35rem 0 0.7rem;
  color: var(--ink);
  line-height: 1.6;
}

@media all and (max-width: 400px) {
  .event-card {
    margin-bottom: 24px;
  }
}

.btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  border-radius: 999px;
  text-decoration: none;
  background: #2f3b48;
  color: #fff;
  font-weight: 800;
  letter-spacing: 0.04em;
}
.btn--ghost {
  background: #fff;
  color: #fff;
  border: 1px solid var(--ink);
}
.event-card__cta {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.events-empty {
  text-align: center;
  color: var(--muted);
  padding: 18px;
}
.event-card__content > *:first-child {
  margin-top: 0.2rem;
}
.event-card__content > *:last-child {
  margin-bottom: 0;
}
.event-card__media {
  aspect-ratio: 16/9;
  overflow: hidden;
}
.event-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Overlay */
.pdfjs-overlay {
  position: fixed;
  inset: 0;
  background: #000;
  z-index: 9999;
  display: none;
  opacity: 0;
  transition: opacity 0.2s;
}
@supports (height: 100dvh) {
  .pdfjs-overlay {
    height: 100dvh;
  }
}
.pdfjs-overlay.is-open {
  display: block;
  opacity: 1;
}
.pdfjs-chrome {
  position: sticky;
  top: 0;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: calc(env(safe-area-inset-top, 0) + 8px) 10px 8px 10px;
  background: linear-gradient(
    to bottom,
    rgba(0, 0, 0, 0.85),
    rgba(0, 0, 0, 0.65)
  );
  color: #fff;
  z-index: 2;
  backdrop-filter: blur(6px);
}
.pdfjs-title {
  flex: 1;
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  padding-left: 6px;
}
.pdfjs-tools {
  display: flex;
  align-items: center;
  gap: 6px;
}
.pdfjs-btn {
  appearance: none;
  border: 0;
  border-radius: 10px;
  background: #fff;
  color: #111;
  font-size: 16px;
  line-height: 1;
  padding: 8px 10px;
  cursor: pointer;
}
.pdfjs-sep {
  width: 1px;
  height: 22px;
  background: rgba(255, 255, 255, 0.5);
  display: inline-block;
  margin: 0 4px;
}
.pdfjs-close {
  font-size: 22px;
  width: 40px;
  height: 40px;
  padding: 0;
  border-radius: 999px;
}
.pdfjs-scroller {
  position: absolute;
  inset: 0;
  padding: 56px 0 24px 0;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  transform: translateZ(0);

  /* Important bits for finger panning while zoomed */
  touch-action: pan-x pan-y pinch-zoom; /* allow horizontal + vertical panning and pinch */
  overscroll-behavior: contain; /* prevent scroll chaining to body */
}
.pdfjs-page-canvas {
  display: block;
  margin: 0 auto 12px auto;
  background: #111;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
}
.pdfjs-loading {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  color: #fff;
  background: rgba(0, 0, 0, 0.5);
  padding: 10px 14px;
  border-radius: 10px;
  display: none;
}
.pdfjs-overlay.is-loading #pdfLoading {
  display: block;
}
/* Lock background scroll when open */
body.pdf-open {
  position: fixed;
  width: 100%;
}

/* Preloader base */
#nav-preloader[hidden] {
  display: none;
}
#nav-preloader {
  position: fixed;
  inset: 0;
  z-index: 2147483647; /* on top of everything */
}

/* Dimmed scrim */
.nav-preloader__scrim {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.35);
  backdrop-filter: blur(2px);
}

/* Centered box with spinner + label */
.nav-preloader__box {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background: white;
  border-radius: 14px;
  padding: 0.9rem 1.1rem;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25);
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  font: 500 0.95rem/1.1 system-ui, -apple-system, Segoe UI, Roboto, Ubuntu,
    Cantarell, "Helvetica Neue", Arial, "Noto Sans", "Apple Color Emoji",
    "Segoe UI Emoji";
}

/* Spinner animation */
.nav-preloader__spinner {
  width: 28px;
  height: 28px;
  animation: spin 1s linear infinite;
}
.nav-preloader__spinner circle {
  stroke: currentColor;
  stroke-linecap: round;
  stroke-dasharray: 126;
  stroke-dashoffset: 95;
  animation: dash 1.5s ease-in-out infinite;
}
@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}
@keyframes dash {
  0% {
    stroke-dashoffset: 126;
  }
  50% {
    stroke-dashoffset: 63;
    transform: rotate(45deg);
  }
  100% {
    stroke-dashoffset: 126;
    transform: rotate(360deg);
  }
}

/* Optional: while navigating, lock interactions */
html.navigating {
  cursor: progress;
}
html.navigating * {
  pointer-events: none !important;
}

#privacy-cookies-policy a {
  color: #885921 !important;
}
#privacy-cookies-policy li {
  font-family: "Cormorant Garamond", serif !important;
  font-size: clamp(18px, 2.2vw, 20px) !important;
}

/* Sticky Header */
.ghh-header.sticky {
  position: fixed !important;
  box-shadow: 0 4px 16px -4px rgba(0, 0, 0, 0.34);
  transition: all .1s ease-in-out;;
}
.ghh-header.sticky .logo {
  text-align: left;
  left: 0;
  position: absolute;
  right: 0;
  width: 13%;
  margin: 0 auto;
}
