:root{
--navy:#062c57;--navy-dark:#031d3b;--gold:#c88108;
--gold-light:#f4ad20;--cream:#fdf9f1;--text:#092951;
--muted:#667181;--container:1450px
}

*{box-sizing:border-box;margin:0;padding:0}

html{
scroll-behavior:smooth;width:100%;max-width:100%;overflow-x:hidden
}

body{
width:100%;max-width:100%;overflow-x:hidden;background:var(--cream);
color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,
"Segoe UI",sans-serif;line-height:1.6
}

a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
img,svg,video,canvas{max-width:100%}

.container{
width:min(calc(100% - 72px),var(--container));margin:auto
}

/* =========================================================
   HERO — DESKTOP LOCKED
   ========================================================= */

.hero{
position:relative;width:100%;aspect-ratio:1672/941;
overflow:hidden;isolation:isolate
}

.hero-picture{
position:absolute;inset:0;z-index:0;display:block;
width:100%;height:100%
}

.hero-background-image{
position:absolute;inset:0;z-index:0;display:block;
width:100%;height:100%;max-width:none;object-fit:fill;
object-position:center;pointer-events:none;user-select:none
}

.hero-header{position:relative;z-index:10}

.hero-header-inner{
width:89.6%;min-height:150px;margin:auto;display:grid;
grid-template-columns:minmax(490px,1fr) auto 195px;
align-items:center;gap:28px
}

/* BRAND */

.brand{display:flex;align-items:center;gap:25px}

.brand-logo{
position:relative;width:112px;height:112px;flex:none;
display:flex;justify-content:center;padding-top:9px;
border:3px solid #c68712;background:rgba(255,255,255,.55);
color:#a96f0a;font-family:Georgia,"Times New Roman",serif
}

.brand-logo>span{
position:relative;z-index:2;font-size:54px;
line-height:1;letter-spacing:-4px
}

.brand-chart{
position:absolute;left:19px;right:16px;bottom:9px;height:33px;
display:flex;align-items:flex-end;gap:4px;
border-bottom:3px solid #c68712
}

.brand-chart i{display:block;width:11px;background:#c68712}
.brand-chart i:nth-child(1){height:8px}
.brand-chart i:nth-child(2){height:13px}
.brand-chart i:nth-child(3){height:20px}
.brand-chart i:nth-child(4){height:29px}

.brand-text{display:flex;flex-direction:column;line-height:1}

.brand-text strong{
font-family:Georgia,"Times New Roman",serif;
font-size:39px;font-weight:600
}

.brand-text>span{
margin-top:7px;font-family:Georgia,"Times New Roman",serif;
font-size:25px;font-weight:600;letter-spacing:1px
}

.brand-text small{
margin-top:10px;color:var(--gold);font-size:14px;
font-weight:500;letter-spacing:2px
}

/* DESKTOP NAV */

.desktop-nav{
display:flex;align-items:center;justify-content:center;gap:42px
}

.desktop-nav a{
color:var(--navy);font-size:14px;font-weight:800;white-space:nowrap
}

.desktop-nav a:hover{color:var(--gold)}

.language-switch{
display:flex;align-items:center;gap:5px;color:var(--gold);
font-size:12px;font-weight:800
}

.language-btn{
padding:4px 5px;border:0;background:none;color:#87909a;
font-size:12px;font-weight:800
}

.language-btn.active{color:var(--navy)}

.header-phone{
min-height:58px;display:flex;align-items:center;justify-content:center;
gap:12px;padding:0 18px;border:2px solid var(--gold);
border-radius:8px;background:rgba(255,255,255,.55);
white-space:nowrap
}

.mobile-menu-button,.mobile-menu-panel,.mobile-contact-list{display:none}

/* HERO COPY DESKTOP */

.hero-main{position:relative;z-index:3}
.hero-main-inner{width:89.6%;margin:auto}

.hero-copy{
width:47%;max-width:610px;padding-top:45px
}

.hero-copy h1{
color:var(--navy);font-family:Georgia,"Times New Roman",serif;
font-size:clamp(55px,4.35vw,72px);font-weight:600;
line-height:1.01;letter-spacing:-2px
}

.hero-copy h1 span{display:block}
.hero-copy h1 .gold-line{color:#b77508}

.hero-description{
max-width:565px;margin-top:27px;color:#193650;
font-size:16px;line-height:1.55
}

.hero-actions{
display:flex;align-items:center;gap:22px;margin-top:27px
}

.hero-button{
min-height:59px;display:inline-flex;align-items:center;
justify-content:center;gap:12px;padding:0 25px;border-radius:7px;
font-size:14px;font-weight:800;white-space:nowrap
}

.hero-button-primary{
min-width:280px;border:2px solid var(--navy);
background:var(--navy);color:var(--gold-light)
}

.hero-button-secondary{
min-width:230px;border:2px solid var(--gold);
background:rgba(255,255,255,.55);color:var(--navy)
}

.calendar-icon{color:var(--gold-light);font-size:19px}
.arrow-icon{color:var(--gold);font-size:27px;line-height:1}

/* HERO CONTACT DESKTOP */

.hero-contact{
position:absolute;z-index:4;left:0;right:0;bottom:0
}

.hero-contact-inner{
width:89.6%;height:105px;margin:auto;
display:flex;align-items:center
}

.hero-contact-item{
min-height:42px;display:flex;align-items:center;gap:12px;
padding:0 28px;color:var(--navy);font-size:14px;white-space:nowrap
}

.hero-contact-item:first-child{padding-left:0}
.contact-icon{color:var(--gold);font-size:21px}

.contact-divider{
width:1px;height:28px;background:var(--gold)
}

/* BENEFITS */

.benefits-bar{
width:100%;background:linear-gradient(100deg,#073866,#021e3d);
color:#fff
}

.benefits-inner{
width:84%;min-height:128px;margin:auto;display:grid;
grid-template-columns:repeat(4,1fr);align-items:center
}

.benefit-item{min-width:0;padding:25px 35px}

.benefit-item strong{
display:block;color:#fff;font-size:14px;font-weight:800
}

.benefit-item span{
color:rgba(255,255,255,.78);font-size:13px
}

/* SERVICES */

.services-section{padding:110px 0;background:#fffdf8}

.section-heading{
max-width:830px;margin-bottom:55px
}

.section-heading>span,
.about-main>span,
.resources-panel>div>span,
.gold-label{
color:var(--gold);font-size:13px;font-weight:800;letter-spacing:1px
}

.section-heading h2,
.about-main h2,
.resources-panel h2,
.contact-section h2{
margin-top:12px;color:var(--navy);
font-family:Georgia,"Times New Roman",serif;
font-size:51px;font-weight:500;line-height:1.1
}

.section-heading h2 em,
.about-main h2 em{
display:block;color:var(--gold);font-style:normal
}

.section-heading p{
margin-top:20px;color:var(--muted)
}

.services-grid{
display:grid;grid-template-columns:repeat(3,1fr);gap:24px
}

.service-card{
min-width:0;min-height:310px;display:flex;flex-direction:column;
padding:38px 34px;background:#fff;
border:1px solid rgba(6,44,87,.12);
box-shadow:0 15px 40px rgba(6,44,87,.07)
}

.service-number{
color:rgba(200,129,8,.55);
font-family:Georgia,"Times New Roman",serif;font-size:23px
}

.service-card h3{
margin-top:20px;color:var(--navy);
font-family:Georgia,"Times New Roman",serif;
font-size:25px;line-height:1.25
}

.service-card p{
margin-top:15px;color:var(--muted);font-size:14px
}

.service-card ul{
margin:18px 0 20px 18px;color:var(--muted);
font-size:13px;line-height:1.65
}

.service-card>a{
margin-top:auto;padding-top:20px;color:var(--gold);
font-size:12px;font-weight:800
}

.immigration-service-card{grid-column:1/-1}

.immigration-services-list{
display:grid;grid-template-columns:repeat(3,1fr);
gap:10px;margin:25px 0
}

.immigration-services-list>div{
min-width:0;display:flex;align-items:center;
justify-content:space-between;gap:10px;
padding:13px;background:#faf7f0
}

.immigration-services-list span{
color:var(--gold);font-weight:800
}

.immigration-disclaimer{
padding:13px;background:#f4f5f7;color:#707987;font-size:11px
}

/* ABOUT */

.about-section{
padding:110px 0;background:#f8f2e8
}

.about-grid{
display:grid;grid-template-columns:.9fr 1.1fr;gap:80px
}

.about-main{
padding:55px;background:linear-gradient(145deg,var(--navy-dark),var(--navy));
color:#fff
}

.about-main h2{color:#fff}

.about-main p{
margin-top:22px;color:rgba(255,255,255,.75)
}

.about-points{
display:flex;flex-direction:column;justify-content:center
}

.about-point{
display:grid;grid-template-columns:65px 1fr;gap:20px;
padding:27px 0;border-bottom:1px solid rgba(6,44,87,.12)
}

.about-point>strong{color:var(--gold);font-size:28px}

/* RESOURCES */

.resources-section{padding:85px 0;background:#fff}

.resources-panel{
display:flex;align-items:center;justify-content:space-between;
gap:40px;padding:50px;border:1px solid rgba(200,129,8,.22)
}

.resources-panel h2{font-size:37px}

.primary-button{
padding:17px 25px;background:var(--navy);
color:var(--gold-light);font-weight:800
}

/* CONTACT */

.contact-section{
padding:90px 0;background:linear-gradient(145deg,var(--navy),var(--navy-dark));
color:#fff
}

.contact-grid{
display:grid;grid-template-columns:1fr .9fr;gap:80px
}

.contact-section h2{color:#fff}

.contact-options{
display:flex;flex-direction:column;gap:12px
}

.contact-options>a{
display:flex;gap:18px;padding:18px;
border:1px solid rgba(244,173,32,.25)
}

.contact-options>a>span{
color:var(--gold-light);font-size:24px
}

/* FOOTER */

.disclaimer{padding:24px 0;background:#ece6dc}

.disclaimer p{
color:#616b78;font-size:11px
}

footer{
padding:30px 0;background:#021429;color:#fff
}

.footer-inner{
display:flex;justify-content:space-between
}

/* BOOKING */

.booking-overlay{
position:fixed;inset:0;z-index:12000;display:none;
align-items:center;justify-content:center;padding:30px;
overflow-y:auto;background:rgba(2,20,41,.74)
}

.booking-overlay.is-open{display:flex}

body.booking-open{overflow:hidden}

.booking-modal{
position:relative;width:min(800px,100%);
max-height:calc(100vh - 60px);overflow-y:auto;
padding:42px 44px 34px;border-radius:10px;
background:#fff;box-shadow:0 30px 80px rgba(0,0,0,.3)
}

.booking-close{
position:absolute;top:15px;right:18px;width:42px;height:42px;
display:grid;place-items:center;border:0;background:transparent;
color:#596575;font-size:31px
}

.booking-heading{text-align:center}

.booking-heading h2{
color:var(--navy);font-family:Georgia,"Times New Roman",serif;
font-size:35px
}

.booking-heading p{
margin-top:8px;color:var(--muted);font-size:14px
}

.booking-picker{
display:grid;grid-template-columns:1fr 1fr;
gap:36px;margin-top:32px
}

.calendar-nav{
display:grid;grid-template-columns:42px 1fr 42px;
align-items:center;margin-bottom:14px
}

.calendar-nav strong{
text-align:center;color:var(--navy)
}

.calendar-nav button{
width:38px;height:38px;border:1px solid rgba(6,44,87,.15);
background:#fff;color:var(--navy)
}

.calendar-weekdays,
.calendar-days{
display:grid;grid-template-columns:repeat(7,1fr);gap:4px
}

.calendar-weekdays span{
color:#798392;font-size:8px;font-weight:800;text-align:center
}

.calendar-days button,
.calendar-empty{aspect-ratio:1/1}

.calendar-days button{
display:grid;place-items:center;border:1px solid transparent;
background:transparent;color:var(--navy);font-size:12px
}

.calendar-days button.selected{
background:var(--navy);color:#fff
}

.calendar-days button:disabled{
color:#c7ccd2;cursor:not-allowed
}

.time-panel>strong{
display:block;margin-bottom:13px;color:var(--navy)
}

.time-grid{
display:grid;grid-template-columns:repeat(3,1fr);gap:9px
}

.time-grid button{
min-height:44px;padding:6px 5px;
border:1px solid rgba(6,44,87,.35);
background:#fff;color:var(--navy);
font-size:12px;font-weight:700
}

.time-grid button.selected{
background:var(--navy);color:#fff
}

.time-grid button:disabled,
.time-grid button.unavailable{
background:#eef0f3;border-color:#d8dde3;
color:#9aa2ad;cursor:not-allowed
}

.booking-form{margin-top:30px}

.booking-form h3{
margin-bottom:17px;color:var(--navy);
font-family:Georgia,"Times New Roman",serif
}

.booking-fields{
display:grid;grid-template-columns:1fr 1fr;gap:16px
}

.booking-form input,
.booking-form select,
.booking-form textarea{
width:100%;border:1px solid #d6dae0;
background:#fff;color:#182c43
}

.booking-form input,
.booking-form select{
height:46px;padding:0 13px
}

.booking-form textarea{
min-height:100px;margin-top:16px;padding:12px 13px
}

.booking-status{
min-height:22px;margin-top:15px;text-align:center;
font-size:12px;font-weight:700
}

.booking-status.error{color:#a53030}
.booking-status.success{color:#1f7445}

.confirm-appointment{
width:100%;min-height:54px;margin-top:8px;border:0;
background:var(--navy);color:#fff;font-weight:800
}

/* CHAT */

.jb-chat{
position:fixed;z-index:10000;right:26px;bottom:26px
}

.jb-chat-launcher{
min-height:58px;display:flex;align-items:center;
justify-content:center;gap:10px;padding:0 22px;
border:1px solid rgba(244,173,32,.75);border-radius:30px;
background:linear-gradient(135deg,#073866,var(--navy-dark));
color:#fff;box-shadow:0 14px 40px rgba(2,20,41,.28);
font-size:13px;font-weight:800
}

.jb-chat-window{
position:absolute;right:0;bottom:72px;width:480px;
max-width:calc(100vw - 40px);
height:min(640px,calc(100vh - 110px));
display:none;grid-template-rows:auto minmax(0,1fr) auto auto;
overflow:hidden;border:1px solid rgba(6,44,87,.12);
border-radius:18px;background:#fff;
box-shadow:0 28px 80px rgba(2,20,41,.28)
}

.jb-chat-window.is-open{display:grid}

.jb-chat-header{
min-height:86px;display:flex;align-items:center;
justify-content:space-between;gap:18px;padding:16px 20px;
background:linear-gradient(135deg,#073866,var(--navy-dark));
color:#fff
}

.jb-chat-header>div{
display:flex;flex-direction:column
}

.jb-chat-header strong{
font-family:Georgia,"Times New Roman",serif;font-size:19px
}

.jb-chat-header small{
margin-top:3px;color:rgba(255,255,255,.75);font-size:10px
}

.jb-chat-header>button{
width:38px;height:38px;border:0;background:none;
color:#fff;font-size:25px
}

.jb-chat-messages{
min-height:0;overflow-y:auto;padding:24px 20px;background:#fff
}

.jb-chat-message{
display:flex;align-items:flex-end;gap:10px;margin-bottom:15px
}

.jb-chat-avatar{
width:31px;height:31px;flex:none;display:grid;place-items:center;
border-radius:50%;background:var(--navy);
color:var(--gold-light);font-size:10px
}

.jb-chat-bubble{
max-width:360px;padding:13px 15px;border-radius:16px;
background:#f6f6f4;color:#32475d;font-size:13px;line-height:1.55
}

.jb-chat-suggestions{
display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 4px 41px
}

.jb-chat-suggestions button{
padding:9px 13px;border:1px solid rgba(200,129,8,.55);
border-radius:18px;background:#fff;color:var(--navy);
font-size:10px;font-weight:700
}

.jb-chat-form{
min-height:74px;display:grid;grid-template-columns:1fr 46px;
align-items:center;gap:10px;padding:12px 16px;
border-top:1px solid #e8ebef;background:#fff
}

.jb-chat-form input{
width:100%;height:47px;padding:0 16px;
border:1px solid #d9dee5;border-radius:24px;outline:0
}

.jb-chat-form button{
width:46px;height:46px;border:0;border-radius:50%;
background:var(--gold);color:#fff
}

.jb-chat-book{
min-height:40px;padding:8px;border:0;border-top:1px solid #eee;
background:#fafafa;color:var(--gold);font-size:10px;font-weight:800
}

/* DESKTOP SHRINK — LOCKED */

@media(max-width:1350px) and (min-width:901px){

.hero-header-inner,
.hero-main-inner,
.hero-contact-inner{width:93%}

.hero-header-inner{
min-height:125px;
grid-template-columns:minmax(375px,1fr) auto 175px;
gap:18px
}

.brand{gap:15px}
.brand-logo{width:88px;height:88px}
.brand-logo>span{font-size:42px}
.brand-text strong{font-size:30px}
.brand-text>span{font-size:19px}
.brand-text small{font-size:9px}
.desktop-nav{gap:23px}
.desktop-nav a{font-size:12px}
.header-phone{font-size:14px}
.hero-copy{padding-top:30px}
.hero-copy h1{font-size:55px}
.hero-description{font-size:14px}
.hero-contact-inner{height:86px}

}

/* =========================================================
   MOBILE — EXACT SPANISH TARGET
   ========================================================= */

@media(max-width:900px){

html,body{
width:100%;max-width:100%;overflow-x:hidden
}

.container{
width:calc(100% - 32px);
max-width:calc(100% - 32px)
}

/* PORTRAIT HERO */

.hero{
width:100%;
height:calc(100vw * 1.7777778);
min-height:0;
max-height:none;
aspect-ratio:9/16;
overflow:hidden;
background:#fdf9f1
}

.hero-picture{
position:absolute;inset:0;z-index:0;
display:block;width:100%;height:100%
}

.hero-background-image{
position:absolute;inset:0;
width:100%;height:100%;max-width:none;
object-fit:fill;
object-position:center center;
pointer-events:none
}

.hero-header,
.hero-main{
position:relative;z-index:5
}

/* HEADER — TARGET */

.hero-header-inner{
width:calc(100% - 40px);
min-height:100px;
margin:auto;
display:grid;
grid-template-columns:minmax(0,1fr) 48px;
align-items:center;
gap:8px
}

.desktop-nav,
.header-phone{display:none}

/* SQUARE JB LOGO — UPPER LEFT */

.brand{
min-width:0;
display:flex;
align-items:center;
gap:12px
}

.brand-logo{
position:relative;
width:61px;
height:61px;
flex:0 0 61px;
display:flex;
justify-content:center;
padding-top:5px;
border:2px solid #c68712;
background:rgba(255,255,255,.35);
color:#a96f0a
}

.brand-logo>span{
font-size:30px;
letter-spacing:-2px
}

.brand-chart{
left:10px;right:8px;bottom:5px;
height:18px;gap:2px;
border-bottom-width:2px
}

.brand-chart i{width:5px}
.brand-chart i:nth-child(1){height:4px}
.brand-chart i:nth-child(2){height:7px}
.brand-chart i:nth-child(3){height:11px}
.brand-chart i:nth-child(4){height:16px}

.brand-text{
min-width:0;
line-height:1
}

.brand-text strong{
font-size:20px;
white-space:nowrap
}

.brand-text>span{
margin-top:4px;
font-size:13px;
letter-spacing:.5px;
white-space:nowrap
}

.brand-text small{
margin-top:6px;
color:var(--gold);
font-size:7px;
letter-spacing:1.15px;
white-space:nowrap
}

/* HAMBURGER — UPPER RIGHT */

.mobile-menu-button{
width:48px;height:48px;
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
gap:6px;
border:0;
background:transparent
}

.mobile-menu-button span{
display:block;
width:29px;
height:3px;
border-radius:4px;
background:var(--navy)
}

/* MOBILE MENU */

.mobile-menu-panel{
position:fixed;
z-index:11000;
top:82px;
left:16px;
right:16px;
display:flex;
flex-direction:column;
padding:14px;
border:1px solid rgba(200,129,8,.2);
border-radius:14px;
background:#fff;
box-shadow:0 20px 60px rgba(0,0,0,.23);
opacity:0;
visibility:hidden;
pointer-events:none;
transform:translateY(-10px);
transition:.2s
}

.mobile-menu-panel.is-open{
opacity:1;
visibility:visible;
pointer-events:auto;
transform:none
}

.mobile-menu-panel>a{
min-height:48px;
display:flex;
align-items:center;
padding:0 14px;
border-bottom:1px solid #eee;
color:var(--navy);
font-size:13px;
font-weight:800
}

.mobile-language{
min-height:56px;
display:flex;
align-items:center;
justify-content:space-between;
padding:10px 14px;
font-size:12px;
font-weight:800
}

.mobile-language .language-switch{display:flex}

.mobile-menu-phone{
justify-content:center;
margin-top:5px;
border-radius:7px;
background:var(--navy);
color:var(--gold-light)
}

/* HERO COPY */

.hero-main-inner{
width:calc(100% - 48px);
margin:auto
}

.hero-copy{
width:100%;
max-width:none;
padding-top:8px
}

.hero-copy h1{
width:100%;
max-width:none;
color:var(--navy);
font-family:Georgia,"Times New Roman",serif;
font-size:35px;
font-weight:600;
line-height:1.04;
letter-spacing:-1.1px
}

.hero-copy h1 span{
display:block;
white-space:nowrap
}

.hero-copy h1 .gold-line{
margin-top:2px;
color:#b77508
}

/* DESCRIPTION */

.hero-description{
width:66%;
max-width:325px;
margin-top:22px;
color:#193650;
font-size:13px;
line-height:1.52
}

/* BUTTONS */

.hero-actions{
width:58%;
max-width:300px;
display:grid;
grid-template-columns:1fr;
gap:9px;
margin-top:18px
}

.hero-button{
width:100%;
min-width:0;
min-height:48px;
padding:0 13px;
gap:9px;
border-radius:6px;
font-size:12px;
font-weight:800
}

.hero-button-primary{
border:0;
background:var(--navy);
color:var(--gold-light)
}

.hero-button-secondary{
border:2px solid var(--gold);
background:rgba(255,255,255,.80);
color:var(--navy)
}

.calendar-icon{
color:var(--gold-light);
font-size:17px
}

.arrow-icon{
margin-left:auto;
color:var(--gold);
font-size:22px
}

/* CONTACT — ABOVE PLANT AND MUG */

.mobile-contact-list{
width:62%;
max-width:325px;
display:flex;
flex-direction:column;
gap:11px;
margin-top:17px
}

.mobile-contact-list>a,
.mobile-contact-list>div{
min-width:0;
display:grid;
grid-template-columns:25px minmax(0,1fr);
align-items:center;
gap:8px;
color:var(--navy);
font-size:11.5px;
line-height:1.2
}

.mobile-contact-list span:last-child{
min-width:0;
overflow-wrap:anywhere
}

.mobile-contact-icon{
width:25px;
color:var(--gold);
font-size:18px;
text-align:center
}

.hero-contact{display:none}

/* BENEFITS */

.benefits-inner{
width:100%;
max-width:100%;
grid-template-columns:1fr
}

.benefit-item{
width:100%;
padding:21px 22px;
border-bottom:1px solid rgba(244,173,32,.14)
}

/* MAIN CONTENT */

.services-grid{
grid-template-columns:repeat(2,1fr)
}

.about-grid,
.contact-grid{
grid-template-columns:1fr
}

.resources-panel{
flex-direction:column;
align-items:flex-start
}

/* BOOKING MOBILE */

.booking-overlay{
align-items:flex-start;
padding:0;
background:#fff
}

.booking-modal{
width:100%;
max-height:none;
min-height:100dvh;
padding:54px 18px 28px;
border-radius:0
}

.booking-close{
top:8px;
right:12px;
width:38px;
height:38px;
font-size:27px
}

.booking-heading h2{font-size:27px}

.booking-heading p{
margin-top:5px;
font-size:12px
}

.booking-picker{
grid-template-columns:1fr;
gap:24px;
margin-top:24px
}

.calendar-nav{margin-bottom:10px}
.calendar-nav strong{font-size:13px}

.calendar-nav button{
width:34px;
height:34px
}

.calendar-days button{font-size:11px}

.time-panel>strong{
margin-bottom:10px;
font-size:12px
}

.time-grid{
grid-template-columns:repeat(3,1fr);
gap:7px
}

.time-grid button{
min-height:40px;
font-size:11px
}

.booking-form{margin-top:24px}

.booking-form h3{
margin-bottom:12px;
font-size:17px
}

.booking-fields{
grid-template-columns:1fr;
gap:10px
}

.booking-form input,
.booking-form select{
height:43px;
font-size:12px
}

.booking-form textarea{
min-height:80px;
margin-top:10px;
font-size:12px
}

.confirm-appointment{
min-height:48px;
font-size:13px
}

/* CHAT MOBILE */

.jb-chat{
right:12px;
bottom:12px
}

.jb-chat-launcher{
min-height:50px;
padding:0 16px;
font-size:11px
}

.jb-chat-window{
position:fixed;
left:12px;
right:12px;
bottom:72px;
width:auto;
max-width:none;
height:min(560px,calc(100dvh - 88px));
border-radius:15px
}

.jb-chat-header{
min-height:68px;
padding:11px 14px
}

.jb-chat-header strong{font-size:15px}
.jb-chat-header small{font-size:8px}

.jb-chat-header>button{
width:32px;
height:32px;
font-size:21px
}

.jb-chat-messages{
padding:16px 13px
}

.jb-chat-message{
gap:8px;
margin-bottom:11px
}

.jb-chat-avatar{
width:28px;
height:28px;
font-size:9px
}

.jb-chat-bubble{
max-width:calc(100vw - 105px);
padding:10px 12px;
border-radius:14px;
font-size:11px;
line-height:1.45
}

.jb-chat-suggestions{
gap:6px;
margin:4px 0 3px 36px
}

.jb-chat-suggestions button{
padding:7px 10px;
border-radius:15px;
font-size:9px;
line-height:1.25
}

.jb-chat-form{
min-height:62px;
grid-template-columns:1fr 40px;
gap:7px;
padding:9px 10px
}

.jb-chat-form input{
height:41px;
padding:0 13px;
font-size:11px
}

.jb-chat-form button{
width:40px;
height:40px;
font-size:15px
}

.jb-chat-book{
min-height:35px;
padding:6px;
font-size:8.5px
}

}

/* =========================================================
   PHONE — FINAL TARGET SIZING
   ========================================================= */

@media(max-width:600px){

.hero{
  height:calc(100vw * 1.7777778);
  min-height:0;
  max-height:none
}

/* HEADER */

.hero-header-inner{
  width:calc(100% - 36px);
  min-height:91px
}

.brand{
  gap:10px
}

.brand-logo{
  width:56px;
  height:56px;
  flex:0 0 56px;
  padding-top:4px
}

.brand-logo>span{
  font-size:28px
}

.brand-chart{
  left:9px;
  right:7px;
  bottom:5px;
  height:17px
}

.brand-text strong{
  font-size:18.5px
}

.brand-text>span{
  margin-top:3px;
  font-size:11.5px
}

.brand-text small{
  margin-top:5px;
  font-size:6.2px;
  letter-spacing:1px
}

.mobile-menu-button{
  width:44px;
  height:44px
}

.mobile-menu-button span{
  width:27px;
  height:3px
}

/* HERO CONTENT */

.hero-main-inner{
  width:calc(100% - 42px);
  margin:auto
}

.hero-copy{
  padding-top:3px
}

/* HEADLINE */

.hero-copy h1{
  font-size:31px;
  line-height:1.035;
  letter-spacing:-.9px
}

.hero-copy h1 span{
  display:block;
  white-space:nowrap
}

.hero-copy h1 .gold-line{
  margin-top:1px
}

/* PARAGRAPH */

.hero-description{
  width:64%;
  max-width:300px;
  margin-top:19px;
  font-size:11.7px;
  line-height:1.48
}

/* BUTTONS */

.hero-actions{
  width:57%;
  max-width:280px;
  gap:8px;
  margin-top:15px
}

.hero-button{
  min-height:44px;
  padding:0 11px;
  gap:8px;
  border-radius:6px;
  font-size:10.8px
}

.calendar-icon{
  font-size:15px
}

.arrow-icon{
  font-size:20px
}

/* CONTACT */

.mobile-contact-list{
  width:61%;
  max-width:295px;
  gap:9px;
  margin-top:14px
}

.mobile-contact-list>a,
.mobile-contact-list>div{
  grid-template-columns:22px minmax(0,1fr);
  gap:7px;
  font-size:10.2px;
  line-height:1.15
}

.mobile-contact-icon{
  width:22px;
  font-size:16px
}

/* EVERYTHING BELOW HERO */

.services-section,
.about-section{
  padding:70px 0
}

.services-grid{
  grid-template-columns:1fr
}

.immigration-service-card{
  grid-column:auto
}

.immigration-services-list{
  grid-template-columns:1fr
}

.section-heading h2,
.about-main h2,
.resources-panel h2,
.contact-section h2{
  font-size:36px
}

.about-main{
  padding:35px 25px
}

.resources-panel{
  padding:32px 24px
}

.footer-inner{
  flex-direction:column;
  gap:10px
}

}

/* =========================================================
   VERY SMALL PHONE
   ========================================================= */

@media(max-width:390px){

.hero-header-inner{
  min-height:87px
}

.brand-logo{
  width:52px;
  height:52px;
  flex-basis:52px
}

.brand-logo>span{
  font-size:26px
}

.brand-text strong{
  font-size:17px
}

.brand-text>span{
  font-size:10.5px
}

.brand-text small{
  font-size:5.7px
}

.hero-main-inner{
  width:calc(100% - 38px)
}

.hero-copy h1{
  font-size:28.5px
}

.hero-description{
  width:65%;
  margin-top:17px;
  font-size:10.8px
}

.hero-actions{
  width:59%;
  margin-top:13px
}

.hero-button{
  min-height:42px;
  font-size:10px
}

.mobile-contact-list{
  width:63%;
  gap:8px;
  margin-top:12px
}

.mobile-contact-list>a,
.mobile-contact-list>div{
  font-size:9.7px
}

.mobile-contact-icon{
  font-size:15px
}

.jb-chat-launcher-text{
  display:none
}

.jb-chat-launcher{
  width:52px;
  min-width:52px;
  height:52px;
  padding:0;
  border-radius:50%
}

}

/* =========================================================
   SAFETY
   ========================================================= */

section,
header,
main,
footer,
nav{
  max-width:100%
}

/* ===== FINAL JB LOGO IMAGE ===== */

.brand-logo-image{
  display:block;
  width:112px;
  height:112px;
  flex:0 0 112px;
  object-fit:contain;
}

@media (max-width:1350px) and (min-width:901px){
  .brand-logo-image{
    width:88px;
    height:88px;
    flex-basis:88px;
  }
}

@media (max-width:900px){
  .brand-logo-image{
    width:61px;
    height:61px;
    flex-basis:61px;
  }
}

@media (max-width:390px){
  .brand-logo-image{
    width:56px;
    height:56px;
    flex-basis:56px;
  }
}