/*
Theme Name: Round Robin QNY 2026
Author: Edison Dairo Jimenez / QNY Creative
Author URI: http://qnycreative.com
Version: 1.0
*/

/* Colors — overwrite per project */
:root{
	--burgundy:#581b25;
	--gold:#ab9113;
	--gold-text:#aa9131;
	--green:#143e35;
	--beige:#d6d1c3;
	--cream:#f0eee8;
	--white:#fff;
	--dark:#1a1a1a;
	--text:#000;
	--border:#ccc;
	--primary:var(--burgundy);
	--accent:var(--gold);
	--bg-alt:#efefef;
	--serif:"Cormorant Garamond", Georgia, serif;
	--sans:"arboria", "Helvetica Neue", Arial, sans-serif;
}

/* WordPress Core Styles */
.alignleft{float:left; margin-right:1.5rem; margin-bottom:1rem}
.alignright{float:right; margin-left:1.5rem; margin-bottom:1rem}
.aligncenter{display:block; margin-left:auto; margin-right:auto; margin-bottom:1rem}
.alignwide{max-width:100%; margin-left:auto; margin-right:auto}
.alignfull{max-width:100vw; margin-left:calc(-50vw + 50%); width:100vw}
.wp-caption{max-width:100%; margin-bottom:1rem}
.wp-caption img{display:block; max-width:100%; height:auto}
.wp-caption-text,.wp-block-image figcaption,.gallery-caption{font-size:.875rem; color:#666; margin-top:.5rem; text-align:center}
img{max-width:100%; height:auto}
.wp-block-image img{display:block}
.gallery{display:flex; flex-wrap:wrap; gap:.5rem; margin-bottom:1.5rem}
.gallery-item{flex:1 0 calc(33.333% - .5rem)}
.gallery-item img{display:block; width:100%; height:auto}
.screen-reader-text{clip:rect(1px,1px,1px,1px); clip-path:inset(50%); height:1px; width:1px; margin:-1px; overflow:hidden; padding:0; position:absolute; word-wrap:normal!important}
.screen-reader-text:focus{background-color:#f1f1f1; clip:auto!important; clip-path:none; color:#21759b; display:block; font-size:.875rem; font-weight:700; height:auto; left:5px; line-height:normal; padding:15px 23px 14px; text-decoration:none; top:5px; width:auto; z-index:100000}
.entry-content::after{content:""; display:table; clear:both}
.wp-block-quote{border-left:4px solid #ccc; margin:1.5rem 0; padding:.5rem 1.5rem}
.wp-block-pullquote{border-top:4px solid #ccc; border-bottom:4px solid #ccc; padding:1.5rem 0; text-align:center}
.wp-block-table{width:100%; margin-bottom:1.5rem; border-collapse:collapse}
.wp-block-table td,.wp-block-table th{padding:.5rem; border:1px solid #ccc}
.wp-block-separator{border:none; border-top:2px solid #ccc; margin:2rem 0}
.wp-block-button .wp-block-button__link{display:inline-block; padding:.75rem 1.5rem; text-decoration:none}
.has-text-align-left{text-align:left}
.has-text-align-center{text-align:center}
.has-text-align-right{text-align:right}

/* Minimal Reset */
*, *::before, *::after{box-sizing:border-box; margin:0; padding:0}
html{-webkit-text-size-adjust:100%; scroll-behavior:smooth; font-size:16px}
.block[id]{ scroll-margin-top:103px;} /* clear the fixed header when a menu link jumps to a section */
body{font-family:sans-serif; min-height:100vh; line-height:1.5; overflow-x:hidden; font-weight:400; font-size:1.2rem;}
img, picture, video, canvas, svg{display:block; max-width:100%; height:auto}
button{font:inherit; cursor:pointer}
a{text-decoration:none; color:inherit}
table{border-collapse:collapse; border-spacing:0}
h1,h2,h3,h4,h5,h6{font-size:inherit; font-weight:inherit}
p, li, blockquote, figcaption, summary{ text-wrap:pretty;} /* no orphan words (main.js adds a &nbsp; fallback) */
input, select, textarea{width:100%; padding:10px; border:1px solid var(--border); background:var(--white); font:inherit; border-radius:0; -webkit-appearance:none}
textarea{resize:none; min-height:120px}

/* Layout */
.content{ width:1300px; margin:0 auto; padding:0;}
.hidden{display:none !important}
.center{ text-align:center !important;}
.bg{ display: flow-root;}
.white{ color:var(--white);}

/* Column Layout */
.row{display:flex; flex-wrap:wrap; gap:15px}
.col{flex:1}
.col-1{flex:0 0 100%}
.col-2{flex:0 0 calc(50% - 7.5px)}
.col-3{flex:0 0 calc(33.333% - 10px)}
.col-4{flex:0 0 calc(25% - 11.25px)}
.col-5{flex:0 0 calc(20% - 12px)}

/* Responsive BG */
.rbg{background-image:var(--bg-desktop); background-size:cover; background-position:center}

/* Solid fill button */
.button{display:inline-block; padding:12px 30px; background:var(--primary); color:var(--white); font-weight:700; text-transform:uppercase; letter-spacing:0.05em; font-size:0.875rem; cursor:pointer; border:none; transition:background 0.3s}
.button:hover{background:var(--accent)}

/* Notifications */
.msg{padding:12px 16px; font-size:1rem; margin:20px 0 0; display:none;}
.msg.visible{display:block !important;}
.msg.success{background:#e8f5e9; color:#2e7d32; border:1px solid #a5d6a7}
.msg.error{background:#fbe9e7; color:#c62828; border:1px solid #ef9a9a}
.msg.warning{background:#fff8e1; color:#f57f17; border:1px solid #ffe082}
.redBorder{border-color:#c62828 !important; outline: 2px solid #c62828 !important;}

/* ACF Blocks wrapper */
.block { margin: 60px auto; position: relative;}
.block .content { margin: 0px auto;}

/* Popup CPT overlay */
.popupOverlay{position:fixed; left:0; top:0; background:rgba(255,255,255,0.8); display:block; width:100vw; height:100vh; z-index:1000;}
.popupOverlay .verticalAlign{width:100%; height:100%; display:table-cell; vertical-align:middle;}
.popupOverlay .popup{ width: 100%; margin:0 auto; max-width:420px; position: relative;}
.popupOverlay .popupFullImg{ width: 100%; margin:0 auto; display: block; }
.popupOverlay .popupFullImg img{ display: block; width: 100%;}
.popupOverlay .close{ position: absolute; right: -40px; top: -40px; width: 40px; height: 40px; box-sizing: border-box; background: url(img/close.svg) no-repeat center center / contain; cursor: pointer;}
.displayTable{ display: table; width: 100%; height: 100%;}
.verticalAlign{ display: table-cell; vertical-align: middle;}

/* Fixed tiers: big desktop >=1600 is 1:1 with the 1600px Figma frame; smaller tiers are in the media blocks at the end of this file */
body{ min-width:1600px; background:var(--burgundy); color:var(--white); font-family:var(--sans); -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;}

/* Buttons */
.btnOutline{ display:block; height:42px; padding:6px 0 0; border:2px solid var(--gold); font:italic 600 20px/normal var(--serif); color:var(--white); text-align:center; transition:background .3s, color .3s;}
.btnOutline:hover{ background:var(--gold); color:var(--white);}
.btnDark{ color:var(--green);}
button.btnOutline{ padding:3px 0 0;}

/* Header */
.siteHeader{ position:fixed; z-index:1000; left:0; top:0; width:100%; height:103px; background:var(--burgundy); box-shadow:0 4px 4px rgba(0,0,0,.25);}
body.admin-bar .siteHeader{ top:32px;}
.headerInner{ position:relative; width:1600px; height:103px; margin:0 auto;}
.siteHeader .logo{ position:absolute; left:78px; top:40px; width:380px; height:24px;}
.siteHeader .logo img{ width:380px; height:24px;}
.mainNav{ position:absolute; left:568px; top:40px;}
.headerInner:not(:has(.headerCta)) .mainNav{ left:auto; right:67px;} /* no reservation button: end where it ended */
.mainNav-list{ display:flex; gap:75.25px; list-style:none;}
.mainNav-list a{ display:block; font:400 16px/normal var(--sans); color:var(--white); transition:color .3s;}
.mainNav-list a:hover{ color:var(--gold-text);}
.headerCta{ position:absolute; left:1328px; top:30px; width:205px;}
.navToggle, .mainNav-cta{ display:none;}

/* Section */
section{ padding:163px 0 0;}
.home section, section:has(> .heroSlider:first-child){ padding:0;}
.heroSlider, .textImage, .menuCards, .quoteBlock, .storyCollage, .timeline, .tourBlock, .reservationBlock{ margin:0;}

/* Block: hero slider */
.heroSlider{ position:relative; height:100vh; min-height:760px; overflow:hidden; background:#2a1210; color:var(--white);}
.heroSlide{ position:absolute; inset:0; opacity:0; visibility:hidden; transition:opacity 1s ease, visibility 1s;}
.heroSlide.isActive{ opacity:1; visibility:visible;}
.heroBg{ position:absolute; inset:0; overflow:hidden;}
.heroBg picture{ display:contents;}
.heroBg img{ width:100%; height:100%; object-fit:cover;}
/* blurred logo slide: crop + zoom measured from the Figma landing frame */
.heroBg.isBlurred img{ object-position:7.3% 64.1%; transform:scale(1.112); transform-origin:7.3% 64.1%; filter:blur(12px);}
.heroBg::after{ content:""; position:absolute; inset:0; background:rgba(0,0,0,.25);}
/* sharp photo slides: extra shade behind the caption */
.heroBg:not(.isBlurred)::after{ background:linear-gradient(to bottom, rgba(0,0,0,.25) 55%, rgba(0,0,0,.65) 100%);}
.heroLogo{ position:absolute; left:50%; top:50%; width:476px; height:476px; margin:-257px 0 0 -238px;}
.heroText{ position:absolute; left:calc(50% - 710px); top:calc(100% - 111px); display:flex; align-items:flex-start;}
.heroTitle{ width:527px; font:italic 600 52px/56px var(--serif);}
.heroDesc{ width:606px; margin-left:66px; font:400 18px/26px var(--sans);}
.heroLine{ position:absolute; left:calc(50% - 709px); top:calc(100% - 149px); width:1418px; height:2px; border-radius:1px; background:var(--gold-text);}
.heroArrow{ position:absolute; top:calc(50% - 19.7px); width:29.33px; height:54.41px; border:0; background:url(img/slider-arrows.svg) no-repeat 0 0 / 1476.33px 54.41px; z-index:2;}
.heroPrev{ left:calc(50% - 735px);}
.heroNext{ left:calc(50% + 712px); background-position:-1447px 0;}
.heroDots{ position:absolute; left:calc(50% + 647px); top:calc(100% - 89px); display:flex; gap:13px; z-index:2;}
.heroDot{ width:12px; height:12px; border:0; border-radius:50%; background:#d9d9d9; opacity:.75; transition:background .3s, opacity .3s;}
.heroDot.isActive{ background:var(--gold); opacity:1;}

/* Entrance animations (ticket: nav drops down, logo rises + fades, text/line/UI fade in) */
@keyframes navDrop{ from{ transform:translateY(-100%);} to{ transform:none;}}
@keyframes logoRise{ from{ opacity:0; transform:translateY(80px);} to{ opacity:1; transform:none;}}
@keyframes fadeIn{ from{ opacity:0;} to{ opacity:1;}}
.siteHeader{ animation:navDrop 1.2s cubic-bezier(.22,.61,.36,1) both;}
.heroSlide:first-child .heroLogo{ animation:logoRise 1.6s cubic-bezier(.22,.61,.36,1) .3s both;}
.heroSlide:first-child .heroText, .heroLine, .heroArrow, .heroDots{ animation:fadeIn 1.2s ease 1.2s both;}
.reveal{ opacity:0; transform:translateY(30px); transition:opacity 1s ease, transform 1s ease;}
.reveal.isVisible{ opacity:1; transform:none;}
.storyCollage-text.reveal{ transform:none; transition:opacity 1.8s ease .2s;}
.storyFrame.reveal{ transform:translateY(60px); transition:opacity .9s ease, transform .9s cubic-bezier(.22,.61,.36,1);}
.storyFrame.reveal.isVisible{ transform:none;}
@media (prefers-reduced-motion: reduce){
	.siteHeader, .heroLogo, .heroText, .heroLine, .heroArrow, .heroDots{ animation:none !important;}
	.heroSlide{ transition:none;}
	.reveal{ opacity:1; transform:none; transition:none;}
}

/* Block: text + image */
.textImage{ display:flex; min-height:713px;}
.textImage.photo-right{ flex-direction:row-reverse;}
.textImage-photo{ position:relative; flex:1 1 50%; overflow:hidden;}
.textImage-photo img{ position:absolute; left:0; top:0; width:100%; height:100%; object-fit:cover;}
.textImage-panel{ position:relative; flex:1 1 50%; display:flex; background:var(--burgundy); color:var(--white);}
.textImage-frame{ flex:1; margin:44px 46px 45px 40px; border:2px solid var(--gold); display:flex; flex-direction:column; align-items:center; padding:56px 0 60px; text-align:center;}
.textImage-title{ width:560px; max-width:100%; font:italic 500 52px/56px var(--serif); text-wrap:balance;}
.textImage-text{ width:549px; margin-top:49px; margin-left:1px; font:400 21px/34px var(--sans);}
.textImage-text p{ margin:0 0 34px;}
.textImage-text p:last-child{ margin:0;}
.textImage-frame .btnOutline{ width:205px; margin:58px 0 0 7px;}

/* Block: menu cards */
.menuCards{ background:var(--beige); padding:72px 0 71px; text-align:center;}
.menuCards-title{ font:italic 500 65px/56px var(--serif); color:var(--gold-text);}
.menuCards-list{ display:flex; width:1600px; margin:61px auto 0; padding:0 0 0 132px;}
.menuCard{ width:423px; display:flex; flex-direction:column; align-items:center;}
.menuCard + .menuCard{ margin-left:35px;}
.menuCard:nth-child(3){ margin-left:37px;}
.menuCard-photo{ width:423px; height:282px; overflow:hidden;}
.menuCard-photo img{ width:100%; height:100%; object-fit:cover;}
.menuCard-name{ margin-top:37px; font:italic 600 36px/36px var(--serif); color:var(--green);}
.menuCard .btnOutline{ width:149px; margin-top:40px;}

/* Block: text + image, photo on the right ("A Historic D.C. Icon") */
.textImage.photo-right .textImage-frame{ padding-top:104px;}
.textImage.photo-right .textImage-text{ width:511px; margin-top:61px;}

/* Block: quote */
.quoteBlock{ height:549px; padding:114px 0 0; background:var(--green); text-align:center;}
.quoteBlock-text{ font:italic 500 55px/56px var(--serif); color:var(--white);}
.quoteBlock footer{ display:flex; flex-direction:column; align-items:center;}
.quoteBlock-line{ display:block; width:93px; height:2px; margin:65px 0 0; background:var(--gold-text);}
.quoteBlock-name{ display:block; margin-top:27.5px; font:italic 600 38px/56px var(--serif); color:var(--gold-text);}
.quoteBlock-caption{ display:block; font:400 18px/26px var(--sans); color:var(--white);}

/* Block: story collage ("Where Stories Are Poured" with framed photos) */
.storyCollage{ position:relative; height:1176px; background:var(--cream); overflow:hidden;}
.storyCollage > *{ position:absolute;}
.storyCollage-graphic{ left:calc(50% - 290.7px); top:335px; width:582px; height:582px; animation:spin 120s linear infinite;}
@keyframes spin{ to{ transform:rotate(360deg);}}
@media (prefers-reduced-motion: reduce){ .storyCollage-graphic{ animation:none;}}
.storyCollage-text{ left:calc(50% - 412px); top:411px; width:825px; display:flex; flex-direction:column; align-items:center; gap:12px; text-align:center; color:#451d22;}
.storyCollage-title{ width:1219px; font:400 100px/108px var(--serif); letter-spacing:31px; text-transform:uppercase; font-feature-settings:"lnum" 1, "pnum" 1;}
/* Figma centres the last line without its trailing letter-spacing */
.storyCollage-title::after{ content:""; margin-left:-31px;}
.storyCollage-desc{ width:563px; font:400 16px/24px var(--sans);}
.storyCollage .btnSolid{ margin-top:31px;}
.btnSolid{ display:block; width:205px; height:42px; padding:8px 0 0; background:var(--green); font:italic 600 20px/normal var(--serif); color:var(--white); text-align:center; transition:background .3s;}
.btnSolid:hover{ background:var(--burgundy);}
.storyFrame{ display:block; padding:8px; border:1px solid #a5aea7; background:var(--cream); cursor:zoom-in; z-index:2;}
.storyFrame > span{ display:block; padding:24px; border:1px solid #a5aea7;}
.storyFrame img{ display:block; object-fit:cover; transition:transform .4s;}
.storyFrame:hover img{ transform:scale(1.03);}
.storyFrame-1{ left:calc(50% - 635px); top:872px;} .storyFrame-1 img{ width:286px; height:152px;}
.storyFrame-2{ left:calc(50% + 404px); top:121px;} .storyFrame-2 img{ width:232px; height:150px;}
.storyFrame-3{ left:calc(50% + 253px); top:908px;} .storyFrame-3 img{ width:161px; height:107px;}
.storyFrame-4{ left:calc(50% - 841px); top:599px;} .storyFrame-4 img{ width:161px; height:107px;}
.storyFrame-5{ left:calc(50% + 495px); top:561px;} .storyFrame-5 img{ width:150px; height:204px;}
.storyFrame-6{ left:calc(50% - 30px); top:87px;} .storyFrame-6 img{ width:100px; height:136px;}
.storyFrame-7{ left:calc(50% - 527px); top:109px;} .storyFrame-7 img{ width:168px; height:82px;}
.storyFrame-8{ left:calc(50% - 704px); top:155px;} .storyFrame-8 img{ width:128px; height:172px;}
.lightbox{ position:fixed; inset:0; z-index:2000; display:flex; align-items:center; justify-content:center; background:rgba(20,10,12,.94); cursor:zoom-out; opacity:0; transition:opacity .3s;}
.lightbox.isOpen{ opacity:1;}
.lightbox img{ max-width:80vw; max-height:80vh; box-shadow:0 10px 40px rgba(0,0,0,.5); cursor:default;}
.lightboxNav, .lightboxClose{ position:absolute; width:56px; height:56px; border:0; background:none;}
.lightboxNav{ top:calc(50% - 28px);}
.lightboxNav::before{ content:""; position:absolute; left:20px; top:18px; width:18px; height:18px; border:solid var(--gold-text); border-width:0 0 2px 2px; transform:rotate(45deg); transition:border-color .3s;}
.lightboxPrev{ left:2vw;}
.lightboxNext{ right:2vw;}
.lightboxNext::before{ left:14px; transform:rotate(-135deg);}
.lightboxNav:hover::before{ border-color:var(--white);}
.lightboxClose{ top:16px; right:16px;}
.lightboxClose::before, .lightboxClose::after{ content:""; position:absolute; left:14px; top:27px; width:28px; height:2px; background:var(--gold-text); transform:rotate(45deg);}
.lightboxClose::after{ transform:rotate(-45deg);}
.lightboxCount{ position:absolute; left:0; right:0; bottom:3vh; text-align:center; font:italic 500 20px/24px var(--serif); color:var(--gold-text);}

/* Block: timeline ("Explore Our History") */
.timeline{ position:relative; height:942px; background:var(--burgundy); overflow:hidden;}
.timeline > *{ position:absolute;}
.timeline-title{ left:0; right:0; top:77px; text-align:center; font:italic 500 65px/56px var(--serif); color:var(--gold-text);}
.timelineArrow{ top:288px; width:124px; height:340px; border:0; background:url(img/tl-left.svg) no-repeat 0 0 / 124px 340px; z-index:3;}
.timelinePrev{ left:0;}
.timelineNext{ right:0; background-image:url(img/tl-right.svg);}
.timeline-cards{ left:calc(50% - 505px); top:240px; width:1011px; height:436px;}
.timelineCard{ position:absolute; inset:0; display:flex; gap:1px; opacity:0; visibility:hidden; transition:opacity .6s ease, visibility .6s;}
.timelineCard.isActive{ opacity:1; visibility:visible;}
.timelineCard-photo{ width:505px; height:436px; overflow:hidden;}
.timelineCard-photo img{ width:100%; height:100%; object-fit:cover;}
.timelineCard-panel{ position:relative; width:505px; height:436px; background:#efdeb5; color:var(--green);}
.timelineCard-frame{ position:absolute; left:18px; top:20px; width:467px; height:400px; border:2px solid var(--gold-text); display:flex; flex-direction:column; align-items:center; justify-content:center; padding:20px 44px;}
.timelineCard-year{ text-align:center; font:italic 500 80px/72px var(--serif);}
.timelineCard-line{ flex:none; width:162px; height:2px; margin:26px 0 28px; background:var(--gold-text);}
.timelineCard-text{ text-align:center; font:400 16px/25px var(--sans);}
.timeline-ring{ left:calc(50% - 586px); top:561px; width:163px; height:164px; z-index:2; animation:spin 30s linear infinite;}
@media (prefers-reduced-motion: reduce){ .timeline-ring{ animation:none;}}
.timeline-star{ left:calc(50% - 545px); top:604px; width:79px; height:78px; z-index:2;}
.timeline-bar{ left:calc(50% - 390px); top:771px; width:768px; height:91px;}
.timeline-track{ position:absolute; left:0; top:80px; width:768px; height:2px; background:var(--gold-text);}
.timelineStop{ position:absolute; top:0; width:18px; height:91px; border:0; background:none;}
.timelineStop-dot{ position:absolute; left:0; top:73px; width:18px; height:18px; border:2px solid var(--gold-text); border-radius:50%; background:var(--green);}
.timelineStop-year{ position:absolute; left:-38.5px; top:5px; width:95px; text-align:center; font:italic 500 30px/56px var(--serif); color:var(--white); opacity:.2; transition:opacity .3s, color .3s;}
.timelineStop:hover .timelineStop-year{ opacity:.6;}
.timelineStop.isActive .timelineStop-year{ top:0; font:italic 600 45px/56px var(--serif); color:var(--gold-text); opacity:1;}

/* Block: interactive tour */
.tourBlock{ display:flex; height:684px; background:var(--white);}
.tourBlock-media{ position:relative; flex:0 0 calc(50% - 2px); background:var(--beige);}
.tourBlock-frame{ position:absolute; left:52px; top:44px; width:697px; height:596px; overflow:hidden;}
.tourBlock-frame img{ width:100%; height:100%; object-fit:cover; opacity:.2;}
.tourBlock-frame iframe{ width:100%; height:100%; border:0;}
.tourBlock-fpo{ position:absolute; left:93px; top:196px; width:526px; text-align:center; font:700 54px/61px "Montserrat", sans-serif; color:var(--white);}
.tourBlock-panel{ position:relative; flex:1 1 50%; margin-left:2px; background:var(--cream);}
.tourBlock-box{ position:absolute; left:40px; right:46px; top:44px; height:600px; border:2px solid var(--gold); display:flex; flex-direction:column; align-items:center; padding:61px 0 0; text-align:center;}
.tourBlock-title{ width:667px; margin-left:7px; font:italic 500 62px/66px var(--serif); color:var(--green);}
.tourBlock-text{ width:494px; margin-top:78px; font:400 21px/34px var(--sans); color:#000;}
.tourBlock-text p{ margin:0 0 34px;}
.tourBlock-text p:last-child{ margin:0;}

/* Block: reservation */
.reservationBlock{ position:relative; height:776px; overflow:hidden; background:#2a1210;}
.reservationBlock-bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.reservationForm{ position:absolute; left:calc(50% - 309px); top:148px; width:621px; height:481px; border-radius:22px; background:rgba(214,209,195,.92); -webkit-backdrop-filter:blur(20px); backdrop-filter:blur(20px); color:var(--green);}
.reservationForm > *{ position:absolute;}
.reservationForm-title{ left:-42px; top:38px; width:702px; text-align:center; font:italic 500 55px/56px var(--serif);}
.reservationForm-text{ left:57px; top:104px; width:505px; text-align:center; font:400 16px/25px var(--sans);}
.reservationForm input{ width:254px; height:37px; padding:4px 15px 6px; border:1px solid var(--gold-text); border-radius:8px; background:var(--white); font:400 12px/25px var(--sans); color:var(--green);}
.reservationForm input::placeholder{ color:var(--green); opacity:1;}
.reservationForm .resSelect input{ position:static; padding-right:34px;}
.resName{ left:46px; top:186px;} .resEmail{ left:319px; top:186px;}
.resDate{ left:46px; top:256px;} .resTime{ left:319px; top:256px;}
.resGuests{ left:180px; top:321px;}
.resSelect::after{ content:""; position:absolute; left:228px; top:15px; width:13px; height:6px; background:url(img/res-polygon.svg) no-repeat 0 0 / 13px 6px; transform:rotate(180deg); pointer-events:none;}
.resSubmit{ left:235px; top:397px; width:149px; background:none; cursor:pointer;}
.reservationForm-notice{ left:0; right:0; top:447px; text-align:center; font:400 14px/20px var(--sans);}

/* Footer */
.siteFooter{ background:var(--green); color:var(--white);}
.footerInner{ position:relative; width:1600px; height:308px; margin:0 auto;}
.footLogo{ position:absolute; left:133px; top:58px; width:187px; height:187px;}
.footCol{ position:absolute; text-align:center; font:400 16px/19px var(--sans);}
.footContact{ left:466px; top:80px; width:306px;}
.footHours{ left:825px; top:81px; width:291px;}
.footCol p{ margin:0 0 19px;}
.footCol p:last-child{ margin:0;}
.footCol .footHeading{ margin:0 0 20.4px; font:italic 600 18px/22px var(--serif); color:var(--gold-text);}
.footCol a{ color:inherit;}
.footWillard{ position:absolute; left:1259px; top:88px; width:211px; height:100px;}
.footNav{ padding:0 0 40px;}
.footNav-list{ display:flex; flex-wrap:wrap; justify-content:center; gap:10px 40px; list-style:none; font:400 15px/20px var(--sans);}
.footNav-list a{ color:var(--white); transition:color .3s;}
.footNav-list a:hover{ color:var(--gold-text);}

/* Block: text (privacy statement, long-form copy) */
.textBlock, .faqBlock, .contactBlock{ margin:0; padding:80px 0 90px; background:var(--beige); color:var(--green);}
section:has(> .textBlock:first-child), section:has(> .faqBlock:first-child), section:has(> .contactBlock:first-child){ padding-top:103px;}
.textBlock .blockTitle, .faqBlock .blockTitle, .contactBlock .blockTitle{ font:italic 500 65px/56px var(--serif); color:var(--gold-text);}
.blockTitle{ font-size:2.5rem; line-height:1.2; margin:0 0 30px;}
.textBlock-content{ font-size:1rem; line-height:1.6;}
.textBlock-content h2{ font-size:1.5rem; line-height:1.3; margin:40px 0 15px; font-weight:700; color:var(--gold-text);}
.textBlock-content p, .textBlock-content ul{ margin:0 0 15px;}
.textBlock-content ul{ padding:0 0 0 20px;}
.textBlock-content a{ text-decoration:underline;}
.textBlock-content .policyMenu{ column-count:2; column-gap:48px; margin:0 0 56px; padding:34px 44px 30px; border:2px solid var(--gold); counter-reset:policy;}
.textBlock-content .policyMenu::before{ content:"On this page"; display:block; column-span:all; margin:0 0 14px; font:italic 600 26px/32px var(--serif); color:var(--gold-text);}
.textBlock-content .policyMenu a{ break-inside:avoid; display:flex; align-items:baseline; gap:14px; padding:11px 0; border-bottom:1px solid rgba(171,145,19,.35); font-size:16px; line-height:22px; text-decoration:none; transition:color .3s;}
.textBlock-content .policyMenu a::before{ counter-increment:policy; content:counter(policy, decimal-leading-zero); flex:0 0 26px; font:italic 600 18px/22px var(--serif); color:var(--gold-text);}
.textBlock-content .policyMenu a:hover{ color:var(--gold-text);}
.textBlock-content .mainSection{ scroll-margin-top:140px;}

/* Block: contact form */
.contactBlock-grid{ display:grid; grid-template-columns:420px 1fr; gap:90px; align-items:start;}
.contactBlock .blockTitle{ margin:0 0 36px;}
.contactBlock-text{ font:400 18px/28px var(--sans);}
.contactBlock-text p{ margin:0 0 20px;}
.contactBlock-text a{ text-decoration:underline;}
.contactBlock-text strong{ font:italic 600 22px/28px var(--serif); color:var(--gold-text);}
.contactBlock-photo img{ display:block; width:100%; height:auto; aspect-ratio:3/2; object-fit:cover;}
.contactForm{ display:flex; flex-direction:column; gap:22px; padding:44px 46px 40px; border:2px solid var(--gold);}
.contactForm-intro{ font:400 16px/25px var(--sans);}
.contactForm-row{ display:grid; grid-template-columns:1fr 1fr; gap:22px;}
.contactForm-field{ display:flex; flex-direction:column; gap:8px;}
.contactForm-field > span{ font:italic 600 20px/24px var(--serif); color:var(--gold-text);}
.contactForm-field input, .contactForm-field textarea{ height:46px; padding:0 16px; border:1px solid var(--gold-text); border-radius:0; background:rgba(255,255,255,.5); font:400 16px/24px var(--sans); color:var(--green);}
.contactForm-field textarea{ height:170px; padding:12px 16px; resize:vertical;}
.contactForm-field input:focus, .contactForm-field textarea:focus{ outline:2px solid var(--gold-text); outline-offset:1px;}
.contactForm .isInvalid{ border-color:#a8323e; outline:2px solid #a8323e;}
.contactForm-disclaimer{ font:400 13px/20px var(--sans);}
.contactForm-disclaimer a{ text-decoration:underline;}
.contactForm-submit{ width:149px; background:none; cursor:pointer;}
.contactForm-msg{ font:400 15px/22px var(--sans);}
.contactForm-msg.isError{ color:#a8323e;}
.contactForm-msg.isOk{ color:var(--green);}

/* Block: faq */
.faqBlock-intro{ font-size:1.1rem; margin:-15px 0 30px;}
.faqItem{ border-bottom:1px solid rgba(171,145,19,.6);}
.faqItem summary{ list-style:none; cursor:pointer; padding:20px 40px 20px 0; position:relative; font-size:1.2rem; font-weight:700; line-height:1.3;}
.faqItem summary::-webkit-details-marker{ display:none;}
.faqItem summary::after{ content:"+"; position:absolute; right:0; top:50%; transform:translateY(-50%); font-size:1.5rem; font-weight:400;}
.faqItem[open] summary::after{ content:"\2212";}
.faqItem-answer{ font-size:1rem; line-height:1.6; overflow:hidden; transition:height .4s ease, opacity .4s ease;}
.faqItem-answer > *:last-child{ padding-bottom:20px;}
.faqItem.isClosing .faqItem-answer{ opacity:0;}
.faqItem summary::after{ transition:transform .4s ease;}
.faqItem[open]:not(.isClosing) summary::after{ transform:translateY(-50%) rotate(180deg);}
.faqItem-answer a{ text-decoration:underline;}

/* ===== Small desktop 1280-1599 (body 1280, content 1200) ===== */
@media (max-width:1599px){
	body{ min-width:1280px;}
	.content{ width:1200px;}

	/* header */
	.headerInner{ display:flex; align-items:center; justify-content:space-between; width:1280px; padding:0 40px;}
	.siteHeader .logo, .mainNav, .headerCta{ position:static;}
	.siteHeader .logo, .siteHeader .logo img{ width:300px; height:19px;}
	.mainNav-list{ gap:40px;}
	.headerCta{ width:190px;}

	/* hero */
	.heroLogo{ width:420px; height:420px; margin:-227px 0 0 -210px;}
	.heroText{ left:calc(50% - 600px);}
	.heroTitle{ width:470px; font-size:46px; line-height:50px;}
	.heroDesc{ width:540px; margin-left:60px;}
	.heroLine{ left:calc(50% - 600px); width:1200px;}
	.heroPrev{ left:calc(50% - 625px);}
	.heroNext{ left:calc(50% + 596px);}
	.heroDots{ left:auto; right:calc(50% - 600px);}

	/* text + image: 640px panels */
	.textImage-frame{ margin-left:32px; margin-right:32px; padding-top:50px;}
	.textImage-title{ width:520px;}
	.textImage-text, .textImage.photo-right .textImage-text{ width:480px; margin-top:40px; font-size:19px; line-height:31px;}
	.textImage-text p{ margin-bottom:31px;}
	.textImage.photo-right .textImage-frame{ padding-top:80px;}
	.textImage-frame .btnOutline{ margin:48px 0 0;}

	/* menu cards: 3 x 376 */
	.menuCards-list{ width:1200px; padding:0; justify-content:space-between;}
	.menuCard, .menuCard-photo{ width:376px;}
	.menuCard + .menuCard, .menuCard:nth-child(3){ margin-left:0;}
	.menuCard-photo{ height:251px;}

	/* story collage + timeline: drawn as art pieces, scaled as a whole */
	.storyCollage, .timeline{ zoom:.8;}

	/* tour */
	.tourBlock-frame{ left:40px; right:40px; width:auto;}
	.tourBlock-fpo{ left:0; right:0; width:auto;}
	.tourBlock-box{ left:32px; right:32px;}
	.tourBlock-title{ width:540px; margin-left:0; font-size:54px; line-height:60px;}
	.tourBlock-text{ width:480px; margin-top:56px; font-size:19px; line-height:31px;}

	/* footer: 4 columns spread over 1200 */
	.footerInner{ display:flex; justify-content:space-between; align-items:flex-start; width:1200px; padding:58px 0 0;}
	.footLogo, .footCol, .footWillard{ position:static;}
	.footContact{ margin-top:22px;}
	.footHours{ margin-top:23px;}
	.footWillard{ margin-top:30px;}

	/* inner pages */
	.contactBlock-grid{ grid-template-columns:400px 1fr; gap:70px;}
}

/* ===== Tablet 768-1279 (body 768, content 720) ===== */
@media (max-width:1279px){
	body{ min-width:768px;}
	.content{ width:720px;}
	.block[id]{ scroll-margin-top:80px;}

	/* header: logo, reservation button, menu toggle; nav drops down as a panel */
	.siteHeader, .headerInner{ height:80px;}
	.headerInner{ width:768px; padding:0 24px;}
	.siteHeader .logo, .siteHeader .logo img{ width:260px; height:16px;}
	.headerCta{ width:170px; height:40px; margin-left:auto; font-size:18px;}
	.navToggle{ display:block; position:relative; width:40px; height:40px; margin-left:20px; border:0; background:none;}
	.navToggle span, .navToggle::before, .navToggle::after{ content:""; position:absolute; left:6px; width:28px; height:2px; background:var(--gold-text); transition:transform .3s, opacity .3s;}
	.navToggle span{ top:19px;}
	.mainNav + .navToggle{ margin-left:auto;} /* no reservation button */
	.navToggle::before{ top:10px;}
	.navToggle::after{ top:28px;}
	.isMenuOpen .navToggle span{ opacity:0;}
	.isMenuOpen .navToggle::before{ transform:translateY(9px) rotate(45deg);}
	.isMenuOpen .navToggle::after{ transform:translateY(-9px) rotate(-45deg);}
	@media (prefers-reduced-motion: reduce){ .mainNav, .isMenuOpen .mainNav, .mainNav-list li, .isMenuOpen .mainNav-list li, .navToggle span, .navToggle::before, .navToggle::after{ transition:none !important;}}
	/* panel unrolls from under the header, links slide in one after another */
	.mainNav{ position:absolute; left:0; right:0; top:80px; padding:10px 24px 30px; background:var(--burgundy); box-shadow:0 8px 8px rgba(0,0,0,.25); visibility:hidden; clip-path:inset(0 0 100% 0); transition:clip-path .45s cubic-bezier(.22,.61,.36,1), visibility 0s .45s;}
	.isMenuOpen .mainNav{ visibility:visible; clip-path:inset(0 0 -20px 0); transition:clip-path .45s cubic-bezier(.22,.61,.36,1), visibility 0s;}
	.mainNav-list{ flex-direction:column; gap:0;}
	.mainNav-list a{ padding:16px 0; border-bottom:1px solid rgba(170,145,49,.4); font:italic 500 26px/30px var(--serif);}
	.mainNav-list li{ opacity:0; transform:translateY(-12px); transition:opacity .25s, transform .25s;}
	.isMenuOpen .mainNav-list li{ opacity:1; transform:none; transition:opacity .4s .15s, transform .4s .15s;}
	.isMenuOpen .mainNav-list li:nth-child(2){ transition-delay:.2s;}
	.isMenuOpen .mainNav-list li:nth-child(3){ transition-delay:.25s;}
	.isMenuOpen .mainNav-list li:nth-child(4){ transition-delay:.3s;}
	.isMenuOpen .mainNav-list li:nth-child(5){ transition-delay:.35s;}
	.isMenuOpen .mainNav-list li:nth-child(n+6){ transition-delay:.4s;}

	/* pages that start below the header */
	section:has(> .textBlock:first-child), section:has(> .faqBlock:first-child), section:has(> .contactBlock:first-child){ padding-top:80px;}

	/* hero: text block stacks and sits at the bottom */
	.heroLogo{ width:360px; height:360px; margin:-200px 0 0 -180px;}
	.heroText{ left:calc(50% - 360px); top:auto; bottom:64px; width:720px; flex-direction:column;}
	.heroTitle{ width:auto; font-size:42px; line-height:48px;}
	.heroDesc{ width:720px; margin:12px 0 0;}
	.heroLine{ left:calc(50% - 360px); top:auto; bottom:226px; width:720px;}
	.heroPrev{ left:16px;}
	.heroNext{ left:auto; right:16px;}
	.heroDots{ top:auto; right:calc(50% - 360px); bottom:246px;}

	/* text + image: photo on top, framed text below */
	.textImage, .textImage.photo-right{ flex-direction:column; height:auto;}
	.textImage-photo{ flex:none; height:520px;}
	.textImage-panel{ display:block; flex:none; height:auto; padding:40px 0;}
	.textImage-frame, .textImage.photo-right .textImage-frame{ position:relative; left:auto; right:auto; top:auto; bottom:auto; width:720px; margin:0 auto; padding:56px 0 60px;}
	.textImage-title{ width:560px; font-size:48px; line-height:54px;}
	.textImage-text, .textImage.photo-right .textImage-text{ width:560px; margin-top:36px;}
	.textImage-frame .btnOutline{ margin:44px 0 0;}

	/* menu cards: 2 + 1, centred */
	.menuCards{ padding:64px 0 70px;}
	.menuCards-title{ font-size:56px;}
	.menuCards-list{ width:720px; flex-wrap:wrap; justify-content:center; gap:50px 40px; margin-top:50px;}
	.menuCard, .menuCard-photo{ width:340px;}
	.menuCard-photo{ height:227px;}
	.menuCard-name{ margin-top:28px;}
	.menuCard .btnOutline{ margin-top:28px;}

	/* quote */
	.quoteBlock{ height:auto; padding:90px 0 96px;}
	.quoteBlock blockquote{ width:720px; margin:0 auto;}
	.quoteBlock-text{ font-size:44px; line-height:52px;}
	.quoteBlock-line{ margin-top:48px;}
	.quoteBlock-text br{ display:none;}

	/* story collage: text on top, photos in a 3-column grid */
	.storyCollage{ zoom:1; display:flex; flex-wrap:wrap; justify-content:center; gap:24px; height:auto; padding:96px calc(50% - 360px) 90px;}
	.storyCollage > *{ position:static;}
	.storyCollage-graphic{ position:absolute; left:calc(50% - 291px); top:20px;}
	.storyCollage-text{ position:relative; left:auto; top:auto; order:-1; width:720px; margin:120px 0 50px;}
	.storyCollage-title{ width:720px; font-size:64px; line-height:72px; letter-spacing:18px;}
	.storyCollage-title::after{ margin-left:-18px;}
	.storyFrame img{ width:140px !important; height:140px !important;}

	/* timeline: card stacks (photo over text), year bar scaled to fit */
	.timeline{ zoom:1; height:auto; padding:70px 0 70px;}
	.timeline > *{ position:relative;}
	.timeline-title{ top:auto; left:auto; right:auto; font-size:56px;}
	.timeline-ring, .timeline-star{ display:none;}
	.timelineArrow{ position:absolute; top:420px; width:62px; height:170px; background-size:62px 170px;}
	.timeline-cards{ left:auto; top:auto; width:600px; height:780px; margin:50px auto 0;}
	.timelineCard{ flex-direction:column;}
	.timelineCard-photo, .timelineCard-panel{ width:600px; height:390px;}
	.timelineCard-frame{ left:18px; right:18px; top:20px; bottom:20px; width:auto; height:auto;}
	.timelineCard-frame{ padding:20px 60px;}
	.timeline-bar{ left:auto; top:auto; margin:40px auto 0; zoom:.78;}

	/* tour: media on top, text below */
	.tourBlock{ flex-direction:column; height:auto;}
	.tourBlock-media{ flex:none; height:520px;}
	.tourBlock-frame{ left:24px; right:24px; top:24px; bottom:24px; width:auto; height:auto;}
	.tourBlock-fpo{ top:170px;}
	.tourBlock-panel{ flex:none; margin:0; padding:40px 0;}
	.tourBlock-box{ position:relative; left:auto; right:auto; top:auto; width:720px; height:auto; margin:0 auto; padding:56px 0 60px;}
	.tourBlock-title{ width:560px; font-size:48px; line-height:54px;}
	.tourBlock-text{ width:560px; margin-top:40px;}

	/* footer: logos on top, contact + hours below */
	.footerInner{ display:grid; grid-template-columns:1fr 1fr; justify-items:center; align-items:center; gap:40px 0; width:720px; height:auto; padding:50px 0 44px;}
	.footLogo{ order:1;}
	.footWillard{ order:2;}
	.footContact{ order:3;}
	.footHours{ order:4;}
	.footContact, .footHours, .footWillard{ margin-top:0; align-self:start;}
	.footWillard{ align-self:center;}

	/* inner pages */
	.textBlock .blockTitle, .faqBlock .blockTitle, .contactBlock .blockTitle{ font-size:56px; line-height:56px;}
	.textBlock-content .policyMenu{ column-count:1; padding:30px 34px 26px;}
	.contactBlock-grid{ grid-template-columns:1fr; gap:50px;}
}

/* ===== Phone <768 (body 375, content 345) ===== */
@media (max-width:767px){
	body{ min-width:375px;}
	.content{ width:345px;}
	.block[id]{ scroll-margin-top:64px;}

	/* header */
	.siteHeader, .headerInner{ height:64px;}
	/* full width minus 15px each side; the reservation button moves into the menu panel */
	.headerInner{ width:auto; padding:0 15px;}
	.siteHeader .logo, .siteHeader .logo img{ width:240px; height:15px;}
	.headerCta{ display:none;}
	.navToggle{ width:36px; margin-left:auto; margin-right:-5px;}
	.mainNav-cta{ display:block; width:220px; margin:28px auto 0; opacity:0; transition:opacity .25s;}
	.isMenuOpen .mainNav-cta{ opacity:1; transition:opacity .4s .4s;}
	.navToggle span, .navToggle::before, .navToggle::after{ left:5px; width:26px;}
	.mainNav{ top:64px; padding:6px 15px 26px;}
	.mainNav-list a{ padding:14px 0; font-size:24px; line-height:28px;}
	section:has(> .textBlock:first-child), section:has(> .faqBlock:first-child), section:has(> .contactBlock:first-child){ padding-top:64px;}

	/* hero: gold rule sits on top of the caption so long captions push it up */
	.heroLogo{ width:200px; height:200px; margin:-165px 0 0 -100px;}
	.heroText{ left:calc(50% - 172.5px); bottom:52px; width:345px; padding-top:18px; border-top:2px solid var(--gold-text);}
	.heroTitle{ font-size:34px; line-height:40px;}
	.heroDesc{ width:345px; margin-top:10px; font-size:16px; line-height:24px;}
	.heroLine{ display:none;}
	.heroSlider{ height:640px; min-height:0;}
	/* per-slide "Phone focus" field picks the horizontal crop; the blurred logo slide keeps its own */
	.heroBg img{ object-position:var(--phoneFocus,50%) 50%;}
	.heroArrow{ top:calc(40% - 27px);}
	.heroPrev{ left:8px;}
	.heroNext{ right:8px;}
	.heroDots{ left:0; right:0; bottom:20px; justify-content:center;}

	/* text + image */
	.textImage-photo{ height:360px;}
	.textImage-panel{ padding:30px 0;}
	.textImage-frame, .textImage.photo-right .textImage-frame{ width:345px; padding:40px 0 44px;}
	.textImage-title{ width:325px; font-size:32px; line-height:38px;}
	.textImage-text, .textImage.photo-right .textImage-text{ width:295px; margin-top:28px; font-size:17px; line-height:28px;}
	.textImage-text p{ margin-bottom:28px;}
	.textImage-frame .btnOutline{ margin-top:32px;}

	/* menu cards: one column */
	.menuCards{ padding:56px 0 60px;}
	.menuCards-title{ font-size:44px; line-height:48px;}
	.menuCards-list{ width:345px; gap:44px; margin-top:40px;}
	.menuCard, .menuCard-photo{ width:345px;}
	.menuCard-photo{ height:230px;}

	/* quote */
	.quoteBlock{ padding:70px 0 74px;}
	.quoteBlock blockquote{ width:345px;}
	.quoteBlock-text{ font-size:30px; line-height:38px;}
	.quoteBlock-line{ margin-top:40px;}
	.quoteBlock-name{ margin-top:18px; font-size:32px; line-height:44px;}
	.quoteBlock-caption{ font-size:16px; line-height:24px;}

	/* story collage: photos in 2 columns */
	.storyCollage{ padding:70px calc(50% - 172.5px) 70px;}
	.storyCollage-graphic{ left:calc(50% - 170px); top:30px; width:340px; height:340px;}
	.storyCollage-text{ width:345px; margin:70px 0 36px;}
	.storyCollage-title{ width:345px; font-size:38px; line-height:46px; letter-spacing:8px;}
	.storyCollage-title::after{ margin-left:-8px;}
	.storyCollage-desc{ width:345px;}
	.storyFrame{ padding:6px;}
	.storyFrame > span{ padding:12px;}
	.storyFrame img{ width:120px !important; height:120px !important;}

	/* timeline */
	.timeline{ padding:56px 0 60px;}
	.timeline-title{ font-size:44px; line-height:48px;}
	.timelineArrow{ top:205px; width:40px; height:110px; background-size:40px 110px;}
	.timeline-cards{ width:345px; height:680px; margin-top:44px;}
	.timelineCard-photo, .timelineCard-panel{ width:345px;}
	.timelineCard-photo{ height:260px;}
	.timelineCard-panel{ height:420px;}
	.timelineCard-frame{ left:14px; right:14px; top:14px; bottom:14px;}
	.timelineCard-frame{ padding:20px 20px;}
	.timelineCard-year{ font-size:56px; line-height:56px;}
	.timelineCard-line{ margin:18px 0 20px;}
	.timelineCard-text{ font-size:15px; line-height:23px;}
	.timeline-bar{ margin-top:36px; zoom:.45;}

	/* tour */
	.tourBlock-media{ height:300px;}
	.tourBlock-frame{ left:15px; right:15px; top:15px; bottom:15px;}
	.tourBlock-fpo{ top:90px; font-size:36px; line-height:42px;}
	.tourBlock-panel{ padding:30px 0;}
	.tourBlock-box{ width:345px; padding:40px 0 44px;}
	.tourBlock-title{ width:295px; font-size:38px; line-height:44px;}
	.tourBlock-text{ width:295px; margin-top:28px; font-size:17px; line-height:28px;}
	.tourBlock-text p{ margin-bottom:28px;}

	/* reservation: form flows instead of absolute fields */
	.reservationBlock{ height:auto; padding:70px 0;}
	.reservationForm, .reservationForm > *{ position:relative; left:auto; top:auto;}
	.reservationForm{ width:345px; height:auto; margin:0 auto; padding:34px 20px 28px; border-radius:16px;}
	.reservationForm-title{ width:auto; font-size:40px; line-height:46px;}
	.reservationForm-text{ width:auto; margin:12px 0 22px;}
	.reservationForm > input, .reservationForm .resSelect{ display:block; width:305px; margin:0 0 12px;}
	.reservationForm .resSelect input{ width:305px;}
	.resSelect::after{ left:278px;}
	.resSubmit{ display:block; margin:22px auto 0;}
	.reservationForm-notice{ margin-top:12px;}

	/* footer: one column */
	.footerInner{ grid-template-columns:1fr; width:345px; gap:30px; padding:44px 0 36px;}
	.footLogo{ order:1;}
	.footContact{ order:2;}
	.footHours{ order:3;}
	.footWillard{ order:4;}
	.footNav{ padding:0 15px 36px;}
	.footNav-list{ gap:10px 24px;}

	/* inner pages */
	.textBlock, .faqBlock, .contactBlock{ padding:50px 0 60px;}
	.textBlock .blockTitle, .faqBlock .blockTitle, .contactBlock .blockTitle{ font-size:42px; line-height:46px;}
	.textBlock-content .policyMenu{ padding:24px 18px 20px;}
	.textBlock-content a, .faqItem-answer a{ overflow-wrap:anywhere;} /* long URLs in legal copy */
	.contactForm{ padding:28px 18px 30px;}
	.contactForm-row{ grid-template-columns:1fr;}
	.faqItem summary{ font-size:1.05rem;}
}
