/* Site themes. The Admin Settings page picks one; the page gets <body class="t-NAME">.
   "classic" is the original look and needs no rules here. */

/* ---------- logo + tagline in the header (all looks) ---------- */
.brand{display:flex;align-items:center;gap:10px}
.brand .logo{height:46px;width:auto}
.brand-text{display:flex;flex-direction:column;line-height:1.15}
.brand .tag{font:400 .85rem system-ui,sans-serif;color:var(--muted);letter-spacing:.02em}

/* ---------- footer copyright + version (all looks) ---------- */
footer .legal{text-align:center;margin:28px auto 0;padding-top:18px;border-top:1px solid rgba(128,128,128,.3);font:.85rem/1.6 system-ui,sans-serif;opacity:.85}
footer .legal .ver{font-size:.78rem;opacity:.8}

/* ---------- photo gallery box: runs of photos become one slideshow (built by site.js) ---------- */
.gbox{margin:24px 0;background:#111;border-radius:12px;overflow:hidden;box-shadow:0 10px 30px rgba(0,0,0,.18)}
.gbox .stage{position:relative;height:min(70vh,620px);display:flex;align-items:center;justify-content:center;touch-action:pan-y;cursor:zoom-in}
.page .gbox .stage img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;border-radius:0;box-shadow:none;margin:0}
.gbox .nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(0,0,0,.45);color:#fff;border:0;width:46px;height:46px;border-radius:50%;font-size:1.9rem;line-height:1;cursor:pointer}
.gbox .nav:hover{background:rgba(0,0,0,.7)}.gbox .pv{left:12px}.gbox .nx{right:12px}
.gbox .count{position:absolute;right:12px;bottom:10px;background:rgba(0,0,0,.55);color:#fff;font:600 .8rem system-ui,sans-serif;padding:3px 10px;border-radius:999px}
.gbox .thumbs{display:flex;gap:6px;padding:8px;overflow-x:auto;background:#1b1b1b;scrollbar-width:thin}
.page .gbox .thumbs img{flex:0 0 auto;width:78px;height:58px;object-fit:cover;border-radius:4px;opacity:.55;cursor:pointer;box-shadow:none;margin:0;border:2px solid transparent}
.page .gbox .thumbs img.on{opacity:1;border-color:var(--accent)}
@media (max-width:600px){.gbox .stage{height:62vh}.gbox .nav{width:38px;height:38px;font-size:1.5rem}}

/* ---------- shared upgrades for every new theme ---------- */
body.t-farmhouse,body.t-modern,body.t-bold,body.t-elegant{overflow-x:hidden}
body:is(.t-farmhouse,.t-modern,.t-bold,.t-elegant) main{max-width:1080px;padding:28px 20px 56px}
body:is(.t-farmhouse,.t-modern,.t-bold,.t-elegant) .page{max-width:800px;margin:0 auto}
body:is(.t-farmhouse,.t-modern,.t-bold,.t-elegant) .page>h1{text-align:center;margin:10px 0 24px}
body:is(.t-farmhouse,.t-modern,.t-bold,.t-elegant) .hero{margin:-28px 0 36px;margin-left:calc(50% - 50vw);width:100vw;border-radius:0;min-height:min(62vh,560px)}
body:is(.t-farmhouse,.t-modern,.t-bold,.t-elegant) .page .hero h1{padding:160px max(20px,calc(50vw - 400px)) 40px;font-size:clamp(2rem,5vw,3.6rem);color:#fff!important;background:linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.6))}
body:is(.t-farmhouse,.t-modern,.t-bold,.t-elegant) .page img{box-shadow:0 10px 30px rgba(0,0,0,.12)}
body:is(.t-farmhouse,.t-modern,.t-bold,.t-elegant) .card{transition:transform .2s,box-shadow .2s;padding:0;overflow:hidden}
body:is(.t-farmhouse,.t-modern,.t-bold,.t-elegant) .card:hover{transform:translateY(-4px);box-shadow:0 14px 34px rgba(0,0,0,.14)}
body:is(.t-farmhouse,.t-modern,.t-bold,.t-elegant) .card img{border-radius:0;box-shadow:none}
body:is(.t-farmhouse,.t-modern,.t-bold,.t-elegant) .card h3,body:is(.t-farmhouse,.t-modern,.t-bold,.t-elegant) .card p{padding:0 14px}
body:is(.t-farmhouse,.t-modern,.t-bold,.t-elegant) .card h3{margin-top:12px}body:is(.t-farmhouse,.t-modern,.t-bold,.t-elegant) .card p{padding-bottom:14px}
body:is(.t-farmhouse,.t-modern,.t-bold,.t-elegant) .cards{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:22px}
body:is(.t-farmhouse,.t-modern,.t-bold,.t-elegant) .btn{padding:13px 26px;transition:filter .2s,transform .2s}
body:is(.t-farmhouse,.t-modern,.t-bold,.t-elegant) .btn:hover{filter:brightness(1.1);transform:translateY(-1px)}
body:is(.t-farmhouse,.t-modern,.t-bold,.t-elegant) footer{background:var(--foot-bg);color:var(--foot-fg);border:0;padding:48px 20px}
body:is(.t-farmhouse,.t-modern,.t-bold,.t-elegant) footer a{color:var(--foot-link)}
body:is(.t-farmhouse,.t-modern,.t-bold,.t-elegant) footer input{background:rgba(255,255,255,.95);color:#222;border:0}
body:is(.t-farmhouse,.t-modern,.t-bold,.t-elegant) .foot-grid{max-width:1080px}
body:is(.t-farmhouse,.t-modern,.t-bold,.t-elegant) .top{padding:14px max(20px,calc(50vw - 540px))}

/* ---------- Farmhouse: warm, rustic, trustworthy ---------- */
body.t-farmhouse{--bg:#f7f2e8;--fg:#2d2a24;--muted:#6e665a;--accent:#2f5d3a;--accent2:#b5651d;--line:#e3d9c6;--card:#fffdf8;--foot-bg:#24402b;--foot-fg:#efe8d8;--foot-link:#f3c98b;
 background:var(--bg);color:var(--fg);font:18px/1.7 'Lato',system-ui,sans-serif}
.t-farmhouse h1,.t-farmhouse h2,.t-farmhouse h3,.t-farmhouse .brand{font-family:'Playfair Display',Georgia,serif}
.t-farmhouse .top{background:var(--card);border-bottom:3px solid var(--accent2)}
.t-farmhouse .brand{font-size:1.5rem;color:var(--accent)}
.t-farmhouse nav a{font-family:'Lato',sans-serif;font-weight:700;letter-spacing:.02em}
.t-farmhouse nav a:hover{background:transparent;color:var(--accent2)}
.t-farmhouse .page h2{font-size:1.8rem;text-align:center;margin-top:2.2em}
.t-farmhouse .page h2::after{content:"";display:block;width:60px;height:3px;background:var(--accent2);margin:12px auto 0}
.t-farmhouse .btn{background:var(--accent2);border-radius:4px;text-transform:uppercase;letter-spacing:.06em;font-size:.9rem}
.t-farmhouse .btn.alt{background:transparent;color:var(--accent);border-color:var(--accent)}
.t-farmhouse .card{border:0;border-radius:6px;background:var(--card);box-shadow:0 4px 14px rgba(60,40,10,.08)}

/* ---------- Modern: clean, bright, professional ---------- */
body.t-modern{--bg:#ffffff;--fg:#16181d;--muted:#5f6670;--accent:#e4572e;--accent2:#e4572e;--line:#eceef1;--card:#ffffff;--foot-bg:#16181d;--foot-fg:#c9ccd2;--foot-link:#ffffff;
 background:var(--bg);color:var(--fg);font:17px/1.7 'Inter',system-ui,sans-serif}
.t-modern h1,.t-modern h2,.t-modern h3{font-family:'Inter',system-ui,sans-serif;font-weight:800;letter-spacing:-.02em;color:var(--fg)!important}
.t-modern .top{background:rgba(255,255,255,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.t-modern .brand{color:var(--fg);font-weight:800;letter-spacing:-.02em;font-size:1.3rem}
.t-modern .brand::first-letter{color:var(--accent)}
.t-modern nav a{text-transform:uppercase;font-size:.8rem;letter-spacing:.1em;font-weight:600}
.t-modern nav a:hover{background:transparent;color:var(--accent)}
.t-modern .page h2{font-size:1.9rem;margin-top:2em}
.t-modern .btn{border-radius:999px}
.t-modern .card{border:1px solid var(--line);border-radius:16px}
.t-modern .page img{border-radius:16px}

/* ---------- Bold: dark, strong, high-impact ---------- */
body.t-bold{--bg:#f4f1ec;--fg:#1b1b1b;--muted:#5c5650;--accent:#a4161a;--accent2:#a4161a;--line:#ddd5ca;--card:#ffffff;--foot-bg:#111111;--foot-fg:#bdbdbd;--foot-link:#ff6b6b;
 background:var(--bg);color:var(--fg);font:17px/1.7 'Source Sans 3',system-ui,sans-serif}
.t-bold h1,.t-bold h2,.t-bold h3,.t-bold .brand{font-family:'Oswald',Impact,sans-serif;text-transform:uppercase;letter-spacing:.03em}
/* blue banner header, everything centered, bee in a white badge */
/* fading blue with a fine grain texture and soft diagonal weave on top */
body.t-bold .top{background:
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E"),
  repeating-linear-gradient(45deg,rgba(255,255,255,.035) 0 2px,transparent 2px 9px),
  repeating-linear-gradient(-45deg,rgba(0,0,0,.05) 0 2px,transparent 2px 9px),
  radial-gradient(ellipse at 50% 0%,rgba(255,255,255,.18),transparent 60%),
  linear-gradient(180deg,#041f52 0%,#0d47a1 35%,#1976d2 70%,#64b5f6 100%);
 background-blend-mode:overlay,normal,normal,normal,normal;border:0;border-bottom:4px solid var(--accent);flex-direction:column;justify-content:center;gap:10px;padding-top:22px;padding-bottom:10px;position:relative}
.t-bold .brand{color:#fff;justify-content:center;gap:16px;text-transform:none}
.t-bold .brand .logo{height:128px;width:128px;object-fit:contain;background:radial-gradient(circle,#fff 55%,#fff6d6 100%);border-radius:50%;padding:12px;border:5px solid #ffc107;box-shadow:0 0 0 4px rgba(4,31,82,.55),0 8px 24px rgba(0,0,0,.45)}
.t-bold .brand .name{font-size:clamp(1.6rem,4vw,2.4rem);text-shadow:0 2px 6px rgba(0,0,0,.35)}
.t-bold .brand .tag{color:#d6e7ff;font:italic 400 1.05rem 'Source Sans 3',sans-serif;letter-spacing:.04em}
.t-bold nav .menu{justify-content:center}
.t-bold nav a{color:#fff;font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:.08em;font-weight:500}
.t-bold nav a:hover{background:var(--accent);color:#fff}
.t-bold .sub{background:#0b3d91;border-color:#1e88e5}
.t-bold .burger{color:#fff;border-color:rgba(255,255,255,.5);position:absolute;right:16px;top:18px}
.t-bold .page .hero h1{font-size:clamp(2.4rem,6vw,4.4rem);text-align:center}
.t-bold nav a{text-shadow:0 1px 3px rgba(0,0,0,.45)}
/* use the whole width of the window */
/* wide but centered: banner and photos go edge to edge, text sits in a centered 1200px column */
body.t-bold main{max-width:none;padding:28px clamp(16px,4vw,64px) 56px}
body.t-bold .page{max-width:1200px;margin:0 auto}
body.t-bold .page .hero h1{padding-left:max(16px,calc(50vw - 600px));padding-right:max(16px,calc(50vw - 600px))}
body.t-bold .foot-grid{max-width:1200px}
body.t-bold .cards{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
@media (max-width:820px){.t-bold .brand .logo{height:78px;width:78px;padding:7px;border-width:4px}body.t-bold .top{padding-top:12px}.t-bold .brand{padding-right:44px}}
.t-bold .page h2{font-size:2.1rem;border-left:6px solid var(--accent);padding-left:14px}
.t-bold .btn{border-radius:0;text-transform:uppercase;font-family:'Oswald',sans-serif;letter-spacing:.08em;font-weight:500}
.t-bold .card{border:0;border-radius:0;border-bottom:4px solid var(--accent)}
.t-bold .page img{border-radius:0}

/* ---------- Elegant: refined, airy, premium ---------- */
body.t-elegant{--bg:#fbfaf7;--fg:#2b2b28;--muted:#7a776f;--accent:#5b6b4f;--accent2:#a88b4c;--line:#e7e2d8;--card:#ffffff;--foot-bg:#2f3529;--foot-fg:#d9d4c7;--foot-link:#d8bf86;
 background:var(--bg);color:var(--fg);font:300 18px/1.8 'Montserrat',system-ui,sans-serif}
.t-elegant h1,.t-elegant h2,.t-elegant h3,.t-elegant .brand{font-family:'Cormorant Garamond',Georgia,serif;font-weight:600}
.t-elegant strong,.t-elegant b{font-weight:600}
.t-elegant .top{background:var(--bg);border-bottom:1px solid var(--line);justify-content:center;flex-direction:column}
.t-elegant .brand{font-size:2rem;color:var(--fg);letter-spacing:.04em}
.t-elegant nav a{font-family:'Montserrat',sans-serif;font-weight:500;text-transform:uppercase;font-size:.75rem;letter-spacing:.18em}
.t-elegant nav a:hover{background:transparent;color:var(--accent2)}
.t-elegant .page .hero h1{font-weight:500;text-align:center}
.t-elegant .page h1{font-size:2.8rem;color:var(--fg)}
.t-elegant .page h2{font-size:2.2rem;text-align:center;color:var(--accent);margin-top:2em}
.t-elegant .btn{background:var(--accent);border-radius:0;text-transform:uppercase;letter-spacing:.16em;font:500 .8rem 'Montserrat',sans-serif;padding:15px 30px}
.t-elegant .btn.alt{background:transparent;color:var(--accent);border:1px solid var(--accent)}
.t-elegant .price{font-family:'Cormorant Garamond',serif;font-size:1.8rem}
.t-elegant .card{border:1px solid var(--line);border-radius:0}
.t-elegant .card h3{font-size:1.4rem}
.t-elegant .page img{border-radius:2px}
@media (max-width:820px){.t-elegant .top{flex-direction:row;justify-content:space-between}.t-elegant .brand{font-size:1.5rem}}
