/*
 * Immigration Services — customer-facing page (/services/immigration).
 * Ported from the client design docs/frontend-source/MAHATEJ IMMIGRATION WEB.html: every class prefixed im-, every rule scoped
 * under .im-page so nothing reaches the shared header/footer or other pages.
 */
.im-page{--navy: #1B2A4A; --navy-deep: #131F38; --brass: #B8863C; --brass-light: #D9AE6E; --paper: #F6F3EC; --paper-dim: #EFEAE0; --ink: #20211D; --ink-soft: #52504A; --teal: #3E6B63; --hairline: #D9D2C0; --hairline-dark: rgba(246,243,236,0.18); --white: #FFFFFF; --font-serif: 'Newsreader', Georgia, 'Times New Roman', serif; --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; --bg: var(--paper); --fg: var(--ink); --card: var(--white); --sub: var(--ink-soft); box-sizing: border-box; padding-top: env(safe-area-inset-top, 0px); padding-bottom: env(safe-area-inset-bottom, 0px);}
.im-page{scroll-behavior: smooth; scroll-padding-top: calc(72px + env(safe-area-inset-top, 0px));}
.im-page *{margin: 0; padding: 0; box-sizing: border-box;}
.im-page{background: var(--bg); color: var(--fg); font-family: var(--font-sans); font-size: 16px; line-height: 1.6; -webkit-font-smoothing: antialiased;}
.im-page img, .im-page svg{max-width: 100%; display: block;}
.im-page a{color: inherit;}
.im-page .im-wrap{max-width: 1180px; margin: 0 auto; padding: 0 24px;}
.im-page .im-overflow-x{overflow-x: auto;}
.im-page h1, .im-page h2, .im-page h3, .im-page h4{font-family: var(--font-serif); font-weight: 500; line-height: 1.15; letter-spacing: -0.01em;}
.im-page h2{font-size: clamp(1.7rem, 3.4vw, 2.5rem);}
.im-page h3{font-size: clamp(1.15rem, 2vw, 1.4rem);}
.im-page p{color: var(--sub); max-width: 62ch;}
.im-page .im-lede{font-size: 1.08rem;}
.im-page .im-topbar{position: sticky; top: 0; z-index: 50; background: color-mix(in srgb, var(--bg) 88%, transparent); backdrop-filter: blur(10px); border-bottom: 1px solid var(--hairline); padding-top: env(safe-area-inset-top, 0px);}
.im-page .im-topbar-inner{max-width: 1180px; margin: 0 auto; padding: 14px 24px; display: flex; align-items: center; justify-content: space-between; gap: 16px;}
.im-page .im-brand{display: flex; align-items: baseline; gap: 8px; font-family: var(--font-serif); font-size: 1.15rem; font-weight: 500; white-space: nowrap;}
.im-page .im-brand small{font-family: var(--font-sans); font-size: 0.62rem; color: var(--brass); letter-spacing: 0.14em; font-weight: 600;}
.im-page .im-nav-scroll{display: flex; gap: 22px; overflow-x: auto; scrollbar-width: none;}
.im-page .im-nav-scroll::-webkit-scrollbar{display: none;}
.im-page .im-nav-scroll a{font-size: 0.88rem; color: var(--sub); text-decoration: none; white-space: nowrap; padding: 4px 0; border-bottom: 1px solid transparent;}
.im-page .im-nav-scroll a:hover{color: var(--fg); border-color: var(--brass);}
.im-page .im-nav-cta{display: none;}
@media (min-width: 860px){
  .im-page .im-nav-cta{display: inline-flex;}
}
.im-page .im-btn{display: inline-flex; align-items: center; justify-content: center; gap: 8px; font-family: var(--font-sans); font-weight: 600; font-size: 0.92rem; padding: 11px 20px; border-radius: 2px; text-decoration: none; cursor: pointer; border: 1px solid transparent; transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;}
.im-page .im-btn-brass{background: var(--brass); color: #1A1204;}
.im-page .im-btn-brass:hover{background: var(--brass-light);}
.im-page .im-btn-outline{background: transparent; color: var(--fg); border-color: var(--hairline);}
.im-page .im-btn-outline:hover{border-color: var(--brass);}
.im-page .im-btn-outline-inverse{background: transparent; color: var(--paper); border-color: var(--hairline-dark);}
.im-page .im-btn-outline-inverse:hover{border-color: var(--brass-light); color: var(--brass-light);}
.im-page .im-hero{position: relative; background: var(--navy); color: var(--paper); overflow: hidden; padding: 76px 0 64px;}
.im-page .im-hero-routes{position: absolute; inset: 0; opacity: 0.5; pointer-events: none;}
.im-page .im-hero-inner{position: relative; max-width: 1180px; margin: 0 auto; padding: 0 24px;}
.im-page .im-hero-eyebrow{color: var(--brass-light); font-size: 0.82rem; font-style: italic; font-family: var(--font-serif); margin-bottom: 18px;}
.im-page .im-hero h1{font-size: clamp(2.4rem, 6vw, 4.2rem); max-width: 15ch; color: var(--paper); margin-bottom: 22px;}
.im-page .im-hero-lede{color: #D6D0BF; font-size: 1.15rem; max-width: 56ch; margin-bottom: 34px;}
.im-page .im-hero-ctas{display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 46px;}
.im-page .im-hero-stats{display: grid; grid-template-columns: repeat(auto-fit, minmax(150px,1fr)); gap: 26px; max-width: 720px; border-top: 1px solid var(--hairline-dark); padding-top: 26px;}
.im-page .im-hero-stat .im-num{font-family: var(--font-serif); font-size: 1.7rem; color: var(--brass-light);}
.im-page .im-hero-stat .im-lbl{font-size: 0.82rem; color: #B9B39E;}
.im-page section{padding: 76px 0; border-bottom: 1px solid var(--hairline);}
.im-page section.im-dark{background: var(--navy); color: var(--paper); border-bottom: none;}
.im-page section.im-dark p{color: #C7C1AE;}
.im-page section.im-dark h2, .im-page section.im-dark h3{color: var(--paper);}
.im-page section.im-tint{background: var(--paper-dim);}
.im-page .im-section-head{max-width: 760px; margin-bottom: 44px;}
.im-page .im-kicker{font-family: var(--font-serif); font-style: italic; color: var(--brass); font-size: 0.98rem; margin-bottom: 10px; display: block;}
.im-page section.im-dark .im-kicker{color: var(--brass-light);}
.im-page .im-notice{border: 1px solid var(--hairline); border-left: 3px solid var(--brass); padding: 18px 22px; background: var(--card); font-size: 0.93rem; color: var(--sub); max-width: 760px;}
.im-page .im-notice strong{color: var(--fg);}
.im-page .im-divisions{display: grid; grid-template-columns: repeat(auto-fit, minmax(230px,1fr)); gap: 1px; background: var(--hairline); border: 1px solid var(--hairline);}
.im-page .im-division{background: var(--bg); padding: 28px 24px;}
.im-page .im-division.im-is-active{background: var(--navy); color: var(--paper);}
.im-page .im-division.im-is-active p{color: #C7C1AE;}
.im-page .im-division .im-idx{font-family: var(--font-serif); font-style: italic; color: var(--brass); font-size: 0.95rem;}
.im-page .im-division.im-is-active .im-idx{color: var(--brass-light);}
.im-page .im-division h3{margin: 8px 0 10px; font-size: 1.1rem;}
.im-page .im-division p{font-size: 0.92rem;}
.im-page .im-two-col{display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: start;}
@media (max-width: 800px){
  .im-page .im-two-col{grid-template-columns: 1fr; gap: 36px;}
}
.im-page .im-value-list{display: grid; gap: 0; border-top: 1px solid var(--hairline);}
.im-page .im-value-item{display: grid; grid-template-columns: 160px 1fr; gap: 20px; padding: 16px 0; border-bottom: 1px solid var(--hairline);}
.im-page .im-value-item dt{font-weight: 600; font-size: 0.92rem;}
.im-page .im-value-item dd{color: var(--sub); font-size: 0.92rem;}
@media (max-width: 560px){
  .im-page .im-value-item{grid-template-columns: 1fr; gap: 4px;}
}
.im-page .im-chip-grid{display: grid; grid-template-columns: repeat(auto-fill, minmax(240px,1fr)); gap: 14px;}
.im-page .im-chip{border: 1px solid var(--hairline); padding: 16px 18px; font-size: 0.92rem; background: var(--card);}
.im-page .im-chip b{display: block; font-family: var(--font-serif); font-weight: 500; font-size: 1rem; margin-bottom: 4px;}
.im-page .im-split{display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--hairline); border: 1px solid var(--hairline);}
@media (max-width: 760px){
  .im-page .im-split{grid-template-columns: 1fr;}
}
.im-page .im-split-col{background: var(--bg); padding: 30px 28px;}
.im-page .im-split-col h3{margin-bottom: 14px;}
.im-page .im-split-col.im-yes h3{color: var(--teal);}
.im-page .im-split-col.im-no h3{color: #9A4B3A;}
.im-page .im-split-col ul{padding-left: 18px;}
.im-page .im-split-col li{margin-bottom: 9px; font-size: 0.93rem; color: var(--sub);}
.im-page .im-acc{border-top: 1px solid var(--hairline);}
.im-page details.im-acc-item{border-bottom: 1px solid var(--hairline);}
.im-page details.im-acc-item summary{list-style: none; cursor: pointer; padding: 18px 4px; display: flex; align-items: center; justify-content: space-between; gap: 20px; font-family: var(--font-serif); font-size: 1.05rem;}
.im-page details.im-acc-item summary::-webkit-details-marker{display: none;}
.im-page details.im-acc-item summary .im-plus{font-family: var(--font-sans); font-size: 1.3rem; color: var(--brass); flex-shrink: 0; transition: transform 0.2s ease;}
.im-page details.im-acc-item[open] summary .im-plus{transform: rotate(45deg);}
.im-page .im-acc-body{padding: 0 4px 20px; font-size: 0.93rem; color: var(--sub); max-width: 68ch;}
.im-page .im-acc-body ul{padding-left: 18px; margin-top: 8px;}
.im-page .im-acc-body li{margin-bottom: 6px;}
.im-page .im-timeline{position: relative; padding-left: 30px; border-left: 1px solid var(--hairline); display: grid; gap: 30px;}
.im-page .im-tl-step{position: relative;}
.im-page .im-tl-step::before{content: attr(data-n); position: absolute; left: -42px; top: 0; width: 24px; height: 24px; border-radius: 50%; background: var(--bg); border: 1px solid var(--brass); color: var(--brass); display: flex; align-items: center; justify-content: center; font-size: 0.68rem; font-weight: 700; font-family: var(--font-sans);}
.im-page .im-tl-step h4{font-size: 1rem; margin-bottom: 4px;}
.im-page .im-tl-step p{font-size: 0.9rem;}
.im-page .im-doc-table{width: 100%; border-collapse: collapse; font-size: 0.9rem;}
.im-page .im-doc-table th{text-align: left; font-family: var(--font-serif); font-weight: 500; font-size: 0.95rem; padding: 10px 16px 10px 0; border-bottom: 1px solid var(--fg);}
.im-page .im-doc-table td{padding: 14px 16px 14px 0; border-bottom: 1px solid var(--hairline); vertical-align: top; color: var(--sub);}
.im-page .im-doc-table td:first-child{color: var(--fg); font-weight: 600; white-space: nowrap; padding-right: 24px;}
.im-page .im-dest-table{width: 100%; border-collapse: collapse; font-size: 0.88rem; min-width: 640px;}
.im-page .im-dest-table th{text-align: left; font-family: var(--font-serif); font-weight: 500; padding: 10px 14px 10px 0; border-bottom: 1px solid var(--fg);}
.im-page .im-dest-table td{padding: 13px 14px 13px 0; border-bottom: 1px solid var(--hairline); color: var(--sub); vertical-align: top;}
.im-page .im-dest-table td:first-child{color: var(--fg); font-weight: 600; white-space: nowrap;}
.im-page .im-continents{display: grid; gap: 0; margin-top: 46px;}
.im-page .im-continent{border-top: 1px solid var(--hairline);}
.im-page .im-continent summary{list-style: none; cursor: pointer; padding: 16px 4px; display: flex; justify-content: space-between; align-items: center; font-family: var(--font-serif); font-size: 1.05rem;}
.im-page .im-continent summary::-webkit-details-marker{display:none;}
.im-page .im-continent summary .im-plus{color: var(--brass); font-size: 1.2rem;}
.im-page .im-continent[open] summary .im-plus{transform: rotate(45deg); display: inline-block;}
.im-page .im-continent-body{padding: 6px 4px 26px; display: grid; grid-template-columns: repeat(auto-fill,minmax(220px,1fr)); gap: 12px;}
.im-page .im-continent-country{border: 1px solid var(--hairline); padding: 12px 14px; font-size: 0.85rem; background: var(--card);}
.im-page .im-continent-country b{display: block; font-size: 0.92rem; margin-bottom: 3px;}
.im-page .im-continent-country span{color: var(--sub);}
.im-page .im-why-grid{display: grid; grid-template-columns: repeat(auto-fit, minmax(260px,1fr)); gap: 30px; margin-top: 10px;}
.im-page .im-why-item{padding-top: 18px; border-top: 1px solid var(--hairline-dark);}
.im-page .im-why-item h4{font-size: 1.02rem; margin-bottom: 8px; color: var(--paper);}
.im-page .im-why-item p{font-size: 0.9rem;}
.im-page .im-faq-item summary{font-family: var(--font-sans); font-weight: 600; font-size: 0.98rem;}
.im-page .im-faq-item .im-acc-body{max-width: 72ch;}
.im-page .im-form-card{background: var(--card); border: 1px solid var(--hairline); padding: 34px; max-width: 760px;}
.im-page .im-form-grid{display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-bottom: 18px;}
@media (max-width: 620px){
  .im-page .im-form-grid{grid-template-columns: 1fr;}
}
.im-page .im-field{display: flex; flex-direction: column; gap: 6px;}
.im-page .im-field.im-full{grid-column: 1 / -1;}
.im-page .im-field label{font-size: 0.82rem; font-weight: 600;}
.im-page .im-field input, .im-page .im-field select, .im-page .im-field textarea{font-family: var(--font-sans); font-size: 0.95rem; padding: 10px 12px; border: 1px solid var(--hairline); background: var(--bg); color: var(--fg); border-radius: 2px;}
.im-page .im-field textarea{resize: vertical; min-height: 90px;}
.im-page .im-field input:focus, .im-page .im-field select:focus, .im-page .im-field textarea:focus{outline: 2px solid var(--brass); outline-offset: 1px;}
.im-page .im-consent{display: flex; gap: 10px; align-items: flex-start; font-size: 0.83rem; color: var(--sub); margin-bottom: 14px;}
.im-page .im-consent input{margin-top: 3px;}
.im-page .im-form-note{font-size: 0.8rem; color: var(--sub); margin-top: 14px;}
.im-page .im-form-msg{display: none; margin-top: 16px; padding: 12px 16px; background: color-mix(in srgb, var(--teal) 14%, transparent); border: 1px solid var(--teal); font-size: 0.88rem;}
.im-page .im-form-msg.im-show{display: block;}
.im-page .im-policy-grid{display: grid; grid-template-columns: repeat(auto-fill, minmax(250px,1fr)); gap: 10px 24px;}
.im-page .im-policy-grid a{font-size: 0.88rem; text-decoration: none; color: var(--sub); border-bottom: 1px dotted var(--hairline); padding-bottom: 3px; display: block;}
.im-page .im-policy-grid a:hover{color: var(--brass); border-color: var(--brass);}
.im-page footer{background: var(--navy-deep); color: #A9A38E; padding: 56px 0 calc(30px + env(safe-area-inset-bottom, 0px));}
.im-page .im-foot-grid{display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 40px; margin-bottom: 40px;}
@media (max-width: 720px){
  .im-page .im-foot-grid{grid-template-columns: 1fr;}
}
.im-page footer h4{color: var(--paper); font-family: var(--font-sans); font-size: 0.85rem; font-weight: 700; letter-spacing: 0.03em; margin-bottom: 14px;}
.im-page footer .im-foot-brand{font-family: var(--font-serif); color: var(--paper); font-size: 1.3rem; margin-bottom: 10px;}
.im-page footer p{color: #A9A38E; font-size: 0.86rem;}
.im-page footer ul{list-style: none; display: grid; gap: 9px;}
.im-page footer a{text-decoration: none; color: #A9A38E; font-size: 0.86rem;}
.im-page footer a:hover{color: var(--brass-light);}
.im-page .im-foot-bottom{border-top: 1px solid var(--hairline-dark); padding-top: 22px; display: flex; flex-wrap: wrap; gap: 12px 24px; justify-content: space-between; font-size: 0.78rem;}
.im-page .im-disclaimer-strip{background: var(--brass); color: #1A1204; padding: 14px 0; font-size: 0.85rem; text-align: center; font-weight: 600;}
.im-page ::selection{background: var(--brass-light); color: #1A1204;}
.im-page :focus-visible{outline: 2px solid var(--brass); outline-offset: 2px;}

/* Integration resets: keep global site element styles out of the client design. */
.im-page{display:block; overflow-x:clip}
.im-page :where(h1,h2,h3,h4,h5){color:inherit; max-width:none}
.im-page :where(a):hover,.im-page :where(a):focus-visible{color:inherit}
.im-page a.im-division{display:block; text-decoration:none; color:inherit}
.im-page .im-policy-label{cursor:default}
html:has(.im-page){scroll-padding-top:7rem}

/* Policies without a published page are shown as labels in the client's policy-link style. */
.im-page .im-policy-grid .im-policy-label{font-size:0.88rem; color:var(--sub); border-bottom:1px dotted var(--hairline); padding-bottom:3px; display:block}
