/* Photography PAW mobile layout
   PC styles remain untouched; every rule is limited to 768px and below. */
@media (max-width:768px){
  :root{
    --header-h:72px;
    --page-x:20px;
    --section-y:72px;
  }

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

  main,
  section,
  figure,
  form{
    min-width:0;
    max-width:100%;
  }

  img{
    max-width:100%;
  }

  .section-title{
    max-width:100%;
    font-size:clamp(2.75rem,14vw,4.25rem);
    overflow-wrap:anywhere;
  }

  .page-title{
    max-width:100%;
    font-size:clamp(3.35rem,17vw,5.35rem);
    overflow-wrap:anywhere;
  }

  /* Header and full-screen mobile menu */
  .site-header{
    height:var(--header-h);
    padding:6px 18px;
    justify-content:center;
  }

  .site-logo{
    width:76px;
    flex:0 0 auto;
  }

  .menu-toggle{
    right:10px;
    width:48px;
    height:48px;
    padding:11px;
    align-items:center;
    justify-content:center;
  }

  .menu-toggle span{
    width:26px;
  }

  .desktop-nav{
    padding:calc(var(--header-h) + 34px) 24px 96px;
    overflow-y:auto;
    overscroll-behavior:contain;
    visibility:hidden;
    opacity:0;
    pointer-events:none;
    transition:transform .25s ease,opacity .25s ease,visibility 0s linear .25s;
  }

  .desktop-nav.open{
    visibility:visible;
    opacity:1;
    pointer-events:auto;
    transition-delay:0s;
  }

  .desktop-nav ul{
    gap:14px;
  }

  .desktop-nav a,
  .home .site-header:not(.is-scrolled) .desktop-nav a{
    min-height:44px;
    display:flex;
    align-items:center;
    font-size:clamp(1.5rem,7.6vw,1.95rem);
    line-height:1.2;
  }

  body.menu-open .site-header{
    background:transparent;
    border-color:transparent;
    backdrop-filter:none;
  }

  body.menu-open .site-logo img{
    content:url("images/paw.da-ku.png");
    filter:none;
    transform:scale(1);
  }

  body.menu-open .mobile-cta{
    opacity:0;
    pointer-events:none;
  }

  .mobile-cta a{
    min-width:0;
    min-height:58px;
    padding-inline:6px;
    flex-direction:column;
    gap:3px;
    line-height:1;
    background:var(--brown);
    color:var(--white);
  }

  .mobile-cta a:last-child{
    background:#cbbfaf;
    color:var(--brown);
  }

  .mobile-cta-icon{
    position:relative;
    display:block;
    width:17px;
    height:17px;
    flex:0 0 17px;
    color:currentColor;
  }

  .mobile-cta-icon--instagram{
    border:1px solid currentColor;
    border-radius:4px;
  }

  .mobile-cta-icon--instagram::before{
    content:"";
    position:absolute;
    top:50%;
    left:50%;
    width:6px;
    height:6px;
    border:1px solid currentColor;
    border-radius:50%;
    transform:translate(-50%,-50%);
  }

  .mobile-cta-icon--instagram::after{
    content:"";
    position:absolute;
    top:3px;
    right:3px;
    width:2px;
    height:2px;
    border-radius:50%;
    background:currentColor;
  }

  .mobile-cta-icon--price{
    width:auto;
    font-family:Georgia,"Times New Roman",serif;
    font-size:17px;
    font-weight:400;
    line-height:17px;
    text-align:center;
  }

  .mobile-cta-icon--mail{
    width:18px;
    height:14px;
    margin-block:1px 2px;
    flex-basis:14px;
    border:1px solid currentColor;
    background:
      linear-gradient(35deg,transparent 47%,currentColor 49%,currentColor 53%,transparent 55%) left top / 50% 70% no-repeat,
      linear-gradient(-35deg,transparent 47%,currentColor 49%,currentColor 53%,transparent 55%) right top / 50% 70% no-repeat;
  }

  /* HOME hero: mobile-specific crop, copy and logo sizing */
  .home-hero{
    height:100svh;
    min-height:100svh;
  }

  .home-hero-slide{
    background-size:cover;
  }

  .home-hero-slide:nth-child(1){
    background-position:47% 68%!important;
  }

  .home-hero-slide:nth-child(2){
    background-position:61% center;
  }

  .home-hero-slide:nth-child(3){
    background-position:64% center;
  }

  .home-hero .hero-copy{
    position:absolute;
    z-index:2;
    top:18%;
    right:20px;
    bottom:auto;
    left:20px;
    width:auto;
    max-width:none;
    padding:0;
    display:block;
    transform:none;
  }

  .home-hero .hero-copy > div{
    width:100%;
  }

  .home-hero .hero-copy .eyebrow{
    margin-bottom:12px;
    font-size:.6rem;
    letter-spacing:.13em;
  }

  .home-hero h1{
    max-width:9em;
    font-size:clamp(2rem,10vw,3.2rem);
    line-height:1.2;
  }

  .home-hero-title-line{
    white-space:normal;
  }

  /* HOME Gallery */
  .gallery-preview{
    padding-inline:20px;
  }

  .home-gallery-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px 14px;
  }

  .home-gallery-grid .gallery-card:nth-child(3){
    display:block;
  }

  .home-gallery-grid .gallery-figure{
    aspect-ratio:4 / 5;
  }

  .home-gallery-more,
  .home-concept-link,
  .home-service-link{
    min-height:52px;
  }

  /* HOME Concept */
  .home-concept-window{
    min-height:64svh;
    padding:var(--header-h) 20px 24px;
    background-attachment:scroll;
    background-position:47% center;
  }

  .home-concept-copy-panel{
    min-height:0;
    padding:64px 20px 72px;
  }

  .home-concept-copy-layout{
    grid-template-columns:minmax(0,1fr);
    gap:36px;
  }

  .home-concept-copy .about-detail-body br{
    display:none;
  }

  .home-concept-copy-photo{
    width:88%;
    max-width:420px;
    aspect-ratio:4 / 5;
    justify-self:center;
  }

  /* HOME Service */
  .home .service-preview{
    padding:72px 20px;
  }

  .home-service-intro{
    grid-template-columns:minmax(0,1fr);
    gap:36px;
  }

  .home-service-copy{
    max-width:none;
    order:1;
    justify-self:stretch;
  }

  .home-service-copy .body-copy{
    max-width:44ch;
  }

  .home-service-actions{
    max-width:none;
  }

  .home-service-photo{
    order:2;
    max-width:100%;
    aspect-ratio:4 / 5;
    justify-self:stretch;
  }

  .home-service-photo img{
    object-position:70% center;
  }

  /* HOME Flow */
  .home-flow{
    padding:68px 20px;
  }

  .home-flow-steps{
    grid-template-columns:minmax(0,1fr);
    gap:34px;
  }

  .home-flow-step{
    padding:0 0 30px;
    border-bottom:1px solid var(--line);
  }

  .home-flow-step:last-child{
    padding-bottom:0;
    border-bottom:0;
  }

  .home-flow-step::before{
    display:none!important;
  }

  .home-flow-step h3{
    min-height:0;
  }

  .home-flow-step p{
    max-width:36em;
  }

  /* HOME Q&A */
  .home-faq{
    padding:64px 20px;
  }

  .home-faq-question{
    grid-template-columns:32px minmax(0,1fr) 44px;
    gap:10px;
    min-height:72px;
    padding:16px 0;
  }

  .home-faq-question-text{
    overflow-wrap:anywhere;
  }

  .home-faq-toggle{
    width:44px;
    height:44px;
  }

  .home-faq-answer-content{
    grid-template-columns:32px minmax(0,1fr);
    gap:10px;
    padding:4px 0 24px;
  }

  .home-faq-answer-content p{
    overflow-wrap:anywhere;
  }

  /* HOME Schedule: preserve readable seven columns inside its own scroll area */
  .home-schedule{
    padding:64px 20px;
  }

  .home-schedule-calendar{
    max-width:100%;
    overflow:visible;
  }

  .home-schedule-table-scroll{
    width:100%;
    max-width:100%;
    overflow-x:auto;
    overflow-y:hidden;
    overscroll-behavior-inline:contain;
    -webkit-overflow-scrolling:touch;
  }

  .home-schedule-table{
    min-width:560px;
  }

  .home-schedule-table th{
    font-size:.72rem;
  }

  .home-schedule-table td{
    height:64px;
    padding:8px;
  }

  /* HOME Contact */
  .home-contact{
    padding:72px 20px 96px;
  }

  .home-contact-row{
    grid-template-columns:minmax(0,1fr);
    gap:32px;
  }

  .home-contact-lead br{
    display:none;
  }

  .home-contact-control,
  input.home-contact-control,
  select.home-contact-control,
  textarea.home-contact-control{
    width:100%;
    min-height:52px;
    font-size:16px;
  }

  textarea.home-contact-control{
    min-height:160px;
  }

  .home-contact-check-label{
    min-height:44px;
    align-items:flex-start;
  }

  .home-contact-checkbox{
    width:22px;
    height:22px;
    flex:0 0 auto;
  }

  .home-contact-submit{
    width:100%;
    min-height:56px;
  }

  .home-contact-complete{
    padding:48px 0 28px;
  }

  /* Shared detail-page hero */
  .concept-detail-hero,
  .terms-hero{
    padding:calc(var(--header-h) + 54px) 20px 64px;
  }

  .concept-detail-intro,
  .terms-intro{
    margin-top:38px;
  }

  .concept-detail-intro p br,
  .terms-lead br{
    display:none;
  }

  /* Gallery detail: one large work at a time with an alternating editorial rhythm */
  .page-content{
    padding:64px 20px 76px;
  }

  .gallery-page .concept-detail-hero{
    display:flex;
    flex-direction:column;
    align-items:center;
  }

  .gallery-page .concept-detail-hero .page-title{
    order:1;
  }

  .gallery-page .concept-detail-hero .eyebrow{
    order:2;
    margin:10px 0 0;
  }

  .gallery-page .concept-detail-intro{
    order:3;
  }

  .gallery-page .page-content{
    padding:68px 20px 92px;
  }

  .gallery-page .gallery-mixed-grid{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:clamp(68px,18vw,92px);
  }

  .gallery-page .gallery-mixed-grid .gallery-card,
  .gallery-page .gallery-mixed-grid .gallery-card.landscape{
    width:82%;
    max-width:520px;
  }

  .gallery-page .gallery-mixed-grid .gallery-card:nth-child(odd){
    margin-right:auto;
    margin-left:0;
  }

  .gallery-page .gallery-mixed-grid .gallery-card:nth-child(even){
    margin-right:0;
    margin-left:auto;
  }

  .gallery-page .gallery-mixed-grid .portrait .gallery-figure,
  .gallery-page .gallery-mixed-grid .landscape .gallery-figure{
    aspect-ratio:auto;
    background:transparent;
  }

  .gallery-page .gallery-mixed-grid .gallery-figure img{
    width:100%;
    height:auto;
    max-height:78svh;
    object-fit:contain;
    object-position:center;
    transition:none;
  }

  .gallery-page .gallery-card:hover .gallery-figure img{
    transform:none;
  }

  .lightbox{
    grid-template-columns:38px minmax(0,1fr) 38px;
    gap:4px;
    padding:68px 6px 24px;
  }

  .lightbox-close{
    top:14px;
    right:14px;
    width:48px;
    height:48px;
  }

  .lightbox-arrow{
    width:38px;
    height:56px;
  }

  /* Concept detail and Photographer */
  .concept-story,
  .concept-story.reverse{
    width:calc(100% - 40px);
    min-height:0;
    padding:68px 0;
    grid-template-columns:minmax(0,1fr);
    gap:34px;
  }

  .concept-story .concept-story-photo,
  .concept-story.reverse .concept-story-photo{
    order:1;
  }

  .concept-story .concept-story-copy,
  .concept-story.reverse .concept-story-copy{
    order:2;
    max-width:none;
  }

  .concept-story-photo.landscape{
    aspect-ratio:4 / 5;
  }

  .concept-story.reverse .concept-story-photo.landscape img{
    object-position:47% center;
  }

  .concept-photographer .concept-story-photo{
    width:88%;
    max-width:430px;
    justify-self:center;
  }

  .concept-story-body br,
  .concept-closing br{
    display:none;
  }

  .concept-story-copy h2{
    margin-bottom:24px;
    font-size:clamp(1.65rem,8vw,2.25rem);
  }

  .concept-closing{
    padding:80px 20px 92px;
  }

  .concept-service-link,
  .terms-contact-link,
  .service-cta-link{
    min-height:56px;
  }

  /* Service detail */
  .walk-plans{
    padding:64px 20px 0;
  }

  .walk-plans-heading h2{
    font-size:clamp(2.35rem,12vw,3.8rem);
  }

  .walk-plan-grid{
    grid-template-columns:minmax(0,1fr);
  }

  .walk-plan{
    padding:38px 0 54px;
  }

  .walk-plan:first-child{
    border-right:0;
    border-bottom:1px solid var(--line);
  }

  .walk-plan h3{
    font-size:clamp(1.8rem,9vw,2.65rem);
  }

  .walk-plan-price{
    font-size:clamp(3rem,16vw,4.6rem);
  }

  .walk-plan-facts{
    grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);
  }

  .cat-photo-note,
  .travel-fee-note,
  .plan-guide{
    width:100%;
    padding:32px 20px;
    grid-template-columns:minmax(0,1fr);
    gap:22px;
  }

  .travel-fee-head{
    grid-template-columns:minmax(0,1fr);
    gap:20px;
  }

  .travel-fee-intro br,
  .cat-photo-note br,
  .service-approach br{
    display:none;
  }

  .service-approach{
    margin-top:64px;
    margin-bottom:72px;
    padding:34px 20px;
  }

  .contact-band{
    padding:68px 20px;
  }

  .service-contact-band .section-title{
    font-size:clamp(2.1rem,11vw,3.35rem);
  }

  .service-cta-link{
    width:100%;
  }

  /* Terms and older detail pages */
  .terms-body,
  .terms-contact{
    padding-inline:20px;
  }

  .terms-body{
    padding-top:72px;
    padding-bottom:80px;
  }

  .terms-heading{
    grid-template-columns:34px minmax(0,1fr);
    gap:10px;
  }

  .terms-copy{
    margin-left:0;
  }

  .terms-copy br{
    display:none;
  }

  .terms-table div{
    grid-template-columns:minmax(0,1fr) auto;
    gap:12px;
  }

  .page-hero,
  .detail-intro,
  .contact-layout,
  .service-grid,
  .service-page-grid,
  .plan-grid{
    grid-template-columns:minmax(0,1fr);
  }

  .detail-hero-image{
    height:auto;
    aspect-ratio:4 / 5;
  }

  .contact-form{
    padding:28px 20px;
  }

  .field input,
  .field textarea,
  .field select{
    min-height:50px;
    font-size:16px;
  }

  .submit-btn{
    min-height:48px;
  }

  .site-footer{
    padding:34px 20px 30px;
    flex-direction:column;
    align-items:flex-start;
    gap:18px;
  }
}

@media (max-width:768px) and (hover:none){
  .home-gallery-grid .gallery-card:hover .gallery-figure img{
    transform:none;
  }
}
