@charset "utf-8";
/* ===========================================
   レスポンシブCSS – あひるホーム中昇建託
   ブレークポイント: 960px / 768px
=========================================== */

/* -----------------------------------------------
   960px 以下: 固定幅を流動化
----------------------------------------------- */
@media (max-width: 960px) {

  /* 固定幅コンテナを全幅に */
  #hnav,
  #header #gnav,
  #homepage .con_key,
  #homepage .con_top,
  #homepage #news,
  #homepage #contents_wrap,
  #contents,
  #footer #fnav_top,
  #footer #fnav_bottom {
    width: 100% !important;
    box-sizing: border-box;
  }

  /* ヘッダー: #hnav */
  #hnav {
    padding: 0 10px;
    margin-bottom: 10px !important;
  }

  /* ロゴ幅を自動に */
  #hnav #logo {
    width: auto !important;
  }
  #hnav #logo .txt_logo .txt_com {
    width: auto !important;
  }

  /* unav 幅を自動に */
  #hnav #unav {
    width: auto !important;
  }

  /* gnav ラッパー */
  #header .gnav_wrap,
  #header .gnav_wrap2 {
    width: 100%;
    height: auto !important;
  }

  /* gnav: 横並びを折り返し可能に */
  #header #gnav {
    width: 100% !important;
    height: auto !important;
    display: flex;
    flex-wrap: wrap;
  }

  /* con_key: 960px → 全幅 */
  #homepage .con_key {
    width: 100% !important;
    margin: 10px 0 !important;
  }

  /* コンテンツエリア */
  #homepage #news {
    width: 100% !important;
  }

  /* フッター */
  #footer #fnav_top {
    padding: 0 10px;
  }
  #footer #fnav_bottom {
    padding: 0 10px;
  }
  #footer #f_add {
    width: auto !important;
    margin: 0 10px !important;
    box-sizing: border-box;
  }
}


/* -----------------------------------------------
   768px 以下: スマホレイアウト
----------------------------------------------- */
@media (max-width: 768px) {

  /* ページ全体の横スクロール防止 */
  body, html {
    overflow-x: hidden;
  }
  #page, #homepage {
    overflow-x: hidden;
  }

  /* ============================================
     ヘッダー
  ============================================ */
  #hnav {
    padding: 8px 10px !important;
    margin-bottom: 0 !important;
  }

  /* ロゴ: 左寄せ→中央寄せ・縦積み */
  #hnav #logo,
  #hnav #unav {
    float: none !important;
    width: 100% !important;
    text-align: center;
  }

  #hnav #logo {
    margin-top: 0 !important;
  }

  #hnav #logo .txt_logo {
    margin-bottom: 4px;
  }

  #hnav #logo .txt_logo p.box_l {
    float: none !important;
    text-align: center;
  }

  #hnav #logo .txt_logo .txt_com {
    width: 100% !important;
    margin-left: 0 !important;
    font-size: 11px;
    line-height: 1.5;
  }

  #hnav #logo h1 {
    text-align: center;
  }

  /* unav: ボタン横並び→縦積み */
  #hnav #unav ul {
    display: flex;
    justify-content: center;
    margin-bottom: 6px !important;
  }

  #hnav #unav ul li {
    padding-left: 8px !important;
  }

  #hnav #unav ul li img {
    max-height: 36px;
    width: auto;
  }

  /* 定休日・電話番号画像 */
  #hnav #unav p img {
    max-width: 100%;
    height: auto;
  }

  /* ============================================
     グローバルナビ: 画像置換 → テキストリンク表示
  ============================================ */
  #header .gnav_wrap {
    height: auto !important;
    border-bottom: 2px solid #654b05;
  }

  #header .gnav_wrap2 {
    height: auto !important;
  }

  #header #gnav {
    width: 100% !important;
    height: auto !important;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    padding: 4px 0;
    gap: 0;
  }

  #header #gnav li {
    float: none !important;
  }

  /* 画像置換リセット → テキストを表示 */
  #header #gnav li a {
    padding-top: 0 !important;
    height: auto !important;
    overflow: visible !important;
    background-image: none !important;
    width: auto !important;
    display: block;
    padding: 8px 10px !important;
    color: #333 !important;
    text-decoration: none;
    font-size: 14px;
    font-weight: bold;
    text-shadow: none;
    white-space: nowrap;
    border-right: 1px solid rgba(0,0,0,0.15);
  }

  #header #gnav li:last-child a {
    border-right: none;
  }

  #header #gnav li a:hover {
    background-color: rgba(0,0,0,0.05) !important;
    color: #333 !important;
  }

  /* ============================================
     キービジュアル (.con_key)
  ============================================ */
  #homepage .con_key {
    width: 100% !important;
    margin: 0 0 10px 0 !important;
  }

  /* スライドエリア: 固定幅→全幅 */
  #homepage .con_slide,
  #homepage .con_slide.box_l {
    float: none !important;
    width: 100% !important;
    height: auto !important;
  }

  /* galleryviewが生成するラッパーを全幅に */
  #homepage .con_slide .gv_gallery,
  #homepage .con_slide .gv_galleryWrap {
    width: 100% !important;
    padding: 0 !important;
  }

  /* メインパネル: 全幅 */
  #homepage .con_slide .gv_panelWrap {
    width: 100% !important;
    position: relative !important;
  }

  /* フィルムストリップ（サムネイル列）: 非表示 */
  #homepage .con_slide .gv_filmstripWrap {
    display: none !important;
  }

  /* バナー画像: 全幅に */
  #homepage .con_slide #banner li img {
    width: 100% !important;
    height: auto !important;
  }

  /* フレーム画像 */
  #homepage .con_slide .img_waku {
    display: none;
  }

  /* 検索ボタン */
  #homepage .con_key .box_r {
    float: none !important;
    width: 100% !important;
    display: flex;
    justify-content: center;
    gap: 10px;
    padding: 10px 0;
  }

  #homepage .con_key .box_r p {
    margin: 0;
  }

  #homepage .con_key .box_r p img {
    max-width: 100%;
    height: auto;
  }

  /* ============================================
     コンテンツエリア (#main + #side)
  ============================================ */
  #homepage #contents_wrap {
    height: auto !important;
    padding: 10px 0 !important;
    margin-bottom: 0 !important;
  }

  #contents {
    width: 100% !important;
    padding: 0 10px;
    box-sizing: border-box;
  }

  /* #main: フロート解除 */
  #main {
    float: none !important;
    width: 100% !important;
  }

  /* #side: フロート解除・#main の下に */
  #side {
    float: none !important;
    width: 100% !important;
    margin-top: 20px;
    clear: both;
  }

  #side .bn_side img {
    max-width: 100%;
    height: auto;
  }

  #side #snav ul li img {
    max-width: 100%;
    height: auto;
  }

  /* 新着情報 */
  #homepage #news {
    width: 100% !important;
    box-sizing: border-box;
    border-left: none;
    border-right: none;
  }

  #homepage #news .con_news {
    height: auto !important;
  }

  #homepage #news .con_news .box_news {
    padding: 0 10px !important;
  }

  #homepage #news .con_news .box_news .one_news {
    width: 100% !important;
  }

  dl.eswsNewinfoComponentInner,
  div.eswsNewinfoComponent dl {
    width: 100% !important;
    padding: 0 !important;
  }

  /* おすすめ物件 */
  #homepage .con_lea h3 img {
    max-width: 100%;
    height: auto;
  }

  /* ============================================
     フッター
  ============================================ */
  #footer {
    width: 100% !important;
  }

  /* fnav_top: 横並び→縦積み */
  #footer #fnav_top {
    width: 100% !important;
    padding: 4px 10px !important;
  }

  #footer #fnav_top ul {
    float: none !important;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 4px;
  }

  #footer #fnav_top ul li {
    float: none !important;
    margin: 0 !important;
    padding: 4px 8px !important;
    font-size: 12px;
    background-position: left center;
  }

  /* fnav_bottom: リスト → 折り返しフレックス */
  #footer #fnav_bottom {
    width: 100% !important;
    padding: 10px !important;
  }

  #footer #fnav_bottom ul {
    display: flex;
    flex-wrap: wrap;
    gap: 2px;
    border-bottom: none;
    margin-bottom: 4px;
  }

  #footer #fnav_bottom ul li {
    font-size: 11px;
    padding: 4px 6px !important;
  }

  /* ページトップボタン */
  #pagetop {
    float: none !important;
    text-align: center;
    display: block;
    margin: 10px 0;
  }

  #pagetop img {
    max-width: 100%;
    height: auto;
  }

  /* f_add: ロゴ+電話 縦積み */
  #footer #f_add {
    width: auto !important;
    margin: 0 10px !important;
    padding: 10px !important;
    box-sizing: border-box;
  }

  #footer #f_add .box_l,
  #footer #f_add .f_tel.box_r {
    float: none !important;
    width: 100% !important;
    text-align: center;
  }

  #footer #f_add .box_l img {
    max-width: 100%;
    height: auto;
  }

  #footer #f_add .f_tel {
    margin: 10px 0 0 0 !important;
    padding: 10px !important;
    box-sizing: border-box;
  }

  #footer #f_add .f_tel img {
    max-width: 100%;
    height: auto;
  }

  /* copyright */
  #copyright {
    font-size: 10px;
    padding: 0 10px;
  }

  /* ============================================
     全画像を最大幅に収める（総括ルール）
  ============================================ */
  #homepage img {
    max-width: 100%;
    height: auto;
  }

  /* Flex のデフォルトコンテナ幅制限を解除 */
  .entry-content {
    padding: 0 !important;
  }
}
