/*
Theme Name: Altit Fort
Description: Heritage-modern theme for altitfort.com, built for Elementor. Auto-creates the five site pages as editable Elementor pages.
Version: 3.0.0
Author: GreyMatter Ventures
Text Domain: altit-fort
*/
:root{--ink:#17110D;--brick:#A5502F;--apr:#F0A23B;--gla:#1B4455;--parch:#F4EADB;--stone:#EBDDC4;--txt:#2B211B;
--pat:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='64' viewBox='0 0 64 64'%3E%3Cg fill='none' stroke='%23F0A23B' stroke-width='1.2'%3E%3Crect x='16' y='16' width='32' height='32'/%3E%3Crect x='16' y='16' width='32' height='32' transform='rotate(45 32 32)'/%3E%3Ccircle cx='32' cy='32' r='7'/%3E%3Cpath d='M0 0l8 8M64 0l-8 8M0 64l8-8M64 64l-8-8'/%3E%3C/g%3E%3C/svg%3E")}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;font-family:'DM Sans',sans-serif;color:var(--txt);background:var(--parch);line-height:1.8;-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3,h4,h5{font-family:'Fraunces',serif;line-height:1.08;margin:0 0 .4em;letter-spacing:-.01em}
a{color:var(--brick)}img{max-width:100%;height:auto;display:block}
.skip-link{position:absolute;left:-999px}.skip-link:focus{left:10px;top:10px;background:#fff;padding:8px;z-index:999}
.af-progress{position:fixed;top:0;left:0;height:3px;width:0;background:var(--apr);z-index:300}
/* header */
.af-header{position:fixed;top:0;left:0;right:0;z-index:200;padding:18px 0;transition:.4s}
.af-header.scrolled{background:rgba(23,17,13,.94);backdrop-filter:blur(10px);padding:8px 0;box-shadow:0 6px 30px rgba(0,0,0,.3)}
.af-wrap{max-width:1280px;margin:auto;padding:0 24px;display:flex;align-items:center;gap:34px}
.af-logo{margin-right:auto;color:#fff;font:600 28px 'Fraunces',serif;text-decoration:none}.af-logo img,.custom-logo{max-height:60px;width:auto}
.af-nav ul{display:flex;gap:34px;list-style:none;margin:0;padding:0}
.af-nav a{position:relative;color:#fff;text-decoration:none;font-size:13px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;padding:8px 0}
.af-nav a::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--apr);transition:.3s}
.af-nav a:hover::after,.af-nav .current-menu-item a::after{width:100%}
.af-cta,.af-btn .elementor-button{display:inline-flex;align-items:center;gap:10px;background:var(--apr);color:var(--ink)!important;border-radius:50px;font-weight:700;text-decoration:none;font-size:13px;letter-spacing:.1em;text-transform:uppercase;transition:.35s}
.af-cta{padding:13px 26px}.af-btn .elementor-button::after{content:"→";transition:.3s}
.af-cta:hover,.af-btn .elementor-button:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(240,162,59,.45)}.af-btn .elementor-button:hover::after{transform:translateX(5px)}
.af-toggle{display:none;background:none;border:0;cursor:pointer;width:44px;height:44px;position:relative;z-index:260}
.af-toggle span{position:absolute;left:9px;right:9px;height:2px;background:#fff;transition:.3s}.af-toggle span:nth-child(1){top:15px}.af-toggle span:nth-child(2){top:21px}.af-toggle span:nth-child(3){top:27px}
.menu-open .af-toggle span:nth-child(1){top:21px;transform:rotate(45deg)}.menu-open .af-toggle span:nth-child(2){opacity:0}.menu-open .af-toggle span:nth-child(3){top:21px;transform:rotate(-45deg)}
/* hero */
.af-hl{color:var(--apr);font-style:italic;font-weight:400}
.af-hero .af-sub{max-width:640px}.af-hero::after{content:"";position:absolute;inset:0;background:var(--pat);opacity:.07;pointer-events:none}
.af-hero>*{position:relative;z-index:2}
.af-infobar{position:relative;z-index:5;max-width:1160px;margin:-95px auto 0!important;background:var(--parch);border-radius:22px;box-shadow:0 30px 70px rgba(23,17,13,.35);border-top:4px solid var(--apr)}
.af-infobar .elementor-icon-box-title{font-size:19px!important;margin:0}.af-infobar .elementor-icon-box-description{font-size:14px!important;margin:0}
.af-pill{display:inline-block;margin-left:8px;padding:2px 10px;border-radius:20px;font:700 10px 'DM Sans';letter-spacing:.1em;text-transform:uppercase;vertical-align:middle;background:#2e7d4f;color:#fff}.af-pill.closed{background:var(--brick)}
.af-marquee{overflow:hidden;white-space:nowrap;border-block:1px solid rgba(165,80,47,.35);padding:16px 0}
.af-marquee div{display:inline-block;animation:afm 38s linear infinite}
.af-marquee span{font:500 26px 'Fraunces',serif;color:var(--brick);margin:0 26px;letter-spacing:.06em}.af-marquee b{color:var(--apr)}
@keyframes afm{to{transform:translateX(-50%)}}
/* patterns & ornaments */
.af-pat{position:relative}.af-pat::before{content:"";position:absolute;inset:0;background:var(--pat);opacity:.07;pointer-events:none;z-index:0}.af-pat>*{position:relative;z-index:1}
.af-band{height:34px;background:var(--ink) var(--pat);background-size:34px;border-block:3px solid var(--apr)}
.af-eb{text-transform:uppercase;letter-spacing:.28em;display:flex;align-items:center;gap:12px}
.af-eb .elementor-heading-title::before{content:"◆";margin-right:12px;font-size:9px;vertical-align:middle}
.af-orn{display:flex;align-items:center;gap:10px}.af-orn-center{justify-content:center}
.af-orn::before,.af-orn::after{content:"";height:1px;width:64px;background:var(--apr)}.af-orn-left::before{display:none}
.af-orn i{width:10px;height:10px;background:var(--apr);transform:rotate(45deg)}
.af-lead{font-size:21px}.af-rel{position:relative}
.af-arch img{border-radius:999px 999px 18px 18px;box-shadow:0 30px 60px rgba(23,17,13,.35);border:10px solid #fff;outline:2px solid var(--apr);outline-offset:10px}
.af-seal{position:absolute;right:-12px;bottom:40px;width:140px;height:140px;border-radius:50%;background:var(--brick);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;border:3px dashed var(--apr);outline:6px solid var(--brick);animation:afr 40s linear infinite}
.af-seal b{font:600 38px 'Fraunces',serif;line-height:1}.af-seal span{font-size:11px;letter-spacing:.14em;text-transform:uppercase;line-height:1.3}
@keyframes afr{to{transform:rotate(360deg)}}
.af-frame img,.af-photo img{border-radius:18px;box-shadow:0 22px 50px rgba(23,17,13,.3);transition:transform .6s}.af-frame:hover img,.af-photo:hover img{transform:scale(1.04)}
.af-frame,.af-photo{overflow:hidden;border-radius:18px}
.af-hcard{background:rgba(255,255,255,.05);border:1px solid rgba(240,162,59,.28);border-radius:20px;transition:.4s}.af-hcard:hover{transform:translateY(-10px);background:rgba(240,162,59,.12);border-color:var(--apr)}
.af-hi .elementor-icon{background:rgba(240,162,59,.14);width:76px;height:76px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 18px}
.af-lcard{background:#fff;border-radius:20px;box-shadow:0 14px 40px rgba(23,17,13,.12);transition:.35s;border-bottom:4px solid var(--apr)}.af-lcard:hover{transform:translateY(-8px)}.af-center{text-align:center}
.af-stat .elementor-counter{text-align:center}.af-stat{border-right:1px solid rgba(240,162,59,.2)}.af-stat:last-child{border:0}
/* timeline */
.af-tl{position:relative}.af-tl::before{content:"";position:absolute;left:50%;top:0;bottom:0;width:2px;background:linear-gradient(var(--apr),var(--brick));transform:translateX(-50%)}
.af-tlrow{position:relative}.af-tlrow::after{content:"";position:absolute;left:50%;top:50%;width:22px;height:22px;background:var(--apr);border:5px solid var(--stone);border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 3px var(--brick)}
/* tickets */
.af-ticket{background:var(--parch);border-radius:16px;transition:.4s;--r:16px;
-webkit-mask:radial-gradient(circle var(--r) at 0 62%,#0000 97%,#000) left/51% 100% no-repeat,radial-gradient(circle var(--r) at 100% 62%,#0000 97%,#000) right/51% 100% no-repeat;
mask:radial-gradient(circle var(--r) at 0 62%,#0000 97%,#000) left/51% 100% no-repeat,radial-gradient(circle var(--r) at 100% 62%,#0000 97%,#000) right/51% 100% no-repeat}
.af-ticket:hover{transform:translateY(-10px) rotate(-.6deg)}
.af-dash{border:0;border-top:2px dashed rgba(165,80,47,.45);margin:8px 0 14px}.af-admit{margin-top:10px;font-size:10px;letter-spacing:.3em;color:var(--brick);opacity:.7}
.af-hours{width:100%;border-collapse:collapse;background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 14px 40px rgba(23,17,13,.12)}
.af-hours td{padding:15px 24px;border-bottom:1px solid var(--stone)}.af-hours td:first-child{font-weight:700}.af-hours td:last-child{text-align:right;color:var(--brick);font-weight:700}
.af-map iframe{border-radius:20px;box-shadow:0 20px 50px rgba(23,17,13,.25)}
.af-masonry{display:block!important;column-count:3;column-gap:18px}.af-masonry>.elementor-widget{break-inside:avoid;margin-bottom:18px;width:100%}
/* footer */
.af-footer{position:relative;background:var(--ink);color:#cdbd9f;padding:90px 24px 100px;overflow:hidden}
.af-footer::before{content:"";position:absolute;inset:0;background:var(--pat);opacity:.05}
.af-mark{position:absolute;left:50%;bottom:-.28em;transform:translateX(-50%);font:700 20vw/1 'Fraunces',serif;color:transparent;-webkit-text-stroke:1px rgba(240,162,59,.18);white-space:nowrap;pointer-events:none}
.af-fgrid{position:relative;max-width:1280px;margin:auto;display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:50px}
.af-footer h4{color:#fff;font-size:26px}.af-footer a{color:var(--apr);text-decoration:none}.af-footer a:hover{color:#fff}.af-footer ul{list-style:none;padding:0;margin:0}.af-footer li{margin-bottom:10px}
.af-copy{position:relative;max-width:1280px;margin:60px auto 0;padding-top:22px;border-top:1px solid #3d2e23;font-size:14px}
.af-mbar{display:none}
@media(max-width:1024px){.af-masonry{column-count:2}.af-tl::before,.af-tlrow::after{display:none}.af-stat{border:0}}
@media(max-width:900px){
 .af-toggle{display:block}.af-cta{display:none}
 .af-nav{position:fixed;inset:0;background:var(--ink) var(--pat);display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:.4s;z-index:250}
 .menu-open .af-nav{opacity:1;visibility:visible}.af-nav ul{flex-direction:column;gap:24px;text-align:center}.af-nav a{font:500 38px 'Fraunces',serif;letter-spacing:0;text-transform:none}
 .af-fgrid{grid-template-columns:1fr}.af-masonry{column-count:1}.af-seal{width:110px;height:110px;right:0}.af-infobar{margin-top:-70px!important}
 .af-mbar{display:flex;position:fixed;left:12px;right:12px;bottom:12px;z-index:180;gap:10px}
 .af-mbar a{flex:1;text-align:center;padding:15px;border-radius:50px;font:700 13px 'DM Sans';letter-spacing:.08em;text-transform:uppercase;text-decoration:none;box-shadow:0 10px 30px rgba(0,0,0,.35)}
 .af-mbar a:first-child{background:var(--ink);color:#fff}.af-mbar a:last-child{background:var(--apr);color:var(--ink)}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
