/* Shared finishing touches, including comfortable keyboard and touch controls. */
:focus-visible{outline:2px solid var(--sea);outline-offset:5px}
html{scroll-padding-top:24px}
main{overflow-wrap:break-word}
.area-quicklinks a,.visitor-nav a{transition:background-color .18s,color .18s,border-color .18s}
.visitor-card img{border-radius:3px}
.visitor-card figcaption{font-size:11px}
.visitor-links .text-link{font-size:11px;min-height:44px;display:inline-flex;align-items:center}
.visitor-search{margin:32px 0 8px;padding:24px;background:var(--sand-2);border:1px solid var(--line)}
.visitor-search label{display:block;font-size:14px;font-weight:600;margin-bottom:10px}
.visitor-search-row{display:flex;gap:12px;max-width:700px}
.visitor-search input{flex:1;min-width:0;padding:13px 15px;background:var(--sand);border:1px solid var(--line);font:inherit;color:var(--ink);border-radius:0}
.visitor-search button{padding:10px 18px;border:1px solid var(--sea);background:var(--sea);color:white;font:inherit;cursor:pointer}
.visitor-search button:disabled{opacity:.5;cursor:default}
.visitor-search p{font-size:13px;margin:12px 0 0;color:var(--muted)}
.visitor-card[hidden],.visitor-section[hidden]{display:none}
.legacy-content small{color:var(--muted)}
@media(max-width:650px){.visitor-search{padding:18px}.page-head{padding-bottom:16px}.area-quicklinks{margin-block:20px}.visitor-section{padding-top:28px}.visitor-nav a{min-height:40px}.nav-inner a{min-height:36px;display:flex;align-items:center;justify-content:center}.visitor-search input{font-size:16px}.visitor-search button{font-size:13px;padding-inline:12px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}

.policy{padding-left:22px;max-width:75ch}.policy li{margin:0 0 18px;line-height:1.8}.room-photo-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:30px 0}.room-photo-strip figure,.gallery-item{margin:0;min-width:0}.room-photo-strip img{width:100%;aspect-ratio:4/3;object-fit:cover}.room-photo-strip figcaption,.gallery-photo-credit{display:block;font-size:12px;line-height:1.6;margin-top:8px}#slide-caption{margin:12px 0 0}#slide-credit{min-height:0}@media(max-width:650px){.room-photo-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}
.is-home, .is-inner { font-size: 17px; }

/* Plan your stay 1-2-3: the number sits above each step's heading instead of on top of the text (23 Oct 2026) */
.steps li{padding:26px 28px 28px;position:relative}
.steps li::before{position:static;display:block;width:auto;height:auto;margin:0 0 14px;border-radius:0;background:none;color:var(--accent,#354d3d);font-family:Georgia,"Iowan Old Style","Palatino Linotype",serif;font-weight:400;font-size:2.6rem;line-height:1;letter-spacing:-.04em;text-align:left}

/* Rates table, 4 price columns (23 Oct 2026): wider than the text column on big screens; scrolls sideways on phones */
.table-scroll:has(.rate-table){position:relative;left:50%;transform:translateX(-50%);width:min(1080px,calc(100vw - 40px));overflow-x:auto;-webkit-overflow-scrolling:touch}
.rate-table{min-width:720px;width:100%;overflow:visible}
.rate-table th[scope=row]{min-width:220px}
.rate-table td,.rate-table thead th{white-space:nowrap}
.rate-table thead th{vertical-align:bottom}
@media(max-width:700px){.rate-table th[scope=row]{min-width:150px;max-width:150px}.rate-table tbody th[scope=row],.rate-table thead th:first-child{position:sticky;left:0;z-index:1;background:#fff;box-shadow:1px 0 0 var(--line,#d9d9cc)}.rate-table thead th:first-child{background:#e9e8df}.rate-table .rate-note{white-space:normal}}

/* Home hero: coordinates above the button, bottom right (23 Oct 2026) */
.hero-side{display:flex;flex-direction:column;align-items:flex-end;gap:20px;text-align:right}
.hero-bottom .hero-meta{margin:0;max-width:none;font-size:12px;letter-spacing:.14em;line-height:2;color:rgba(248,246,239,.92);text-shadow:0 1px 10px rgba(0,0,0,.5)}
.hero-side .btn{margin-top:0}
@media(max-width:800px){.hero-side{align-items:flex-start;text-align:left;margin-top:22px}}

/* Home hero photo main1 (sheep above Glenbeigh): keep the bay and the sheep in frame */
.landscape-hero>img.hero-main1{object-position:center 40%}

/* Getting here: directions link on each row */
.dist .dist-dir{text-align:right;white-space:nowrap}
.dist td{white-space:nowrap}
.dist .dist-dir a{font-size:11px;letter-spacing:.12em;text-transform:uppercase}
@media(max-width:560px){.dist th,.dist td{padding:10px 4px}.dist .dist-mode{display:none}.dist td{white-space:normal}}

/* Book your stay: room photos (24 Oct 2026) */
.room-pick:has(.room-photo){grid-template-columns:auto 132px 1fr auto}
.room-photo{position:relative;display:block;width:132px;height:96px;padding:0;border:0;background:#e9e8df;cursor:zoom-in;overflow:hidden}
.room-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s}
.room-photo:hover img{transform:scale(1.04)}
.room-photo-count{position:absolute;right:6px;bottom:6px;background:rgba(20,32,25,.72);color:#fff;font-size:10px;letter-spacing:.08em;text-transform:uppercase;padding:3px 6px}
.room-pick.is-off .room-photo{cursor:zoom-in}
.room-gallery{border:0;padding:0;max-width:min(1100px,94vw);width:100%;background:#111;color:#f3f2e9}
.room-gallery::backdrop{background:rgba(10,16,13,.82)}
.room-gallery figure{margin:0}
.room-gallery img{display:block;width:100%;max-height:78vh;object-fit:contain;background:#111}
.room-gallery figcaption{padding:12px 16px 0;font-size:.95rem}
.room-gallery-nav{display:flex;gap:10px;justify-content:flex-end;padding:12px 16px 16px}
.room-gallery-nav .btn-ghost{color:#f3f2e9;border-color:#f3f2e9}
.room-gallery-nav .btn{background:#f3f2e9;color:#283d34;border-color:#f3f2e9}
@media(max-width:560px){
  .room-pick:has(.room-photo){grid-template-columns:auto 1fr}
  .room-photo{grid-column:2;width:100%;height:170px}
  .room-pick:has(.room-photo) .room-pick-body,.room-pick:has(.room-photo) .room-pick-price{grid-column:2}
}

/* Book your stay: rate choice on the room page (24 Oct 2026) */
.rate-picks{margin-top:28px}
.rate-pick input{border-radius:50%}
.rate-pick .room-pick-body .small{max-width:46ch;line-height:1.55;margin-top:4px}
.rate-pick .room-pick-price strong:empty{display:none}

/* Date picker: one "Sat 31 Oct — Sun 1 Nov" field with a drop-down two-month calendar (24 Oct 2026) */
.dp-field{position:relative;min-width:0}
@media(min-width:521px){form .row>.dp-field,.book-bar form>.dp-field{grid-column:span 2}}
.dp-trigger{display:flex;align-items:center;gap:12px;width:100%;min-height:50px;padding:10px 14px;border:1px solid var(--line,#d9d9cc);background:#fffdf8;color:#283d34;font:inherit;font-size:1rem;text-align:left;cursor:pointer;border-radius:0}
.dp-trigger:hover,.dp-field.is-open .dp-trigger{border-color:#354d3d}
.dp-trigger:focus-visible{outline:2px solid #354d3d;outline-offset:2px}
.dp-icon{flex:none;color:#354d3d}
.dp-value{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dp-value.is-empty{font-weight:400;color:#63685e}
.book-bar .dp-trigger{min-height:0;padding:9px 12px;background:transparent;font-size:14px}
.dp-pop{position:absolute;z-index:60;top:calc(100% + 8px);left:0;width:max-content;max-width:calc(100vw - 32px);padding:18px 22px 14px;background:#fffdf8;color:#2b332e;border:1px solid #d9d9cc;box-shadow:0 18px 44px rgba(20,32,25,.18)}
.dp-pop[hidden]{display:none}
.dp-months{display:flex;gap:34px}
.dp-month{width:308px}
.dp-title{margin:2px 0 12px;font-family:Georgia,"Iowan Old Style",serif;font-size:1.15rem;font-weight:600;letter-spacing:0;text-align:center;color:#283d34}
.dp-grid{display:grid;grid-template-columns:repeat(7,1fr);row-gap:2px}
.dp-dow{padding:4px 0 6px;font-size:.78rem;color:#63685e;text-align:center}
.dp-day{display:flex;flex-direction:column;align-items:center;justify-content:center;height:50px;padding:0;border:0;background:transparent;color:#2b332e;font:inherit;line-height:1.1;cursor:pointer}
.dp-n{font-size:.98rem}
.dp-p{min-height:.85em;margin-top:3px;font-size:.66rem;color:#63685e;white-space:nowrap}
.dp-day.is-today .dp-n{font-weight:700}
.dp-day:not(:disabled):hover{box-shadow:inset 0 0 0 1px #354d3d}
.dp-day:focus-visible{outline:2px solid #354d3d;outline-offset:-2px}
.dp-day:disabled{color:#b6b9ae;cursor:default}
.dp-day:disabled .dp-p{color:#c3c5bb}
.dp-day.in-range{background:#e4eae2}
.dp-day.is-hover-end{background:#c9d4c6}
.dp-day.is-start,.dp-day.is-end{background:#354d3d;color:#fffdf8}
.dp-day.is-start .dp-p,.dp-day.is-end .dp-p{color:#dfe6dc}
.dp-prev,.dp-next{position:absolute;top:12px;width:38px;height:38px;border:0;background:transparent;color:#283d34;font-size:1.9rem;line-height:1;cursor:pointer}
.dp-prev{left:12px}.dp-next{right:12px}
.dp-prev:disabled,.dp-next:disabled{visibility:hidden}
.dp-foot{margin-top:10px;padding-top:10px;border-top:1px solid #e3e3d8;text-align:center}
.dp-note{margin:0 0 4px;font-size:.82rem;color:#63685e}
.dp-note[hidden]{display:none}
.dp-summary{margin:0;font-size:.92rem}
@media(max-width:700px){
  .dp-pop{left:0;right:0;width:auto;max-width:none;padding:14px 12px 12px}
  .dp-month{width:100%}
}

/* Header: larger name and Book your stay button (24 Oct 2026) */
.brand{font-size:2.3rem;line-height:1.05}
.brand span{font-size:11px;margin-top:9px}
.header-cta{font-size:13px;padding:17px 28px;white-space:nowrap}
@media(max-width:800px){.brand{font-size:1.8rem}.brand span{font-size:9px}}
@media(max-width:560px){.brand{font-size:1.5rem}.brand span{font-size:8px;letter-spacing:.18em}.header-cta{font-size:11px;padding:13px 14px;letter-spacing:.1em}}
@media(max-width:380px){.brand{font-size:1.3rem}.header-cta{font-size:10px;padding:12px 10px;letter-spacing:.06em}}

/* Page headings 2 steps smaller (x0.8); header name 1 step larger and italic; header button 2 steps larger (24 Oct 2026) */
h1{font-size:clamp(2.4rem,4.8vw,4.64rem)}
.landscape-hero h1{font-size:clamp(2.88rem,6vw,5.6rem)}
@media(max-width:560px){.landscape-hero h1{font-size:2.96rem}}
.brand{font-size:2.6rem;font-style:italic}
.brand span{font-style:normal}
.header-cta{font-size:16px;padding:19px 32px}
@media(max-width:800px){.brand{font-size:2.05rem}}
@media(max-width:560px){.brand{font-size:1.7rem}.header-cta{font-size:13px;padding:14px 15px}}
@media(max-width:380px){.brand{font-size:1.45rem}.header-cta{font-size:11.5px;padding:12px 10px}}

/* Rooms/Rates page: room cards with photos, lodge photos (24 Oct 2026) */
.rr-rooms{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:34px 28px;margin:8px 0 20px}
.rr-room h3{margin:14px 0 4px;font-size:1.35rem;letter-spacing:-.02em}
.rr-room .small{margin:0 0 6px;color:#63685e;line-height:1.55}
.rr-price{margin:0;font-size:.95rem}
.rr-price strong{font-family:Georgia,serif;font-weight:400;font-size:1.2rem;color:#283d34}
.rr-photo{position:relative;display:block;width:100%;padding:0;border:0;background:#e9e8df;cursor:zoom-in;overflow:hidden;aspect-ratio:4/3}
.rr-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s}
.rr-photo:hover img{transform:scale(1.04)}
.rr-photo:focus-visible{outline:2px solid #354d3d;outline-offset:3px}
.rr-hotel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-top:26px}
.rr-hotel figure{margin:0}
.rr-hotel figcaption{margin-top:8px;font-size:.9rem;color:#63685e}
@media(max-width:800px){.rr-hotel{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}}
@media(max-width:480px){.rr-rooms{grid-template-columns:1fr}}

/* Lodge, Rooms & Rates page (24 Oct 2026) */
.lr-jump{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:22px}
.lr-jump a{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#283d34;text-decoration:none;border-bottom:1px solid #9aa68c;padding-bottom:3px}
.lr-jump a:hover{border-bottom-color:#283d34}
.lr-text{max-width:75ch;margin-bottom:26px}
#rooms,#the-lodge,#rates,#deposits,#getting-here{scroll-margin-top:24px}
.lr-rates{padding-top:clamp(40px,6vw,72px)}
.rr-lodge .rr-hotel{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:1000px){.rr-lodge .rr-hotel{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.rr-lodge .rr-hotel{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Header +1 step: site name and menu text; drop-down menus (24 Oct 2026) */
.brand{font-size:2.92rem}
@media(max-width:800px){.brand{font-size:2.3rem}}
@media(max-width:560px){.brand{font-size:1.9rem}}
@media(max-width:380px){.brand{font-size:1.6rem}}
.main-nav{position:relative;z-index:40;background:var(--sand,#f8f6ef)}
.main-nav .nav-inner{overflow:visible;flex-wrap:wrap;column-gap:10px}
.nav-item{position:relative;display:flex;align-items:center}
.main-nav .nav-inner .nav-item>a{font-size:12.4px}
.nav-toggle{display:flex;align-items:center;justify-content:center;width:22px;height:30px;margin-left:2px;padding:0;border:0;background:transparent;color:#63685e;cursor:pointer}
.nav-toggle svg{width:10px;height:6px;transition:transform .2s}
.nav-toggle:hover,.nav-item.is-open .nav-toggle{color:#283d34}
.nav-toggle:focus-visible{outline:2px solid #354d3d;outline-offset:1px}
.nav-item.is-open .nav-toggle svg{transform:rotate(180deg)}
.nav-sub{position:absolute;z-index:50;top:100%;left:-18px;min-width:240px;margin:0;padding:10px 0;list-style:none;background:#fffdf8;border:1px solid #d9d9cc;box-shadow:0 16px 36px rgba(20,32,25,.14);display:none}
.nav-sub.nav-flip{left:auto;right:-6px}
@keyframes nav-drop{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.nav-item.is-open>.nav-sub{display:block;animation:nav-drop .16s ease-out}
@media(hover:hover) and (min-width:861px){
  .nav-item:hover>.nav-sub,.nav-item:focus-within>.nav-sub{display:block;animation:nav-drop .16s ease-out}
  .nav-item:hover .nav-toggle svg{transform:rotate(180deg)}
}
@media(min-width:861px) and (max-width:1240px){.main-nav .nav-inner .nav-item>a{letter-spacing:.06em;font-size:12px}.main-nav .nav-inner{column-gap:4px}.nav-toggle{width:18px}}
.main-nav .nav-inner .nav-sub li{margin:0}
.main-nav .nav-inner .nav-sub a{display:block;min-height:0;padding:9px 20px;border:0;font-size:15px;letter-spacing:0;text-transform:none;text-align:left;white-space:nowrap;color:#2b332e;text-decoration:none}
.main-nav .nav-inner .nav-sub a:hover,.main-nav .nav-inner .nav-sub a:focus-visible{background:#eeeee5;color:#283d34}
@media(max-width:800px){.main-nav .nav-inner .nav-item>a{font-size:11.2px}.main-nav .nav-inner{column-gap:18px}}
@media(max-width:860px){
  .nav-item{position:static}
  .nav-sub{left:12px;right:12px;min-width:0;top:100%}
  .nav-sub.nav-flip{left:12px;right:12px}
  .main-nav .nav-inner .nav-sub a{white-space:normal;padding:11px 18px}
}
@media(max-width:560px){
  .main-nav .nav-inner .nav-item>a{font-size:10px}
  .nav-item{justify-content:center}
  .nav-toggle{width:20px;height:36px;margin-left:0}
}

/* Gallery: two galleries, The lodge / Beyond the lodge (24 Oct 2026) */
.gallery-tabs{display:flex;flex-wrap:wrap;gap:0;margin:26px 0 0;border-bottom:1px solid #d9d9cc}
.gallery-tabs a{display:inline-flex;align-items:center;gap:10px;padding:14px 22px 12px;margin-bottom:-1px;border:1px solid transparent;border-bottom:0;font-size:12px;letter-spacing:.13em;text-transform:uppercase;color:#63685e;text-decoration:none}
.gallery-tabs a span{font-size:11px;letter-spacing:0;padding:2px 8px;background:#e9e8df;color:#283d34;border-radius:10px}
.gallery-tabs a:hover{color:#283d34}
.gallery-tabs a[aria-current="page"]{color:#283d34;background:#f8f6ef;border-color:#d9d9cc;font-weight:600}
@media(max-width:480px){.gallery-tabs a{padding:12px 12px 10px;font-size:11px;letter-spacing:.08em;gap:6px}}

/* Site search: header box and results page (24 Oct 2026) */
.vh{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.header-actions{display:flex;align-items:center;gap:16px}
.site-search{display:flex;align-items:stretch;border:1px solid #c9ccc0;background:#fffdf8;height:48px}
.site-search input[type=search]{width:200px;border:0;background:transparent;padding:0 12px;font:inherit;font-size:15px;color:#2b332e;outline:0;margin:0;min-height:0;height:auto}
.site-search input[type=search]::placeholder{color:#7a7f74}
.site-search button{display:flex;align-items:center;justify-content:center;width:46px;border:0;border-left:1px solid #e3e3d8;background:transparent;color:#283d34;cursor:pointer}
.site-search:focus-within{border-color:#354d3d;box-shadow:0 0 0 1px #354d3d}
.site-search button:hover{background:#eeeee5}
.search-toggle{display:none;align-items:center;justify-content:center;width:44px;height:44px;color:#283d34;border:1px solid #c9ccc0}
@media(max-width:1100px){.site-search input[type=search]{width:150px}}
@media(max-width:900px){
  .header-inner{flex-wrap:wrap}
  .header-actions{gap:10px}
  .search-toggle{display:flex}
  .site-search{display:none;order:3}
  .site-header.search-open .site-search{display:flex;position:absolute;left:var(--gutter,24px);right:var(--gutter,24px);top:calc(100% - 10px);z-index:45;height:50px;box-shadow:0 10px 26px rgba(20,32,25,.14)}
  .site-header{position:relative}
  .site-header.search-open .site-search input[type=search]{width:100%;flex:1;font-size:16px}
}
@media(max-width:560px){.search-toggle{width:38px;height:38px}}
.search-page-form{display:flex;gap:10px;margin-top:22px;max-width:640px}
.search-page-form input[type=search]{flex:1;min-width:0;font-size:17px;padding:14px 16px}
.search-results{list-style:none;padding:0;margin:10px 0 40px}
.search-results li{padding:22px 0;border-top:1px solid #d9d9cc}
.search-results h2{margin:0 0 4px;font-size:1.45rem;line-height:1.25;letter-spacing:-.02em}
.search-results h2 a{color:#283d34;text-decoration:none}
.search-results h2 a:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
.search-where{margin:0 0 6px;font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:#63685e}
.search-snippet{margin:0;line-height:1.7;color:#2b332e}
.search-snippet mark{background:#e2e9c9;color:inherit;padding:0 1px}
.search-count{color:#63685e}
.search-ideas{margin:10px 0 40px;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.search-ideas p{width:100%;margin:0 0 4px}
.search-ideas a{display:inline-block;padding:8px 14px;border:1px solid #d9d9cc;font-size:13px;color:#283d34;text-decoration:none}
.search-ideas a:hover{background:#283d34;color:#fff}

/* "Search the Site" box and the longer line under the name (24 Oct 2026) */
.site-search input[type=search]{width:190px}
@media(max-width:1100px){.site-search input[type=search]{width:150px}}
.brand span{line-height:1.7}
@media(max-width:560px){.brand span{font-size:8px;letter-spacing:.14em}}

/* Sub-tab rows (24 Oct 2026): the current page's button is filled */
.sub-tabs a[aria-current="page"]{background:#283d34;border-color:#283d34;color:#fff}

/* Header and menu stay at the top of the screen; compact once the page is scrolled (25 Oct 2026) */
.site-header{position:sticky;top:0;z-index:100;background:var(--sand,#f8f6ef);transition:box-shadow .2s}
.site-header.is-stuck{box-shadow:0 6px 18px rgba(20,32,25,.10)}
html{scroll-padding-top:calc(var(--hdr-h,120px) + 12px)}
.site-header .header-inner,.site-header .brand,.site-header .site-search,.site-header .header-cta{transition:padding .2s,font-size .2s,height .2s}
.site-header.is-stuck .header-inner{padding-block:10px}
.site-header.is-stuck .brand{font-size:2rem}
.site-header.is-stuck .brand span{display:none}
.site-header.is-stuck .site-search{height:40px}
.site-header.is-stuck .header-cta{padding:11px 22px;font-size:13px}
.site-header.is-stuck .main-nav .nav-inner .nav-item>a{padding-block:8px}
@media(max-width:860px){
  .site-header.is-stuck .brand{font-size:1.35rem}
  .site-header.is-stuck .header-inner{flex-wrap:nowrap}
  .site-header.is-stuck .main-nav .nav-inner{display:flex;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;column-gap:16px;justify-content:flex-start}
  .site-header.is-stuck .main-nav .nav-inner::-webkit-scrollbar{display:none}
  .site-header.is-stuck .nav-item{flex:none}
  .site-header.is-stuck .main-nav .nav-inner .nav-item>a{white-space:nowrap;padding-block:6px}
}
@media(max-width:560px){
  .site-header.is-stuck .brand{font-size:1.15rem}
  .site-header.is-stuck .header-actions{gap:8px}
  .site-header.is-stuck .search-toggle{width:34px;height:34px}
  .site-header.is-stuck .header-cta{font-size:10px;padding:9px 10px;letter-spacing:.06em}
}

/* Notes under the rates table: as wide as the table (25 Oct 2026) */
.rate-notes{position:relative;left:50%;transform:translateX(-50%);width:min(1080px,calc(100vw - 40px));margin-top:18px}
.rate-notes p,.rate-notes.small{max-width:none}
.rate-notes p{margin:0 0 10px;line-height:1.7}
/* Road distance on place cards, between the website and Directions links (25 Oct 2026) */
.visitor-links .visitor-km{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);min-height:44px;display:inline-flex;align-items:center;white-space:nowrap}
/* Joined terms under the rates table (25 Oct 2026): table width, normal text size */
.rate-notes.terms{margin-top:28px}
.rate-notes.terms h2{margin-top:0}
.rate-notes.terms ul,.rate-notes.terms li{max-width:none}
.rate-notes.terms li{line-height:1.7;margin-bottom:8px}
/* Section headings 2 steps smaller (x0.8), 25 Oct 2026 – e.g. "Everything for an easy stay", "A welcome at the end of the day".
   "body" raises specificity over visitor-guide.css / attractions.css, which load after this file. */
h2{font-size:clamp(1.6rem,3.2vw,3.04rem)}
body .visitor-section-head h2{font-size:clamp(1.6rem,3.2vw,2.56rem)}
body .visitor-callout h2{font-size:1.6rem}
body .attraction h2{font-size:clamp(1.44rem,2.4vw,2.16rem)}
body .legends-grid h3{font-size:1.6rem}
/* Festivals & events page (25 Oct 2026) */
.festival-list>li{padding:28px 0}
.festival-list h2{font-size:clamp(1.4rem,2.2vw,1.9rem);margin:0 0 10px}
.festival-list p{max-width:75ch}
.festival-when{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--sea-2,#3f6b5e);margin:0 0 8px}
.festival-list .visitor-links{display:flex;flex-wrap:wrap;gap:8px 20px;margin:6px 0 0;max-width:none}
/* Food page: text blocks under each area's cards (25 Oct 2026) */
.food-extra{margin:34px 0 0;max-width:75ch}
.food-extra h3{margin:0 0 8px}
/* Rainy days page: text rows under the cards (25 Oct 2026) */
.indoor-extra{margin-top:30px}
.indoor-extra .visitor-links{display:flex;flex-wrap:wrap;gap:8px 20px;margin:6px 0 0}
.indoor-extra p{max-width:75ch}
/* Contacts "Find us": a bigger map, full page width (25 Oct 2026) */
#find-us .map-box{aspect-ratio:auto;height:clamp(420px,70vh,680px)}
@media(max-width:560px){#find-us .map-box{aspect-ratio:auto;height:480px}}
/* Sights, Activities, Rainy days, Food and Legends (25 Oct 2026): sub-tabs in the sticky header, one row
   (scrolls sideways on narrow screens), and page titles 2 steps smaller (x0.8). */
.header-subtabs{border-top:1px solid var(--line,#ddd8cc);background:var(--sand,#f8f6ef)}
.header-subtabs .sub-tabs{margin:0;padding:9px 0;gap:8px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
.header-subtabs .sub-tabs::-webkit-scrollbar{display:none}
.header-subtabs .sub-tabs a{flex:none;white-space:nowrap;padding:7px 13px;font-size:12px;line-height:1.3;min-height:0}
.site-header.is-stuck .header-subtabs .sub-tabs{padding:6px 0}
.site-header.is-stuck .header-subtabs .sub-tabs a{padding:5px 11px;font-size:11px}
body.tab-sights h1,body.tab-activities h1,body.tab-indoor h1,body.tab-food h1,body.tab-legends h1{font-size:clamp(1.92rem,3.84vw,3.71rem)}
/* Page titles on every page 3 steps smaller than the Gallery title was (x0.68 of 4.64rem), 25 Oct 2026.
   The Home photo title (.landscape-hero h1) keeps its own size. */
h1,body.tab-sights h1,body.tab-activities h1,body.tab-indoor h1,body.tab-food h1,body.tab-legends h1{font-size:clamp(1.63rem,3.26vw,3.15rem)}

/* Home: "At Home" and "Made for active Breaks" joined into one section (26 Oct 2026): both photos stacked. */
.lodge-intro{align-items:start}
.lodge-intro .body-copy h3{margin:0 0 18px}
.lodge-intro .body-copy .eyebrow{margin-top:40px}
.lodge-intro .body-copy .eyebrow:first-child{margin-top:0}
.photo-pair{display:grid;gap:32px}
.photo-pair figure img{aspect-ratio:4/3}

/* Activities intro (26 Oct 2026): smaller headings, ideas as full-width rows above the cards. */
body .page-head.act-head h1{font-size:clamp(1.5rem,2.4vw,2.1rem);margin-bottom:0}
.act-head .act-sub{margin-top:0}
.act-sub{font-size:clamp(1.15rem,1.6vw,1.4rem);margin:0 0 14px}
.act-intro{margin:10px 0 50px}
.act-rows{list-style:none;padding:0;margin:0}
.act-note{max-width:none;margin:0;padding:14px 0;border-bottom:1px solid var(--line);font-size:.95rem;color:var(--muted)}
.act-rows li{display:grid;grid-template-columns:minmax(160px,240px) 1fr;gap:6px 28px;border-top:1px solid var(--line);padding:14px 0}
.act-rows li:last-child{border-bottom:1px solid var(--line)}
.act-rows + .act-note{border-top:0}
.act-rows h3{font-size:1.02rem;margin:0;line-height:1.4}
.act-rows p{margin:0;font-size:.95rem}
@media(max-width:560px){.act-rows li{grid-template-columns:1fr}}

/* Closing band (26 Oct 2026): heading and button on one row. */
.closing-row{display:flex;align-items:center;justify-content:center;gap:24px 40px;flex-wrap:wrap}
.closing-row h2{margin:0}
.closing:has(.closing-row){padding:45px 0}
.closing-row>*{margin:0}

/* Legends > History (26 Oct 2026). */
.history-group{margin:10px 0 50px}
.history-group h2{font-size:clamp(1.25rem,1.9vw,1.6rem);margin:0 0 18px}
.history-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:34px 32px}
.history-photo{margin:0}
.history-photo img{width:100%;height:auto;display:block;filter:grayscale(1)}
.history-photo figcaption{font-size:.92rem;margin-top:10px;line-height:1.55}
.history-date{color:var(--muted);font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;margin-left:6px}
.history-credit{display:block;color:var(--muted);font-size:.74rem;margin-top:6px}
.history-note{color:var(--muted);margin-bottom:40px}
@media(max-width:700px){.history-grid{grid-template-columns:1fr}}

/* Weather column on Activities and Rainy days (27 Oct 2026): met.ie-style day cards in the site's colours. */
.with-weather{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:44px;align-items:start}
.with-weather-main .act-rows{margin-top:6px}
.with-weather-main>.visitor-note{margin-top:18px}
.weather-box{margin-top:65px;font-size:.9rem}
.wx-title{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;margin:0 0 10px;color:var(--ink)}
.wx-cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:6px}
.wx-card{background:#f1efe6;border:1px solid var(--line)}
.wx-day{margin:0;background:var(--sea);color:#fff;text-align:center;font-size:.84rem;padding:3px 8px;letter-spacing:.02em}
.wx-first .wx-day{background:#7d957f}
.wx-alert{color:#f3d34a;margin-left:4px}
.wx-body{display:grid;grid-template-columns:38px 1fr;grid-template-rows:auto auto;align-items:center;column-gap:8px;padding:5px 8px 6px}
.wx-icon{grid-row:1/3;width:36px;height:36px}
.wx-temps{margin:0;display:flex;gap:10px;align-items:baseline;font-variant-numeric:tabular-nums}
.wx-hi{font-size:1.05rem;color:var(--ink)}
.wx-lo{font-size:.88rem;color:var(--muted)}
.wx-words{margin:0;font-size:.8rem;color:var(--ink);line-height:1.3}
.wx-warn{padding:8px 10px;margin:0 0 10px;font-size:.78rem;line-height:1.45;border-left:4px solid var(--line);background:#f1efe6}
.wx-warn p,.wx-warn ul{margin:0 0 3px}
.wx-warn ul{padding-left:16px}
.wx-warn-head{font-size:.82rem}
.wx-warn-small{color:#4b4b4b;font-size:.72rem}
.wx-warn-yellow{background:#fbf1c7;border-color:#e0b100}
.wx-warn-orange{background:#fbe0c4;border-color:#ec8400}
.wx-warn-red{background:#f9d4d0;border-color:#cf1f1f}
.wx-warn-none{background:none;border-left:0;padding:0}
.wx-none{font-size:.85rem}
.wx-credit{margin:10px 0 0;color:var(--muted);font-size:.66rem;line-height:1.45}
@media(max-width:900px){.with-weather{grid-template-columns:1fr;gap:10px}.weather-box{margin-top:0}}

/* Ideas as compact rows with a bold lead-in (27 Oct 2026). */
.idea-rows{margin:4px 0 0;border-top:1px solid var(--line)}
.idea-rows p{max-width:none;margin:0;padding:9px 0;border-bottom:1px solid var(--line);font-size:.95rem;line-height:1.55}
.idea-rows strong{font-weight:600;color:var(--ink)}
.with-weather-main .act-sub{margin:6px 0 4px}
.with-weather-main .page-head{padding-bottom:14px}

/* Header name in the lettering of the lodge's logo and sign (27 Oct 2026): "Kerry Ocean" in PT Sans Narrow Bold,
   "Lodge" in Great Vibes, both self-hosted (SIL Open Font Licence, assets/fonts/OFL-*.txt). */
@font-face{font-family:"KOL Narrow";src:url(/assets/fonts/ptsansnarrow-700-latin.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"KOL Script";src:url(/assets/fonts/greatvibes-latin.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
.brand .brand-name{display:flex;align-items:baseline;font-weight:400;font-style:normal;white-space:nowrap;margin-bottom:.42em}
.brand .brand-ko{font-family:"KOL Narrow","Arial Narrow",sans-serif;font-weight:700;font-style:normal;letter-spacing:-.005em}
.brand .brand-lodge{font-family:"KOL Script",cursive;font-weight:400;font-style:normal;font-size:1.2em;margin-left:.12em;position:relative;top:.08em;line-height:.8}

/* Tide times on beach cards (27 Oct 2026). */
.tides{margin:4px 0 12px;padding:8px 10px;background:#eef0e7;border-left:3px solid #5b7f95}
.tides-head{margin:0 0 4px;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink)}
.tides-head span{letter-spacing:0;text-transform:none;color:var(--muted)}
.tides-table{border-collapse:collapse;font-size:.84rem;width:100%;background:none}
.tides-table th,.tides-table td{padding:2px 8px 2px 0;border:0;text-align:left;font-weight:400;background:none;white-space:nowrap}
.tides-table th{font-weight:600;width:5.5em}

/* Weather: links to Met Éireann under the cards (27 Oct 2026). */
.wx-links{margin:10px 0 0;font-size:.8rem;display:flex;gap:6px 16px;flex-wrap:wrap}

/* Beaches: Rossbeigh tide column (27 Oct 2026), same frame as the weather cards. */
.tide-body{padding:6px 10px 7px;font-size:.84rem;font-variant-numeric:tabular-nums}
.tide-body p{margin:0;line-height:1.5}
.tide-kind{display:inline-block;width:2.6em;color:var(--muted);font-size:.78rem}
.tides-head a{float:right;letter-spacing:0;text-transform:none;font-size:.78rem}

/* Header name 2px larger, with a soft gull-and-wave mark after "Lodge"; the line under the name runs
   exactly its width, and wraps to two lines on phones (27 Oct 2026). */
.brand{font-size:calc(2.92rem + 2px);display:inline-grid;justify-items:stretch}
.brand .brand-mark{flex:none;width:.86em;height:.66em;margin-left:.16em;align-self:center;position:relative;top:-.04em;color:#7b98a6;opacity:.8}
.brand span{width:0;min-width:100%;white-space:nowrap;text-align:justify;text-align-last:justify;font-size:9.4px;letter-spacing:.15em}
@media(max-width:800px){.brand{font-size:calc(2.3rem + 2px)}.brand span{font-size:7.6px;letter-spacing:.12em}}
@media(max-width:560px){.brand{font-size:calc(1.9rem + 2px)}.brand span{white-space:normal;text-align:left;text-align-last:auto;font-size:8px;letter-spacing:.12em;line-height:1.55}}
@media(max-width:380px){.brand{font-size:calc(1.6rem + 2px)}}
.brand .tl-sep{font-weight:inherit}
.brand .tl-br{display:none}
@media(max-width:560px){.brand .tl-sep{display:none}.brand .tl-br{display:inline}}

/* Home: photo title 2px smaller; "So much more to discover." on one row (27 Oct 2026). */
.landscape-hero h1{font-size:calc(clamp(2.88rem,6vw,5.6rem) - 2px)}
@media(max-width:560px){.landscape-hero h1{font-size:calc(2.96rem - 2px)}}
.section-heading h2.one-row{max-width:none}

/* Header logo (28 Oct 2026, variant E): no line under the name; a faint gull to the left of the name
   (not touching the letters) and a soft wave that starts above "Kerry" and runs beneath "Ocean" and "Lodge". */
.brand .brand-name{margin-bottom:0}
/* 28 Oct 2026, logo D: a three-peak ridge (like the Reeks) over "Kerry", fading into two pale blue swells
   under "Ocean Lodge", and a small gull flying in towards the K – one SVG, assets/brand-mark.svg. */
.brand{position:relative;padding-left:1.1em}
.brand .brand-name{position:relative;z-index:1}
.brand .brand-mark{position:absolute;pointer-events:none;max-width:none;left:-.1726em;top:-.6979em;width:10.7143em;height:2.5452em}
.site-header .header-inner{padding-top:34px}
@media(max-width:800px){.site-header .header-inner{padding-top:28px}}
.site-header.is-stuck .header-inner{padding-top:18px}

/* Home photo title on one row, a further 2px smaller (27 Oct 2026); it wraps on narrow screens. */
.landscape-hero h1.hero-title{max-width:none;font-size:calc(clamp(2.88rem,6vw,5.6rem) - 4px)}
@media(min-width:900px){.landscape-hero h1.hero-title{white-space:nowrap}}
@media(max-width:560px){.landscape-hero h1.hero-title{font-size:calc(2.96rem - 4px)}}

/* Home (27 Oct 2026): links two to a row; "Your Days here" tiles fade through photos (assets/tile-slides.js). */
.link-grid{display:grid;grid-template-columns:repeat(2,max-content);gap:0 36px;margin-top:14px}
.link-grid .text-link{margin-top:0}
@media(max-width:420px){.link-grid{column-gap:20px}}
.tile-show{position:relative;display:block;aspect-ratio:4/5;overflow:hidden;background:#e9e8df}
.tile-show img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.1s ease;aspect-ratio:auto}
.tile-show img:first-child,.tile-show.is-live img.is-on{opacity:1}
.tile-show.is-live img:not(.is-on){opacity:0}
@media(max-width:560px){.tile-show{aspect-ratio:4/3}}
/* Day Trips (27 Oct 2026): title on one row, cards straight under it. */
.page-head h1.one-row-title{max-width:none}
@media(min-width:900px){.page-head h1.one-row-title{white-space:nowrap}}
.page-head.dt-head{padding-bottom:0}.page-head.dt-head h1{margin-bottom:8px}
.section.day-trips-cards{padding-top:0}

/* Home (27 Oct 2026): the main headings all at the size of "At Home, away from it all."; Glenbeigh line
   under "Your Base Camp"; nine links in three columns; bigger "Find your way here" link. */
body .home-h,body .landscape-hero h1.hero-title.home-h{font-size:clamp(1.6rem,3.2vw,3.04rem);line-height:1.1}
.lodge-intro h3.home-h{margin-top:6px}
.kingdom-lead{margin:-6px 0 22px}
.link-grid.link-grid-3{grid-template-columns:repeat(3,max-content);grid-template-rows:repeat(3,auto);grid-auto-flow:column;column-gap:28px}
@media(max-width:1100px){.link-grid.link-grid-3{column-gap:18px}.link-grid.link-grid-3 .text-link{letter-spacing:.1em}}
@media(max-width:560px){.link-grid.link-grid-3{grid-template-columns:repeat(2,max-content);grid-template-rows:none;grid-auto-flow:row}}
.panorama .text-link.find-way{font-size:14px}

/* Nine tabs in the menu (27 Oct 2026): keep them on one row on computers; tighter text on narrower screens. */
@media(min-width:861px){
  .main-nav .nav-inner{justify-content:space-between;column-gap:2px}
  .main-nav .nav-inner .nav-item{flex:none}
  .main-nav .nav-inner .nav-item>a{font-size:11.6px;letter-spacing:.09em;white-space:nowrap}
}
@media(min-width:1061px){.main-nav .nav-inner{flex-wrap:nowrap}}
@media(min-width:861px) and (max-width:1060px){.main-nav .nav-inner{justify-content:flex-start;column-gap:14px}}
@media(min-width:861px) and (max-width:1240px){
  .main-nav .nav-inner .nav-item>a{font-size:10.4px;letter-spacing:.03em}
  .main-nav .nav-toggle{width:18px}
}

/* Header logo (27 Oct 2026): the owner's logo artwork as an image, on the header's sand colour. */
.brand.brand-img{padding-left:0;display:block;line-height:0}
.brand.brand-img .brand-logo{display:block;height:118px;width:auto;max-width:100%}
.site-header .header-inner{padding-top:14px;padding-bottom:10px}
@media(max-width:800px){.brand.brand-img .brand-logo{height:92px}.site-header .header-inner{padding-top:10px}}
@media(max-width:560px){.brand.brand-img .brand-logo{height:76px}}
.site-header.is-stuck .header-inner{padding-top:4px;padding-bottom:4px}
.site-header.is-stuck .brand.brand-img .brand-logo{height:58px}
@media(max-width:560px){.site-header.is-stuck .brand.brand-img .brand-logo{height:44px}}

/* Lodge (27 Oct 2026): Terms, Payments & Cancellations text 1.5px smaller. */
.rate-notes.terms p,.rate-notes.terms li{font-size:15.5px}

/* Sticky header (27 Oct 2026): the header shrinks when you scroll, and assets/nav.js puts a spacer under it
   so the page keeps its length. Scroll anchoring is off so the browser doesn't also shift the page at that
   moment (this made the header flicker or vanish on phones). */
html,body{overflow-anchor:none}
.header-spacer{height:0}

/* Phones (27 Oct 2026): the nine Home links made the page wider than the screen, so phones zoomed out
   and the sticky header slid away. The links now share the width and wrap; nothing may widen the page. */
@media(max-width:560px){
  .link-grid,.link-grid.link-grid-3{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:16px}
  .link-grid .text-link{white-space:normal;min-width:0;overflow-wrap:anywhere}
}
html,body{overflow-x:clip}

/* Sub-tab of the section in view (28 Oct 2026, assets/nav.js) looks like the current-page sub-tab. */
.sub-tabs a.is-here{background:#283d34;border-color:#283d34;color:#fff}
.beach-head{margin-bottom:6px}

/* Lodge (27 Oct 2026): "Easy to reach" line just above Rates. */
.reach-row{padding-top:clamp(28px,4vw,48px)}
.reach-row .lr-text{margin:0}
.reach-row .text-link{margin-right:18px}
.reach-row + .lr-rates{padding-top:clamp(18px,2.5vw,30px)}

/* Privacy & Booking Terms page (27 Oct 2026): text 1px smaller, headings 2px smaller. */
.privacy-page{font-size:16px}
body .privacy-page h1{font-size:calc(clamp(1.63rem,3.26vw,3.15rem) - 2px)}
body .privacy-page h2{font-size:calc(clamp(1.6rem,3.2vw,3.04rem) - 2px)}
.privacy-page p,.privacy-page li{font-size:16px}
body .privacy-page h3{font-size:calc(1.7rem - 2px)}
/* Contacts: Useful Links in groups. */
.links-group{margin:34px 0 6px;font-size:1.35rem}
