﻿/*
Theme Name: AALT Royal
Theme URI: https://aaltindia.com/
Author: AALT
Description: Full PHP theme for the Asian Academy of Laser Therapy — every word, image and price editable live in the Customizer. Crimson/navy brand with fluid, vibrant polish. Includes the membership application with country-based pricing.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: GPL-2.0-or-later
Text Domain: aalt-royal
*/

:root{
  --crimson:#D2093C; --crimson-deep:#A60830;
  --navy:#00306E; --navy-2:#0C3C78; --navy-deep:#001B3D;
  --ink:#0F1216; --paper:#FFFFFF; --mist:#F4F6F9; --muted:#586273; --line:#E2E7EE;
  --grad-navy:linear-gradient(135deg,#00306E 0%,#0C3C78 100%);
  --grad-crimson:linear-gradient(120deg,#D2093C 0%,#A60830 100%);
  --font:'Helvetica Neue', Helvetica, 'Arimo', Arial, sans-serif;
}
*{box-sizing:border-box; margin:0; padding:0}
html{scroll-behavior:smooth; scroll-padding-top:96px; overflow-x:clip}
body{overflow-x:clip}
body{font-family:var(--font); color:var(--ink); background:var(--paper); font-size:18px; line-height:1.65; -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; text-rendering:optimizeLegibility}
img{display:block; max-width:100%; height:auto}
a{text-decoration:none; color:inherit; transition:color .25s ease}
h1,h2,h3,h4{font-family:var(--font); font-weight:600; line-height:1.08; letter-spacing:-.021em; color:var(--navy)}
.wrap{max-width:1200px; margin:0 auto; padding:0 24px}
.label{font-weight:700; text-transform:uppercase; letter-spacing:.16em; font-size:12px; line-height:1.4}
.kicker{display:flex; align-items:center; gap:12px}
.kicker.center{justify-content:center}
.kicker .rule{height:1px; width:32px; background:var(--crimson)}
.kicker span.t{color:var(--crimson); font-weight:700; text-transform:uppercase; letter-spacing:.16em; font-size:12px}

/* buttons — fluid */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; font-weight:700; font-size:14px; padding:12px 24px; border-radius:4px; border:1px solid transparent; cursor:pointer; transition:background-color .25s ease,border-color .25s ease,color .25s ease,transform .25s cubic-bezier(.16,1,.3,1),box-shadow .25s ease}
.btn:hover{transform:translateY(-2px)}
.btn.lg{padding:14px 28px; font-size:15px}
.btn-crimson{background:var(--grad-crimson); color:#fff; box-shadow:0 8px 20px -10px rgba(210,9,60,.55)}
.btn-crimson:hover{color:#fff; box-shadow:0 14px 28px -10px rgba(210,9,60,.6)}
.btn-navy{background:var(--grad-navy); color:#fff; box-shadow:0 8px 20px -12px rgba(0,27,61,.6)}
.btn-navy:hover{color:#fff}
.btn-white{background:#fff; color:var(--navy)}
.btn-white:hover{background:var(--mist)}
.btn-oline{border-color:rgba(255,255,255,.5); color:#fff}
.btn-oline:hover{background:#fff; color:var(--navy)}
.btn-onavy{border-color:rgba(0,48,110,.35); color:var(--navy)}
.btn-onavy:hover{background:var(--navy); color:#fff}
.btn.full{width:100%}
.btn i{transition:transform .25s cubic-bezier(.22,1,.36,1)}
.btn:hover i.fa-arrow-right{transform:translateX(3px)}
.btn:disabled,.btn[disabled]{opacity:.45; cursor:not-allowed; transform:none; box-shadow:none}

/* header */
.site-head{position:sticky; top:0; z-index:50}
.util{background:var(--navy-deep); color:rgba(255,255,255,.65); font-size:12.5px}
.util .wrap{display:flex; align-items:center; justify-content:space-between; padding:8px 24px}
.util a{transition:color .2s}.util a:hover{color:#fff}
.util .socials{display:flex; gap:14px}
.nav{background:var(--grad-navy); transition:box-shadow .3s}
.nav.scrolled{box-shadow:0 12px 30px -12px rgba(0,27,61,.6)}
.nav .wrap{display:flex; align-items:center; justify-content:space-between; padding:14px 24px}
.brand{display:flex; align-items:center; gap:10px; min-width:0}
.brand img,.brand .custom-logo{height:var(--aalt-logo-h,64px)!important; width:auto!important; max-width:none; border-radius:6px; transition:height .25s ease}
.custom-logo-link{display:flex; align-items:center}
.brand .mark{width:40px; height:40px; border-radius:50%; background:#fff; color:var(--crimson); display:grid; place-items:center; font-weight:700; font-size:18px}
.brand b{font-weight:700; font-size:20px; color:#fff; display:block; line-height:1}
.brand small{font-size:10px; text-transform:uppercase; letter-spacing:.14em; color:rgba(255,255,255,.55)}
.menu{display:flex; align-items:center; gap:24px; list-style:none}
.menu a{font-size:14px; color:rgba(255,255,255,.85); transition:color .2s}
.menu a:hover,.menu .current-menu-item>a{color:#fff}
.nav .right{display:flex; align-items:center; gap:14px}
.burger{display:none; background:none; border:0; color:#fff; font-size:22px; cursor:pointer}
.mobile{display:none; background:var(--navy); border-top:1px solid rgba(255,255,255,.1)}
.mobile.open{display:block}
.mobile ul{list-style:none}
.mobile a{display:block; padding:12px 24px; color:rgba(255,255,255,.85); border-bottom:1px solid rgba(255,255,255,.1)}

/* hero */
.hero{position:relative; background:var(--navy)}
.hero .photo{position:relative; height:600px; overflow:hidden}
.hero .photo img{width:100%; height:100%; object-fit:cover; transform:scale(1.02); animation:aalt-slow-zoom 14s ease-in-out infinite alternate}
@keyframes aalt-slow-zoom{from{transform:scale(1.02)}to{transform:scale(1.09)}}
.hero .photo::after{content:""; position:absolute; inset:0; background:linear-gradient(90deg,var(--navy) 0%,rgba(0,48,110,.62) 44%,rgba(210,9,60,.16) 100%)}
.hero .overlay{position:absolute; inset:0}
.hero .overlay .wrap{height:100%; display:flex; align-items:center}
.hero .box{max-width:600px; width:100%; background:rgba(0,32,74,.94); backdrop-filter:blur(4px); padding:48px; border-left:3px solid var(--crimson)}
.hero .box .label{display:flex; align-items:center; gap:8px; color:#FF9CB0}
.hero h1{margin-top:20px; font-size:clamp(2.4rem,4.4vw,3.4rem); color:#fff; line-height:1.05}
.hero p{margin-top:18px; max-width:440px; color:rgba(255,255,255,.82); font-size:17px}
.hero .cta{margin-top:30px}
.dots{margin-top:38px; display:flex; gap:10px}
.dots button{height:4px; width:20px; border:0; background:rgba(255,255,255,.3); cursor:pointer; transition:all .3s; padding:0}
.dots button.on{width:40px; background:var(--crimson)}
.fade{opacity:0; transform:translateY(14px); transition:opacity .5s,transform .5s}
.fade.in{opacity:1; transform:none}

/* page head */
.pagehead{position:relative; overflow:hidden; background:var(--navy)}
.pagehead img.bg{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.22}
.pagehead::after{content:""; position:absolute; inset:0; background:linear-gradient(100deg,var(--navy) 8%,rgba(0,48,110,.92) 55%,rgba(210,9,60,.28) 130%)}
.pagehead .wrap{position:relative; z-index:2; padding:66px 24px}
.pagehead h1{margin-top:20px; max-width:840px; font-size:clamp(2.2rem,4vw,3.4rem); color:#fff}
.pagehead p{margin-top:18px; max-width:660px; color:rgba(255,255,255,.78); font-size:17px}

/* strip */
.strip{background:#fff; border-bottom:1px solid var(--line)}
.strip .wrap{display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:10px 28px; padding:20px 24px}
.strip .label{color:var(--muted)}
.strip .dot{height:6px; width:6px; border-radius:50%; background:var(--crimson)}

/* reveal — fluid glide */
.rv{opacity:0; transform:translateY(18px); transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1)}
.rv.in{opacity:1; transform:none}
.course,.post,.crow,.nl,.tcard,.pillar,.ecard{transition:transform .35s cubic-bezier(.16,1,.3,1),box-shadow .35s ease}
.course:hover,.post:hover,.crow:hover,.nl:hover,.ecard:hover{transform:translateY(-5px)}

/* sections */
.sec{padding:80px 0}
.sec.mist{background:var(--mist)}
.sec.pad64{padding:64px 0}
.sec-head{display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:24px; border-bottom:1px solid var(--line); padding-bottom:34px}
.sec-head h2{margin-top:22px; font-size:clamp(2rem,3.6vw,3.2rem)}
.sec-head.max h2{max-width:640px}

/* duo cards */
.duo{display:grid; grid-template-columns:1fr 1fr; gap:24px}
.card-block{padding:44px; color:#fff; display:flex; flex-direction:column; position:relative; overflow:hidden}
.card-block::before{content:""; position:absolute; right:-60px; top:-60px; width:200px; height:200px; border-radius:50%; background:rgba(255,255,255,.05)}
.card-block.navy{background:var(--grad-navy)} .card-block.navy2{background:linear-gradient(135deg,#0C3C78,#12508f)}
.card-block h3{color:#fff; font-size:2.1rem}
.card-block p{margin-top:16px; color:rgba(255,255,255,.8); max-width:440px}
.card-block .btn{margin-top:32px; align-self:flex-start}

/* band */
.band{display:grid; grid-template-columns:1fr 1fr}
.band .text{background:var(--grad-navy); padding:88px 56px; display:flex; flex-direction:column; justify-content:center}
.band .text .inner{max-width:540px; margin:0 auto; width:100%}
.band h2{margin-top:24px; color:#fff; font-size:clamp(2rem,3.6vw,3.4rem)}
.band .text p{margin-top:24px; color:rgba(255,255,255,.78); font-size:17px}
.band .text .btn{margin-top:34px; align-self:flex-start}
.band .pic{position:relative; min-height:380px; overflow:hidden}
.band .pic img{width:100%; height:100%; object-fit:cover}
.band .pic::after{content:""; position:absolute; inset:0; background:linear-gradient(160deg,rgba(0,48,110,.78),rgba(210,9,60,.35)); mix-blend-mode:multiply}
.band .pic .word{position:absolute; inset:0; display:flex; align-items:center; justify-content:center; text-align:center; z-index:2}
.band .pic .word h3{color:#fff; font-size:clamp(3rem,6vw,4.5rem); line-height:.95}

/* stats */
.stats{background:var(--grad-crimson); color:#fff; padding:56px 0}
.stats .grid{display:grid; grid-template-columns:repeat(4,1fr)}
.stats .stat{text-align:center; padding:8px 24px}
.stats .stat+.stat{border-left:1px solid rgba(255,255,255,.22)}
.stats .num{font-size:3rem; line-height:1; color:#fff; font-weight:700}
.stats .label{margin-top:12px; color:rgba(255,255,255,.88)}

/* course cards (fluid) */
.courses{display:grid; grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr)); gap:26px; margin-top:40px}
.courses.wide{grid-template-columns:repeat(auto-fit,minmax(min(400px,100%),1fr))}
.course .blurb{margin-top:12px; font-size:14.5px; color:var(--muted); line-height:1.55}
.course{border:1px solid var(--line); background:#fff; display:flex; flex-direction:column; overflow:hidden}
.course:hover{box-shadow:0 30px 60px -30px rgba(0,48,110,.45)}
.course .top{position:relative; height:208px; overflow:hidden}
.course .top img{width:100%; height:100%; object-fit:cover; transition:transform .7s cubic-bezier(.16,1,.3,1)}
.course:hover .top img{transform:scale(1.06)}
.course .tag{position:absolute; left:0; top:16px; background:var(--grad-navy); color:#fff; padding:6px 12px; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.12em}
.course .seats{position:absolute; right:12px; top:12px; padding:4px 12px; font-size:11px; font-weight:700; border-radius:20px}
.course .seats.urgent{background:var(--crimson); color:#fff}
.course .seats.normal{background:rgba(255,255,255,.92); color:var(--navy)}
.course .body{padding:24px; display:flex; flex-direction:column; flex:1}
.course h3{font-size:1.5rem; color:var(--navy); line-height:1.1}
.course .meta{margin-top:16px; display:flex; flex-wrap:wrap; gap:6px 16px; font-size:13px; color:var(--muted)}
.course .meta i{color:var(--crimson); margin-right:5px}
.course .stars{margin-top:12px; font-size:13px; color:var(--crimson)}
.course .stars b{color:var(--navy); margin-left:4px}.course .stars em{color:var(--muted); font-style:normal}
.course .foot{margin-top:auto; padding-top:20px; border-top:1px solid var(--line); display:flex; align-items:flex-end; justify-content:space-between; gap:14px; flex-wrap:wrap}
.course .foot .btn{white-space:nowrap; flex:none}
.course .price{font-size:clamp(1.45rem,2.2vw,1.9rem); color:var(--crimson); line-height:1; font-weight:700; overflow-wrap:anywhere}
.course .next{margin-top:8px; font-size:12px; color:var(--muted)}

/* meta chips (courses page) */
.chips{margin-top:14px; display:flex; flex-wrap:wrap; gap:8px}
.chips span{background:var(--mist); border:1px solid var(--line); color:var(--navy); font-size:12.5px; font-weight:600; padding:6px 12px; border-radius:20px}
.chips span i{color:var(--crimson); margin-right:6px}

/* image band */
.imgband{position:relative; min-height:420px; display:flex; align-items:center; overflow:hidden}
.imgband>img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover}
.imgband::after{content:""; position:absolute; inset:0; background:linear-gradient(95deg,var(--navy) 5%,rgba(0,48,110,.86) 45%,rgba(210,9,60,.3) 115%)}
.imgband .wrap{position:relative; z-index:2}
.imgband .inner{max-width:560px}
.imgband h2{margin-top:24px; color:#fff; font-size:clamp(2rem,3.6vw,3.4rem)}
.imgband p{margin-top:18px; color:rgba(255,255,255,.82); font-size:17px}
.imgband .btn{margin-top:30px}

/* lead + forms */
.lead .grid,.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center}
.lead h2{margin-top:24px}
.lead .sub{margin-top:18px; font-size:17px; color:var(--muted)}
.ticks{margin-top:26px; list-style:none; display:flex; flex-direction:column; gap:12px}
.ticks li{display:flex; align-items:center; gap:12px; color:var(--navy)}
.ticks li .tick{width:24px; height:24px; border-radius:50%; background:var(--grad-crimson); color:#fff; display:grid; place-items:center; font-size:12px; flex:none}
.formbox{border:1px solid var(--line); background:#fff; padding:32px; display:grid; grid-template-columns:1fr 1fr; gap:16px}
.formbox .f2{grid-column:1 / -1}
.formbox label{display:block; margin-bottom:8px; color:var(--muted); font-size:14px; font-weight:600}
.formbox label .req{color:var(--crimson)}
.formbox input,.formbox textarea,.formbox select{width:100%; border:1px solid var(--line); border-radius:4px; padding:12px 14px; font-size:15px; font-family:var(--font); color:var(--navy); background:#fff; transition:border-color .2s,box-shadow .2s}
.formbox input:focus,.formbox textarea:focus,.formbox select:focus{outline:none; border-color:var(--crimson); box-shadow:0 0 0 3px rgba(210,9,60,.16)}
.formbox .fine{grid-column:1/-1; font-size:12px; color:var(--muted)}
.formbox button{grid-column:1/-1}

/* contact mini office cards */
.mini-offices{margin-top:36px; display:grid; grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr)); gap:18px}

/* testimonials */
.tgrid{display:grid; grid-template-columns:7fr 5fr; gap:24px; margin-top:40px}
.feat{background:var(--grad-navy); color:#fff; padding:44px; display:flex; flex-direction:column; justify-content:space-between}
.feat blockquote{font-size:clamp(1.5rem,2.4vw,2rem); line-height:1.32; color:#fff; font-weight:600; letter-spacing:-.01em}
.feat figcaption{margin-top:36px; display:flex; align-items:center; gap:16px}
.av{width:48px; height:48px; border-radius:50%; background:var(--grad-crimson); color:#fff; display:grid; place-items:center; font-size:16px; font-weight:700; flex:none}
.feat .name{color:#fff; font-weight:700}.feat .role{color:rgba(255,255,255,.62); font-size:14px}
.tside{display:flex; flex-direction:column; gap:24px}
.tcard{border:1px solid var(--line); background:#fff; padding:28px; flex:1; display:flex; flex-direction:column; justify-content:space-between}
.tcard .stars{color:var(--crimson); font-size:14px}
.tcard blockquote{margin-top:16px; font-size:15px; color:var(--navy)}
.tcard .name{display:block; margin-top:20px; font-weight:700; color:var(--navy)}.tcard .role{display:block; font-size:14px; color:var(--muted)}
.feat .name,.feat .role{display:block}

/* pillars */
.pillars{display:grid; grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr)); gap:24px; margin-top:48px}
.pillar{border:1px solid var(--line); background:#fff; padding:28px}
.pillar .ic{width:48px; height:48px; border-radius:50%; background:var(--grad-crimson); color:#fff; display:grid; place-items:center; font-size:20px}
.pillar h3{margin-top:20px; font-size:1.3rem; color:var(--navy)}
.pillar p{margin-top:8px; font-size:14px; color:var(--muted)}

/* news/posts + events (fluid) */
.news{display:grid; grid-template-columns:repeat(auto-fit,minmax(min(290px,100%),1fr)); gap:24px; margin-top:40px}
.post,.ecard{border:1px solid var(--line); background:#fff; display:flex; flex-direction:column; overflow:hidden}
.post:hover,.ecard:hover{box-shadow:0 30px 60px -30px rgba(0,48,110,.45)}
.post .ph,.ecard .ph{height:208px; overflow:hidden; position:relative}
.post .ph img,.ecard .ph img{width:100%; height:100%; object-fit:cover; transition:transform .7s cubic-bezier(.16,1,.3,1)}
.post:hover .ph img,.ecard:hover .ph img{transform:scale(1.06)}
.post .body,.ecard .body{padding:28px; display:flex; flex-direction:column; flex:1}
.post .date{color:var(--crimson)}
.post h3,.ecard h3{margin-top:12px; font-size:1.4rem; color:var(--navy); line-height:1.14; transition:color .2s}
.post:hover h3{color:var(--crimson)}
.post p,.ecard p{margin-top:12px; font-size:15px; color:var(--muted)}
.post .more{margin-top:20px; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--crimson)}
.ecard .datebox{position:absolute; left:16px; top:16px; background:var(--grad-crimson); color:#fff; padding:10px 14px; text-align:center}
.ecard .datebox b{display:block; font-size:17px; line-height:1.1}
.ecard .datebox span{display:block; font-size:10px; text-transform:uppercase; letter-spacing:.1em; margin-top:3px; color:rgba(255,255,255,.9)}

/* newsletters */
.nlist{display:grid; grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr)); gap:24px}
.nl{border:1px solid var(--line); background:#fff; display:flex; flex-direction:column; overflow:hidden}
.nl:hover{box-shadow:0 30px 60px -30px rgba(0,48,110,.45)}
.nl .cover{aspect-ratio:3/4; background:var(--grad-navy); color:#fff; padding:20px; display:flex; flex-direction:column; justify-content:space-between}
.nl .cover .mast{font-weight:700; font-size:18px; letter-spacing:.02em}
.nl .cover .bar{margin-top:6px; height:1px; background:var(--crimson)}
.nl .cover .iss{margin-top:6px; font-size:11px; color:rgba(255,255,255,.6)}
.nl .cover .mo{color:#FF9CB0}
.nl .dl{display:flex; align-items:center; justify-content:center; gap:8px; padding:14px; font-size:13px; font-weight:700; color:var(--crimson)}
.nl .dl:hover{background:var(--mist)}

/* newsletters — year groups */
.nlyear{display:flex; align-items:baseline; gap:14px; border-bottom:1px solid var(--line); padding-bottom:14px; margin:10px 0 28px}
.nlyear h2{font-size:2rem}
.nlyear .count{font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:var(--muted)}
.nlyear:not(:first-of-type){margin-top:26px}

/* gallery */
.gallery{display:grid; grid-template-columns:repeat(auto-fit,minmax(min(270px,100%),1fr)); gap:18px}
.gitem{position:relative; margin:0; aspect-ratio:4/3; overflow:hidden; border:1px solid var(--line); background:var(--navy); cursor:pointer}
.gitem img{width:100%; height:100%; object-fit:cover; transition:transform .6s cubic-bezier(.16,1,.3,1), opacity .3s}
.gitem:hover img{transform:scale(1.06)}
.gitem figcaption{position:absolute; left:0; right:0; bottom:0; padding:26px 16px 12px; background:linear-gradient(transparent,rgba(0,27,61,.85)); color:#fff; font-size:13.5px; font-weight:600; opacity:0; transform:translateY(8px); transition:opacity .3s, transform .3s}
.gitem:hover figcaption{opacity:1; transform:none}
.gplay{position:absolute; inset:0; display:grid; place-items:center; pointer-events:none}
.gplay i{width:58px; height:58px; display:grid; place-items:center; border-radius:50%; background:var(--grad-crimson); color:#fff; font-size:20px; box-shadow:0 10px 30px -8px rgba(210,9,60,.7); transition:transform .3s}
.gitem:hover .gplay i{transform:scale(1.1)}
.aalt-lb{display:none; position:fixed; inset:0; z-index:200; background:rgba(4,10,20,.92); padding:4vh 4vw; align-items:center; justify-content:center}
.aalt-lb.open{display:flex}
.aalt-lb .lb-inner{max-width:min(1100px,92vw); width:100%; display:grid; place-items:center}
.aalt-lb img{max-height:86vh; max-width:100%; width:auto; box-shadow:0 30px 80px rgba(0,0,0,.6)}
.aalt-lb iframe{width:min(1000px,92vw); aspect-ratio:16/9; border:0; box-shadow:0 30px 80px rgba(0,0,0,.6)}
.aalt-lb .lb-close{position:absolute; top:18px; right:22px; width:44px; height:44px; border-radius:50%; border:1px solid rgba(255,255,255,.3); background:transparent; color:#fff; font-size:18px; cursor:pointer; transition:.2s}
.aalt-lb .lb-close:hover{background:var(--crimson); border-color:var(--crimson)}

/* split */
.split{display:grid; grid-template-columns:1fr 1fr; gap:24px}
.panel{padding:44px; color:#fff; display:flex; flex-direction:column; position:relative; overflow:hidden}
.panel::after{content:""; position:absolute; right:-70px; bottom:-70px; width:220px; height:220px; border-radius:50%; background:rgba(255,255,255,.05)}
.panel.navy{background:var(--grad-navy)} .panel.navy2{background:linear-gradient(135deg,#0C3C78,#12508f)}
.panel .ic{color:#FF9CB0; font-size:30px}
.panel .label{margin-top:26px; color:#FF9CB0}
.panel h3{margin-top:12px; color:#fff; font-size:2rem}
.panel p{margin-top:16px; color:rgba(255,255,255,.82); max-width:440px}
.panel .btn{margin-top:30px; align-self:flex-start}

/* final cta */
.final{background:radial-gradient(900px 380px at 50% -80px,rgba(210,9,60,.32),transparent 60%),var(--grad-navy); padding:112px 0; text-align:center}
.final h2{color:#fff; font-size:clamp(2.4rem,5vw,4rem); max-width:760px; margin:28px auto 0}
.final p{margin-top:22px; color:rgba(255,255,255,.78); font-size:17px; max-width:560px; margin-left:auto; margin-right:auto}
.final .cta{margin-top:38px; display:flex; gap:16px; justify-content:center; flex-wrap:wrap}

/* prose */
.prose{max-width:820px; margin:0 auto}
.prose h2{font-size:1.6rem; margin-top:2em}
.prose h3{font-size:1.3rem; margin-top:1.6em}
.prose p{margin-top:1em; font-size:17px; line-height:1.7; color:rgba(15,18,22,.82)}
.prose ul,.prose ol{margin:1em 0 1em 1.4em}
.prose li{margin-top:.4em}
.prose a{color:var(--crimson)}.prose a:hover{text-decoration:underline}
.prose img{margin:1.5em 0}
.prose blockquote{border-left:3px solid var(--crimson); padding-left:20px; margin:1.5em 0; color:var(--muted)}
.pager{display:flex; justify-content:center; gap:10px; margin-top:50px}
.pager a,.pager span{padding:10px 16px; border:1px solid var(--line); color:var(--navy); font-weight:700; font-size:14px}
.pager .current{background:var(--navy); color:#fff; border-color:var(--navy)}

/* ===== MEMBERSHIP APPLICATION ===== */
.apply-grid{display:grid; grid-template-columns:5fr 7fr; gap:48px; align-items:start}
.apply-side{position:sticky; top:110px}
.apply-side h2{font-size:clamp(1.8rem,3vw,2.4rem)}
.apply-side .sub{margin-top:14px; color:var(--muted); font-size:16px}
.applyform{border:1px solid var(--line); background:#fff; padding:36px; box-shadow:0 30px 60px -40px rgba(0,27,61,.35)}
.applyform fieldset{border:0; margin:0 0 8px; padding:0}
.applyform .part{display:flex; align-items:center; gap:12px; margin:26px 0 6px}
.applyform .part:first-child{margin-top:0}
.applyform .part .pn{background:var(--grad-crimson); color:#fff; font-weight:700; font-size:12px; letter-spacing:.1em; padding:6px 12px; border-radius:3px}
.applyform .part h3{font-size:1.25rem}
.applyform .grp{font-weight:700; color:var(--navy); font-size:13px; text-transform:uppercase; letter-spacing:.1em; margin:18px 0 4px; grid-column:1/-1}
.applyform .fgrid{display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:12px}
.applyform .f2{grid-column:1/-1}
.applyform label{display:block; margin-bottom:7px; color:var(--muted); font-size:13.5px; font-weight:600}
.applyform label .req{color:var(--crimson)}
.applyform label small{display:block; font-weight:400; font-size:12px; margin-top:2px; color:#8b95a3}
.applyform input,.applyform select,.applyform textarea{width:100%; border:1px solid var(--line); border-radius:4px; padding:12px 14px; font-size:15px; font-family:var(--font); color:var(--navy); background:#fff; transition:border-color .2s, box-shadow .2s}
.applyform input:focus,.applyform select:focus,.applyform textarea:focus{outline:none; border-color:var(--crimson); box-shadow:0 0 0 3px rgba(210,9,60,.16)}
.applyform .phone-row{display:flex; gap:10px}
.applyform .phone-row select{max-width:150px}
.declaration{margin-top:22px; border:1px solid var(--line); background:var(--mist); padding:20px; max-height:260px; overflow-y:auto; font-size:13.5px; line-height:1.6; color:#3d4754}
.declaration h4{color:var(--navy); margin-bottom:8px; font-size:14px; text-transform:uppercase; letter-spacing:.08em}
.declaration p{margin-top:10px}
.consent{margin-top:14px; display:flex; gap:12px; align-items:flex-start; background:#fff; border:1px solid var(--line); padding:14px 16px; border-radius:4px}
.consent input[type=checkbox]{width:20px; height:20px; margin-top:2px; accent-color:var(--crimson); flex:none}
.consent span{font-size:14px; color:var(--navy); font-weight:600}
.consent .note{display:block; font-weight:400; color:var(--muted); font-size:12.5px; margin-top:4px}
.pricebox{display:none; margin-top:22px; border:1px solid rgba(210,9,60,.3); background:linear-gradient(120deg,rgba(210,9,60,.06),rgba(0,48,110,.05)); padding:20px 22px; border-radius:6px}
.pricebox.show{display:flex; align-items:center; justify-content:space-between; gap:14px; animation:aalt-pop .45s cubic-bezier(.16,1,.3,1)}
@keyframes aalt-pop{from{opacity:0; transform:translateY(10px)}to{opacity:1; transform:none}}
.pricebox .plabel{font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:var(--muted)}
.pricebox .pval{font-size:2rem; font-weight:700; color:var(--crimson); line-height:1}
.pricebox .pnote{font-size:12.5px; color:var(--muted); margin-top:4px}
.paynote{display:none; margin-top:18px; font-size:13.5px; color:var(--navy); background:var(--mist); border-left:3px solid var(--crimson); padding:12px 16px}
.paynote.show{display:block}
.applyform .submit-row{margin-top:18px}
.notice{margin:0 0 26px; padding:16px 20px; border-radius:6px; font-weight:600}
.notice.ok{background:#EAF7EF; color:#14532d; border:1px solid #b7e3c6}
.notice.err{background:#FDECEF; color:#8f1030; border:1px solid #f5c2ce}

/* footer */
.site-foot{background:var(--navy-deep); color:rgba(255,255,255,.6); padding:64px 0 0}
.foot-grid{display:grid; grid-template-columns:1.4fr 1fr 2fr; gap:40px; border-bottom:1px solid rgba(255,255,255,.1); padding-bottom:48px}
.site-foot .about{margin-top:20px; font-size:14px; max-width:300px; line-height:1.6}
.site-foot .fsoc{margin-top:20px; display:flex; gap:12px}
.site-foot .fsoc a{width:36px; height:36px; border-radius:50%; border:1px solid rgba(255,255,255,.15); display:grid; place-items:center; color:rgba(255,255,255,.7); transition:.2s}
.site-foot .fsoc a:hover{border-color:var(--crimson); color:var(--crimson)}
.site-foot h4{color:#fff}
.site-foot ul{list-style:none; margin-top:16px; display:flex; flex-direction:column; gap:10px; font-size:14px}
.site-foot ul a:hover{color:#fff}
.offices{margin-top:16px; display:grid; grid-template-columns:repeat(3,1fr); gap:20px}
.office{font-size:14px}.office .on{display:flex; align-items:center; gap:8px; color:#fff; font-weight:700}
.office .on i{color:var(--crimson)}.office div{margin-top:4px}
.accred{border-bottom:1px solid rgba(255,255,255,.1); padding:28px 0; text-align:center}
.accred .label{color:rgba(255,255,255,.4); margin-bottom:16px}
.accred .logos{display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:16px 40px; opacity:.7}
.accred .logos span{font-weight:700; font-size:20px; color:rgba(255,255,255,.7)}
.copy{padding:28px 0; text-align:center; font-size:14px}

@media(max-width:1120px){
  .menu{display:none}
  .burger{display:block}
  .band .text{padding:64px 40px}
}
@media(max-width:960px){
  .band,.stats .grid,.lead .grid,.contact-grid,.tgrid,.foot-grid,.apply-grid{grid-template-columns:1fr}
  .apply-side{position:static}
  .duo,.split{grid-template-columns:1fr}
  .stats .stat+.stat{border-left:0}
  .hero .photo{height:560px}
  .hero .box{padding:36px}
  .band .text{padding:64px 32px}
  .pagehead .wrap{padding:52px 24px}
  .sec{padding:64px 0}
}
@media(max-width:620px){
  .offices{grid-template-columns:1fr}
  .stats .grid{grid-template-columns:1fr 1fr}
  .stats .stat{padding:6px 8px; min-width:0}
  .stats .num{font-size:2.1rem}
  .stats .label{font-size:10.5px; letter-spacing:.06em; overflow-wrap:break-word}
  .sec{padding:52px 0}
  /* hero: photo becomes a background layer, the text box defines the height —
     so long titles can never be clipped on small phones */
  .hero .photo{position:absolute; inset:0; height:100%}
  .hero .photo img{height:100%}
  .hero .overlay{position:relative; inset:auto}
  .hero .overlay .wrap{padding-top:48px; padding-bottom:48px; height:auto}
  .hero .box{padding:28px 20px}
  .hero h1{font-size:2rem}
  .dots button{height:8px; width:26px}
  .dots button.on{width:44px}
  /* 16px inputs stop iOS Safari zooming in on focus */
  .formbox input,.formbox textarea,.formbox select,
  .applyform input,.applyform select,.applyform textarea{font-size:16px}
  .formbox,.applyform .fgrid{grid-template-columns:1fr}
  .applyform{padding:22px 16px}
  .applyform .phone-row{flex-wrap:wrap}
  .applyform .phone-row select{max-width:100%; flex:1 1 100%}
  .pricebox.show{flex-direction:column; align-items:flex-start}
  .util .wrap{justify-content:center}
  .nav .wrap{padding:10px 14px; gap:8px}
  .brand img,.brand .custom-logo{height:min(var(--aalt-logo-h,64px),46px)!important}
  .nav .right .btn{padding:10px 14px; font-size:12.5px}
  .card-block,.panel,.feat{padding:30px 24px}
  .sec-head{padding-bottom:24px}
  .pagehead .wrap{padding:44px 20px}
  .band .text{padding:48px 24px}
  .band .pic{min-height:280px}
  .nlyear h2{font-size:1.6rem}
  .final{padding:72px 0}
}
@media (prefers-reduced-motion: reduce){
  *{animation:none!important; transition:none!important}
  .rv,.fade{opacity:1; transform:none}
  .hero .photo img{animation:none!important}
}
