/* Two independent identities, confined to the Flair theme's visitor body. */
@font-face{font-family:Oswald;src:url('fonts/oswald-variable.ttf') format('truetype');font-weight:200 700;font-style:normal;font-display:swap}
.flair-hotel,.flair-karls{--fx-bg:#2b2b2b;--fx-ink:#f5f0e6;--fx-muted:#c0b7a4;--fx-accent:#3f4a3c;--fx-line:#5a5142;--karls-display:Oswald,'Arial Narrow',sans-serif;--header-height:88px;--olive:#3f4a3c;--olive-dark:#303b2e;--ivory:#f5f0e6;--paper:#f5f0e6;--taupe:#9b8865;--ink:#2b2b2b;--muted:#675b49;--line:#c9b998;--gutter:clamp(22px,4.5vw,88px);color-scheme:light}
.flair-karls{--fx-bg:#2b2b2b;--fx-ink:#f5f0e6;--fx-muted:#c1b7a8;--fx-accent:#c8b48a;--fx-line:#544a3c;--olive:#f5f0e6;--olive-dark:#f5f0e6;--ivory:#2b2b2b;--paper:#1b1915;--ink:#f5f0e6;--muted:#c1b7a8;--line:#544a3c;color-scheme:dark;background:#2b2b2b;color:#f5f0e6}
.flair-home{background:var(--fx-bg);color:var(--fx-ink);color-scheme:dark}
html:has(body.flair-hotel),html:has(body.flair-karls){scroll-padding-bottom:100px}
:is(.flair-hotel,.flair-karls) :focus-visible{outline:2px solid currentColor;outline-offset:5px}
:is(.flair-hotel,.flair-karls) ::selection{background:#f5f0e6;color:#2b2b2b}
:is(.flair-hotel,.flair-karls) .fx-wrap{width:calc(100% - var(--gutter)*2);max-width:1640px;margin-inline:auto}
:is(.flair-hotel,.flair-karls) .fx-kicker{font-family:var(--sans);font-size:11px;font-weight:600;line-height:1.6;letter-spacing:.21em;text-transform:uppercase;margin:0 0 24px;color:inherit}
:is(.flair-hotel,.flair-karls) .fx-actions{display:flex;flex-wrap:wrap;align-items:center;gap:18px 26px}
:is(.flair-hotel,.flair-karls) .fx-button{display:inline-flex;align-items:center;justify-content:center;gap:24px;min-height:52px;padding:14px 25px;border:1px solid transparent;border-radius:0;background:var(--fx-accent);color:#fff;text-decoration:none;font:500 13px/1.5 var(--sans);letter-spacing:.015em;white-space:normal;transition:background .2s,transform .2s;text-align:center;cursor:pointer}
.flair-karls .fx-button{color:#2b2b2b;font-weight:700}
:is(.flair-hotel,.flair-karls) .fx-button:hover{background:#303b2e;color:#fff}
.flair-karls .fx-button:hover{background:#dac8a4;color:#2b2b2b}
:is(.flair-hotel,.flair-karls) .fx-button--outline{border-color:currentColor;color:inherit;background:transparent}
:is(.flair-hotel,.flair-karls) .fx-button--outline:hover{background:var(--fx-ink);color:var(--fx-bg)}
:is(.flair-hotel,.flair-karls) .fx-link{display:inline-flex;align-items:center;gap:18px;min-height:44px;padding-block:9px;border-bottom:1px solid currentColor;text-decoration:none;font:500 13px/1.5 var(--sans)}
:is(.flair-hotel,.flair-karls) .fx-link:hover .icon{transform:translateX(4px)}
:is(.flair-hotel,.flair-karls) .fx-link .icon{transition:transform .2s}
:is(.flair-hotel,.flair-karls) .fx-note{font-size:12px;line-height:1.7;color:var(--fx-muted);margin-top:16px}
/* Brand and navigation */
:is(.flair-hotel,.flair-karls) .fx-header{height:var(--header-height);padding:12px var(--gutter);display:flex;align-items:center;gap:26px;justify-content:space-between;background:var(--fx-bg);color:var(--fx-ink);position:relative;z-index:40;border-bottom:1px solid #f5f0e61a}
.flair-home .fx-header{position:absolute;inset:0 0 auto;background:linear-gradient(#2b2b2bb8,transparent);border:0}
:is(.flair-hotel,.flair-karls) .fx-brand{display:flex;align-items:center;gap:12px;text-decoration:none;flex:0 0 auto}
.flair-hotel .fx-brand img{width:72px;height:54px;object-fit:contain}
.flair-hotel .fx-brand-hotel{font:25px/1.05 var(--display);white-space:nowrap}
.flair-hotel .fx-brand-hotel small{display:block;font:9px/1.8 var(--sans);letter-spacing:.21em;text-transform:uppercase;margin-top:7px}
.flair-karls .fx-brand{gap:10px}
.flair-karls .fx-brand .karls-header-logo{display:block;width:clamp(235px,19vw,320px);height:auto;max-height:70px;object-fit:contain;object-position:left center;filter:url(#karls-white-transparent)}
.flair-karls .fx-brand-karls{font:500 29px/1 var(--karls-display);letter-spacing:-.055em}
.flair-karls .fx-brand-small{max-width:92px;font:10px/1.55 var(--sans);letter-spacing:.13em;text-transform:uppercase}
:is(.flair-hotel,.flair-karls) .fx-desktop-nav{display:flex;align-items:center;gap:clamp(16px,1.8vw,35px)}
:is(.flair-hotel,.flair-karls) .fx-desktop-nav a{font-size:12px;min-height:44px;display:flex;align-items:center;position:relative;text-decoration:none;white-space:nowrap}
:is(.flair-hotel,.flair-karls) .fx-desktop-nav a::after{position:absolute;bottom:5px;inset-inline:0;height:1px;background:currentColor;content:'';transform:scaleX(0);transform-origin:left;transition:transform .25s}
:is(.flair-hotel,.flair-karls) .fx-desktop-nav a:hover::after{transform:scaleX(1)}
:is(.flair-hotel,.flair-karls) .fx-header-actions{display:flex;align-items:center;gap:12px;flex-shrink:0}
:is(.flair-hotel,.flair-karls) .fx-header-cta{min-height:46px;padding:10px 18px;gap:12px;font-size:11px;white-space:nowrap}
:is(.flair-hotel,.flair-karls) .fx-header .search-toggle{display:inline-flex;flex-shrink:0;color:inherit}
:is(.flair-hotel,.flair-karls) .fx-language-toggle{min-height:44px;padding:8px 4px;border:0;background:transparent;color:inherit;font:500 11px/1.2 var(--sans);letter-spacing:.04em;cursor:pointer;white-space:nowrap}
:is(.flair-hotel,.flair-karls) .fx-language-toggle:hover,:is(.flair-hotel,.flair-karls) .fx-language-toggle:focus-visible{color:var(--fx-accent);text-decoration:underline;text-underline-offset:4px}
:is(.flair-hotel,.flair-karls) .fx-menu-toggle{display:flex;align-items:center;justify-content:center;gap:10px;padding:9px 0 9px 9px;min-width:44px;min-height:44px;color:inherit;border:0;background:transparent;font-size:12px}
:is(.flair-hotel,.flair-karls) .fx-menu-toggle span{display:inline}
:is(.flair-hotel,.flair-karls) .fx-hotel-return{font-size:10px;min-height:44px;display:inline-flex;align-items:center;text-underline-offset:4px;white-space:nowrap}
.flair-karls .fx-brand-switch{gap:4px;min-height:44px;padding:7px 10px 7px 11px;border:1px solid #c8b48a80;border-radius:2px;color:#f5f0e6;text-decoration:none;line-height:1;transition:background .2s,border-color .2s}
.flair-karls .fx-brand-switch>span{font-size:8px;letter-spacing:.12em;text-transform:uppercase;color:#c8b48a}
.flair-karls .fx-brand-switch>strong{font:500 11px/1 var(--karls-display);letter-spacing:.02em}
.flair-karls .fx-brand-switch .icon{width:15px;height:15px;margin-left:4px;transition:transform .2s}
.flair-karls .fx-brand-switch:hover{background:#c8b48a;color:#2b2b2b;border-color:#c8b48a}
.flair-karls .fx-brand-switch:hover>span{color:#2b2b2b}
.flair-karls .fx-brand-switch:hover .icon{transform:translateX(3px)}
/* Date controls are real inputs; entered values are explicitly a local plan. */
:is(.flair-hotel,.flair-karls) .fx-planner{color:var(--fx-ink);background:var(--fx-bg);border:1px solid var(--fx-line);padding:22px 26px;text-align:left}
:is(.flair-hotel,.flair-karls) .fx-planner-fields{display:grid;grid-template-columns:1fr 1fr .85fr auto;gap:22px;align-items:center}
:is(.flair-hotel,.flair-karls) .fx-field{display:flex;flex-direction:column;min-width:0;border-right:1px solid var(--fx-line);padding-right:22px}
:is(.flair-hotel,.flair-karls) .fx-field>span:first-child{color:var(--fx-muted);font:11px/1.5 var(--sans);margin-bottom:3px}
:is(.flair-hotel,.flair-karls) .fx-date-wrap{position:relative;min-width:0;display:block}
:is(.flair-hotel,.flair-karls) .fx-date-hint{position:absolute;left:0;top:9px;pointer-events:none;font-size:14px;color:var(--fx-ink)}
:is(.flair-hotel,.flair-karls) .fx-field :is(input,select){min-height:44px;max-width:100%;width:100%;background:transparent;color:var(--fx-ink);border:0;padding:8px 2px;font:14px/1.5 var(--sans);color-scheme:dark}
:is(.flair-hotel,.flair-karls) .fx-field input{color:transparent}
:is(.flair-hotel,.flair-karls) .fx-field input::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.85;padding:5px}
:is(.flair-hotel,.flair-karls) .fx-date-wrap.has-value input,:is(.flair-hotel,.flair-karls) .fx-date-wrap:focus-within input{color:var(--fx-ink)}
:is(.flair-hotel,.flair-karls) .fx-date-wrap.has-value .fx-date-hint,:is(.flair-hotel,.flair-karls) .fx-date-wrap:focus-within .fx-date-hint{display:none}
:is(.flair-hotel,.flair-karls) .fx-field option{background:var(--fx-bg);color:var(--fx-ink)}
:is(.flair-hotel,.flair-karls) .fx-plan-note{font-size:10px;line-height:1.65;letter-spacing:.01em;margin:14px 0 0;color:var(--fx-muted)}
:is(.flair-hotel,.flair-karls) .fx-plan-result{display:flex;gap:18px;align-items:center;justify-content:space-between;border-top:1px solid var(--fx-line);margin-top:12px;padding-top:10px;font-size:12px;line-height:1.6}
:is(.flair-hotel,.flair-karls) .fx-plan-result p{margin:0}
:is(.flair-hotel,.flair-karls) .fx-copy-plan{background:none;border:0;border-bottom:1px solid currentColor;color:inherit;min-height:44px;flex-shrink:0;padding:5px 0;font-size:11px}
/* The visitor page families share their complete original content. */
:is(.flair-hotel,.flair-karls) .prose{overflow-wrap:anywhere}
.flair-hotel:not(.flair-home) .page-hero{background:#2b2b2b}
.flair-hotel:not(.flair-home) .page-hero-content{color:#f5f0e6}
.flair-hotel:not(.flair-home) .page-hero--compact{background:#2b2b2b;color:#f5f0e6}
.flair-karls .page-hero-content{color:var(--fx-ink)}
.flair-karls .page-hero h1,.flair-karls .fx-subpage-cta h2{font-family:var(--karls-display);font-weight:500;line-height:1.08;font-size:clamp(48px,7vw,110px);letter-spacing:-.035em}
.flair-karls .page-hero{background:#2b2b2b}
.flair-karls .page-hero-content::before{background:none}
.flair-karls .article-content{color:var(--fx-ink)}
.flair-karls .prose :is(h2,h3){color:var(--fx-ink)}
.flair-karls .prose a{color:var(--fx-ink)}
.flair-karls .button--solid{background:var(--fx-accent);color:#2b2b2b}
.flair-karls .section--soft,.flair-karls .media-card__body{background:#191814}
:is(.flair-hotel,.flair-karls) .fx-subpage-cta{padding:clamp(70px,8vw,130px) 0;background:var(--fx-bg);color:var(--fx-ink);text-align:center}
:is(.flair-hotel,.flair-karls) .fx-subpage-cta h2{margin-bottom:34px}
/* Footer and full depth navigation */
:is(.flair-hotel,.flair-karls) .fx-footer{padding:80px 0 28px;background:var(--fx-bg);color:var(--fx-ink);border-top:1px solid var(--fx-line)}
:is(.flair-hotel,.flair-karls) .fx-footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:50px;padding-bottom:65px}
:is(.flair-hotel,.flair-karls) .fx-footer-brand{font:52px/.95 var(--display);letter-spacing:-.025em;margin-bottom:16px}
.flair-karls .fx-footer-brand{font-family:var(--karls-display);font-weight:600;font-size:75px}
:is(.flair-hotel,.flair-karls) .fx-footer-grid h2{font:11px/1.5 var(--sans);letter-spacing:.14em;text-transform:uppercase;margin-bottom:20px;color:var(--fx-muted)}
:is(.flair-hotel,.flair-karls) .fx-footer-grid a{display:block;min-height:44px;font-size:12px;padding-block:9px;text-decoration:none;overflow-wrap:anywhere}
:is(.flair-hotel,.flair-karls) .fx-footer-grid a:hover{text-decoration:underline}
:is(.flair-hotel,.flair-karls) .fx-address{font-size:12px;line-height:1.8;min-width:0}
:is(.flair-hotel,.flair-karls) .fx-address address{font-style:normal;margin:22px 0 10px;color:var(--fx-muted)}
:is(.flair-hotel,.flair-karls) .fx-footer-bottom{display:flex;gap:24px;justify-content:space-between;padding-top:25px;border-top:1px solid var(--fx-line);font-size:10px;color:var(--fx-muted)}
:is(.flair-hotel,.flair-karls) .fx-footer-bottom p{margin:0}
:is(.flair-hotel,.flair-karls) .fx-footer-bottom nav{display:flex;flex-wrap:wrap;gap:10px 25px}
:is(.flair-hotel,.flair-karls) .fx-footer-bottom a{min-height:44px;display:flex;align-items:flex-start;text-decoration:none}
:is(.flair-hotel,.flair-karls) .fx-mobile-action{display:none}
/* Native modal provides inert background, focus containment and Escape. */
:is(.flair-hotel,.flair-karls) dialog::backdrop{background:rgba(17,16,14,.76)}
:is(.flair-hotel,.flair-karls) .lightbox{background:var(--fx-bg);color:var(--fx-ink)}
:is(.flair-hotel,.flair-karls) .lightbox :is(.close-dialog,.lightbox-caption){color:var(--fx-ink)}
:is(.flair-hotel,.flair-karls) .search-dialog{background:var(--paper);color:var(--ink)}
.flair-karls .search-dialog :is(h2,h3,label){font-family:var(--karls-display);font-weight:500}
:is(.flair-hotel,.flair-karls) :is(.fx-menu,.search-dialog) .close-dialog{color:inherit}
:is(.flair-hotel,.flair-karls) .fx-menu{background:var(--fx-bg);color:var(--fx-ink);border:1px solid var(--fx-line);max-height:92dvh;width:calc(100vw - 64px);max-width:1500px;padding:32px 48px}
:is(.flair-hotel,.flair-karls) .fx-menu .dialog-top{border-color:var(--fx-line)}
:is(.flair-hotel,.flair-karls) .fx-menu .dialog-top p{margin:0}
:is(.flair-hotel,.flair-karls) .fx-menu-layout{display:grid;grid-template-columns:.9fr 1.5fr;gap:60px;padding-top:45px}
:is(.flair-hotel,.flair-karls) .fx-menu-title{font:clamp(58px,7vw,105px)/1 var(--display);letter-spacing:-.03em}
.flair-karls .fx-menu-title{font-family:var(--karls-display);font-weight:500;line-height:1.1}
:is(.flair-hotel,.flair-karls) .fx-menu-links{display:grid;grid-template-columns:1fr 1fr;gap:36px}
:is(.flair-hotel,.flair-karls) .fx-menu-links h2{font:10px/1.6 var(--sans);text-transform:uppercase;letter-spacing:.15em;color:var(--fx-muted);margin:0 0 12px}
:is(.flair-hotel,.flair-karls) .fx-menu-links a{font:24px/1.3 var(--display);display:block;min-height:44px;padding-block:8px;text-decoration:none}
.flair-karls .fx-menu-links a{font-family:var(--sans);font-size:16px}
:is(.flair-hotel,.flair-karls) .fx-menu-links a:hover{text-decoration:underline}
:is(.flair-hotel,.flair-karls) .skip-link{background:#f5f0e6;color:#2b2b2b;z-index:1001}
@media(min-width:1650px){:is(.flair-hotel,.flair-karls) .fx-header .search-toggle{display:inline-flex}}
@media(max-width:1399px){:is(.flair-hotel,.flair-karls) .fx-desktop-nav{display:none}}
@media(max-width:1024px){:is(.flair-hotel,.flair-karls) .fx-planner-fields{grid-template-columns:1fr 1fr;gap:18px}:is(.flair-hotel,.flair-karls) .fx-field:nth-child(2){border-right:0}:is(.flair-hotel,.flair-karls) .fx-footer-grid{grid-template-columns:1.3fr 1fr;gap:40px}:is(.flair-hotel,.flair-karls) .fx-footer-bottom{flex-direction:column;gap:16px}:is(.flair-hotel,.flair-karls) .fx-menu-layout{grid-template-columns:1fr;gap:25px}:is(.flair-hotel,.flair-karls) .fx-menu-title{display:none}}
@media(max-width:600px){
 .flair-hotel,.flair-karls{--header-height:76px}
 :is(.flair-hotel,.flair-karls) .fx-header{padding:10px 20px;gap:12px}
 .flair-hotel .fx-brand{gap:5px}.flair-hotel .fx-brand img{width:40px;height:45px}.flair-hotel .fx-brand-hotel{font-size:18px}.flair-hotel .fx-brand-hotel small{font-size:7px;letter-spacing:.1em}
 .flair-karls .fx-brand .karls-header-logo{width:clamp(168px,48vw,230px);max-height:56px}.flair-karls .fx-brand-small{font-size:8px;max-width:76px}.flair-karls .fx-brand-karls{font-size:28px}
 :is(.flair-hotel,.flair-karls) .fx-header-cta,:is(.flair-hotel,.flair-karls) .fx-hotel-return{display:none}
 :is(.flair-hotel,.flair-karls) .fx-header-actions{gap:6px}
 :is(.flair-hotel,.flair-karls) .fx-menu-toggle{gap:7px;padding-left:0;font-size:11px}
 :is(.flair-hotel,.flair-karls) .fx-button{min-height:50px;padding:13px 20px;gap:14px;font-size:12px}
 :is(.flair-hotel,.flair-karls) .fx-planner{padding:20px}
 :is(.flair-hotel,.flair-karls) .fx-planner-fields{grid-template-columns:minmax(0,1fr);gap:12px}
 :is(.flair-hotel,.flair-karls) .fx-field{border-right:0;border-bottom:1px solid var(--fx-line);padding:0 0 8px}
 :is(.flair-hotel,.flair-karls) .fx-plan-result{flex-direction:column;align-items:flex-start;gap:5px}
 :is(.flair-hotel,.flair-karls) .fx-plan-note{font-size:11px}
 :is(.flair-hotel,.flair-karls) .fx-footer{padding:50px 0 94px}
 :is(.flair-hotel,.flair-karls) .fx-footer-grid{grid-template-columns:1fr 1fr;gap:32px 20px;padding-bottom:32px}
 :is(.flair-hotel,.flair-karls) .fx-address{grid-column:1/-1}
 :is(.flair-hotel,.flair-karls) .fx-footer-grid h2{font-size:10px;letter-spacing:.1em;margin-bottom:10px}
 :is(.flair-hotel,.flair-karls) .fx-footer-grid a{font-size:11px}
 :is(.flair-hotel,.flair-karls) .fx-footer-bottom nav{gap:5px 18px}
 :is(.flair-hotel,.flair-karls) .fx-mobile-action{position:fixed;z-index:45;inset:auto 0 0;display:grid;grid-template-columns:1fr 1fr;background:var(--fx-bg);color:var(--fx-ink);border-top:1px solid var(--fx-line);padding:8px 14px max(8px,env(safe-area-inset-bottom));gap:10px}
 :is(.flair-hotel,.flair-karls) .fx-mobile-action>a{display:flex;justify-content:center;align-items:center;font-size:11px;text-decoration:none;min-height:44px}
 :is(.flair-hotel,.flair-karls) .fx-mobile-action .fx-button{padding:10px 8px;font-size:11px}
 :is(.flair-hotel,.flair-karls).dialog-open .fx-mobile-action{visibility:hidden}
 :is(.flair-hotel,.flair-karls) .fx-menu{width:100vw;max-width:100vw;max-height:100dvh;height:100dvh;margin:0;padding:22px;border:0}
 :is(.flair-hotel,.flair-karls) .fx-menu-layout{padding-top:28px}
 :is(.flair-hotel,.flair-karls) .fx-menu-links{grid-template-columns:1fr;gap:26px}
 :is(.flair-hotel,.flair-karls) .fx-menu-links a{font-size:25px}
 .flair-karls .fx-menu-links a{font-size:18px}
}
@media(prefers-reduced-motion:reduce){:is(.flair-hotel,.flair-karls) *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
