/*
Theme mobile polish v1.9.0
Loaded after all page-specific styles.
*/

:root{
  --mobile-gutter:clamp(16px,4.6vw,24px);
  --mobile-header-height:64px;
}

html{
  scroll-padding-top:88px;
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
  overflow-x:hidden;
  overflow-x:clip;
}

body{
  overflow-x:hidden;
  overflow-x:clip;
  overflow-wrap:anywhere;
}

img,
picture,
video,
canvas,
svg,
iframe{
  max-width:100%;
}

img{
  height:auto;
}

button,
input,
select,
textarea{
  font:inherit;
}

a,
button,
input,
select,
textarea,
summary{
  touch-action:manipulation;
}

:where(a,button,input,select,textarea,summary):focus-visible{
  outline:2px solid #8f7353;
  outline-offset:3px;
}

.footer__legal-links{
  display:inline-flex;
  flex-wrap:wrap;
  gap:8px 18px;
}
.footer__legal-links a{
  color:inherit;
  text-decoration:none;
  opacity:.72;
}
.footer__legal-links a:hover,
.footer__legal-links a:focus-visible{
  opacity:1;
}

@media (min-width:768px) and (max-width:1179px){
  .page-width,
  .inner{
    width:min(92vw,1120px);
  }

  .site-header{
    padding-inline:clamp(18px,3vw,34px);
  }

  .footer__links{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .event-grid,
  .reading-grid,
  .works-grid-all,
  .work-gallery__grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media (max-width:767px){
  html{
    scroll-padding-top:calc(var(--mobile-header-height) + 14px);
  }

  body{
    padding-bottom:0!important;
    font-size:14px;
    line-height:1.8;
  }

  body.admin-bar .site-header.is-fixed{
    top:46px;
  }

  .page-width,
  .inner{
    width:calc(100% - (var(--mobile-gutter) * 2))!important;
    max-width:none;
  }

  .section-space{
    padding-block:clamp(64px,17vw,88px)!important;
  }

  .section-head{
    grid-template-columns:1fr!important;
    gap:16px!important;
    margin-bottom:clamp(34px,10vw,52px)!important;
  }

  .section-head h1,
  .section-head h2,
  .simple-page-main h1{
    font-size:clamp(28px,8vw,40px)!important;
    line-height:1.45!important;
    letter-spacing:.05em;
  }

  .section-head>p{
    max-width:none!important;
    font-size:13px;
    line-height:1.95;
  }

  .site-header{
    min-height:var(--mobile-header-height)!important;
    height:auto!important;
    padding:
      max(8px,env(safe-area-inset-top))
      max(12px,env(safe-area-inset-right))
      8px
      max(12px,env(safe-area-inset-left))!important;
    gap:8px!important;
  }

  .site-header__logo{
    width:min(124px,32vw)!important;
  }

  .site-header__utilities{
    min-width:0;
    gap:4px!important;
  }

  .site-header__email{
    width:44px!important;
    min-width:44px!important;
    min-height:44px!important;
    padding:0!important;
    justify-content:center;
    border:0!important;
  }

  .site-header__email-full,
  .site-header__email-short{
    display:none!important;
  }

  .site-header__email-icon{
    width:20px;
    height:20px;
    align-items:center;
    justify-content:center;
  }

  .site-header.site-header--menu-right .menu-button{
    min-width:82px!important;
    min-height:44px!important;
    padding:8px 10px!important;
    justify-content:center;
  }

  body.is-subpage .simple-page-main{
    padding-top:calc(var(--mobile-header-height) + env(safe-area-inset-top) + 12px)!important;
  }

  .breadcrumb{
    width:100%!important;
    padding-inline:var(--mobile-gutter);
    overflow-x:auto;
    overscroll-behavior-inline:contain;
    scrollbar-width:none;
    white-space:nowrap;
  }

  .breadcrumb::-webkit-scrollbar{
    display:none;
  }

  .breadcrumb ol{
    display:inline-flex;
    min-width:max-content;
    gap:7px;
    font-size:11px;
  }

  .global-menu{
    height:100dvh;
    overscroll-behavior:none;
  }

  .global-menu__panel{
    width:100%!important;
    max-width:none!important;
    height:100dvh!important;
    box-shadow:none!important;
  }

  .global-menu__top{
    min-height:64px;
    padding:
      max(12px,env(safe-area-inset-top))
      var(--mobile-gutter)
      12px!important;
  }

  .global-menu__body{
    padding:
      18px
      var(--mobile-gutter)
      calc(36px + env(safe-area-inset-bottom))!important;
  }

  .global-menu__nav a,
  .global-menu__nav button{
    grid-template-columns:30px minmax(0,1fr)!important;
    min-height:56px!important;
    padding:14px 0!important;
    font-size:clamp(16px,4.7vw,19px)!important;
    line-height:1.45!important;
  }

  .global-menu__cta-button{
    min-height:54px;
    padding:14px 18px;
    text-align:center;
  }

  .hero{
    min-height:560px!important;
    height:100svh;
    max-height:860px;
    border-radius:0 0 12px 12px;
  }

  .hero__brand{
    width:min(210px,58vw)!important;
  }

  .hero__copy{
    left:var(--mobile-gutter)!important;
    right:var(--mobile-gutter)!important;
    bottom:clamp(72px,16vh,120px)!important;
  }

  .hero__copy h1{
    font-size:clamp(20px,6.2vw,29px)!important;
    line-height:1.7!important;
  }

  .hero__note{
    left:var(--mobile-gutter)!important;
    right:var(--mobile-gutter)!important;
    font-size:11px;
  }

  .portals{
    display:grid!important;
    grid-template-columns:1fr!important;
  }

  .portal{
    min-height:68svh!important;
  }

  .portal__title{
    font-size:clamp(25px,7vw,36px)!important;
  }

  .event-grid,
  .reading-grid,
  .works-grid-all,
  .work-gallery__grid,
  .staff-grid{
    grid-template-columns:1fr!important;
  }

  .event-card,
  .reading-card,
  .work-card,
  .staff-card{
    min-width:0;
    max-width:none!important;
  }

  .event-card__image,
  .reading-card__image{
    width:100%!important;
  }

  .video-feature__head h3,
  .home-community-movie-section .video-feature__head h3{
    font-size:clamp(24px,7vw,32px)!important;
    line-height:1.55!important;
  }

  .video-feature__lead{
    font-size:12px!important;
    line-height:1.9!important;
  }

  .video-feature__frame,
  .home-community-movie__frame{
    width:100%!important;
    aspect-ratio:16/9!important;
  }

  .video-feature__frame iframe,
  .home-community-movie__frame iframe{
    width:100%!important;
    height:100%!important;
  }

  .work-detail-hero,
  .work-detail-content,
  .work-gallery,
  .work-detail-specs,
  .work-detail-faq{
    min-width:0;
  }

  .work-detail-specs__table,
  .company-map iframe{
    width:100%!important;
  }

  .work-detail-specs__table,
  .work-detail-specs__table tbody,
  .work-detail-specs__table tr,
  .work-detail-specs__table th,
  .work-detail-specs__table td{
    display:block;
    width:100%;
  }

  .work-detail-specs__table tr{
    padding:15px 0;
    border-bottom:1px solid var(--line);
  }

  .work-detail-specs__table th,
  .work-detail-specs__table td{
    border:0!important;
    padding:5px 0!important;
  }

  .work-detail-specs__table th{
    font-size:11px;
    color:var(--sub);
  }

  .work-detail-specs__table td{
    font-size:14px;
    line-height:1.85;
  }

  .zeh-table-wrap{
    width:100%;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
  }

  .zeh-table{
    min-width:560px;
  }

  .gallery-lightbox{
    padding:
      calc(64px + env(safe-area-inset-top))
      12px
      calc(70px + env(safe-area-inset-bottom))!important;
  }

  .gallery-lightbox__figure{
    width:100%!important;
    max-height:calc(100dvh - 150px)!important;
  }

  .gallery-lightbox__figure img{
    max-height:calc(100dvh - 190px)!important;
  }

  .hausqa-lp .inner{
    width:calc(100% - (var(--mobile-gutter) * 2))!important;
  }

  .hausqa-lp .hero{
    min-height:100svh!important;
  }

  .hausqa-lp .hero__body h1{
    font-size:clamp(32px,9vw,46px)!important;
    line-height:1.45!important;
  }

  .hausqa-lp .section-title{
    font-size:clamp(27px,7.5vw,38px)!important;
    line-height:1.55!important;
  }

  .hausqa-lp .buttons{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:12px!important;
  }

  .hausqa-lp .button{
    width:100%;
    min-height:52px;
  }

  .flow-hero{
    min-height:620px!important;
  }

  .flow-hero__body{
    width:calc(100% - (var(--mobile-gutter) * 2))!important;
  }

  .quality-compact-feature__media img,
  .quality-closing__image img,
  .company-hero__main img,
  .company-hero__sub img{
    width:100%;
    height:auto;
  }

  .contact-premium-cta{
    margin-inline:calc(var(--mobile-gutter) * -1)!important;
  }

  .contact-premium-cta__button{
    width:100%!important;
  }

  .form-panel{
    width:100%!important;
    max-width:none!important;
    min-height:100dvh;
    padding:
      calc(58px + env(safe-area-inset-top))
      var(--mobile-gutter)
      calc(28px + env(safe-area-inset-bottom))!important;
  }

  .form-grid{
    grid-template-columns:1fr!important;
  }

  input,
  select,
  textarea{
    max-width:100%;
    font-size:16px!important;
  }

  input,
  select{
    min-height:48px;
  }

  textarea{
    min-height:140px;
  }

  .footer{
    padding:
      clamp(58px,15vw,80px)
      var(--mobile-gutter)
      calc(28px + env(safe-area-inset-bottom))!important;
  }

  .footer__top,
  .footer__links{
    grid-template-columns:1fr!important;
    gap:36px!important;
  }

  .footer__links{
    gap:28px!important;
  }

  .footer__links a,
  .footer__links button{
    min-height:42px;
    display:flex;
    align-items:center;
  }

  .footer__base606-banner{
    width:100%!important;
    margin-inline:0!important;
  }

  .footer__bottom{
    display:grid!important;
    gap:12px;
    line-height:1.8;
  }

  .footer__legal-links{
    display:flex;
  }

  .pagination,
  .nav-links{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    justify-content:center;
  }

  .page-numbers{
    min-width:44px;
    min-height:44px;
    display:grid;
    place-items:center;
  }
}

@media (max-width:390px){
  :root{
    --mobile-gutter:14px;
  }

  .site-header__logo{
    width:104px!important;
  }

  .site-header.site-header--menu-right .menu-button{
    min-width:76px!important;
    padding-inline:8px!important;
  }

  .menu-button__label{
    font-size:9px;
  }

  .global-menu__nav a,
  .global-menu__nav button{
    font-size:16px!important;
  }
}

@media (max-width:767px) and (orientation:landscape) and (max-height:520px){
  .hero,
  .hausqa-lp .hero{
    min-height:520px!important;
    height:auto!important;
  }

  .global-menu__body{
    padding-top:12px!important;
  }
}

@media (prefers-reduced-motion:reduce){
  html{
    scroll-behavior:auto!important;
  }
}


/* ==========================================================
   v1.9.1 Final mobile polish
   ========================================================== */
@media(max-width:767px){
  html,
  body{
    max-width:100%;
    overflow-x:clip;
  }

  main,
  section,
  article,
  header,
  footer,
  nav,
  figure{
    min-width:0;
  }

  img,
  iframe,
  video{
    max-width:100%;
  }

  .page-width,
  .inner,
  .section-head,
  .quality-compact,
  .quality-compact-nav{
    min-width:0;
  }

  .section-head{
    align-items:flex-start!important;
  }

  .section-head h1,
  .section-head h2,
  .section-title{
    overflow-wrap:anywhere;
  }

  .quality-compact-nav{
    margin-bottom:72px!important;
  }

  .quality-compact-nav a{
    min-height:62px;
    padding:14px 4px!important;
  }

  .quality-compact-group{
    margin-bottom:92px!important;
  }

  .quality-compact-feature{
    gap:24px!important;
    margin-bottom:38px!important;
  }

  .quality-compact-feature__media img{
    aspect-ratio:4/3!important;
  }

  .quality-compact-group--no-image .quality-compact-feature{
    padding:34px 20px!important;
  }

  .quality-accordion summary{
    min-height:68px!important;
  }

  .quality-closing{
    min-height:0!important;
  }

  .quality-closing__copy{
    padding:54px 20px 68px!important;
  }

  .staff-representative{
    gap:28px!important;
    padding:26px 18px!important;
  }

  .staff-representative__meta{
    gap:10px!important;
  }

  .staff-representative__name{
    font-size:clamp(28px,8vw,38px)!important;
  }

  .staff-representative__body{
    min-width:0;
  }

  .staff-card__text{
    overflow-wrap:anywhere;
  }

  .home-community-movie-section .video-feature__head h3{
    font-size:clamp(23px,7vw,32px)!important;
    line-height:1.55!important;
  }

  .home-community-movie-section .video-feature__lead{
    font-size:13px!important;
    line-height:1.9!important;
  }

  .home-community-movie-section .video-feature__frame{
    aspect-ratio:16/9;
  }

  .global-menu__panel{
    width:100%!important;
    max-width:100%!important;
  }

  .global-menu__body{
    padding-inline:18px!important;
  }

  .global-menu__nav a,
  .global-menu__nav button{
    overflow-wrap:anywhere;
  }

  .footer__base606-banner img{
    width:100%;
    height:auto;
  }

  .work-detail-specs__table,
  .zeh-table{
    width:100%;
    table-layout:fixed;
  }

  .work-detail-specs__table th,
  .work-detail-specs__table td,
  .zeh-table th,
  .zeh-table td{
    overflow-wrap:anywhere;
  }

  .contact-premium-cta__copy h2{
    font-size:clamp(27px,8vw,38px)!important;
  }

  .contact-premium-cta__button{
    gap:16px!important;
    padding-inline:18px!important;
  }
}

@media(max-width:430px){
  .quality-hero__fullscreen-copy{
    width:calc(100% - 28px)!important;
    margin-inline:14px!important;
  }

  .quality-compact-feature__copy h2{
    font-size:clamp(24px,8vw,32px)!important;
  }

  .quality-accordion__body{
    font-size:13px!important;
  }

  .staff-grid{
    gap:36px!important;
  }

  .site-header__utilities{
    gap:4px!important;
  }

  .site-header__email{
    padding-inline:5px!important;
  }

  .menu-button{
    min-width:74px!important;
  }
}


/* ==========================================================
   v1.9.2 final mobile refinements
   ========================================================== */
@media(max-width:1023px){
  .site-header__utilities{
    flex-direction:column!important;
    align-items:flex-end!important;
    justify-content:flex-start!important;
    gap:6px!important;
  }
  .site-header__actions{
    order:1!important;
  }
  .site-header__email{
    order:2!important;
    min-height:34px!important;
    padding:6px 0 0!important;
    border-bottom:0!important;
    font-size:10px!important;
    line-height:1.2!important;
  }
  .site-header__email-full{
    display:inline!important;
    font-size:9px!important;
    letter-spacing:.08em!important;
  }
}

@media(max-width:767px){
  .section-head h1,
  .section-head h2,
  .section-title,
  .quality-compact-group__header h2,
  .quality-compact-feature__copy h2,
  .video-feature__head h3,
  .work-card__meta h3,
  .event-card__body h3,
  .staff-card__name,
  .flow-step__title{
    font-size:clamp(20px,5.6vw,28px)!important;
    line-height:1.6!important;
    letter-spacing:.05em!important;
  }

  .section-head p,
  .section-lead,
  .video-feature__lead,
  .quality-compact-group__lead,
  .quality-compact-feature__copy p,
  .work-card__meta p,
  .event-card__body p{
    font-size:12px!important;
    line-height:1.9!important;
  }

  .eyebrow,
  .section-head .eyebrow,
  .section-head small,
  .section-head__eyebrow{
    font-size:10px!important;
    letter-spacing:.16em!important;
  }

  .site-header__email{
    width:auto!important;
    max-width:min(82vw,320px)!important;
  }
  .site-header__email-icon{
    width:16px!important;
    height:16px!important;
  }
  .site-header__email-full{
    font-size:8.5px!important;
  }

  .news-row,
  .news-row.news-row--with-image{
    display:grid!important;
    grid-template-columns:96px minmax(0,1fr) auto!important;
    gap:10px 14px!important;
    align-items:start!important;
  }
  .news-row__image{
    display:block!important;
    width:96px!important;
    min-width:96px!important;
    aspect-ratio:1/1!important;
    overflow:hidden!important;
    grid-row:1 / span 3!important;
    align-self:start!important;
    background:#e5dfd5!important;
  }
  .news-row__image img,
  .news-row__image picture,
  .news-row__image picture img{
    display:block!important;
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
  }
  .news-row time,
  .news-row > span:not(.news-row__image),
  .news-row strong,
  .news-row i{
    min-width:0!important;
  }
  .news-row strong{
    font-size:15px!important;
    line-height:1.65!important;
  }

  .new-house-page .value,
  .renovation-page .value{
    grid-template-columns:1fr!important;
    gap:10px!important;
    padding:22px 0!important;
  }
  .new-house-page .value__num,
  .renovation-page .value__num{
    font-size:10px!important;
  }
  .new-house-page .value h3,
  .renovation-page .value h3{
    margin:0!important;
    font-size:18px!important;
    line-height:1.5!important;
  }
  .new-house-page .value p,
  .renovation-page .value p{
    margin:0!important;
    font-size:12px!important;
    line-height:1.9!important;
  }

  .contact-premium-cta__button{
    min-height:68px!important;
  }
  .contact-premium-cta__button small{
    display:block!important;
    margin-top:4px!important;
  }
}


/* ==========================================================
   v1.9.3 mobile/tablet layout corrections
   ========================================================== */
@media(max-width:1179px){
  /* Main hero: two controlled lines, smaller type, right-aligned note. */
  .hero__copy{
    top:clamp(108px,14vh,150px)!important;
    left:clamp(18px,5vw,42px)!important;
    right:auto!important;
    bottom:auto!important;
    width:min(86vw,590px)!important;
    max-width:none!important;
  }
  .hero__copy h1{
    font-size:clamp(20px,4.2vw,36px)!important;
    line-height:1.72!important;
    letter-spacing:.06em!important;
    white-space:nowrap;
  }
  .hero__note{
    left:auto!important;
    right:clamp(18px,5vw,44px)!important;
    bottom:clamp(52px,7vh,86px)!important;
    width:min(76vw,480px)!important;
    text-align:right!important;
  }
  .hero__note p{
    font-size:clamp(10px,1.7vw,13px)!important;
    line-height:1.95!important;
  }

  /* Titles from the second section onward are one step smaller. */
  .portal__title{
    font-size:clamp(22px,4.4vw,32px)!important;
    line-height:1.62!important;
  }
  .section-head h1,
  .section-head h2,
  .section-title,
  .quality-compact-group__copy h2,
  .quality-compact-feature__copy h2,
  .video-feature__head h3,
  .simple-page-main h1{
    font-size:clamp(24px,4.8vw,38px)!important;
    line-height:1.55!important;
  }
  .quality-hero__fullscreen-copy h1{
    font-size:clamp(25px,4.6vw,40px)!important;
    line-height:1.55!important;
  }

  /* Reading archive/tablet layout. */
  .news-row.news-row--with-image{
    grid-template-columns:112px minmax(112px,140px) minmax(0,1fr) 24px!important;
    grid-template-areas:
      "image date title arrow"
      "image category title arrow"!important;
    gap:8px 18px!important;
    padding:24px 0!important;
  }
  .news-row__image{
    width:112px!important;
    min-width:112px!important;
    aspect-ratio:1/1!important;
  }
  .news-row__date,
  .news-row__category{
    white-space:nowrap!important;
    word-break:keep-all!important;
    overflow-wrap:normal!important;
  }

  .staff-representative{
    grid-template-columns:1fr!important;
  }
  .staff-representative__meta,
  .staff-representative__body{
    grid-column:1!important;
  }
}

@media(max-width:767px){
  .hero__copy{
    top:clamp(112px,14vh,148px)!important;
    width:calc(100% - 36px)!important;
  }
  .hero__copy h1{
    font-size:clamp(17px,5vw,23px)!important;
    line-height:1.85!important;
  }
  .hero__note{
    width:calc(100% - 48px)!important;
  }

  .portal__title{
    font-size:clamp(20px,5.6vw,26px)!important;
  }
  .section-head h1,
  .section-head h2,
  .section-title,
  .quality-compact-group__copy h2,
  .quality-compact-feature__copy h2,
  .video-feature__head h3,
  .simple-page-main h1{
    font-size:clamp(21px,5.8vw,28px)!important;
    line-height:1.58!important;
  }
  .quality-hero__fullscreen-copy h1{
    font-size:clamp(22px,6.1vw,29px)!important;
    line-height:1.55!important;
  }

  /* Autoplay movie should look like a silent moving visual, not a player. */
  .home-community-movie-section .video-feature__frame{
    position:relative;
    overflow:hidden!important;
    background:#1c1a17;
  }
  .home-community-movie-section .video-feature__frame iframe{
    position:absolute!important;
    inset:-2px!important;
    width:calc(100% + 4px)!important;
    height:calc(100% + 4px)!important;
    pointer-events:none!important;
  }

  /* Reading archive smartphone layout. */
  .news-row.news-row--with-image{
    grid-template-columns:92px minmax(0,1fr) 22px!important;
    grid-template-areas:
      "image date arrow"
      "image category arrow"
      "image title title"!important;
    gap:5px 13px!important;
    padding:22px 0!important;
  }
  .news-row__image{
    width:92px!important;
    min-width:92px!important;
    grid-row:auto!important;
  }
  .news-row__date,
  .news-row__category{
    font-size:10px!important;
  }
  .news-row__title{
    margin-top:3px;
    font-size:14px!important;
    line-height:1.62!important;
  }
  .news-row__arrow{
    align-self:center;
  }

  .staff-representative-portrait{
    width:100%;
    margin-bottom:28px;
  }
  .staff-representative-portrait img{
    max-height:none;
  }

  .final-cta--contact-page{
    margin-inline:calc(var(--mobile-gutter) * -1)!important;
  }
  .final-cta--contact-page .cta-card{
    min-height:420px!important;
  }
  .final-cta--contact-page .cta-card h2{
    font-size:clamp(25px,7vw,34px)!important;
  }

  html.site-reveal-ready [data-site-reveal-direction="left"]:not(.is-site-visible){
    transform:translate3d(-24px,10px,0)!important;
  }
  html.site-reveal-ready [data-site-reveal-direction="right"]:not(.is-site-visible){
    transform:translate3d(24px,10px,0)!important;
  }
}

@media(max-width:390px){
  .hero__copy h1{
    font-size:clamp(16px,4.8vw,19px)!important;
  }
  .news-row.news-row--with-image{
    grid-template-columns:82px minmax(0,1fr) 20px!important;
  }
  .news-row__image{
    width:82px!important;
    min-width:82px!important;
  }
}


/* ==========================================================
   v1.9.4 requested mobile corrections
   ========================================================== */
@media(max-width:1179px){
  /* Hero copy: move to the very top-left; move the note slightly left. */
  .hero__copy{
    top:clamp(40px,5.5vh,68px)!important;
    left:clamp(18px,5vw,48px)!important;
    width:min(72vw,560px)!important;
  }
  .hero__copy h1{
    font-size:clamp(18px,3.4vw,29px)!important;
    line-height:1.78!important;
  }
  .hero__note{
    right:clamp(56px,10vw,132px)!important;
    bottom:clamp(54px,7vh,88px)!important;
    width:min(62vw,500px)!important;
  }

  /* Works: automatic scrolling + native swipe + tap controls. */
  .works-marquee{
    position:relative;
    overflow:visible!important;
    padding-bottom:16px!important;
  }
  .works-track--marquee{
    animation:none!important;
    display:flex!important;
    width:100%!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    scroll-snap-type:x mandatory!important;
    scroll-behavior:smooth;
    touch-action:pan-x!important;
    overscroll-behavior-inline:contain;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    padding:0 max(18px,4vw) 16px!important;
  }
  .works-track--marquee::-webkit-scrollbar{
    display:none!important;
  }
  .works-marquee__group{
    flex:0 0 auto;
    gap:16px!important;
    padding-inline:0 16px!important;
  }
  .works-track--marquee .work-card{
    flex:0 0 min(72vw,340px)!important;
    scroll-snap-align:start!important;
  }
  .works-track--marquee .work-card__image{
    aspect-ratio:4/5!important;
  }
  .works-carousel__controls{
    display:flex!important;
    justify-content:flex-end;
    gap:10px;
    padding:0 max(18px,4vw);
  }

  /* Form overlay itself scrolls; avoids the frozen modal on iOS/tablet. */
  .form-dialog{
    display:none;
    align-items:flex-start!important;
    justify-content:center;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    padding:12px!important;
    -webkit-overflow-scrolling:touch;
    touch-action:pan-y!important;
  }
  .form-dialog.is-open{
    display:block!important;
  }
  .form-panel{
    width:min(100%,820px)!important;
    max-height:none!important;
    min-height:calc(100dvh - 24px);
    margin:0 auto!important;
    overflow:visible!important;
    padding:clamp(58px,7vw,76px) clamp(18px,5vw,46px) 54px!important;
  }
  .form-close{
    position:sticky!important;
    z-index:5;
    top:0!important;
    float:right;
    margin-top:calc(clamp(58px,7vw,76px) * -1 + 8px);
    margin-right:calc(clamp(18px,5vw,46px) * -1 + 8px);
    padding:10px 12px!important;
    background:var(--bg-light)!important;
    border:1px solid var(--line)!important;
  }

  /* Reading list: compact rows and exactly two title lines. */
  .news-row.news-row--with-image{
    grid-template-columns:96px 98px minmax(0,1fr) 20px!important;
    grid-template-areas:"image date title arrow"!important;
    gap:12px 16px!important;
    min-height:0!important;
    padding:15px 0!important;
    align-items:center!important;
  }
  .news-row__image{
    width:96px!important;
    min-width:96px!important;
    aspect-ratio:1/1!important;
  }
  .news-row__category{
    display:none!important;
  }
  .news-row__date{
    align-self:start;
    padding-top:2px;
    font-size:10px!important;
  }
  .news-row__title{
    display:-webkit-box!important;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
    overflow:hidden!important;
    max-height:3.2em;
    margin:0!important;
    font-size:15px!important;
    line-height:1.6!important;
  }
  .news-row__arrow{
    align-self:center!important;
    font-size:15px!important;
  }
}

@media(max-width:767px){
  .hero__copy{
    top:clamp(34px,5vh,54px)!important;
    width:calc(100% - 90px)!important;
  }
  .hero__copy h1{
    font-size:clamp(16px,4.5vw,21px)!important;
  }
  .hero__note{
    right:clamp(36px,9vw,64px)!important;
    width:calc(100% - 88px)!important;
  }

  .works-track--marquee .work-card{
    flex-basis:min(78vw,310px)!important;
  }
  .works-track--marquee .work-card__meta{
    padding-top:12px!important;
  }
  .works-track--marquee .work-card__meta h3{
    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
    overflow:hidden;
    font-size:14px!important;
    line-height:1.65!important;
  }

  .form-grid{
    grid-template-columns:1fr!important;
    gap:14px!important;
  }
  .form-field.is-wide{
    grid-column:auto!important;
  }
  .form-panel h2{
    font-size:clamp(27px,8vw,36px)!important;
  }

  .news-row.news-row--with-image{
    grid-template-columns:74px minmax(0,1fr) 18px!important;
    grid-template-areas:
      "image date arrow"
      "image title title"!important;
    gap:4px 11px!important;
    padding:12px 0!important;
  }
  .news-row__image{
    width:74px!important;
    min-width:74px!important;
  }
  .news-row__date{
    padding-top:0;
    font-size:9px!important;
  }
  .news-row__title{
    font-size:13px!important;
    line-height:1.55!important;
    max-height:3.1em;
  }
  .news-row__arrow{
    font-size:13px!important;
  }
}

@media(max-width:390px){
  .news-row.news-row--with-image{
    grid-template-columns:68px minmax(0,1fr) 16px!important;
  }
  .news-row__image{
    width:68px!important;
    min-width:68px!important;
  }
}


/* ==========================================================
   v1.9.5 exact hero two-line note
   ========================================================== */
@media(max-width:1179px){
  .hero__note{
    right:clamp(42px,9vw,110px)!important;
    width:min(78vw,610px)!important;
  }
  .hero__note p{
    display:grid!important;
    justify-items:end;
    gap:3px!important;
  }
  .hero__note p span{
    display:block!important;
    white-space:nowrap!important;
    font-size:clamp(9px,1.7vw,13px)!important;
    line-height:1.6!important;
  }
}

@media(max-width:767px){
  .hero__note{
    right:clamp(22px,7vw,44px)!important;
    width:calc(100% - 44px)!important;
  }
  .hero__note p span{
    font-size:clamp(8px,2.15vw,10px)!important;
  }
}


/* ==========================================================
   v2.0.1 Google form mobile polish
   ========================================================== */
@media(max-width:767px){
  .google-contact-form input,
  .google-contact-form select,
  .google-contact-form textarea{
    width:100%;
    max-width:100%;
    font-size:16px!important;
  }
  .google-contact-form textarea{min-height:170px}
  .form-panel{
    padding-bottom:max(54px,calc(34px + env(safe-area-inset-bottom)))!important;
  }
  .form-google-note{font-size:9px}
}
