/*
 * APPV1_GEMTROVE_RESPONSIVE_HOMEPAGE_GLOBAL_SHELL_R1_20261007
 *
 * Presentation-only responsive authority.
 * - Global shared header/menu/footer: all public/customer pages.
 * - Homepage centre: responsive presentation only.
 * - No URLs, routes, forms, catalogue actions, login/cart/search/appointment logic,
 *   PHP data, or existing JavaScript behaviour are changed here.
 */

:root{
  --gt-rwd-shell:1440px;
  --gt-rwd-shell-wide:1760px;
  --gt-rwd-gutter:clamp(16px,3vw,42px);
  --gt-rwd-touch:44px;
  --gt-rwd-touch-large:48px;
  --gt-rwd-section:clamp(56px,6vw,96px);
}

/* ============================================================
   GLOBAL PUBLIC SHELL — HOMEPAGE + ALL INTERNAL PUBLIC PAGES
   ============================================================ */

body.gt-public-body .gt-site-header,
body.gt-public-body .gt-site-footer{
  width:100%;
  max-width:none;
}

body.gt-public-body .gt-site-header a,
body.gt-public-body .gt-site-header button,
body.gt-public-body .gt-site-header select,
body.gt-public-body .gt-site-footer a,
body.gt-public-body .gt-site-footer button,
body.gt-public-body .gt-site-footer input{
  -webkit-tap-highlight-color:transparent;
}

body.gt-public-body .gt-site-header a:focus-visible,
body.gt-public-body .gt-site-header button:focus-visible,
body.gt-public-body .gt-site-header select:focus-visible,
body.gt-public-body .gt-site-footer a:focus-visible,
body.gt-public-body .gt-site-footer button:focus-visible,
body.gt-public-body .gt-site-footer input:focus-visible,
body.gt-public-body.gt-homepage main a:focus-visible,
body.gt-public-body.gt-homepage main button:focus-visible{
  outline:2px solid currentColor;
  outline-offset:3px;
}

body.gt-public-body .gt-site-header .gt-mobile-menu-button,
body.gt-public-body .gt-site-header .gt-header-account > a,
body.gt-public-body .gt-site-header .gt-r1-header-action,
body.gt-public-body .gt-site-header .gt-primary-menu > .gt-primary-item > a,
body.gt-public-body .gt-site-header .gt-submenu-toggle,
body.gt-public-body .gt-site-header [data-gt-gemstones-toggle]{
  min-height:var(--gt-rwd-touch);
}

body.gt-public-body .gt-site-header .gt-mobile-menu-button,
body.gt-public-body .gt-site-header .gt-header-account > a,
body.gt-public-body .gt-site-header .gt-r1-header-action{
  min-width:var(--gt-rwd-touch);
}

/* Keep menu controls operable by touch even on pointer-capable tablets/laptops. */
body.gt-public-body .gt-site-header .gt-primary-menu > .gt-primary-item > a,
body.gt-public-body .gt-site-header .gt-submenu-toggle,
body.gt-public-body .gt-site-header [data-gt-gemstones-toggle]{
  display:flex;
  align-items:center;
}

/* Footer remains the shared footer, but reflows cleanly. */
body.gt-public-body .gt-site-footer .gt-footer-main,
body.gt-public-body .gt-site-footer .gt-footer-bottom{
  width:min(calc(100% - (2 * var(--gt-rwd-gutter))),var(--gt-rwd-shell));
  margin-inline:auto;
}

body.gt-public-body .gt-site-footer .gt-footer-email input{
  min-width:0;
  width:100%;
  font-size:max(16px,1em);
}

body.gt-public-body .gt-site-footer .gt-footer-email button{
  min-width:var(--gt-rwd-touch);
  min-height:var(--gt-rwd-touch);
}

/* ============================================================
   HOMEPAGE — SAME CONTENT / SAME VISUAL IDENTITY, FLUID LAYOUT
   ============================================================ */

body.gt-public-body.gt-homepage main{
  min-width:0;
}

body.gt-public-body.gt-homepage main .gt-shell{
  width:min(calc(100% - (2 * var(--gt-rwd-gutter))),var(--gt-rwd-shell));
  margin-inline:auto;
}

body.gt-public-body.gt-homepage main img,
body.gt-public-body.gt-homepage main video{
  max-width:100%;
}

body.gt-public-body.gt-homepage .gt-home-hero{
  min-height:clamp(520px,64vw,820px);
}

body.gt-public-body.gt-homepage .gt-home-hero .gt-hero-slide{
  min-height:inherit;
}

body.gt-public-body.gt-homepage .gt-home-hero .gt-hero-content{
  padding-block:clamp(48px,7vw,108px);
}

body.gt-public-body.gt-homepage .gt-home-hero .gt-hero-title{
  font-size:clamp(40px,5vw,76px);
  line-height:1.02;
  text-wrap:balance;
}

body.gt-public-body.gt-homepage .gt-home-hero .gt-hero-subtitle{
  font-size:clamp(16px,1.5vw,21px);
  line-height:1.55;
  max-width:720px;
}

body.gt-public-body.gt-homepage .gt-hero-actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  align-items:center;
}

body.gt-public-body.gt-homepage .gt-hero-actions a,
body.gt-public-body.gt-homepage .gt-hero-actions button,
body.gt-public-body.gt-homepage .gt-hero-actions [role="button"],
body.gt-public-body.gt-homepage .gt-lux-btn,
body.gt-public-body.gt-homepage .gt-r6g-hero-btn{
  min-height:var(--gt-rwd-touch-large);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  touch-action:manipulation;
}

/* Journey cards */
body.gt-public-body.gt-homepage .gt-r6g-start-section{
  padding-block:var(--gt-rwd-section);
  padding-inline:var(--gt-rwd-gutter);
}

body.gt-public-body.gt-homepage .gt-r6g-start-grid{
  width:min(100%,var(--gt-rwd-shell));
  margin-inline:auto;
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:clamp(14px,2vw,26px) !important;
  overflow:visible !important;
}

body.gt-public-body.gt-homepage .gt-r6g-start-card{
  min-width:0 !important;
  width:auto !important;
  min-height:clamp(390px,35vw,560px) !important;
  height:auto;
  scroll-snap-align:none !important;
}

/* Category / diamond catalogue cards */
body.gt-public-body.gt-homepage .gt-home-diamond-categories .gt-category-grid{
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:clamp(14px,2vw,24px) !important;
  overflow:visible !important;
}

body.gt-public-body.gt-homepage .gt-home-diamond-categories .gt-category-card{
  min-width:0 !important;
  width:auto !important;
  flex:none !important;
  scroll-snap-align:none !important;
}

/* Shape grid: same ten destinations; only the arrangement changes. */
body.gt-public-body.gt-homepage .gt-shape-grid{
  display:grid !important;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:clamp(12px,1.8vw,22px) !important;
}

body.gt-public-body.gt-homepage .gt-shape-grid > *{
  min-width:0;
}

body.gt-public-body.gt-homepage .gt-shape-grid a{
  min-height:var(--gt-rwd-touch-large);
  touch-action:manipulation;
}

/* Reviews and FAQ: readable line lengths and touch-safe controls. */
body.gt-public-body.gt-homepage .gt-r1-review-card{
  min-width:min(360px,78vw);
}

body.gt-public-body.gt-homepage [class*="faq"] button,
body.gt-public-body.gt-homepage [class*="FAQ"] button,
body.gt-public-body.gt-homepage details > summary{
  min-height:var(--gt-rwd-touch-large);
  cursor:pointer;
  touch-action:manipulation;
}

/* ============================================================
   MOBILE — 320px through 767px
   ============================================================ */

@media (max-width:767px){
  :root{
    --gt-rwd-gutter:clamp(14px,4.6vw,20px);
    --gt-rwd-section:clamp(44px,13vw,64px);
    --gt-rwd-touch:48px;
    --gt-rwd-touch-large:50px;
  }

  body.gt-public-body .gt-site-header > .gt-brand-row{
    width:calc(100% - (2 * var(--gt-rwd-gutter))) !important;
    min-height:66px !important;
    margin-inline:auto !important;
    gap:6px !important;
  }

  body.gt-public-body .gt-site-header .gt-brand-logo img{
    width:clamp(132px,39vw,168px) !important;
    max-width:100% !important;
    height:auto !important;
  }

  body.gt-public-body .gt-site-header .gt-mobile-menu-button,
  body.gt-public-body .gt-site-header .gt-header-account > a,
  body.gt-public-body .gt-site-header .gt-r1-header-action{
    width:var(--gt-rwd-touch) !important;
    min-width:var(--gt-rwd-touch) !important;
    height:var(--gt-rwd-touch) !important;
    min-height:var(--gt-rwd-touch) !important;
  }

  /* Existing menu JS controls .menu-open and aria-expanded.
     This block changes presentation only. */
  body.gt-public-body .gt-site-header.menu-open #gt-primary-navigation{
    width:100% !important;
    max-width:none !important;
    left:0 !important;
    right:0 !important;
    padding:14px var(--gt-rwd-gutter) max(28px,env(safe-area-inset-bottom,0px)) !important;
    overflow-y:auto !important;
    overscroll-behavior:contain;
  }

  body.gt-public-body .gt-site-header.menu-open #gt-primary-navigation .gt-primary-item > a,
  body.gt-public-body .gt-site-header.menu-open #gt-primary-navigation .gt-submenu-toggle,
  body.gt-public-body .gt-site-header.menu-open #gt-primary-navigation [data-gt-gemstones-toggle]{
    min-height:50px !important;
    font-size:17px !important;
    line-height:1.3 !important;
    white-space:normal !important;
  }

  body.gt-public-body.gt-homepage .gt-home-hero{
    min-height:clamp(500px,145vw,680px);
  }

  body.gt-public-body.gt-homepage .gt-home-hero .gt-hero-content{
    padding-block:42px 50px;
  }

  body.gt-public-body.gt-homepage .gt-home-hero .gt-hero-title{
    font-size:clamp(34px,10.4vw,48px) !important;
    line-height:1.04;
    max-width:100% !important;
  }

  body.gt-public-body.gt-homepage .gt-home-hero .gt-hero-subtitle{
    font-size:16px;
    line-height:1.55;
    max-width:34rem;
  }

  body.gt-public-body.gt-homepage .gt-hero-actions{
    align-items:stretch;
    width:100%;
  }

  body.gt-public-body.gt-homepage .gt-hero-actions > *{
    width:100%;
    max-width:100%;
  }

  body.gt-public-body.gt-homepage .gt-r6g-start-section{
    padding-inline:var(--gt-rwd-gutter) !important;
  }

  body.gt-public-body.gt-homepage .gt-r6g-start-grid{
    grid-template-columns:1fr !important;
    gap:16px !important;
  }

  body.gt-public-body.gt-homepage .gt-r6g-start-card{
    min-height:clamp(330px,105vw,460px) !important;
  }

  body.gt-public-body.gt-homepage .gt-home-diamond-categories .gt-category-grid{
    grid-template-columns:1fr !important;
    gap:16px !important;
  }

  body.gt-public-body.gt-homepage .gt-home-diamond-categories .gt-category-card{
    min-height:280px;
  }

  body.gt-public-body.gt-homepage .gt-shape-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:12px !important;
  }

  body.gt-public-body.gt-homepage .gt-shape-grid a{
    min-height:92px;
  }

  body.gt-public-body .gt-site-footer .gt-footer-main{
    grid-template-columns:1fr !important;
    gap:28px !important;
    padding-block:38px 24px !important;
  }

  body.gt-public-body .gt-site-footer .gt-footer-bottom{
    grid-template-columns:1fr !important;
    justify-items:center;
    text-align:center;
    gap:18px !important;
    padding-block:20px !important;
  }

  body.gt-public-body .gt-site-footer .gt-affiliation-logos,
  body.gt-public-body .gt-site-footer .gt-payment-marks{
    justify-content:center !important;
    flex-wrap:wrap;
  }
}

/* Extra-small phones: never squeeze controls below comfortable tap size. */
@media (max-width:374px){
  body.gt-public-body .gt-site-header > .gt-brand-row{
    width:calc(100% - 20px) !important;
    gap:2px !important;
  }

  body.gt-public-body .gt-site-header .gt-brand-logo img{
    width:128px !important;
  }

  body.gt-public-body.gt-homepage .gt-home-hero .gt-hero-title{
    font-size:clamp(31px,10vw,38px) !important;
  }

  body.gt-public-body.gt-homepage .gt-shape-grid{
    gap:10px !important;
  }
}

/* ============================================================
   TABLET — 768px through 1199px
   ============================================================ */

@media (min-width:768px) and (max-width:1199px){
  :root{
    --gt-rwd-gutter:clamp(22px,4vw,40px);
    --gt-rwd-touch:46px;
    --gt-rwd-touch-large:50px;
  }

  body.gt-public-body .gt-site-header .gt-primary-menu > .gt-primary-item > a,
  body.gt-public-body .gt-site-header .gt-submenu-toggle,
  body.gt-public-body .gt-site-header [data-gt-gemstones-toggle]{
    min-height:48px;
  }

  body.gt-public-body.gt-homepage .gt-home-hero{
    min-height:clamp(560px,76vw,760px);
  }

  body.gt-public-body.gt-homepage .gt-r6g-start-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:20px !important;
  }

  body.gt-public-body.gt-homepage .gt-r6g-start-card{
    min-height:440px !important;
  }

  body.gt-public-body.gt-homepage .gt-home-diamond-categories .gt-category-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:20px !important;
  }

  body.gt-public-body.gt-homepage .gt-shape-grid{
    grid-template-columns:repeat(5,minmax(0,1fr)) !important;
    gap:14px !important;
  }

  body.gt-public-body .gt-site-footer .gt-footer-main{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:34px 28px !important;
  }

  body.gt-public-body .gt-site-footer .gt-footer-bottom{
    grid-template-columns:1fr !important;
    justify-items:center;
    text-align:center;
    gap:18px !important;
    padding-block:20px !important;
  }
}

/* ============================================================
   DESKTOP — 1200px through 1919px
   ============================================================ */

@media (min-width:1200px) and (max-width:1919px){
  body.gt-public-body .gt-site-header > .gt-brand-row{
    width:min(calc(100% - (2 * var(--gt-rwd-gutter))),var(--gt-rwd-shell)) !important;
    margin-inline:auto !important;
  }

  body.gt-public-body.gt-homepage .gt-r6g-start-grid,
  body.gt-public-body.gt-homepage .gt-home-diamond-categories .gt-category-grid{
    grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  }
}

/* ============================================================
   LARGE DESKTOP / TV — 1920px and above
   Same homepage, deliberately scaled rather than stretched.
   ============================================================ */

@media (min-width:1920px){
  :root{
    --gt-rwd-shell:var(--gt-rwd-shell-wide);
    --gt-rwd-gutter:clamp(44px,4vw,84px);
    --gt-rwd-touch:50px;
    --gt-rwd-touch-large:56px;
    --gt-rwd-section:clamp(84px,5vw,126px);
  }

  body.gt-public-body .gt-site-header > .gt-brand-row{
    width:min(calc(100% - (2 * var(--gt-rwd-gutter))),var(--gt-rwd-shell-wide)) !important;
    min-height:92px !important;
    margin-inline:auto !important;
  }

  body.gt-public-body .gt-site-header .gt-brand-logo img{
    width:clamp(220px,13vw,280px) !important;
    height:auto !important;
  }

  body.gt-public-body .gt-site-header .gt-primary-menu > .gt-primary-item > a,
  body.gt-public-body .gt-site-header .gt-submenu-toggle,
  body.gt-public-body .gt-site-header [data-gt-gemstones-toggle]{
    min-height:52px;
    font-size:clamp(14px,.85vw,17px);
  }

  body.gt-public-body.gt-homepage .gt-home-hero{
    min-height:clamp(760px,47vw,1040px);
  }

  body.gt-public-body.gt-homepage .gt-home-hero .gt-hero-title{
    font-size:clamp(64px,4.4vw,94px) !important;
    max-width:1100px !important;
  }

  body.gt-public-body.gt-homepage .gt-home-hero .gt-hero-subtitle{
    font-size:clamp(20px,1.2vw,27px);
    max-width:920px;
  }

  body.gt-public-body.gt-homepage .gt-r6g-start-card{
    min-height:clamp(520px,30vw,700px) !important;
  }

  body.gt-public-body.gt-homepage .gt-shape-grid{
    grid-template-columns:repeat(10,minmax(0,1fr)) !important;
  }

  body.gt-public-body .gt-site-footer .gt-footer-main,
  body.gt-public-body .gt-site-footer .gt-footer-bottom{
    width:min(calc(100% - (2 * var(--gt-rwd-gutter))),var(--gt-rwd-shell-wide));
  }

  body.gt-public-body .gt-site-footer .gt-footer-main{
    font-size:clamp(15px,.85vw,18px);
  }
}

/* Ultra-wide / 4K: retain readable line lengths. */
@media (min-width:2560px){
  :root{
    --gt-rwd-shell-wide:1900px;
  }

  body.gt-public-body.gt-homepage .gt-home-hero .gt-hero-content{
    max-width:1900px;
  }
}

/* Touch-capable devices: never depend on hover for visible affordance. */
@media (hover:none), (pointer:coarse){
  body.gt-public-body .gt-site-header a,
  body.gt-public-body .gt-site-header button,
  body.gt-public-body.gt-homepage main a,
  body.gt-public-body.gt-homepage main button{
    touch-action:manipulation;
  }
}

/* Motion preference: preserve functionality with reduced animation. */
@media (prefers-reduced-motion:reduce){
  body.gt-public-body *,
  body.gt-public-body *::before,
  body.gt-public-body *::after{
    scroll-behavior:auto !important;
    transition-duration:.01ms !important;
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
  }
}

/* ============================================================
   APPV1_GEMTROVE_TABLET_HEADER_MENU_R1A_20261007
   TABLET / LARGE TOUCH HEADER COLLAPSE
   Presentation only. Existing menu destinations/actions remain authoritative.
   ============================================================ */

@media (max-width:1199px), (hover:none) and (pointer:coarse) and (max-width:1366px){

  body.gt-public-body .gt-r1-announcement{
    grid-template-columns:auto minmax(0,1fr) !important;
    grid-template-rows:36px 36px !important;
    min-height:72px !important;
    padding-inline:18px !important;
    font-size:13px !important;
  }

  body.gt-public-body .gt-r1-message-window{
    grid-column:1/-1 !important;
    grid-row:1 !important;
    min-width:0 !important;
  }

  body.gt-public-body .gt-r1-announcement-left{
    grid-column:1 !important;
    grid-row:2 !important;
  }

  body.gt-public-body .gt-r1-announcement-right{
    grid-column:2 !important;
    grid-row:2 !important;
    min-width:0 !important;
    overflow-x:auto !important;
    justify-content:flex-end !important;
    scrollbar-width:none;
  }

  body.gt-public-body .gt-r1-announcement-right::-webkit-scrollbar{
    display:none;
  }

  body.gt-public-body .gt-site-header > .gt-brand-row{
    position:relative !important;
    display:grid !important;
    grid-template-columns:minmax(180px,1fr) auto !important;
    align-items:center !important;
    width:calc(100% - 32px) !important;
    max-width:none !important;
    min-height:76px !important;
    height:auto !important;
    margin-inline:auto !important;
    padding-block:8px !important;
    gap:12px !important;
    overflow:visible !important;
  }

  body.gt-public-body .gt-site-header .gt-brand-logo{
    grid-column:1 !important;
    grid-row:1 !important;
    justify-self:start !important;
    min-width:0 !important;
  }

  body.gt-public-body .gt-site-header .gt-brand-logo img{
    width:clamp(170px,20vw,215px) !important;
    max-width:100% !important;
    height:auto !important;
    max-height:56px !important;
  }

  body.gt-public-body .gt-site-header .gt-header-account{
    grid-column:2 !important;
    grid-row:1 !important;
    justify-self:end !important;
    display:flex !important;
    align-items:center !important;
    gap:6px !important;
    min-width:0 !important;
  }

  /* Desktop navigation leaves the row before it starts to squeeze. */
  body.gt-public-body .gt-site-header > .gt-brand-row > #gt-primary-navigation,
  body.gt-public-body .gt-site-header > .gt-brand-row > .gt-primary-nav{
    display:none !important;
    position:absolute !important;
    z-index:1000 !important;
    top:76px !important;
    left:-16px !important;
    right:-16px !important;
    width:auto !important;
    max-width:none !important;
    margin:0 !important;
    padding:14px max(18px,4vw) max(30px,env(safe-area-inset-bottom,0px)) !important;
    background:#fff !important;
    border-top:1px solid #ece7df !important;
    box-shadow:0 22px 48px rgba(13,31,60,.12) !important;
    max-height:calc(100vh - 118px) !important;
    overflow-y:auto !important;
    overscroll-behavior:contain;
  }

  body.gt-public-body .gt-site-header.menu-open > .gt-brand-row > #gt-primary-navigation,
  body.gt-public-body .gt-site-header.menu-open > .gt-brand-row > .gt-primary-nav{
    display:block !important;
    visibility:visible !important;
    opacity:1 !important;
    pointer-events:auto !important;
  }

  body.gt-public-body .gt-site-header #gt-primary-navigation .gt-primary-menu{
    display:block !important;
    width:100% !important;
    height:auto !important;
    min-width:0 !important;
    max-width:100% !important;
    margin:0 !important;
    padding:0 !important;
    white-space:normal !important;
  }

  body.gt-public-body .gt-site-header #gt-primary-navigation .gt-primary-item{
    display:block !important;
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    margin:0 !important;
    border-bottom:1px solid #ececec !important;
    box-sizing:border-box !important;
  }

  body.gt-public-body .gt-site-header #gt-primary-navigation .gt-primary-item > a{
    width:100% !important;
    min-height:58px !important;
    padding:11px 48px 11px 6px !important;
    font-size:clamp(19px,2.4vw,25px) !important;
    line-height:1.2 !important;
    white-space:normal !important;
    box-sizing:border-box !important;
  }

  body.gt-public-body .gt-site-header #gt-primary-navigation .gt-submenu{
    position:static !important;
    translate:none !important;
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    box-shadow:none !important;
    border:0 !important;
    border-top:1px solid #f0f0f0 !important;
    margin:0 !important;
    padding:4px 0 10px !important;
    background:#fafafa !important;
  }

  body.gt-public-body .gt-site-header #gt-primary-navigation .gt-primary-item:hover > .gt-submenu{
    display:none;
  }

  body.gt-public-body .gt-site-header #gt-primary-navigation .gt-primary-item.submenu-open > .gt-submenu{
    display:block !important;
  }

  body.gt-public-body .gt-site-header #gt-primary-navigation .gt-submenu-item > a{
    min-height:50px !important;
    padding:11px 18px 11px 26px !important;
    white-space:normal !important;
  }

  body.gt-public-body .gt-site-header .gt-mobile-menu-button{
    display:grid !important;
    place-items:center !important;
    width:48px !important;
    min-width:48px !important;
    height:48px !important;
    min-height:48px !important;
    padding:9px !important;
    margin:0 !important;
    order:99;
    touch-action:manipulation;
  }

  body.gt-public-body .gt-site-header .gt-mobile-menu-button span:not(.sr-only){
    width:25px !important;
  }

  /* Keep tablet row functional but remove desktop text labels that cause crowding. */
  body.gt-public-body .gt-r1-account-action,
  body.gt-public-body .gt-r1-currency,
  body.gt-public-body .gt-r1-search-label{
    display:none !important;
  }

  body.gt-public-body .gt-r1-search-action,
  body.gt-public-body .gt-r1-mobile-phone{
    display:grid !important;
  }

  body.gt-public-body .gt-site-header .gt-header-account > a,
  body.gt-public-body .gt-site-header .gt-r1-header-action{
    width:48px !important;
    min-width:48px !important;
    height:48px !important;
    min-height:48px !important;
    place-items:center !important;
    touch-action:manipulation;
  }

  /* Appointment stays prominent if the existing markup exposes it separately. */
  body.gt-public-body .gt-site-header .gt-appointment-link > a{
    min-height:52px !important;
  }
}

/* Narrow tablets: preserve logo + essential touch controls without wrapping. */
@media (min-width:768px) and (max-width:900px){
  body.gt-public-body .gt-site-header > .gt-brand-row{
    width:calc(100% - 24px) !important;
    grid-template-columns:minmax(150px,1fr) auto !important;
    gap:6px !important;
  }

  body.gt-public-body .gt-site-header .gt-brand-logo img{
    width:clamp(156px,22vw,190px) !important;
  }

  body.gt-public-body .gt-site-header .gt-header-account{
    gap:2px !important;
  }
}

/* ============================================================
   APPV1_GEMTROVE_MOBILE_MENU_VIEWPORT_FIX_R1B_20261007
   Open menu is pinned to the visible viewport.
   Existing menu content, links, routes and JavaScript remain authoritative.
   ============================================================ */

@media (max-width:1199px), (hover:none) and (pointer:coarse) and (max-width:1366px){

  html.gt-mobile-menu-open,
  html.gt-r1j-menu-open{
    overflow-x:hidden !important;
  }

  html.gt-mobile-menu-open body,
  html.gt-r1j-menu-open body{
    overflow-x:hidden !important;
  }

  /* IMPORTANT:
     Use viewport positioning when OPEN.
     This overrides older absolute / translated / negative-left menu rules. */
  body.gt-public-body .gt-site-header.menu-open #gt-primary-navigation,
  body.gt-public-body .gt-site-header.menu-open .gt-primary-nav{
    display:block !important;
    visibility:visible !important;
    opacity:1 !important;
    pointer-events:auto !important;

    position:fixed !important;
    z-index:2147483000 !important;

    top:var(--gt-r1j-menu-top, 0px) !important;
    left:0 !important;
    right:0 !important;

    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;

    margin:0 !important;
    margin-left:0 !important;
    margin-right:0 !important;

    transform:none !important;
    translate:none !important;

    box-sizing:border-box !important;
    overflow-x:hidden !important;
    overflow-y:auto !important;
    overscroll-behavior:contain !important;

    max-height:calc(100vh - var(--gt-r1j-menu-top, 0px)) !important;
    max-height:calc(100dvh - var(--gt-r1j-menu-top, 0px)) !important;

    padding:
      12px
      max(18px, env(safe-area-inset-right, 0px))
      max(28px, env(safe-area-inset-bottom, 0px))
      max(18px, env(safe-area-inset-left, 0px))
      !important;

    background:#fff !important;
    border-top:1px solid #ece7df !important;
    box-shadow:0 22px 48px rgba(13,31,60,.14) !important;
  }

  body.gt-public-body .gt-site-header.menu-open #gt-primary-navigation .gt-primary-menu,
  body.gt-public-body .gt-site-header.menu-open .gt-primary-nav .gt-primary-menu{
    display:block !important;
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    height:auto !important;
    margin:0 !important;
    padding:0 !important;
    box-sizing:border-box !important;
    overflow:visible !important;
  }

  body.gt-public-body .gt-site-header.menu-open #gt-primary-navigation .gt-primary-item,
  body.gt-public-body .gt-site-header.menu-open .gt-primary-nav .gt-primary-item{
    display:block !important;
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    margin:0 !important;
    box-sizing:border-box !important;
  }

  body.gt-public-body .gt-site-header.menu-open #gt-primary-navigation .gt-primary-item > a,
  body.gt-public-body .gt-site-header.menu-open .gt-primary-nav .gt-primary-item > a{
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    box-sizing:border-box !important;
    white-space:normal !important;
    overflow-wrap:anywhere !important;
  }

  body.gt-public-body .gt-site-header.menu-open #gt-primary-navigation .gt-submenu,
  body.gt-public-body .gt-site-header.menu-open .gt-primary-nav .gt-submenu{
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    left:auto !important;
    right:auto !important;
    margin-left:0 !important;
    margin-right:0 !important;
    transform:none !important;
    translate:none !important;
    box-sizing:border-box !important;
  }
}

/* Phones: menu must remain exactly inside the screen, including 320px width. */
@media (max-width:767px){
  body.gt-public-body .gt-site-header.menu-open #gt-primary-navigation,
  body.gt-public-body .gt-site-header.menu-open .gt-primary-nav{
    left:0 !important;
    right:0 !important;
    width:100% !important;
    max-width:100% !important;
    padding-left:max(16px,env(safe-area-inset-left,0px)) !important;
    padding-right:max(16px,env(safe-area-inset-right,0px)) !important;
  }
}

/* Extra-small phones: no negative geometry is permitted anywhere in the open drawer. */
@media (max-width:374px){
  body.gt-public-body .gt-site-header.menu-open #gt-primary-navigation,
  body.gt-public-body .gt-site-header.menu-open .gt-primary-nav{
    left:0 !important;
    right:0 !important;
    margin-inline:0 !important;
    transform:none !important;
    translate:none !important;
  }
}

/* ============================================================
   APPV1_GEMTROVE_DESKTOP_HEADER_LOGO_NAV_SPACING_R1C_20261007
   Creates deliberate visual separation between GemTrove logo
   and the first primary navigation item on full desktop headers.
   ============================================================ */

/* Small desktop / laptop */
@media (min-width:1200px) and (max-width:1399px){
  body.gt-public-body .gt-site-header > .gt-brand-row{
    column-gap:18px !important;
  }

  body.gt-public-body .gt-site-header > .gt-brand-row > #gt-primary-navigation,
  body.gt-public-body .gt-site-header > .gt-brand-row > .gt-primary-nav{
    padding-left:14px !important;
  }
}

/* Standard desktop */
@media (min-width:1400px) and (max-width:1919px){
  body.gt-public-body .gt-site-header > .gt-brand-row{
    column-gap:28px !important;
  }

  body.gt-public-body .gt-site-header > .gt-brand-row > #gt-primary-navigation,
  body.gt-public-body .gt-site-header > .gt-brand-row > .gt-primary-nav{
    padding-left:22px !important;
  }
}

/* Large desktop / TV */
@media (min-width:1920px){
  body.gt-public-body .gt-site-header > .gt-brand-row{
    column-gap:36px !important;
  }

  body.gt-public-body .gt-site-header > .gt-brand-row > #gt-primary-navigation,
  body.gt-public-body .gt-site-header > .gt-brand-row > .gt-primary-nav{
    padding-left:28px !important;
  }
}

/* Keep first menu item visually independent from the logo. */
@media (min-width:1200px){
  body.gt-public-body .gt-site-header .gt-primary-menu{
    min-width:0 !important;
  }

  body.gt-public-body .gt-site-header .gt-primary-menu > .gt-primary-item:first-child{
    margin-left:0 !important;
  }
}
